K2: generate Unit conversion for indexed assignment at raw FIR stage

#KT-59748 Fixed
This commit is contained in:
Mikhail Glukhikh
2023-07-24 22:11:30 +02:00
committed by Space Team
parent 1832413a02
commit f20e2dec31
33 changed files with 160 additions and 16 deletions
@@ -2,10 +2,12 @@ FILE: arrayAssignment.kt
public? final? fun test(): R|kotlin/Unit| {
lval x: <implicit> = intArrayOf#(IntegerLiteral(1), IntegerLiteral(2), IntegerLiteral(3))
x#.set#(IntegerLiteral(1), IntegerLiteral(0))
Unit
}
public? final? fun foo(): <implicit> {
^foo IntegerLiteral(1)
}
public? final? fun test2(): R|kotlin/Unit| {
intArrayOf#(IntegerLiteral(1), IntegerLiteral(2), IntegerLiteral(3)).set#(foo#(), IntegerLiteral(1))
Unit
}
@@ -4,10 +4,16 @@ FILE: safeCallsWithAssignment.kt
a#?.{ $subj$.b# }?.{ $subj$.c# = IntegerLiteral(1) }
a#?.{ $subj$.b# }.c# = IntegerLiteral(1)
a#?.{ $subj$.b#.set#(IntegerLiteral(0), IntegerLiteral(1)) }
Unit
a#?.{ $subj$.b# }?.{ $subj$.c#.set#(IntegerLiteral(0), IntegerLiteral(1)) }
Unit
a#?.{ $subj$.b# }.c#.set#(IntegerLiteral(0), IntegerLiteral(1))
Unit
a#?.{ $subj$.b#.get#(IntegerLiteral(0)).set#(IntegerLiteral(0), IntegerLiteral(1)) }
Unit
a#?.{ $subj$.b# }?.{ $subj$.c#.get#(IntegerLiteral(0)).set#(IntegerLiteral(0), IntegerLiteral(1)) }
Unit
a#?.{ $subj$.b# }.c#.get#(IntegerLiteral(0)).set#(IntegerLiteral(0), IntegerLiteral(1))
Unit
a#?.{ $subj$.b# }.d#() = IntegerLiteral(1)
}