[FIR] Split FirAnonymousObject to expression and declaration

This commit is contained in:
Dmitriy Novozhilov
2021-06-09 14:31:16 +03:00
parent ad89d43186
commit 85b844c748
41 changed files with 769 additions and 546 deletions
@@ -337,7 +337,6 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
val elementsWithDefaultTypeRef = listOf(
thisReceiverExpression,
callableReferenceAccess,
anonymousObject,
qualifiedAccessExpression,
functionCall,
anonymousFunction,
@@ -59,7 +59,9 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
val file = element("File", Declaration, annotatedDeclaration)
val anonymousFunction = element("AnonymousFunction", Declaration, function, expression, typeParametersOwner)
val anonymousObject = element("AnonymousObject", Declaration, klass, controlFlowGraphOwner, expression)
val anonymousObject = element("AnonymousObject", Declaration, klass, controlFlowGraphOwner)
val anonymousObjectExpression = element("AnonymousObjectExpression", Expression, expression)
val diagnosticHolder = element("DiagnosticHolder", Diagnostics)
@@ -36,6 +36,7 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
}
impl(anonymousObject)
noImpl(anonymousObjectExpression)
impl(typeAlias)
@@ -507,7 +508,6 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
"FirTypeProjectionWithVarianceImpl",
"FirCallableReferenceAccessImpl",
"FirThisReceiverExpressionImpl",
"FirAnonymousObjectImpl",
"FirQualifiedAccessExpressionImpl",
"FirFunctionCallImpl",
"FirAnonymousFunctionImpl",
@@ -269,6 +269,10 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
+symbol("FirAnonymousObjectSymbol")
}
anonymousObjectExpression.configure {
+field(anonymousObject).withTransform()
}
typeAlias.configure {
+typeParameters
parentArg(classLikeDeclaration, "F", typeAlias)