1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
discard """
output: '''true
true
true
'''
"""
# issue #7615
import macros
template table(name: string) {.pragma.}
type
User {.table("tuser").} = object
id: int
name: string
age: int
echo User.hasCustomPragma(table)
## crash: Error: internal error: (filename: "sempass2.nim", line: 560, column: 19)
macro m1(T: typedesc): untyped =
getAST hasCustomPragma(T, table)
echo m1(User) # Oops crash
## This works
macro m2(T: typedesc): untyped =
result = quote do:
`T`.hasCustomPragma(table)
echo m2(User)
|