summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorLemonBoy <LemonBoy@users.noreply.github.com>2018-06-30 09:16:14 +0200
committerAndreas Rumpf <rumpf_a@web.de>2018-06-30 09:16:14 +0200
commit0a14b3d1980e116bd40a98d5d2b414a0e1d05a1c (patch)
tree48d5af5ca2f1e2b4c4c4ef915358da6dd09b4cda
parent898a4bc4fa01bb124edeb837285cd7155f13b6c1 (diff)
downloadNim-0a14b3d1980e116bd40a98d5d2b414a0e1d05a1c.tar.gz
Check the RHS when building a set (#8159)
Fixes #2669
-rw-r--r--compiler/sem.nim2
-rw-r--r--tests/sets/t2669.nim6
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}