diff options
author | Araq <rumpf_a@web.de> | 2015-03-25 13:05:32 +0100 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2015-03-25 13:05:32 +0100 |
commit | 94f2d639b18f71a4d17347ab134c155dc00cc788 (patch) | |
tree | 0c57bb0d8fe86c56de24669bea39f77667fa5b2f | |
parent | 117903a6ae01201522af6a2a95aa7c4e0f5fd6a2 (diff) | |
download | Nim-94f2d639b18f71a4d17347ab134c155dc00cc788.tar.gz |
fixes #2401
-rw-r--r-- | compiler/ccgexprs.nim | 2 | ||||
-rw-r--r-- | tests/method/temptybody.nim | 11 |
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() |