From a0b8b818f3901460ad7f93e1ed48779431a12583 Mon Sep 17 00:00:00 2001 From: Jacek Sieka Date: Fri, 29 May 2020 16:37:59 +0200 Subject: [PATCH] work around type issues --- beacon_chain/ssz/types.nim | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/beacon_chain/ssz/types.nim b/beacon_chain/ssz/types.nim index a58ec6044..672e2afd5 100644 --- a/beacon_chain/ssz/types.nim +++ b/beacon_chain/ssz/types.nim @@ -236,18 +236,21 @@ macro unsupported*(T: typed): untyped = # File both problems as issues. error "SSZ serialization of the type " & humaneTypeName(T) & " is not supported" -template ElemType*(T: type[HashArray]): untyped = - type(default(T).data[0]) +template ElemType*(T: type HashArray): untyped = + T.T -template ElemType*(T: type[HashList]): untyped = - type(default(T).data[0]) +template ElemType*(T: type HashList): untyped = + T.T -template ElemType*(T: type[array]): untyped = +template ElemType*(T: type array): untyped = type(default(T)[low(T)]) -template ElemType*(T: type[seq|List]): untyped = +template ElemType*(T: type seq): untyped = type(default(T)[0]) +template ElemType*(T: type List): untyped = + T.T + func isFixedSize*(T0: type): bool {.compileTime.} = mixin toSszType, enumAllSerializedFields