Files
Nim/tests/macros/tquotedo.nim
Vindaar d9ee377517 fix #10339 by returning type attached to nkEmpty (#10370)
* fix #10339 by checking for nkObjConstr

* revert check for nkObjConstr, return type from nkEmpty node

The correct type needed in `semObjConstr` to fix #10339 is indeed
available, but attached to an `nkEmpty` node. These were previously
discarded in `semTypeNode`, which is used to extract the type for the
object.

* simplify return of PType from  `nkEmpty`

* also fixes #9866, add test case
2019-01-23 11:17:32 +01:00

52 lines
654 B
Nim

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()