Skip to content

Commit fed0053

Browse files
authored
fixes #25167; fixes deref type (#25195)
fixes #25167
1 parent 9f74712 commit fed0053

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

compiler/transf.nim

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -834,7 +834,9 @@ proc transformFor(c: PTransf, n: PNode): PNode =
834834
var temp = newTemp(c, arg[0].typ, formal.info)
835835
addVar(v, temp)
836836
stmtList.add(newAsgnStmt(c, nkFastAsgn, temp, arg[0], true))
837-
newC.mapping[formal.itemId] = newDeref(temp)
837+
let newD = newDeref(temp)
838+
newD.typ() = t
839+
newC.mapping[formal.itemId] = newD
838840
else:
839841
# generate a temporary and produce an assignment statement:
840842
var temp = newTemp(c, t, formal.info)

tests/iter/titer_issues.nim

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -424,3 +424,11 @@ block: # bug #25121
424424
for _ in k():
425425
(proc() = (; let _ = block: 0))()
426426

427+
let aaa = new array[1000, byte]
428+
block:
429+
for _ in cast[typeof(aaa)](aaa)[]:
430+
discard
431+
block:
432+
let x = cast[typeof(aaa)](aaa) # not even var
433+
for _ in x[]:
434+
discard

0 commit comments

Comments
 (0)