diff options
author | LemonBoy <LemonBoy@users.noreply.github.com> | 2018-06-30 09:16:14 +0200 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2018-06-30 09:16:14 +0200 |
commit | 0a14b3d1980e116bd40a98d5d2b414a0e1d05a1c (patch) | |
tree | 48d5af5ca2f1e2b4c4c4ef915358da6dd09b4cda | |
parent | 898a4bc4fa01bb124edeb837285cd7155f13b6c1 (diff) | |
download | Nim-0a14b3d1980e116bd40a98d5d2b414a0e1d05a1c.tar.gz |
Check the RHS when building a set (#8159)
Fixes #2669
-rw-r--r-- | compiler/sem.nim | 2 | ||||
-rw-r--r-- | tests/sets/t2669.nim | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/compiler/sem.nim b/compiler/sem.nim index 0adcccfbe..b242e4db6 100644 --- a/compiler/sem.nim +++ b/compiler/sem.nim @@ -76,7 +76,7 @@ template semIdeForTemplateOrGeneric(c: PContext; n: PNode; proc fitNodePostMatch(c: PContext, formal: PType, arg: PNode): PNode = result = arg let x = result.skipConv - if x.kind in {nkPar, nkTupleConstr} and formal.kind != tyExpr: + if x.kind in {nkPar, nkTupleConstr, nkCurly} and formal.kind != tyExpr: changeType(c, x, formal, check=true) else: result = skipHiddenSubConv(result) diff --git a/tests/sets/t2669.nim b/tests/sets/t2669.nim new file mode 100644 index 000000000..6b8eb0f54 --- /dev/null +++ b/tests/sets/t2669.nim @@ -0,0 +1,6 @@ +discard """ +line: 6 +errormsg: "cannot convert 6 to range 1..5(int8)" +""" + +var c: set[range[1i8..5i8]] = {1i8, 2i8, 6i8} |