[FIR] Make FirErrorConstructor a FirDiagnosticHolder

This commit is contained in:
Nikolay Lunyak
2023-08-17 15:45:17 +03:00
committed by Space Team
parent 673b4b4d52
commit f238ffa4bf
35 changed files with 239 additions and 46 deletions
@@ -93,7 +93,7 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
fields from functionCall
}
for (constructorType in listOf("FirPrimaryConstructor", "FirConstructorImpl", "FirErrorConstructor")) {
for (constructorType in listOf("FirPrimaryConstructor", "FirConstructorImpl")) {
builder(constructor, constructorType) {
parents += abstractConstructorBuilder
defaultNull("delegatedConstructor")
@@ -103,6 +103,14 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
}
}
builder(errorPrimaryConstructor) {
parents += abstractConstructorBuilder
defaultNull("delegatedConstructor")
defaultNull("body")
default("contractDescription", "FirEmptyContractDescription")
useTypes(emptyContractDescriptionType)
}
builder(constructor, "FirConstructorImpl") {
openBuilder()
withCopy()
@@ -124,6 +124,7 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
val errorExpression by element(Expression, expression, diagnosticHolder)
val errorFunction by element(Declaration, function, diagnosticHolder)
val errorProperty by element(Declaration, variable, diagnosticHolder)
val errorPrimaryConstructor by element(Declaration, constructor, diagnosticHolder)
val danglingModifierList by element(Declaration, declaration, diagnosticHolder)
val qualifiedAccessExpression by element(Expression, expression, resolvable, contextReceiverArgumentListOwner)
val qualifiedErrorAccessExpression by element(Expression, expression, diagnosticHolder)
@@ -26,9 +26,9 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
defaultTrue("isPrimary", withGetter = true)
}
impl(constructor, "FirErrorConstructor") {
impl(errorPrimaryConstructor) {
publicImplementation()
defaultFalse("isPrimary", withGetter = true)
defaultTrue("isPrimary", withGetter = true)
}
impl(outerClassTypeParameterRef) {