[FIR] Move declaration attributes to declaration builders

This commit is contained in:
Dmitriy Novozhilov
2020-10-13 12:09:58 +03:00
parent 0b51fd03e2
commit e07f63d26c
44 changed files with 83 additions and 37 deletions
@@ -29,7 +29,7 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
val classBuilder by builder {
parents += annotationContainerBuilder
fields from klass without listOf("symbol", "resolvePhase", "attributes")
fields from klass without listOf("symbol", "resolvePhase")
}
builder(regularClass) {
@@ -53,7 +53,7 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
val functionBuilder by builder {
parents += annotationContainerBuilder
fields from function without listOf("symbol", "resolvePhase", "controlFlowGraphReference", "receiverTypeRef", "typeParameters", "attributes")
fields from function without listOf("symbol", "resolvePhase", "controlFlowGraphReference", "receiverTypeRef", "typeParameters")
}
val loopJumpBuilder by builder {
@@ -62,7 +62,7 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
val abstractConstructorBuilder by builder {
parents += functionBuilder
fields from constructor without listOf("isPrimary", "attributes")
fields from constructor without listOf("isPrimary")
}
val abstractFunctionCallBuilder by builder {
@@ -376,12 +376,12 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
defaultNull(it)
}
// configureFieldInAllIntermediateBuilders(
// field = "attributes",
// fieldPredicate = { it.type == declarationAttributesType.type }
// ) {
//
// }
configureFieldInAllLeafBuilders(
field = "attributes",
fieldPredicate = { it.type == declarationAttributesType.type }
) {
default(it, "${declarationAttributesType.type}()")
}
}
private inline fun findImplementationsWithElementInParents(
@@ -502,12 +502,5 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
default(it, "FirImplicitTypeRefImpl(null)")
useTypes(implicitTypeRefType)
}
configureFieldInAllImplementations(
field = "attributes",
fieldPredicate = { it.type == declarationAttributesType.type }
) {
default(it, "${declarationAttributesType.type}()")
}
}
}