diff --git a/compiler/jsgen.nim b/compiler/jsgen.nim index 5d96907b56..f662692fe8 100644 --- a/compiler/jsgen.nim +++ b/compiler/jsgen.nim @@ -2180,7 +2180,11 @@ proc genSetConstr(p: PProc, n: PNode, r: var TCompRes) = if it.kind == nkRange: gen(p, it[0], a) gen(p, it[1], b) - r.res.addf("[$1, $2]", [a.res, b.res]) + + if it[0].typ.kind == tyBool: + r.res.addf("$1, $2", [a.res, b.res]) + else: + r.res.addf("[$1, $2]", [a.res, b.res]) else: gen(p, it, a) r.res.add(a.res) diff --git a/tests/sets/tsets_various.nim b/tests/sets/tsets_various.nim index 3e468c8f9f..5f3b234366 100644 --- a/tests/sets/tsets_various.nim +++ b/tests/sets/tsets_various.nim @@ -1,14 +1,15 @@ discard """ + targets: "c cpp js" output: ''' set is empty ''' """ -import sets, hashes +import std/[sets, hashes] -from sequtils import toSeq -from algorithm import sorted +from std/sequtils import toSeq +from std/algorithm import sorted proc sortedPairs[T](t: T): auto = toSeq(t.pairs).sorted template sortedItems(t: untyped): untyped = sorted(toSeq(t)) @@ -254,3 +255,24 @@ block: # test correctness after a number of inserts/deletes testDel(): (var t: HashSet[int]) testDel(): (var t: OrderedSet[int]) + + +template main() = + block: + let a = {true, false} + doAssert $a == "{false, true}" + doAssert a.len == 2 + + block: + let a = {false .. true} + doAssert $a == "{false, true}" + doAssert a.len == 2 + + block: + let a = {false .. false} + doAssert $a == "{false}" + doAssert a.len == 1 + + +static: main() +main()