summary refs log tree commit diff stats
diff options
context:
space:
mode:
-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}