diff --git a/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/DiagnosticData.kt b/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/DiagnosticData.kt index bc38ea0e3f8..280b6f124fc 100644 --- a/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/DiagnosticData.kt +++ b/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/DiagnosticData.kt @@ -15,7 +15,6 @@ data class DiagnosticData( val psiType: KType, val parameters: List, val positioningStrategy: PositioningStrategy, - val group: String?, ) data class DiagnosticParameter( @@ -55,8 +54,4 @@ enum class PositioningStrategy(private val strategy: String) { fun DiagnosticData.hasDefaultPositioningStrategy(): Boolean = - positioningStrategy == PositioningStrategy.DEFAULT - -data class DiagnosticList( - val diagnostics: List, -) \ No newline at end of file + positioningStrategy == PositioningStrategy.DEFAULT \ No newline at end of file diff --git a/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/DiagnosticGroup.kt b/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/DiagnosticGroup.kt new file mode 100644 index 00000000000..055b34a878b --- /dev/null +++ b/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/DiagnosticGroup.kt @@ -0,0 +1,56 @@ +/* + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.fir.checkers.generator.diagnostics + +import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.diagnostics.Severity +import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.PrivateForInline +import kotlin.properties.PropertyDelegateProvider +import kotlin.properties.ReadOnlyProperty +import kotlin.reflect.KProperty +import kotlin.reflect.typeOf + +abstract class DiagnosticGroup @PrivateForInline constructor(val name: String) { + @Suppress("PropertyName") + @PrivateForInline + val _diagnostics = mutableListOf() + + @OptIn(PrivateForInline::class) + val diagnostics: List + get() = _diagnostics + + @OptIn(PrivateForInline::class) + inline fun error( + positioningStrategy: PositioningStrategy = PositioningStrategy.DEFAULT, + crossinline init: DiagnosticBuilder.() -> Unit = {} + ) = diagnosticDelegateProvider(Severity.ERROR, positioningStrategy, init) + + + @OptIn(PrivateForInline::class) + inline fun warning( + positioningStrategy: PositioningStrategy = PositioningStrategy.DEFAULT, + crossinline init: DiagnosticBuilder.() -> Unit = {} + ) = diagnosticDelegateProvider(Severity.WARNING, positioningStrategy, init) + + @PrivateForInline + @OptIn(ExperimentalStdlibApi::class) + inline fun diagnosticDelegateProvider( + severity: Severity, + positioningStrategy: PositioningStrategy, + crossinline init: DiagnosticBuilder.() -> Unit = {} + ) = PropertyDelegateProvider> { _, property -> + val diagnostic = DiagnosticBuilder( + severity, + name = property.name, + sourceElementType = typeOf(), + psiType = typeOf

(), + positioningStrategy, + ).apply(init).build() + _diagnostics += diagnostic + ReadOnlyProperty { _, _ -> diagnostic } + } +} \ No newline at end of file diff --git a/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/DiagnosticList.kt b/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/DiagnosticList.kt new file mode 100644 index 00000000000..de70341f115 --- /dev/null +++ b/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/DiagnosticList.kt @@ -0,0 +1,69 @@ +/* + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.fir.checkers.generator.diagnostics + +import org.jetbrains.kotlin.diagnostics.Severity +import org.jetbrains.kotlin.fir.PrivateForInline +import kotlin.properties.ReadOnlyProperty +import kotlin.reflect.KProperty +import kotlin.reflect.KType +import kotlin.reflect.typeOf + +abstract class DiagnosticList { + @Suppress("PropertyName") + @PrivateForInline + val _groups = mutableListOf() + + @OptIn(PrivateForInline::class) + val groups: List + get() = _groups + + val allDiagnostics: List + get() = groups.flatMap { it.diagnostics } + + + @OptIn(PrivateForInline::class) + operator fun DiagnosticGroup.provideDelegate( + thisRef: DiagnosticList, + prop: KProperty<*> + ): ReadOnlyProperty { + val group = this + _groups += group + return ReadOnlyProperty { _, _ -> group } + } +} + +class DiagnosticBuilder( + private val severity: Severity, + private val name: String, + private val sourceElementType: KType, + private val psiType: KType, + private val positioningStrategy: PositioningStrategy, +) { + @PrivateForInline + val parameters = mutableListOf() + + @OptIn(PrivateForInline::class, ExperimentalStdlibApi::class) + inline fun parameter(name: String) { + if (parameters.size == 3) { + error("Diagnostic cannot have more than 3 parameters") + } + parameters += DiagnosticParameter( + name = name, + type = typeOf() + ) + } + + @OptIn(PrivateForInline::class) + fun build() = DiagnosticData( + severity, + name, + sourceElementType, + psiType, + parameters, + positioningStrategy, + ) +} \ No newline at end of file diff --git a/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/DiagnosticListBuilder.kt b/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/DiagnosticListBuilder.kt deleted file mode 100644 index f2396db44b6..00000000000 --- a/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/DiagnosticListBuilder.kt +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.fir.checkers.generator.diagnostics - -import com.intellij.psi.PsiElement -import org.jetbrains.kotlin.diagnostics.Severity -import org.jetbrains.kotlin.fir.FirSourceElement -import org.jetbrains.kotlin.fir.PrivateForInline -import kotlin.properties.PropertyDelegateProvider -import kotlin.properties.ReadOnlyProperty -import kotlin.reflect.KProperty -import kotlin.reflect.KType -import kotlin.reflect.typeOf - -class DiagnosticListBuilder private constructor() { - @PrivateForInline - val diagnostics = mutableListOf() - - @PrivateForInline - var currentGroupName: String? = null - - @OptIn(PrivateForInline::class) - inline fun group(groupName: String, inner: () -> Unit) { - if (currentGroupName != null) { - error("Groups can not be nested ") - } - currentGroupName = groupName - inner() - currentGroupName = null - } - - @OptIn(PrivateForInline::class) - inline fun error( - positioningStrategy: PositioningStrategy = PositioningStrategy.DEFAULT, - crossinline init: DiagnosticBuilder.() -> Unit = {} - ) = diagnosticDelegateProvider(Severity.ERROR, positioningStrategy, init) - - - @OptIn(PrivateForInline::class) - inline fun warning( - positioningStrategy: PositioningStrategy = PositioningStrategy.DEFAULT, - crossinline init: DiagnosticBuilder.() -> Unit = {} - ) = diagnosticDelegateProvider(Severity.WARNING, positioningStrategy, init) - - @PrivateForInline - @OptIn(ExperimentalStdlibApi::class) - inline fun diagnosticDelegateProvider( - severity: Severity, - positioningStrategy: PositioningStrategy, - crossinline init: DiagnosticBuilder.() -> Unit = {} - ) = PropertyDelegateProvider { _, property -> - diagnostics += DiagnosticBuilder( - severity, - name = property.name, - sourceElementType = typeOf(), - psiType = typeOf

(), - positioningStrategy, - group = currentGroupName, - ).apply(init).build() - AlwaysReturningUnitPropertyDelegate - } - - @PrivateForInline - object AlwaysReturningUnitPropertyDelegate : ReadOnlyProperty { - override fun getValue(thisRef: Any?, property: KProperty<*>) = Unit - } - - @OptIn(PrivateForInline::class) - private fun build() = DiagnosticList(diagnostics) - - companion object { - fun buildDiagnosticList(init: DiagnosticListBuilder.() -> Unit) = - DiagnosticListBuilder().apply(init).build() - } -} - -class DiagnosticBuilder( - private val severity: Severity, - private val name: String, - private val sourceElementType: KType, - private val psiType: KType, - private val positioningStrategy: PositioningStrategy, - private val group: String? -) { - @PrivateForInline - val parameters = mutableListOf() - - @OptIn(PrivateForInline::class, ExperimentalStdlibApi::class) - inline fun parameter(name: String) { - if (parameters.size == 3) { - error("Diagnostic cannot have more than 3 parameters") - } - parameters += DiagnosticParameter( - name = name, - type = typeOf() - ) - } - - @OptIn(PrivateForInline::class) - fun build() = DiagnosticData( - severity, - name, - sourceElementType, - psiType, - parameters, - positioningStrategy, - group - ) -} \ No newline at end of file diff --git a/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/ErrorListDiagnosticListRenderer.kt b/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/ErrorListDiagnosticListRenderer.kt index 2d8543a7c08..dc031991214 100644 --- a/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/ErrorListDiagnosticListRenderer.kt +++ b/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/ErrorListDiagnosticListRenderer.kt @@ -33,19 +33,18 @@ object ErrorListDiagnosticListRenderer : DiagnosticListRenderer() { private fun SmartPrinter.printErrorsObject(diagnosticList: DiagnosticList) { inBracketsWithIndent("object FirErrors") { - val groups = diagnosticList.diagnostics.groupBy { it.group } - for ((group, diagnostics) in groups) { - printDiagnosticGroup(group, diagnostics) + for (group in diagnosticList.groups) { + printDiagnosticGroup(group.name, group.diagnostics) println() } } } private fun SmartPrinter.printDiagnosticGroup( - group: String?, + group: String, diagnostics: List ) { - println("// ${group ?: "NO GROUP"}") + println("// $group") for (it in diagnostics) { printDiagnostic(it) } @@ -110,7 +109,7 @@ object ErrorListDiagnosticListRenderer : DiagnosticListRenderer() { @OptIn(ExperimentalStdlibApi::class) private fun collectImports(diagnosticList: DiagnosticList): Collection = buildSet { - diagnosticList.diagnostics.forEach { diagnostic -> + diagnosticList.allDiagnostics.forEach { diagnostic -> for (typeArgument in diagnostic.getAllTypeArguments()) { typeArgument.collectClassNamesTo(this) } diff --git a/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/FirDiagnosticsList.kt b/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/FirDiagnosticsList.kt index 139fa2ae2a9..e3f4e665edf 100644 --- a/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/FirDiagnosticsList.kt +++ b/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/FirDiagnosticsList.kt @@ -25,15 +25,15 @@ import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.* -@Suppress("UNUSED_VARIABLE", "LocalVariableName") +@Suppress("UNUSED_VARIABLE", "LocalVariableName", "ClassName", "unused") @OptIn(PrivateForInline::class) -val DIAGNOSTICS_LIST = DiagnosticListBuilder.buildDiagnosticList { - group("Miscellaneous") { +object DIAGNOSTICS_LIST : DiagnosticList() { + val Miscellaneous by object : DiagnosticGroup("Miscellaneous") { val SYNTAX by error() val OTHER_ERROR by error() } - group("General syntax") { + val GENERAL_SYNTAX by object : DiagnosticGroup("General syntax") { val ILLEGAL_CONST_EXPRESSION by error() val ILLEGAL_UNDERSCORE by error() val EXPRESSION_REQUIRED by error() @@ -44,7 +44,7 @@ val DIAGNOSTICS_LIST = DiagnosticListBuilder.buildDiagnosticList { val DELEGATION_IN_INTERFACE by error() } - group("Unresolved") { + val UNRESOLVED by object : DiagnosticGroup("Unresolved") { val HIDDEN by error { parameter>("hidden") } @@ -59,7 +59,7 @@ val DIAGNOSTICS_LIST = DiagnosticListBuilder.buildDiagnosticList { val NO_THIS by error() } - group("Super") { + val SUPER by object : DiagnosticGroup("Super") { val SUPER_IS_NOT_AN_EXPRESSION by error() val SUPER_NOT_AVAILABLE by error() val ABSTRACT_SUPER_CALL by error() @@ -68,7 +68,7 @@ val DIAGNOSTICS_LIST = DiagnosticListBuilder.buildDiagnosticList { } } - group("Supertypes") { + val SUPERTYPES by object : DiagnosticGroup("Supertypes") { val TYPE_PARAMETER_AS_SUPERTYPE by error() val ENUM_AS_SUPERTYPE by error() val RECURSION_IN_SUPERTYPES by error() @@ -84,7 +84,7 @@ val DIAGNOSTICS_LIST = DiagnosticListBuilder.buildDiagnosticList { val SEALED_SUPERTYPE_IN_LOCAL_CLASS by error() } - group(" Constructor problems") { + val CONSTRUCTOR_PROBLEMS by object : DiagnosticGroup("Constructor problems") { val CONSTRUCTOR_IN_OBJECT by error(PositioningStrategy.DECLARATION_SIGNATURE) val CONSTRUCTOR_IN_INTERFACE by error(PositioningStrategy.DECLARATION_SIGNATURE) val NON_PRIVATE_CONSTRUCTOR_IN_ENUM by error() @@ -98,7 +98,7 @@ val DIAGNOSTICS_LIST = DiagnosticListBuilder.buildDiagnosticList { val SEALED_CLASS_CONSTRUCTOR_CALL by error() } - group("Annotations") { + val ANNOTATIONS by object : DiagnosticGroup("Annotations") { val ANNOTATION_ARGUMENT_KCLASS_LITERAL_OF_TYPE_PARAMETER_ERROR by error() val ANNOTATION_ARGUMENT_MUST_BE_CONST by error() val ANNOTATION_ARGUMENT_MUST_BE_ENUM_CONST by error() @@ -116,7 +116,7 @@ val DIAGNOSTICS_LIST = DiagnosticListBuilder.buildDiagnosticList { val VAR_ANNOTATION_PARAMETER by error(PositioningStrategy.VAL_OR_VAR_NODE) } - group("Exposed visibility group") { + val EXPOSED_VISIBILITY by object : DiagnosticGroup("Exposed visibility") { val EXPOSED_TYPEALIAS_EXPANDED_TYPE by exposedVisibilityError(PositioningStrategy.DECLARATION_NAME) val EXPOSED_FUNCTION_RETURN_TYPE by exposedVisibilityError(PositioningStrategy.DECLARATION_NAME) @@ -128,7 +128,7 @@ val DIAGNOSTICS_LIST = DiagnosticListBuilder.buildDiagnosticList { val EXPOSED_TYPE_PARAMETER_BOUND by exposedVisibilityError() } - group("Modifiers") { + val MODIFIERS by object : DiagnosticGroup("Modifiers") { val INAPPLICABLE_INFIX_MODIFIER by error() val REPEATED_MODIFIER by error { parameter("modifier") @@ -148,7 +148,7 @@ val DIAGNOSTICS_LIST = DiagnosticListBuilder.buildDiagnosticList { val REDUNDANT_OPEN_IN_INTERFACE by warning(PositioningStrategy.OPEN_MODIFIER) } - group("Applicability") { + val APPLICABILITY by object : DiagnosticGroup("Applicability") { val NONE_APPLICABLE by error { parameter>>("candidates") } @@ -161,7 +161,7 @@ val DIAGNOSTICS_LIST = DiagnosticListBuilder.buildDiagnosticList { } } - group("Ambiguity") { + val AMBIGUIRY by object : DiagnosticGroup("Ambiguity") { val AMBIGUITY by error { parameter>>("candidates") } @@ -170,7 +170,7 @@ val DIAGNOSTICS_LIST = DiagnosticListBuilder.buildDiagnosticList { } } - group("Types & type parameters") { + val TYPES_AND_TYPE_PARAMETERS by object : DiagnosticGroup("Types & type parameters") { val TYPE_MISMATCH by error { parameter("expectedType") parameter("actualType") @@ -203,7 +203,7 @@ val DIAGNOSTICS_LIST = DiagnosticListBuilder.buildDiagnosticList { val INNER_CLASS_OF_GENERIC_THROWABLE_SUBCLASS by error(PositioningStrategy.DECLARATION_NAME) } - group("overrides") { + val OVERRIDES by object : DiagnosticGroup("overrides") { val NOTHING_TO_OVERRIDE by error(PositioningStrategy.OVERRIDE_MODIFIER) { parameter("declaration") } @@ -242,7 +242,7 @@ val DIAGNOSTICS_LIST = DiagnosticListBuilder.buildDiagnosticList { } } - group("Redeclarations") { + val REDECLARATIONS by object : DiagnosticGroup("Redeclarations") { val MANY_COMPANION_OBJECTS by error() val CONFLICTING_OVERLOADS by error(PositioningStrategy.DECLARATION_SIGNATURE_OR_DEFAULT) { parameter>>("conflictingOverloads") @@ -253,7 +253,7 @@ val DIAGNOSTICS_LIST = DiagnosticListBuilder.buildDiagnosticList { val ANY_METHOD_IMPLEMENTED_IN_INTERFACE by error() } - group("Invalid local declarations") { + val INVALID_LOCAL_DECLARATIONS by object : DiagnosticGroup("Invalid local declarations") { val LOCAL_OBJECT_NOT_ALLOWED by error(PositioningStrategy.DECLARATION_NAME) { parameter("objectName") } @@ -262,7 +262,7 @@ val DIAGNOSTICS_LIST = DiagnosticListBuilder.buildDiagnosticList { } } - group("Functions") { + val FUNCTIONS by object : DiagnosticGroup("Functions") { val ABSTRACT_FUNCTION_IN_NON_ABSTRACT_CLASS by error(PositioningStrategy.MODALITY_MODIFIER) { parameter("function") parameter("containingClass") // TODO use FirClass instead of FirMemberDeclaration @@ -288,7 +288,7 @@ val DIAGNOSTICS_LIST = DiagnosticListBuilder.buildDiagnosticList { val USELESS_VARARG_ON_PARAMETER by warning() } - group("Properties & accessors") { + val PROPERTIES_ANS_ACCESSORS by object : DiagnosticGroup("Properties & accessors") { val ABSTRACT_PROPERTY_IN_NON_ABSTRACT_CLASS by error(PositioningStrategy.MODALITY_MODIFIER) { parameter("property") parameter("containingClass") // TODO use FirClass instead of FirMemberDeclaration @@ -314,14 +314,15 @@ val DIAGNOSTICS_LIST = DiagnosticListBuilder.buildDiagnosticList { val EXPECTED_PRIVATE_DECLARATION by error(PositioningStrategy.VISIBILITY_MODIFIER) } - group("Multi-platform projects") { + val MPP_PROJECTS by object : DiagnosticGroup("Multi-platform projects") { val EXPECTED_DECLARATION_WITH_BODY by error(PositioningStrategy.DECLARATION_SIGNATURE) val EXPECTED_PROPERTY_INITIALIZER by error() + // TODO: need to cover `by` as well as delegate expression val EXPECTED_DELEGATED_PROPERTY by error() } - group("Destructuring declaration") { + val DESTRUCTING_DECLARATION by object : DiagnosticGroup("Destructuring declaration") { val INITIALIZER_REQUIRED_FOR_DESTRUCTURING_DECLARATION by error() val COMPONENT_FUNCTION_MISSING by error { parameter("missingFunctionName") @@ -339,7 +340,7 @@ val DIAGNOSTICS_LIST = DiagnosticListBuilder.buildDiagnosticList { // TODO: val COMPONENT_FUNCTION_RETURN_TYPE_MISMATCH by ... } - group("Control flow diagnostics") { + val CONTROL_FLOW by object : DiagnosticGroup("Control flow diagnostics") { val UNINITIALIZED_VARIABLE by error { parameter("variable") } @@ -354,7 +355,7 @@ val DIAGNOSTICS_LIST = DiagnosticListBuilder.buildDiagnosticList { val WRONG_IMPLIES_CONDITION by warning() } - group("Nullability") { + val NULLABILITY by object : DiagnosticGroup("Nullability") { val UNSAFE_CALL by error(PositioningStrategy.DOT_BY_SELECTOR) { parameter("receiverType") } @@ -374,20 +375,20 @@ val DIAGNOSTICS_LIST = DiagnosticListBuilder.buildDiagnosticList { // TODO: val UNEXPECTED_SAFE_CALL by ... } - group("When expressions") { + val WHNE_EXPRESSIONS by object : DiagnosticGroup("When expressions") { val NO_ELSE_IN_WHEN by error(PositioningStrategy.WHEN_EXPRESSION) { parameter>("missingWhenCases") } val INVALID_IF_AS_EXPRESSION by error(PositioningStrategy.IF_EXPRESSION) } - group("Function contracts") { + val FUNCTION_CONTRACTS by object : DiagnosticGroup("Function contracts") { val ERROR_IN_CONTRACT_DESCRIPTION by error { parameter("reason") } } - group("Extended checkers") { + val EXTENDED_CHECKERS by object : DiagnosticGroup("Extended checkers") { val REDUNDANT_VISIBILITY_MODIFIER by warning(PositioningStrategy.VISIBILITY_MODIFIER) val REDUNDANT_MODALITY_MODIFIER by warning(PositioningStrategy.MODALITY_MODIFIER) val REDUNDANT_RETURN_UNIT_TYPE by warning() @@ -407,7 +408,7 @@ val DIAGNOSTICS_LIST = DiagnosticListBuilder.buildDiagnosticList { } } -private inline fun DiagnosticListBuilder.exposedVisibilityError( +private inline fun DiagnosticGroup.exposedVisibilityError( positioningStrategy: PositioningStrategy = PositioningStrategy.DEFAULT ) = error(positioningStrategy) { parameter("elementVisibility") diff --git a/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrors.kt b/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrors.kt index 6ef8930b030..e34c9481330 100644 --- a/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrors.kt +++ b/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrors.kt @@ -91,7 +91,7 @@ object FirErrors { val SEALED_SUPERTYPE by error0() val SEALED_SUPERTYPE_IN_LOCAL_CLASS by error0() - // Constructor problems + // Constructor problems val CONSTRUCTOR_IN_OBJECT by error0(SourceElementPositioningStrategies.DECLARATION_SIGNATURE) val CONSTRUCTOR_IN_INTERFACE by error0(SourceElementPositioningStrategies.DECLARATION_SIGNATURE) val NON_PRIVATE_CONSTRUCTOR_IN_ENUM by error0() @@ -119,7 +119,7 @@ object FirErrors { val NULLABLE_TYPE_OF_ANNOTATION_MEMBER by error0() val VAR_ANNOTATION_PARAMETER by error0(SourceElementPositioningStrategies.VAL_OR_VAR_NODE) - // Exposed visibility group + // Exposed visibility val EXPOSED_TYPEALIAS_EXPANDED_TYPE by error3(SourceElementPositioningStrategies.DECLARATION_NAME) val EXPOSED_FUNCTION_RETURN_TYPE by error3(SourceElementPositioningStrategies.DECLARATION_NAME) val EXPOSED_RECEIVER_TYPE by error3() diff --git a/idea/idea-frontend-fir/idea-frontend-fir-generator/src/org/jetbrains/kotlin/idea/frontend/api/fir/generator/HLDiagnosticConverter.kt b/idea/idea-frontend-fir/idea-frontend-fir-generator/src/org/jetbrains/kotlin/idea/frontend/api/fir/generator/HLDiagnosticConverter.kt index 96f9c01df21..e432dc1ae26 100644 --- a/idea/idea-frontend-fir/idea-frontend-fir-generator/src/org/jetbrains/kotlin/idea/frontend/api/fir/generator/HLDiagnosticConverter.kt +++ b/idea/idea-frontend-fir/idea-frontend-fir-generator/src/org/jetbrains/kotlin/idea/frontend/api/fir/generator/HLDiagnosticConverter.kt @@ -35,7 +35,7 @@ import kotlin.reflect.full.isSubclassOf object HLDiagnosticConverter { fun convert(diagnosticList: DiagnosticList): HLDiagnosticList = - HLDiagnosticList(diagnosticList.diagnostics.map(::convertDiagnostic)) + HLDiagnosticList(diagnosticList.allDiagnostics.map(::convertDiagnostic)) private fun convertDiagnostic(diagnostic: DiagnosticData): HLDiagnostic = HLDiagnostic(