diff options
author | Araq <rumpf_a@web.de> | 2017-09-03 01:15:40 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2017-09-03 01:15:40 +0200 |
commit | 7132b04f44a9d801773d3f2423e41c5ecfa7c978 (patch) | |
tree | fef2a12d4a6669f01d8d9d5d0239501bf6368ac2 /tests/gensym | |
parent | 2d8e97ee03cab9ad7442bed01e14360269c516bb (diff) | |
download | Nim-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.nim | 25 |
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" |