summary refs log tree commit diff stats
diff options
context:
space:
mode:
authornarimiran <narimiran@disroot.org>2019-05-29 14:35:05 +0200
committernarimiran <narimiran@disroot.org>2019-05-29 14:35:05 +0200
commit3845faf85faf0b3c33ee722bbebb1e6294a791b5 (patch)
tree9cbb0c9580258eff037a8156b5d93b7b7fb73c91
parentd1b4f1082eaa468b8c788ad5dad21880cfd1f5e1 (diff)
downloadNim-3845faf85faf0b3c33ee722bbebb1e6294a791b5.tar.gz
close #7615 by adding a test
-rw-r--r--tests/macros/tcustompragma.nim32
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)