diff options
Diffstat (limited to 'compiler/semexprs.nim')
-rwxr-xr-x | compiler/semexprs.nim | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/compiler/semexprs.nim b/compiler/semexprs.nim index 8ab4c5f63..bca27a43d 100755 --- a/compiler/semexprs.nim +++ b/compiler/semexprs.nim @@ -1314,11 +1314,11 @@ proc semExpr(c: PContext, n: PNode, flags: TExprFlags = {}): PNode = Message(n.info, warnDeprecated, "bind") result = semExpr(c, n.sons[0], flags) of nkTypeOfExpr: - var typ = semTypeNode(c, n, nil) - if typ.sym == nil: - typ = copyType(typ, typ.owner, true) - typ.linkTo(newSym(skType, getIdent"typedesc", typ.owner)) - result = newSymNode(typ.sym, n.info) + var typ = semTypeNode(c, n, nil).skipTypes({tyTypeDesc}) + typ = makeTypedesc(c, typ) + var sym = newSym(skType, getIdent"TypeOfExpr", typ.owner).linkTo(typ) + sym.flags.incl(sfAnon) + result = newSymNode(sym, n.info) of nkCall, nkInfix, nkPrefix, nkPostfix, nkCommand, nkCallStrLit: # check if it is an expression macro: checkMinSonsLen(n, 1) |