diff options
Diffstat (limited to 'tests/macros/tquotedo.nim')
-rw-r--r-- | tests/macros/tquotedo.nim | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/macros/tquotedo.nim b/tests/macros/tquotedo.nim new file mode 100644 index 000000000..6acb8ef4e --- /dev/null +++ b/tests/macros/tquotedo.nim @@ -0,0 +1,51 @@ +discard """ +output: ''' +123 +Hallo Welt +Hallo Welt +1 +() +''' +""" + +import macros + +macro mac(): untyped = + quote do: + proc test(): int = + (proc(): int = result = 123)() + +mac() +echo test() + +macro foobar(arg: untyped): untyped = + result = arg + result.add quote do: + `result` + +foobar: + echo "Hallo Welt" + +# bug #3744 +import macros +macro t(): untyped = + return quote do: + proc tp(): int = + result = 1 +t() + +echo tp() + + +# https://github.com/nim-lang/Nim/issues/9866 +type + # Foo = int # works + Foo = object # fails + +macro dispatchGen(): untyped = + var shOpt: Foo + result = quote do: + let baz = `shOpt` + echo `shOpt` + +dispatchGen() |