[FIR] Add desugaring of array assignments and resolve of it
#KT-37516 Fixed
This commit is contained in:
+2
-3
@@ -112,9 +112,8 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
|
||||
}
|
||||
|
||||
builder(arraySetCall) {
|
||||
parents += qualifiedAccessBuilder
|
||||
defaultFalse("safe")
|
||||
defaultNoReceivers()
|
||||
default("calleeReference", "FirStubReference")
|
||||
useTypes(stubReferenceType)
|
||||
}
|
||||
|
||||
builder(callableReferenceAccess) {
|
||||
|
||||
+1
-1
@@ -89,7 +89,7 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
|
||||
val checkNotNullCall = element("CheckNotNullCall", Expression, expression, call, resolvable)
|
||||
|
||||
val arrayOfCall = element("ArrayOfCall", Expression, expression, call)
|
||||
val arraySetCall = element("ArraySetCall", Expression, qualifiedAccess, call)
|
||||
val arraySetCall = element("ArraySetCall", Expression, statement)
|
||||
val classReferenceExpression = element("ClassReferenceExpression", Expression, expression)
|
||||
val errorExpression = element("ErrorExpression", Expression, expression, diagnosticHolder)
|
||||
val errorFunction = element("ErrorFunction", Declaration, function, diagnosticHolder)
|
||||
|
||||
-8
@@ -86,14 +86,6 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
|
||||
isMutable("safe")
|
||||
}
|
||||
|
||||
impl(arraySetCall) {
|
||||
parents += modifiableQualifiedAccess
|
||||
default("lValue") {
|
||||
value = "calleeReference"
|
||||
customSetter = "calleeReference = value"
|
||||
}
|
||||
}
|
||||
|
||||
impl(callableReferenceAccess) {
|
||||
parents += modifiableQualifiedAccess
|
||||
}
|
||||
|
||||
+3
-3
@@ -396,10 +396,10 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
||||
}
|
||||
|
||||
arraySetCall.configure {
|
||||
+field("rValue", expression).withTransform()
|
||||
+field("assignCall", functionCall)
|
||||
+field("setGetBlock", block)
|
||||
+field("operation", operationType)
|
||||
+field("lValue", reference)
|
||||
+fieldList("indexes", expression).withTransform()
|
||||
+field("calleeReference", reference, withReplace = true)
|
||||
}
|
||||
|
||||
classReferenceExpression.configure {
|
||||
|
||||
Reference in New Issue
Block a user