blob: a493d6a887191faf59e973c158ba99c91eb2a3e7 (
plain) (
tree)
|
|
discard """
nimout: '''initApple
deinitApple
Coral
enum
redCoral, blackCoral'''
output: '''TFoo
TBar'''
"""
# bug #1319
import macros
type
TTextKind = enum
TFoo, TBar
macro test: untyped =
var x = @[TFoo, TBar]
result = newStmtList()
for i in x:
result.add newCall(newIdentNode("echo"),
case i
of TFoo:
bindSym("TFoo")
of TBar:
bindSym("TBar"))
test()
# issue 7827, bindSym power up
{.experimental: "dynamicBindSym".}
type
Apple = ref object
name: string
color: int
weight: int
proc initApple(name: string): Apple =
discard
proc deinitApple(x: Apple) =
discard
macro wrapObject(obj: typed, n: varargs[untyped]): untyped =
let m = n[0]
for x in m:
var z = bindSym x
echo z.repr
wrapObject(Apple):
initApple
deinitApple
type
Coral = enum
redCoral
blackCoral
macro mixer(): untyped =
let m = "Co" & "ral"
let x = bindSym(m)
echo x.repr
echo getType(x).repr
mixer()
|