[FIR] Support dispatch & extension receiver in component calls
This commit is contained in:
+1
@@ -125,6 +125,7 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
|
||||
|
||||
builder(componentCall) {
|
||||
parents += callBuilder
|
||||
defaultNoReceivers(notNullExplicitReceiver = true)
|
||||
default("argumentList") {
|
||||
value = "FirEmptyArgumentList"
|
||||
}
|
||||
|
||||
+1
-7
@@ -97,14 +97,8 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
|
||||
value = "false"
|
||||
withGetter = true
|
||||
}
|
||||
listOf("dispatchReceiver", "extensionReceiver").forEach {
|
||||
default(it) {
|
||||
value = "FirNoReceiverExpression"
|
||||
withGetter = true
|
||||
}
|
||||
}
|
||||
default("calleeReference", "FirSimpleNamedReference(source, Name.identifier(\"component\$componentIndex\"), null)")
|
||||
useTypes(simpleNamedReferenceType, nameType, noReceiverExpressionType)
|
||||
useTypes(simpleNamedReferenceType, nameType)
|
||||
optInToInternals()
|
||||
}
|
||||
|
||||
|
||||
+4
-2
@@ -23,8 +23,10 @@ abstract class AbstractBuilderConfigurator<T : AbstractFirTreeBuilder>(val firTr
|
||||
types.forEach { builder.usedTypes += it }
|
||||
}
|
||||
|
||||
fun defaultNoReceivers() {
|
||||
defaultNull("explicitReceiver")
|
||||
fun defaultNoReceivers(notNullExplicitReceiver: Boolean = false) {
|
||||
if (!notNullExplicitReceiver) {
|
||||
defaultNull("explicitReceiver")
|
||||
}
|
||||
default("dispatchReceiver", "FirNoReceiverExpression")
|
||||
default("extensionReceiver", "FirNoReceiverExpression")
|
||||
useTypes(noReceiverExpressionType)
|
||||
|
||||
Reference in New Issue
Block a user