diff options
author | narimiran <narimiran@disroot.org> | 2019-05-29 14:35:05 +0200 |
---|---|---|
committer | narimiran <narimiran@disroot.org> | 2019-05-29 14:35:05 +0200 |
commit | 3845faf85faf0b3c33ee722bbebb1e6294a791b5 (patch) | |
tree | 9cbb0c9580258eff037a8156b5d93b7b7fb73c91 | |
parent | d1b4f1082eaa468b8c788ad5dad21880cfd1f5e1 (diff) | |
download | Nim-3845faf85faf0b3c33ee722bbebb1e6294a791b5.tar.gz |
close #7615 by adding a test
-rw-r--r-- | tests/macros/tcustompragma.nim | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/macros/tcustompragma.nim b/tests/macros/tcustompragma.nim new file mode 100644 index 000000000..71618883f --- /dev/null +++ b/tests/macros/tcustompragma.nim @@ -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) |