mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-05 20:47:53 +00:00
close #7615 by adding a test
This commit is contained in:
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)
|
||||
Reference in New Issue
Block a user