[FIR] Split FirAnonymousFunction to expression and declaration

This commit is contained in:
Dmitriy Novozhilov
2021-06-10 11:06:04 +03:00
parent 85b844c748
commit 823cbc59b7
47 changed files with 466 additions and 190 deletions
@@ -58,7 +58,8 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
val constructor = element("Constructor", Declaration, function, callableMemberDeclaration, typeParameterRefsOwner)
val file = element("File", Declaration, annotatedDeclaration)
val anonymousFunction = element("AnonymousFunction", Declaration, function, expression, typeParametersOwner)
val anonymousFunction = element("AnonymousFunction", Declaration, function, typeParametersOwner)
val anonymousFunctionExpression = element("AnonymousFunctionExpression", Expression, expression)
val anonymousObject = element("AnonymousObject", Declaration, klass, controlFlowGraphOwner)
val anonymousObjectExpression = element("AnonymousObjectExpression", Expression, expression)
@@ -320,6 +320,8 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
default("resolvePhase", "FirResolvePhase.DECLARATIONS")
}
noImpl(anonymousFunctionExpression)
impl(propertyAccessor) {
default("receiverTypeRef") {
value = "null"
@@ -294,6 +294,11 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
}
+booleanField("isLambda")
+typeParameters
+field(typeRef, withReplace = true)
}
anonymousFunctionExpression.configure {
+field(anonymousFunction).withTransform()
}
typeParameter.configure {