summary refs log tree commit diff stats
path: root/compiler/evals.nim
diff options
context:
space:
mode:
authorZahary Karadjov <zahary@gmail.com>2013-12-29 00:00:37 +0200
committerZahary Karadjov <zahary@gmail.com>2013-12-29 00:00:37 +0200
commit66a255652572b48440b68878e99d7f5290e384b3 (patch)
tree3349b1791218a3416209569848244245e087009d /compiler/evals.nim
parenteb1d23c0c745c64225e8db22f62d8ebf596f4448 (diff)
downloadNim-66a255652572b48440b68878e99d7f5290e384b3.tar.gz
make more tests green
Diffstat (limited to 'compiler/evals.nim')
-rw-r--r--compiler/evals.nim10
1 files changed, 4 insertions, 6 deletions
diff --git a/compiler/evals.nim b/compiler/evals.nim
index f7d94e4c0..151adf690 100644
--- a/compiler/evals.nim
+++ b/compiler/evals.nim
@@ -906,17 +906,15 @@ proc evalParseStmt(c: PEvalContext, n: PNode): PNode =
   result = parseString(code.getStrValue, code.info.toFilename,
                        code.info.line.int)
   #result.typ = newType(tyStmt, c.module)
- 
-proc evalTypeTrait*(trait, operand: PNode, context: PSym): PNode =
-  InternalAssert operand.kind == nkSym
 
-  let typ = operand.sym.typ.skipTypes({tyTypeDesc})
+proc evalTypeTrait*(trait, operand: PNode, context: PSym): PNode =
+  let typ = operand.typ.skipTypes({tyTypeDesc})
   case trait.sym.name.s.normalize
   of "name":
     result = newStrNode(nkStrLit, typ.typeToString(preferName))
     result.typ = newType(tyString, context)
     result.info = trait.info
-  of "arity":    
+  of "arity":
     result = newIntNode(nkIntLit, typ.n.len-1)
     result.typ = newType(tyInt, context)
     result.info = trait.info
@@ -1330,7 +1328,7 @@ proc evalAux(c: PEvalContext, n: PNode, flags: TEvalFlags): PNode =
   if gNestedEvals <= 0: stackTrace(c, n.info, errTooManyIterations)
   case n.kind
   of nkSym: result = evalSym(c, n, flags)
-  of nkType..nkNilLit:
+  of nkType..nkNilLit, nkTypeOfExpr:
     # nkStrLit is VERY common in the traces, so we should avoid
     # the 'copyNode' here.
     result = n #.copyNode