summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2012-10-19 21:43:18 +0200
committerAraq <rumpf_a@web.de>2012-10-19 21:43:18 +0200
commitac978b32031414e64ec2a148bcc1ff42287e534e (patch)
treee6c248d487a3fe0c026c1a6e3cb163ab10587f13
parentfc9bfb5eac212f46b39373f9d815d0aa029a6cae (diff)
downloadNim-ac978b32031414e64ec2a148bcc1ff42287e534e.tar.gz
bugfix: tcan_inherit_generic works again
-rwxr-xr-xcompiler/types.nim2
-rw-r--r--tests/compile/tmacroaspragma.nim8
2 files changed, 9 insertions, 1 deletions
diff --git a/compiler/types.nim b/compiler/types.nim
index 90fffff40..7b7078e20 100755
--- a/compiler/types.nim
+++ b/compiler/types.nim
@@ -92,7 +92,7 @@ proc InvalidGenericInst(f: PType): bool =
 
 proc isPureObject(typ: PType): bool = 
   var t = typ
-  while t.sons[0] != nil: t = t.sons[0]
+  while t.kind == tyObject and t.sons[0] != nil: t = t.sons[0]
   result = t.sym != nil and sfPure in t.sym.flags
 
 proc getOrdValue(n: PNode): biggestInt = 
diff --git a/tests/compile/tmacroaspragma.nim b/tests/compile/tmacroaspragma.nim
new file mode 100644
index 000000000..0e5c352b3
--- /dev/null
+++ b/tests/compile/tmacroaspragma.nim
@@ -0,0 +1,8 @@
+import macros
+
+macro foo(x: stmt): stmt =
+  echo treerepr(callsite())
+  result = newNimNode(nnkStmtList)
+
+proc zoo() {.foo.} = echo "hi"
+