summary refs log tree commit diff stats
path: root/tests/gensym
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2017-09-03 01:15:40 +0200
committerAraq <rumpf_a@web.de>2017-09-03 01:15:40 +0200
commit7132b04f44a9d801773d3f2423e41c5ecfa7c978 (patch)
treefef2a12d4a6669f01d8d9d5d0239501bf6368ac2 /tests/gensym
parent2d8e97ee03cab9ad7442bed01e14360269c516bb (diff)
downloadNim-7132b04f44a9d801773d3f2423e41c5ecfa7c978.tar.gz
equality check on NimSym has now support in the VM; refs #6139
Diffstat (limited to 'tests/gensym')
-rw-r--r--tests/gensym/tgensymgeneric.nim25
1 files changed, 24 insertions, 1 deletions
diff --git a/tests/gensym/tgensymgeneric.nim b/tests/gensym/tgensymgeneric.nim
index 54390a4ef..9963ba808 100644
--- a/tests/gensym/tgensymgeneric.nim
+++ b/tests/gensym/tgensymgeneric.nim
@@ -1,3 +1,7 @@
+discard """
+  output: '''true'''
+"""
+
 # We need to open the gensym'ed symbol again so that the instantiation
 # creates a fresh copy; but this is wrong the very first reason for gensym
 # is that scope rules cannot be used! So simply removing 'sfGenSym' does
@@ -28,4 +32,23 @@ var
 let x = gen(a)
 let y = gen(b)
 
-echo x.x, " ", y.x
+doAssert x.x == 123
+doAssert y.x == "abc"
+
+# test symbol equality
+
+import macros
+
+static:
+  let sym1   = genSym()
+  let sym2   = genSym()
+  let sym3   = sym1
+  let nimsym = sym1.symbol
+  doAssert sym1        == sym1
+  doAssert sym2        != sym3
+  doAssert sym2.symbol != sym3.symbol
+  doAssert sym3        == sym1
+  doAssert sym1.symbol == sym1.symbol
+  doAssert nimsym      == nimsym
+
+echo "true"