[FIR] Add expression field to FirErrorExpression

It is used to report diagnostics even in erroneous code (within ILLEGAL_SELECTOR for instance).
This commit is contained in:
Ivan Kochurkin
2021-06-25 14:22:51 +03:00
parent 59257e47c9
commit a7276b25ae
7 changed files with 18 additions and 2 deletions
@@ -152,6 +152,10 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
defaultNull("label")
}
builder(errorExpression) {
defaultNull("expression")
}
builder(errorLoop) {
defaultNull("label")
}
@@ -133,7 +133,7 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
impl(errorLoop) {
default("block", "FirEmptyExpressionBlock()")
default("condition", "FirErrorExpressionImpl(source, mutableListOf(), ConeStubDiagnostic(diagnostic))")
default("condition", "FirErrorExpressionImpl(source, mutableListOf(), ConeStubDiagnostic(diagnostic), null)")
useTypes(emptyExpressionBlock, coneStubDiagnosticType)
}
@@ -99,6 +99,10 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
+body(nullable = true, withReplace = true).withTransform()
}
errorExpression.configure {
+field("expression", expression, nullable = true)
}
errorFunction.configure {
+symbol("FirErrorFunctionSymbol")
+typeParameters