diff options
author | Timothee Cour <timothee.cour2@gmail.com> | 2021-05-02 22:07:31 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-03 07:07:31 +0200 |
commit | 0dc534832e41612c488011b58c2dc9eb576fff3b (patch) | |
tree | e7219a599ae68871233173a846b2b8e9d7361b68 | |
parent | 6d485f545a9ccdde866348867eecf2d4e0fbfef4 (diff) | |
download | Nim-0dc534832e41612c488011b58c2dc9eb576fff3b.tar.gz |
close #16123 std/sets with closures in cpp (#17921)
* close #16123 std/sets with closures in cpp * fixup
-rw-r--r-- | tests/sets/tsets_various.nim | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/tests/sets/tsets_various.nim b/tests/sets/tsets_various.nim index 5f3b23436..419bcfdcc 100644 --- a/tests/sets/tsets_various.nim +++ b/tests/sets/tsets_various.nim @@ -1,15 +1,12 @@ discard """ targets: "c cpp js" - output: ''' -set is empty -''' """ - import std/[sets, hashes] from std/sequtils import toSeq from std/algorithm import sorted +from stdtest/testutils import whenVMorJs proc sortedPairs[T](t: T): auto = toSeq(t.pairs).sorted template sortedItems(t: untyped): untyped = sorted(toSeq(t)) @@ -23,10 +20,12 @@ block tsetpop: discard a.pop() doAssert len(a) == 0 + var msg = "" try: echo a.pop() except KeyError as e: - echo e.msg + msg = e.msg + doAssert msg == "set is empty" @@ -258,6 +257,7 @@ block: # test correctness after a number of inserts/deletes template main() = + # xxx move all tests inside this block: let a = {true, false} doAssert $a == "{false, true}" @@ -273,6 +273,14 @@ template main() = doAssert $a == "{false}" doAssert a.len == 1 + block: # bug #16123 + whenVMorJs: discard + do: + type CallType = proc() {.closure.} + var setA = initHashSet[CallType]() + let foo = proc() = discard + setA.incl(foo) + doAssert setA.contains(foo) static: main() main() |