fixes #25469; Conversion from distinct in for forces a copy of underlying instance

This commit is contained in:
ringabout
2026-04-15 19:59:31 +08:00
parent 5b1a05e282
commit ee9e0d65e7
2 changed files with 46 additions and 0 deletions

View File

@@ -702,6 +702,11 @@ proc putArgInto(arg: PNode, formal: PType): TPutArgInto =
of nkAddr, nkHiddenAddr:
result = putArgInto(arg[0], formal)
if result == paViaIndirection: result = paFastAsgn
of nkHiddenStdConv, nkHiddenSubConv, nkConv:
if compareTypes(arg.typ, arg[1].typ, dcEqIgnoreDistinct, {IgnoreRangeShallow}):
result = putArgInto(arg[1], formal)
else:
result = paFastAsgn
of nkCurly, nkBracket:
for i in 0..<arg.len:
if putArgInto(arg[i], formal) != paDirectMapping: