close #7615 by adding a test
This commit is contained in:
parent
d1b4f1082e
commit
3845faf85f
1 changed files with 32 additions and 0 deletions
32
tests/macros/tcustompragma.nim
Normal file
32
tests/macros/tcustompragma.nim
Normal file
|
|
@ -0,0 +1,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)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue