summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2015-03-25 13:05:32 +0100
committerAraq <rumpf_a@web.de>2015-03-25 13:05:32 +0100
commit94f2d639b18f71a4d17347ab134c155dc00cc788 (patch)
tree0c57bb0d8fe86c56de24669bea39f77667fa5b2f
parent117903a6ae01201522af6a2a95aa7c4e0f5fd6a2 (diff)
downloadNim-94f2d639b18f71a4d17347ab134c155dc00cc788.tar.gz
fixes #2401
-rw-r--r--compiler/ccgexprs.nim2
-rw-r--r--tests/method/temptybody.nim11
2 files changed, 12 insertions, 1 deletions
diff --git a/compiler/ccgexprs.nim b/compiler/ccgexprs.nim
index 1ebf85771..e19341db5 100644
--- a/compiler/ccgexprs.nim
+++ b/compiler/ccgexprs.nim
@@ -1962,7 +1962,7 @@ proc expr(p: BProc, n: PNode, d: var TLoc) =
     var sym = n.sym
     case sym.kind
     of skMethod:
-      if sym.getBody.kind == nkEmpty or sfDispatcher in sym.flags:
+      if {sfDispatcher, sfForward} * sym.flags != {}:
         # we cannot produce code for the dispatcher yet:
         fillProcLoc(sym)
         genProcPrototype(p.module, sym)
diff --git a/tests/method/temptybody.nim b/tests/method/temptybody.nim
new file mode 100644
index 000000000..26285d05b
--- /dev/null
+++ b/tests/method/temptybody.nim
@@ -0,0 +1,11 @@
+# bug #2401
+
+type MyClass = ref object of RootObj
+
+method HelloWorld*(obj: MyClass) =
+  when defined(myPragma):
+    echo("Hello World")
+  # discard # with this line enabled it works
+
+var obj = MyClass()
+obj.HelloWorld()