[FIR] Fix resolution of LHS of augmented assignment operator call
Resolve it like a receiver of a call. This makes the resolution result consistent with the equivalent function call. The K1 difference is covered by KT-66453. #KT-66504 Fixed
This commit is contained in:
committed by
Space Team
parent
609906a0b1
commit
c227e60150
+2
-1
@@ -629,7 +629,8 @@ open class FirExpressionsResolveTransformer(transformer: FirAbstractBodyResolveT
|
||||
|
||||
assignmentOperatorStatement.transformAnnotations(transformer, ResolutionMode.ContextIndependent)
|
||||
dataFlowAnalyzer.enterCallArguments(assignmentOperatorStatement, listOf(assignmentOperatorStatement.rightArgument))
|
||||
val leftArgument = assignmentOperatorStatement.leftArgument.transformSingle(transformer, ResolutionMode.ContextIndependent)
|
||||
val leftArgument = assignmentOperatorStatement.leftArgument
|
||||
.transformAsExplicitReceiver(ResolutionMode.ReceiverResolution, isUsedAsGetClassReceiver = false)
|
||||
val rightArgument = assignmentOperatorStatement.rightArgument.transformSingle(transformer, ResolutionMode.ContextDependent)
|
||||
dataFlowAnalyzer.exitCallArguments()
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ fun test() {
|
||||
X()
|
||||
|
||||
X.<!UNRESOLVED_REFERENCE!>plusAssign<!>("")
|
||||
X += ""
|
||||
X <!UNRESOLVED_REFERENCE!>+=<!> ""
|
||||
X<!NO_GET_METHOD!>[X]<!> += ""
|
||||
|
||||
// Must resolve to property
|
||||
|
||||
Reference in New Issue
Block a user