[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)
|
assignmentOperatorStatement.transformAnnotations(transformer, ResolutionMode.ContextIndependent)
|
||||||
dataFlowAnalyzer.enterCallArguments(assignmentOperatorStatement, listOf(assignmentOperatorStatement.rightArgument))
|
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)
|
val rightArgument = assignmentOperatorStatement.rightArgument.transformSingle(transformer, ResolutionMode.ContextDependent)
|
||||||
dataFlowAnalyzer.exitCallArguments()
|
dataFlowAnalyzer.exitCallArguments()
|
||||||
|
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ fun test() {
|
|||||||
X()
|
X()
|
||||||
|
|
||||||
X.<!UNRESOLVED_REFERENCE!>plusAssign<!>("")
|
X.<!UNRESOLVED_REFERENCE!>plusAssign<!>("")
|
||||||
X += ""
|
X <!UNRESOLVED_REFERENCE!>+=<!> ""
|
||||||
X<!NO_GET_METHOD!>[X]<!> += ""
|
X<!NO_GET_METHOD!>[X]<!> += ""
|
||||||
|
|
||||||
// Must resolve to property
|
// Must resolve to property
|
||||||
|
|||||||
Reference in New Issue
Block a user