summary refs log tree commit diff stats
path: root/compiler
diff options
context:
space:
mode:
Diffstat (limited to 'compiler')
-rw-r--r--compiler/lowerings.nim2
-rw-r--r--compiler/semexprs.nim5
2 files changed, 5 insertions, 2 deletions
diff --git a/compiler/lowerings.nim b/compiler/lowerings.nim
index bd81773a8..d70c713a1 100644
--- a/compiler/lowerings.nim
+++ b/compiler/lowerings.nim
@@ -132,7 +132,7 @@ proc lowerTupleUnpackingForAsgn*(g: ModuleGraph; n: PNode; idgen: IdGenerator; o
 
   var vpart = newNodeI(nkIdentDefs, tempAsNode.info, 3)
   vpart[0] = tempAsNode
-  vpart[1] = newNodeI(nkEmpty, value.info)
+  vpart[1] = newNodeI(nkTupleClassTy, value.info)
   vpart[2] = value
   v.add vpart
   result.add(v)
diff --git a/compiler/semexprs.nim b/compiler/semexprs.nim
index 930fd3516..a01466868 100644
--- a/compiler/semexprs.nim
+++ b/compiler/semexprs.nim
@@ -1646,7 +1646,10 @@ proc semSubscript(c: PContext, n: PNode, flags: TExprFlags): PNode =
         {tyInt..tyInt64}:
       let idx = getOrdValue(n[1])
       if idx >= 0 and idx < arr.len: n.typ = arr[toInt(idx)]
-      else: localError(c.config, n.info, "invalid index value for tuple subscript")
+      else:
+        localError(c.config, n.info,
+          "invalid index $1 in subscript for tuple of length $2" %
+            [$idx, $arr.len])
       result = n
     else:
       result = nil