[FIR] Implement CANNOT_ALL_UNDER_IMPORT_FROM_SINGLETON diagnostic

This commit is contained in:
Andrey Zinovyev
2021-06-01 16:33:07 +03:00
committed by Space
parent fdd9287836
commit bf153ab0f0
39 changed files with 347 additions and 139 deletions
@@ -14,8 +14,7 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
val typeRef = sealedElement("TypeRef", TypeRef, annotationContainer)
val reference = element("Reference", Reference)
val label = element("Label", Other)
val import = element("Import", Declaration)
val resolvedImport = element("ResolvedImport", Declaration, import)
val symbolOwner = element("SymbolOwner", Other)
val resolvable = sealedElement("Resolvable", Expression)
@@ -64,6 +63,10 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
val diagnosticHolder = element("DiagnosticHolder", Diagnostics)
val import = element("Import", Declaration)
val resolvedImport = element("ResolvedImport", Declaration, import)
val errorImport = element("ErrorImport", Declaration, import, diagnosticHolder)
val loop = sealedElement("Loop", Expression, statement, targetElement)
val errorLoop = element("ErrorLoop", Expression, loop, diagnosticHolder)
val doWhileLoop = element("DoWhileLoop", Expression, loop)
@@ -65,6 +65,10 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
}
}
impl(errorImport) {
delegateFields(listOf("aliasName", "importedFqName", "isAllUnder", "source"), "delegate")
}
impl(annotationCall) {
default("typeRef") {
value = "annotationTypeRef"
@@ -432,6 +432,10 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
)
}
errorImport.configure {
+field("delegate", import)
}
annotationCall.configure {
+field("useSiteTarget", annotationUseSiteTargetType, nullable = true)
+field("annotationTypeRef", typeRef).withTransform()