diff options
Diffstat (limited to 'compiler/semmagic.nim')
-rw-r--r-- | compiler/semmagic.nim | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/compiler/semmagic.nim b/compiler/semmagic.nim index d0ec1a2e9..c80e689a5 100644 --- a/compiler/semmagic.nim +++ b/compiler/semmagic.nim @@ -190,15 +190,10 @@ proc evalTypeTrait(c: PContext; traitCall: PNode, operand: PType, context: PSym) result = newIntNodeT(toInt128(operand.len), traitCall, c.idgen, c.graph) of "distinctBase": var arg = operand.skipTypes({tyGenericInst}) - if arg.kind == tyDistinct: - while arg.kind == tyDistinct: - arg = arg.base - arg = arg.skipTypes(skippedTypes + {tyGenericInst}) - result = getTypeDescNode(c, arg, operand.owner, traitCall.info) - else: - localError(c.config, traitCall.info, - "distinctBase expects a distinct type as argument. The given type was " & typeToString(operand)) - result = newType(tyError, nextTypeId c.idgen, context).toNode(traitCall.info) + while arg.kind == tyDistinct: + arg = arg.base + arg = arg.skipTypes(skippedTypes + {tyGenericInst}) + result = getTypeDescNode(c, arg, operand.owner, traitCall.info) else: localError(c.config, traitCall.info, "unknown trait: " & s) result = newNodeI(nkEmpty, traitCall.info) |