diff options
-rw-r--r-- | compiler/semexprs.nim | 3 | ||||
-rw-r--r-- | tests/compile/tvarious.nim | 8 |
2 files changed, 7 insertions, 4 deletions
diff --git a/compiler/semexprs.nim b/compiler/semexprs.nim index e07821d1f..03730f30c 100644 --- a/compiler/semexprs.nim +++ b/compiler/semexprs.nim @@ -920,7 +920,7 @@ proc builtinFieldAccess(c: PContext, n: PNode, flags: TExprFlags): PNode = result = check elif ty.kind == tyTuple and ty.n != nil: f = getSymFromList(ty.n, i) - if f != nil: + if f != nil: n.sons[0] = makeDeref(n.sons[0]) n.sons[1] = newSymNode(f) n.typ = f.typ @@ -1582,6 +1582,7 @@ proc semTupleFieldsConstr(c: PContext, n: PNode, flags: TExprFlags): PNode = flags*{efAllowDestructor}) var f = newSymS(skField, n.sons[i].sons[0], c) f.typ = skipIntLit(n.sons[i].sons[1].typ) + f.position = i rawAddSon(typ, f.typ) addSon(typ.n, newSymNode(f)) n.sons[i].sons[0] = newSymNode(f) diff --git a/tests/compile/tvarious.nim b/tests/compile/tvarious.nim index 52dd46184..087233226 100644 --- a/tests/compile/tvarious.nim +++ b/tests/compile/tvarious.nim @@ -1,5 +1,8 @@ # Test various aspects +var x = (x: 42, y: (a: 8, z: 10)) +echo x.y + import mvarious @@ -31,7 +34,7 @@ var r.b.a.x = 0 global = global + 1 exportme() -write(stdout, "Hallo wie heißt du? ") +write(stdout, "Hallo wie heißt du? ") write(stdout, getPA().x) s = readLine(stdin) i = 0 @@ -39,5 +42,4 @@ while i < s.len: if s[i] == 'c': write(stdout, "'c' in deinem Namen gefunden\n") i = i + 1 -write(stdout, "Du heißt " & s) - +write(stdout, "Du heißt " & s) |