summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorMiran <narimiran@disroot.org>2020-02-07 22:04:08 +0100
committerGitHub <noreply@github.com>2020-02-07 22:04:08 +0100
commitf3117d350ea245769d60a80b2d12b062cff4b8ff (patch)
tree805ddf0c96d36d4f7797d77819ef975314dd8b6b
parent78b15de3044feb4ac08fd5784714fac4d470e82b (diff)
downloadNim-f3117d350ea245769d60a80b2d12b062cff4b8ff.tar.gz
fix #6736: templates in unittest now show actual value (#13354)
-rw-r--r--lib/pure/unittest.nim2
-rw-r--r--tests/stdlib/tunittesttemplate.nim25
2 files changed, 26 insertions, 1 deletions
diff --git a/lib/pure/unittest.nim b/lib/pure/unittest.nim
index c50ef0b1b..ee2c5fe22 100644
--- a/lib/pure/unittest.nim
+++ b/lib/pure/unittest.nim
@@ -631,7 +631,7 @@ macro check*(conditions: untyped): untyped =
 
     var counter = 0
 
-    if exp[0].kind == nnkIdent and
+    if exp[0].kind in {nnkIdent, nnkOpenSymChoice, nnkClosedSymChoice, nnkSym} and
         $exp[0] in ["not", "in", "notin", "==", "<=",
                     ">=", "<", ">", "!=", "is", "isnot"]:
 
diff --git a/tests/stdlib/tunittesttemplate.nim b/tests/stdlib/tunittesttemplate.nim
new file mode 100644
index 000000000..5ac323a36
--- /dev/null
+++ b/tests/stdlib/tunittesttemplate.nim
@@ -0,0 +1,25 @@
+discard """
+  exitcode: 1
+  outputsub: '''
+    tunittesttemplate.nim(20, 12): Check failed: a.b ==
+    2
+    a.b was 0
+  [FAILED] 1
+'''
+"""
+
+# bug #6736
+
+import unittest
+
+type
+  A = object
+    b: int
+
+template t: untyped =
+  check(a.b == 2)
+
+suite "1":
+  test "1":
+    var a = A(b: 0)
+    t()