diff options
Diffstat (limited to 'tests/modules')
-rw-r--r-- | tests/modules/treorder.nim | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/modules/treorder.nim b/tests/modules/treorder.nim new file mode 100644 index 000000000..abe74c5df --- /dev/null +++ b/tests/modules/treorder.nim @@ -0,0 +1,42 @@ +discard """ + cmd: "nim -d:testdef $target $file" + output: '''works 34 +34 +defined +first impl''' +""" + +{.reorder: on.} + +{.push callconv: stdcall.} +proc bar(x: T) + +proc foo() = + bar(34) + whendep() + +proc foo(dummy: int) = echo dummy + +proc bar(x: T) = + echo "works ", x + foo(x) + +foo() + +type + T = int + +when defined(testdef): + proc whendep() = echo "defined" +else: + proc whendep() = echo "undefined" + +when not declared(goo): + proc goo() = echo "first impl" + +when not declared(goo): + proc goo() = echo "second impl" + +goo() + +{.pop.} |