Preserve origins when desugaring augmented array assignments

^KT-63827: Fixed
This commit is contained in:
vladislav.grechko
2023-12-20 17:15:40 +00:00
committed by Space Team
parent eb790732fd
commit 77d0d1073e
27 changed files with 259 additions and 161 deletions
@@ -200,6 +200,16 @@ sealed class KtFakeSourceElementKind(final override val shouldSkipErrorTypeRepor
// list[0] -> list.get(0) where name reference will have a fake source element
object ArrayAccessNameReference : KtFakeSourceElementKind()
// a[b] += c -> a.set(b, a.get(b) + c) or a.get(b).plusAssign(c)
// set, get, '+', and plusAssign will have a fake source element
sealed class DesugaredArrayAugmentedAssign : KtFakeSourceElementKind()
object DesugaredArrayPlusAssign : DesugaredArrayAugmentedAssign()
object DesugaredArrayMinusAssign : DesugaredArrayAugmentedAssign()
object DesugaredArrayTimesAssign : DesugaredArrayAugmentedAssign()
object DesugaredArrayDivAssign : DesugaredArrayAugmentedAssign()
object DesugaredArrayRemAssign : DesugaredArrayAugmentedAssign()
// a[b]++
// b -> val <index0> = b where b will have fake property
object ArrayIndexExpressionReference : KtFakeSourceElementKind()