From b584fed93ddd5ae5ebbfabeb8fb3b76dcaa0d242 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Fri, 30 Jul 2021 18:07:09 +0300 Subject: [PATCH] [FIR] Migrate warning/error pairs to DiagnosticFactoryForDeprecation --- .../diagnostics/incompatibleModifiers.kt | 2 +- .../diagnostics/FirDiagnosticsList.kt | 30 +++++------- .../fir/analysis/diagnostics/FirErrors.kt | 18 ++++---- .../FirNotImplementedOverrideChecker.kt | 8 +--- .../checkers/expression/FirReifiedChecker.kt | 13 ++---- .../expression/FirValReassignmentChecker.kt | 8 +--- .../diagnostics/FirDefaultErrorMessages.kt | 10 +--- .../coneDiagnosticToFirDiagnostic.kt | 2 +- ...notationWithExpressionTarget_before.fir.kt | 13 ------ ...OfAnnotationWithExpressionTarget_before.kt | 1 + .../withUseSiteTarget/kt23992.fir.kt | 10 ---- .../annotations/withUseSiteTarget/kt23992.kt | 1 + .../testsWithStdLib/ArrayOfNothing.fir.kt | 2 +- .../abstract-classes/p-2/neg/1.5.fir.kt | 4 +- .../abstract-classes/p-2/neg/1.6.fir.kt | 4 +- .../abstract-classes/p-2/neg/1.7.fir.kt | 8 ++-- .../abstract-classes/p-2/neg/1.8.fir.kt | 2 +- .../abstract-classes/p-2/neg/1.9.fir.kt | 4 +- .../diagnostics/KtFirDataClassConverters.kt | 40 ++++++++++------ .../api/fir/diagnostics/KtFirDiagnostics.kt | 32 ++++++++----- .../fir/diagnostics/KtFirDiagnosticsImpl.kt | 46 ++++++++++++------- 21 files changed, 119 insertions(+), 139 deletions(-) delete mode 100644 compiler/testData/diagnostics/tests/annotations/RetentionsOfAnnotationWithExpressionTarget_before.fir.kt delete mode 100644 compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/kt23992.fir.kt diff --git a/compiler/fir/analysis-tests/testData/resolve/diagnostics/incompatibleModifiers.kt b/compiler/fir/analysis-tests/testData/resolve/diagnostics/incompatibleModifiers.kt index e7e5dc05b1d..4eddabe933f 100644 --- a/compiler/fir/analysis-tests/testData/resolve/diagnostics/incompatibleModifiers.kt +++ b/compiler/fir/analysis-tests/testData/resolve/diagnostics/incompatibleModifiers.kt @@ -20,7 +20,7 @@ abstract class K { private abstract val i2: Int } -private open class L : K() +private open class L : K() private abstract class M : K() class X { 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 2082ea2d650..2b2f9b97d09 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 @@ -16,7 +16,7 @@ import org.jetbrains.kotlin.diagnostics.WhenMissingCase import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.PrivateForInline import org.jetbrains.kotlin.fir.checkers.generator.diagnostics.model.* -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol import org.jetbrains.kotlin.fir.symbols.impl.* @@ -229,8 +229,8 @@ object DIAGNOSTICS_LIST : DiagnosticList("FirErrors") { val DEPRECATED_SINCE_KOTLIN_WITH_DEPRECATED_LEVEL by error(PositioningStrategy.REFERENCED_NAME_BY_QUALIFIED) val DEPRECATED_SINCE_KOTLIN_OUTSIDE_KOTLIN_SUBPACKAGE by error(PositioningStrategy.REFERENCED_NAME_BY_QUALIFIED) - val ANNOTATION_ON_SUPERCLASS by error() - val RESTRICTED_RETENTION_FOR_EXPRESSION_ANNOTATION by error() + val ANNOTATION_ON_SUPERCLASS by deprecationError(LanguageFeature.ProhibitUseSiteTargetAnnotationsOnSuperTypes) + val RESTRICTED_RETENTION_FOR_EXPRESSION_ANNOTATION by deprecationError(LanguageFeature.RestrictRetentionForExpressionAnnotations) val WRONG_ANNOTATION_TARGET by error { parameter("actualTarget") } @@ -491,11 +491,7 @@ object DIAGNOSTICS_LIST : DiagnosticList("FirErrors") { parameter("typeParameter") } - val TYPE_PARAMETER_AS_REIFIED_ARRAY by error { - parameter("typeParameter") - } - - val TYPE_PARAMETER_AS_REIFIED_ARRAY_WARNING by warning { + val TYPE_PARAMETER_AS_REIFIED_ARRAY by deprecationError(LanguageFeature.ProhibitNonReifiedArraysAsReifiedTypeArguments) { parameter("typeParameter") } @@ -664,11 +660,10 @@ object DIAGNOSTICS_LIST : DiagnosticList("FirErrors") { parameter>("classOrObject") parameter>("missingDeclaration") } - val INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER by error(PositioningStrategy.DECLARATION_NAME) { - parameter>("classOrObject") - parameter>("invisibleDeclaration") - } - val INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER_WARNING by warning(PositioningStrategy.DECLARATION_NAME) { + val INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER by deprecationError( + LanguageFeature.ProhibitInvisibleAbstractMethodsInSuperclasses, + PositioningStrategy.DECLARATION_NAME + ) { parameter>("classOrObject") parameter>("invisibleDeclaration") } @@ -922,10 +917,7 @@ object DIAGNOSTICS_LIST : DiagnosticList("FirErrors") { val VAL_REASSIGNMENT by error { parameter>("variable") } - val VAL_REASSIGNMENT_VIA_BACKING_FIELD by warning { - parameter("property") - } - val VAL_REASSIGNMENT_VIA_BACKING_FIELD_ERROR by error { + val VAL_REASSIGNMENT_VIA_BACKING_FIELD by deprecationError(LanguageFeature.RestrictionOfValReassignmentViaBackingField) { parameter("property") } val CAPTURED_VAL_INITIALIZATION by error { @@ -1207,13 +1199,13 @@ private val exposedVisibilityDiagnosticInit: DiagnosticBuilder.() -> Unit = { private inline fun AbstractDiagnosticGroup.exposedVisibilityError( positioningStrategy: PositioningStrategy = PositioningStrategy.DEFAULT -): PropertyDelegateProvider> { +): PropertyDelegateProvider> { return error

(positioningStrategy, exposedVisibilityDiagnosticInit) } private inline fun AbstractDiagnosticGroup.exposedVisibilityWarning( positioningStrategy: PositioningStrategy = PositioningStrategy.DEFAULT -): PropertyDelegateProvider> { +): PropertyDelegateProvider> { return warning

(positioningStrategy, exposedVisibilityDiagnosticInit) } 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 61a1ec32542..4a9c0c1005a 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 @@ -8,6 +8,11 @@ package org.jetbrains.kotlin.fir.analysis.diagnostics import com.intellij.psi.PsiElement import com.intellij.psi.impl.source.tree.LeafPsiElement import org.jetbrains.kotlin.config.LanguageFeature +import org.jetbrains.kotlin.config.LanguageFeature.ProhibitInvisibleAbstractMethodsInSuperclasses +import org.jetbrains.kotlin.config.LanguageFeature.ProhibitNonReifiedArraysAsReifiedTypeArguments +import org.jetbrains.kotlin.config.LanguageFeature.ProhibitUseSiteTargetAnnotationsOnSuperTypes +import org.jetbrains.kotlin.config.LanguageFeature.RestrictRetentionForExpressionAnnotations +import org.jetbrains.kotlin.config.LanguageFeature.RestrictionOfValReassignmentViaBackingField import org.jetbrains.kotlin.config.LanguageVersionSettings import org.jetbrains.kotlin.contracts.description.EventOccurrencesRange import org.jetbrains.kotlin.descriptors.EffectiveVisibility @@ -207,8 +212,8 @@ object FirErrors { val DEPRECATED_SINCE_KOTLIN_WITHOUT_DEPRECATED by error0(SourceElementPositioningStrategies.REFERENCED_NAME_BY_QUALIFIED) val DEPRECATED_SINCE_KOTLIN_WITH_DEPRECATED_LEVEL by error0(SourceElementPositioningStrategies.REFERENCED_NAME_BY_QUALIFIED) val DEPRECATED_SINCE_KOTLIN_OUTSIDE_KOTLIN_SUBPACKAGE by error0(SourceElementPositioningStrategies.REFERENCED_NAME_BY_QUALIFIED) - val ANNOTATION_ON_SUPERCLASS by error0() - val RESTRICTED_RETENTION_FOR_EXPRESSION_ANNOTATION by error0() + val ANNOTATION_ON_SUPERCLASS by deprecationError0(ProhibitUseSiteTargetAnnotationsOnSuperTypes) + val RESTRICTED_RETENTION_FOR_EXPRESSION_ANNOTATION by deprecationError0(RestrictRetentionForExpressionAnnotations) val WRONG_ANNOTATION_TARGET by error1() val WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET by error2() val INAPPLICABLE_TARGET_ON_PROPERTY by error1() @@ -324,8 +329,7 @@ object FirErrors { val INNER_CLASS_OF_GENERIC_THROWABLE_SUBCLASS by error0(SourceElementPositioningStrategies.DECLARATION_NAME) val KCLASS_WITH_NULLABLE_TYPE_PARAMETER_IN_SIGNATURE by error1(SourceElementPositioningStrategies.DECLARATION_NAME) val TYPE_PARAMETER_AS_REIFIED by error1() - val TYPE_PARAMETER_AS_REIFIED_ARRAY by error1() - val TYPE_PARAMETER_AS_REIFIED_ARRAY_WARNING by warning1() + val TYPE_PARAMETER_AS_REIFIED_ARRAY by deprecationError1(ProhibitNonReifiedArraysAsReifiedTypeArguments) val REIFIED_TYPE_FORBIDDEN_SUBSTITUTION by error1() val FINAL_UPPER_BOUND by warning1() val UPPER_BOUND_IS_EXTENSION_FUNCTION_TYPE by error0() @@ -373,8 +377,7 @@ object FirErrors { val CONFLICTING_INHERITED_MEMBERS by error1>>(SourceElementPositioningStrategies.DECLARATION_NAME) val ABSTRACT_MEMBER_NOT_IMPLEMENTED by error2, FirCallableSymbol<*>>(SourceElementPositioningStrategies.DECLARATION_NAME) val ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED by error2, FirCallableSymbol<*>>(SourceElementPositioningStrategies.DECLARATION_NAME) - val INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER by error2, FirCallableSymbol<*>>(SourceElementPositioningStrategies.DECLARATION_NAME) - val INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER_WARNING by warning2, FirCallableSymbol<*>>(SourceElementPositioningStrategies.DECLARATION_NAME) + val INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER by deprecationError2, FirCallableSymbol<*>>(ProhibitInvisibleAbstractMethodsInSuperclasses, SourceElementPositioningStrategies.DECLARATION_NAME) val MANY_IMPL_MEMBER_NOT_IMPLEMENTED by error2, FirCallableSymbol<*>>(SourceElementPositioningStrategies.DECLARATION_NAME) val MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED by error2, FirCallableSymbol<*>>(SourceElementPositioningStrategies.DECLARATION_NAME) val OVERRIDING_FINAL_MEMBER_BY_DELEGATION by error2, FirCallableSymbol<*>>(SourceElementPositioningStrategies.DECLARATION_NAME) @@ -493,8 +496,7 @@ object FirErrors { val UNINITIALIZED_ENUM_ENTRY by error1() val UNINITIALIZED_ENUM_COMPANION by error1(SourceElementPositioningStrategies.REFERENCE_BY_QUALIFIED) val VAL_REASSIGNMENT by error1>() - val VAL_REASSIGNMENT_VIA_BACKING_FIELD by warning1() - val VAL_REASSIGNMENT_VIA_BACKING_FIELD_ERROR by error1() + val VAL_REASSIGNMENT_VIA_BACKING_FIELD by deprecationError1(RestrictionOfValReassignmentViaBackingField) val CAPTURED_VAL_INITIALIZATION by error1() val CAPTURED_MEMBER_VAL_INITIALIZATION by error1() val SETTER_PROJECTED_OUT by error1(SourceElementPositioningStrategies.ASSIGNMENT_LHS) diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirNotImplementedOverrideChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirNotImplementedOverrideChecker.kt index 9b3854547cd..3a2589337c7 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirNotImplementedOverrideChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirNotImplementedOverrideChecker.kt @@ -17,7 +17,6 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.ABSTRACT_CLASS_ME import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.ABSTRACT_MEMBER_NOT_IMPLEMENTED import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER -import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER_WARNING import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.MANY_IMPL_MEMBER_NOT_IMPLEMENTED import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.OVERRIDING_FINAL_MEMBER_BY_DELEGATION import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn @@ -25,7 +24,6 @@ import org.jetbrains.kotlin.fir.containingClass import org.jetbrains.kotlin.fir.declarations.FirClass import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.declarations.utils.* -import org.jetbrains.kotlin.fir.languageVersionSettings import org.jetbrains.kotlin.fir.resolve.toSymbol import org.jetbrains.kotlin.fir.scopes.getDirectOverriddenMembers import org.jetbrains.kotlin.fir.scopes.impl.delegatedWrapperData @@ -112,11 +110,7 @@ object FirNotImplementedOverrideChecker : FirClassChecker() { } if (!canHaveAbstractDeclarations && invisibleSymbols.isNotEmpty()) { val invisible = invisibleSymbols.first() - if (context.session.languageVersionSettings.supportsFeature(LanguageFeature.ProhibitInvisibleAbstractMethodsInSuperclasses)) { - reporter.reportOn(source, INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER, classSymbol, invisible, context) - } else { - reporter.reportOn(source, INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER_WARNING, classSymbol, invisible, context) - } + reporter.reportOn(source, INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER, classSymbol, invisible, context) } manyImplementationsDelegationSymbols.firstOrNull()?.let { diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirReifiedChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirReifiedChecker.kt index 34fd1ce9a5e..725aed71838 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirReifiedChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirReifiedChecker.kt @@ -5,16 +5,11 @@ package org.jetbrains.kotlin.fir.analysis.checkers.expression -import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext -import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter -import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnosticFactory1 -import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors -import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn +import org.jetbrains.kotlin.fir.analysis.diagnostics.* import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression import org.jetbrains.kotlin.fir.expressions.toResolvedCallableSymbol -import org.jetbrains.kotlin.fir.languageVersionSettings import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol import org.jetbrains.kotlin.fir.types.* @@ -62,9 +57,7 @@ object FirReifiedChecker : FirQualifiedAccessExpressionChecker() { lateinit var symbol: FirTypeParameterSymbol if (typeArgument is ConeTypeParameterType) { factory = if (isArray) { - if (context.session.languageVersionSettings.supportsFeature(LanguageFeature.ProhibitNonReifiedArraysAsReifiedTypeArguments)) - FirErrors.TYPE_PARAMETER_AS_REIFIED_ARRAY else - FirErrors.TYPE_PARAMETER_AS_REIFIED_ARRAY_WARNING + FirErrors.TYPE_PARAMETER_AS_REIFIED_ARRAY.chooseFactory(context) } else { FirErrors.TYPE_PARAMETER_AS_REIFIED } @@ -82,4 +75,4 @@ object FirReifiedChecker : FirQualifiedAccessExpressionChecker() { private fun ConeKotlinType.cannotBeReified(): Boolean { return this.isNothing || this.isNullableNothing || this is ConeCapturedType } -} \ No newline at end of file +} diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirValReassignmentChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirValReassignmentChecker.kt index 717b119e1c1..6f26394dd78 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirValReassignmentChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirValReassignmentChecker.kt @@ -35,13 +35,7 @@ object FirValReassignmentChecker : FirVariableAssignmentChecker() { val closestGetter = context.findClosest { it.isGetter }?.symbol ?: return if (propertySymbol.getterSymbol != closestGetter) return - backingFieldReference.source?.let { - if (context.session.languageVersionSettings.supportsFeature(LanguageFeature.RestrictionOfValReassignmentViaBackingField)) { - reporter.reportOn(it, FirErrors.VAL_REASSIGNMENT_VIA_BACKING_FIELD_ERROR, propertySymbol, context) - } else { - reporter.reportOn(it, FirErrors.VAL_REASSIGNMENT_VIA_BACKING_FIELD, propertySymbol, context) - } - } + reporter.reportOn(backingFieldReference.source, FirErrors.VAL_REASSIGNMENT_VIA_BACKING_FIELD, propertySymbol, context) } private fun checkValReassignmentOnValueParameter( diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirDefaultErrorMessages.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirDefaultErrorMessages.kt index f38c99dfad3..30c8209031d 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirDefaultErrorMessages.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirDefaultErrorMessages.kt @@ -381,7 +381,6 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.TYPE_PARAMETERS_I import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.TYPE_PARAMETERS_NOT_ALLOWED import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.TYPE_PARAMETER_AS_REIFIED import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.TYPE_PARAMETER_AS_REIFIED_ARRAY -import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.TYPE_PARAMETER_AS_REIFIED_ARRAY_WARNING import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.TYPE_PARAMETER_IN_CATCH_CLAUSE import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.TYPE_PARAMETER_IS_NOT_AN_EXPRESSION import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER @@ -426,7 +425,6 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.VAL_OR_VAR_ON_LOO import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.VAL_OR_VAR_ON_SECONDARY_CONSTRUCTOR_PARAMETER import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.VAL_REASSIGNMENT import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.VAL_REASSIGNMENT_VIA_BACKING_FIELD -import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.VAL_REASSIGNMENT_VIA_BACKING_FIELD_ERROR import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.VAL_WITH_SETTER import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.VARARG_OUTSIDE_PARENTHESES import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.VARIABLE_EXPECTED @@ -818,11 +816,6 @@ class FirDefaultErrorMessages { "Cannot use ''{0}'' as reified type parameter, since the array type parameter is not reified.", SYMBOL ) - map.put( - TYPE_PARAMETER_AS_REIFIED_ARRAY_WARNING, - "Cannot use ''{0}'' as reified type parameter, since the array type parameter is not reified.", - SYMBOL - ) map.put( REIFIED_TYPE_FORBIDDEN_SUBSTITUTION, "Cannot use ''{0}'' as reified type parameter", @@ -1265,8 +1258,7 @@ class FirDefaultErrorMessages { map.put(UNINITIALIZED_ENUM_ENTRY, "Enum entry ''{0}'' is uninitialized here", VARIABLE_NAME) map.put(UNINITIALIZED_ENUM_COMPANION, "Companion object of enum class ''{0}'' is uninitialized here", SYMBOL) map.put(VAL_REASSIGNMENT, "Val cannot be reassigned", VARIABLE_NAME) - map.put(VAL_REASSIGNMENT_VIA_BACKING_FIELD, "Reassignment of read-only property via backing field is deprecated", VARIABLE_NAME) - map.put(VAL_REASSIGNMENT_VIA_BACKING_FIELD_ERROR, "Reassignment of read-only property via backing field", VARIABLE_NAME) + map.put(VAL_REASSIGNMENT_VIA_BACKING_FIELD, "Reassignment of read-only property via backing field", VARIABLE_NAME) map.put( CAPTURED_VAL_INITIALIZATION, "Captured values initialization is forbidden due to possible reassignment", diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/coneDiagnosticToFirDiagnostic.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/coneDiagnosticToFirDiagnostic.kt index 12dd675af5c..b7fc92ffa28 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/coneDiagnosticToFirDiagnostic.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/coneDiagnosticToFirDiagnostic.kt @@ -66,7 +66,7 @@ private fun ConeDiagnostic.toFirDiagnostic( is ConeOperatorAmbiguityError -> FirErrors.ASSIGN_OPERATOR_AMBIGUITY.createOn(source, this.candidates) is ConeVariableExpectedError -> FirErrors.VARIABLE_EXPECTED.createOn(source) is ConeValReassignmentError -> when (val symbol = this.variable) { - is FirBackingFieldSymbol -> FirErrors.VAL_REASSIGNMENT_VIA_BACKING_FIELD_ERROR.createOn(source, symbol) + is FirBackingFieldSymbol -> FirErrors.VAL_REASSIGNMENT_VIA_BACKING_FIELD.errorFactory.createOn(source, symbol) else -> FirErrors.VAL_REASSIGNMENT.createOn(source, symbol) } is ConeUnexpectedTypeArgumentsError -> FirErrors.TYPE_ARGUMENTS_NOT_ALLOWED.createOn(this.source ?: source) diff --git a/compiler/testData/diagnostics/tests/annotations/RetentionsOfAnnotationWithExpressionTarget_before.fir.kt b/compiler/testData/diagnostics/tests/annotations/RetentionsOfAnnotationWithExpressionTarget_before.fir.kt deleted file mode 100644 index 1fee868317f..00000000000 --- a/compiler/testData/diagnostics/tests/annotations/RetentionsOfAnnotationWithExpressionTarget_before.fir.kt +++ /dev/null @@ -1,13 +0,0 @@ -// !LANGUAGE: -RestrictRetentionForExpressionAnnotations - -@Target(AnnotationTarget.EXPRESSION) -@Retention(AnnotationRetention.SOURCE) -annotation class TestRetentionSource - -@Target(AnnotationTarget.EXPRESSION) -@Retention(AnnotationRetention.BINARY) -annotation class TestRetentionBinary - -@Target(AnnotationTarget.EXPRESSION) -@Retention(AnnotationRetention.RUNTIME) -annotation class TestRetentionRuntime \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/annotations/RetentionsOfAnnotationWithExpressionTarget_before.kt b/compiler/testData/diagnostics/tests/annotations/RetentionsOfAnnotationWithExpressionTarget_before.kt index ccd411a296f..45f0c2d11c1 100644 --- a/compiler/testData/diagnostics/tests/annotations/RetentionsOfAnnotationWithExpressionTarget_before.kt +++ b/compiler/testData/diagnostics/tests/annotations/RetentionsOfAnnotationWithExpressionTarget_before.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL // !LANGUAGE: -RestrictRetentionForExpressionAnnotations @Target(AnnotationTarget.EXPRESSION) diff --git a/compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/kt23992.fir.kt b/compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/kt23992.fir.kt deleted file mode 100644 index a5d04d1a454..00000000000 --- a/compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/kt23992.fir.kt +++ /dev/null @@ -1,10 +0,0 @@ -// !LANGUAGE: -ProhibitUseSiteTargetAnnotationsOnSuperTypes - -interface Foo - -@Target(AnnotationTarget.TYPE) -annotation class Ann - -class E : @field:Ann @get:Ann @set:Ann @setparam:Ann Foo - -interface G : @Ann Foo diff --git a/compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/kt23992.kt b/compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/kt23992.kt index 950df44a179..67118e832af 100644 --- a/compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/kt23992.kt +++ b/compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/kt23992.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL // !LANGUAGE: -ProhibitUseSiteTargetAnnotationsOnSuperTypes interface Foo diff --git a/compiler/testData/diagnostics/testsWithStdLib/ArrayOfNothing.fir.kt b/compiler/testData/diagnostics/testsWithStdLib/ArrayOfNothing.fir.kt index d2d5df3003d..c87767bcdce 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/ArrayOfNothing.fir.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/ArrayOfNothing.fir.kt @@ -50,6 +50,6 @@ fun test6() = foo() class B(val array: Array) -fun bar() = B>(arrayOf()) +fun bar() = B>(arrayOf()) fun test7() = bar() diff --git a/compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.5.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.5.fir.kt index d89e08f802f..e10adc20e78 100644 --- a/compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.5.fir.kt +++ b/compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.5.fir.kt @@ -26,7 +26,7 @@ import base.* // TESTCASE NUMBER: 1 -class Case1 : BaseJava() {} +class Case1 : BaseJava() {} fun case1() { val v = Case1() @@ -38,7 +38,7 @@ fun case1() { */ abstract class AbstractClassCase2 : BaseJava() {} -class Case2 : AbstractClassCase2() {} +class Case2 : AbstractClassCase2() {} fun case2() { val v = Case2() diff --git a/compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.6.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.6.fir.kt index 843147c0d35..e07d532bfb4 100644 --- a/compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.6.fir.kt +++ b/compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.6.fir.kt @@ -51,7 +51,7 @@ fun case2() { // TESTCASE NUMBER: 3 -class Case3 : BaseJava() {} +class Case3 : BaseJava() {} fun case3() { val v = Case3() @@ -63,7 +63,7 @@ fun case3() { */ abstract class AbstractClassCase4 : BaseJava() {} -class Case4 : AbstractClassCase4() {} +class Case4 : AbstractClassCase4() {} fun case4() { val v = Case4() diff --git a/compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.7.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.7.fir.kt index 1883b65b441..5d2288d60c5 100644 --- a/compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.7.fir.kt +++ b/compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.7.fir.kt @@ -59,13 +59,13 @@ fun case2() { // TESTCASE NUMBER: 3 -class Case3 : BaseKotlin() {} +class Case3 : BaseKotlin() {} fun case3() { val v = Case3() v.boo(true) - val o = object : BaseKotlin() {} + val o = object : BaseKotlin() {} } /* @@ -73,11 +73,11 @@ fun case3() { */ abstract class AbstractClassCase4 : BaseKotlin() {} -class Case4 : AbstractClassCase4() {} +class Case4 : AbstractClassCase4() {} fun case4() { val v = Case4() v.boo(true) - val o = object : AbstractClassCase4() {} + val o = object : AbstractClassCase4() {} } diff --git a/compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.8.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.8.fir.kt index 4f80ea1cd4a..4f73e6718d2 100644 --- a/compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.8.fir.kt +++ b/compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.8.fir.kt @@ -20,7 +20,7 @@ abstract class AbstractClassCase1() { public abstract val pub1: String } -class Case1 : AbstractClassCase1(){ +class Case1 : AbstractClassCase1(){ override fun prot() {} override fun int() { diff --git a/compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.9.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.9.fir.kt index 2acb7ce0632..11d09a05049 100644 --- a/compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.9.fir.kt +++ b/compiler/tests-spec/testData/diagnostics/linked/declarations/classifier-declaration/class-declaration/abstract-classes/p-2/neg/1.9.fir.kt @@ -59,7 +59,7 @@ import libModule.* // TESTCASE NUMBER: 2 class KotlinClassWithAbstractJavaClass() { fun foo() { - val baseJava1 = object : BaseJava1() {} - val baseKotlin = object : BaseKotlin1() {} + val baseJava1 = object : BaseJava1() {} + val baseKotlin = object : BaseKotlin1() {} } } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/diagnostics/KtFirDataClassConverters.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/diagnostics/KtFirDataClassConverters.kt index 7588335a7a2..365baed87a1 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/diagnostics/KtFirDataClassConverters.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/diagnostics/KtFirDataClassConverters.kt @@ -738,14 +738,26 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert token, ) } - add(FirErrors.ANNOTATION_ON_SUPERCLASS) { firDiagnostic -> - AnnotationOnSuperclassImpl( + add(FirErrors.ANNOTATION_ON_SUPERCLASS.errorFactory) { firDiagnostic -> + AnnotationOnSuperclassErrorImpl( firDiagnostic as FirPsiDiagnostic, token, ) } - add(FirErrors.RESTRICTED_RETENTION_FOR_EXPRESSION_ANNOTATION) { firDiagnostic -> - RestrictedRetentionForExpressionAnnotationImpl( + add(FirErrors.ANNOTATION_ON_SUPERCLASS.warningFactory) { firDiagnostic -> + AnnotationOnSuperclassWarningImpl( + firDiagnostic as FirPsiDiagnostic, + token, + ) + } + add(FirErrors.RESTRICTED_RETENTION_FOR_EXPRESSION_ANNOTATION.errorFactory) { firDiagnostic -> + RestrictedRetentionForExpressionAnnotationErrorImpl( + firDiagnostic as FirPsiDiagnostic, + token, + ) + } + add(FirErrors.RESTRICTED_RETENTION_FOR_EXPRESSION_ANNOTATION.warningFactory) { firDiagnostic -> + RestrictedRetentionForExpressionAnnotationWarningImpl( firDiagnostic as FirPsiDiagnostic, token, ) @@ -1463,14 +1475,14 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert token, ) } - add(FirErrors.TYPE_PARAMETER_AS_REIFIED_ARRAY) { firDiagnostic -> - TypeParameterAsReifiedArrayImpl( + add(FirErrors.TYPE_PARAMETER_AS_REIFIED_ARRAY.errorFactory) { firDiagnostic -> + TypeParameterAsReifiedArrayErrorImpl( firSymbolBuilder.classifierBuilder.buildTypeParameterSymbol(firDiagnostic.a.fir), firDiagnostic as FirPsiDiagnostic, token, ) } - add(FirErrors.TYPE_PARAMETER_AS_REIFIED_ARRAY_WARNING) { firDiagnostic -> + add(FirErrors.TYPE_PARAMETER_AS_REIFIED_ARRAY.warningFactory) { firDiagnostic -> TypeParameterAsReifiedArrayWarningImpl( firSymbolBuilder.classifierBuilder.buildTypeParameterSymbol(firDiagnostic.a.fir), firDiagnostic as FirPsiDiagnostic, @@ -1792,15 +1804,15 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert token, ) } - add(FirErrors.INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER) { firDiagnostic -> - InvisibleAbstractMemberFromSuperImpl( + add(FirErrors.INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER.errorFactory) { firDiagnostic -> + InvisibleAbstractMemberFromSuperErrorImpl( firSymbolBuilder.classifierBuilder.buildClassLikeSymbol(firDiagnostic.a.fir), firSymbolBuilder.callableBuilder.buildCallableSymbol(firDiagnostic.b.fir), firDiagnostic as FirPsiDiagnostic, token, ) } - add(FirErrors.INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER_WARNING) { firDiagnostic -> + add(FirErrors.INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER.warningFactory) { firDiagnostic -> InvisibleAbstractMemberFromSuperWarningImpl( firSymbolBuilder.classifierBuilder.buildClassLikeSymbol(firDiagnostic.a.fir), firSymbolBuilder.callableBuilder.buildCallableSymbol(firDiagnostic.b.fir), @@ -2513,15 +2525,15 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert token, ) } - add(FirErrors.VAL_REASSIGNMENT_VIA_BACKING_FIELD) { firDiagnostic -> - ValReassignmentViaBackingFieldImpl( + add(FirErrors.VAL_REASSIGNMENT_VIA_BACKING_FIELD.errorFactory) { firDiagnostic -> + ValReassignmentViaBackingFieldErrorImpl( firSymbolBuilder.variableLikeBuilder.buildVariableSymbol(firDiagnostic.a.fir), firDiagnostic as FirPsiDiagnostic, token, ) } - add(FirErrors.VAL_REASSIGNMENT_VIA_BACKING_FIELD_ERROR) { firDiagnostic -> - ValReassignmentViaBackingFieldErrorImpl( + add(FirErrors.VAL_REASSIGNMENT_VIA_BACKING_FIELD.warningFactory) { firDiagnostic -> + ValReassignmentViaBackingFieldWarningImpl( firSymbolBuilder.variableLikeBuilder.buildVariableSymbol(firDiagnostic.a.fir), firDiagnostic as FirPsiDiagnostic, token, diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/diagnostics/KtFirDiagnostics.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/diagnostics/KtFirDiagnostics.kt index 85e5e8b0ce7..865cad868c4 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/diagnostics/KtFirDiagnostics.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/diagnostics/KtFirDiagnostics.kt @@ -534,12 +534,20 @@ sealed class KtFirDiagnostic : KtDiagnosticWithPsi { override val diagnosticClass get() = DeprecatedSinceKotlinOutsideKotlinSubpackage::class } - abstract class AnnotationOnSuperclass : KtFirDiagnostic() { - override val diagnosticClass get() = AnnotationOnSuperclass::class + abstract class AnnotationOnSuperclassError : KtFirDiagnostic() { + override val diagnosticClass get() = AnnotationOnSuperclassError::class } - abstract class RestrictedRetentionForExpressionAnnotation : KtFirDiagnostic() { - override val diagnosticClass get() = RestrictedRetentionForExpressionAnnotation::class + abstract class AnnotationOnSuperclassWarning : KtFirDiagnostic() { + override val diagnosticClass get() = AnnotationOnSuperclassWarning::class + } + + abstract class RestrictedRetentionForExpressionAnnotationError : KtFirDiagnostic() { + override val diagnosticClass get() = RestrictedRetentionForExpressionAnnotationError::class + } + + abstract class RestrictedRetentionForExpressionAnnotationWarning : KtFirDiagnostic() { + override val diagnosticClass get() = RestrictedRetentionForExpressionAnnotationWarning::class } abstract class WrongAnnotationTarget : KtFirDiagnostic() { @@ -1041,8 +1049,8 @@ sealed class KtFirDiagnostic : KtDiagnosticWithPsi { abstract val typeParameter: KtTypeParameterSymbol } - abstract class TypeParameterAsReifiedArray : KtFirDiagnostic() { - override val diagnosticClass get() = TypeParameterAsReifiedArray::class + abstract class TypeParameterAsReifiedArrayError : KtFirDiagnostic() { + override val diagnosticClass get() = TypeParameterAsReifiedArrayError::class abstract val typeParameter: KtTypeParameterSymbol } @@ -1278,8 +1286,8 @@ sealed class KtFirDiagnostic : KtDiagnosticWithPsi { abstract val missingDeclaration: KtCallableSymbol } - abstract class InvisibleAbstractMemberFromSuper : KtFirDiagnostic() { - override val diagnosticClass get() = InvisibleAbstractMemberFromSuper::class + abstract class InvisibleAbstractMemberFromSuperError : KtFirDiagnostic() { + override val diagnosticClass get() = InvisibleAbstractMemberFromSuperError::class abstract val classOrObject: KtClassLikeSymbol abstract val invisibleDeclaration: KtCallableSymbol } @@ -1761,13 +1769,13 @@ sealed class KtFirDiagnostic : KtDiagnosticWithPsi { abstract val variable: KtVariableLikeSymbol } - abstract class ValReassignmentViaBackingField : KtFirDiagnostic() { - override val diagnosticClass get() = ValReassignmentViaBackingField::class + abstract class ValReassignmentViaBackingFieldError : KtFirDiagnostic() { + override val diagnosticClass get() = ValReassignmentViaBackingFieldError::class abstract val property: KtVariableSymbol } - abstract class ValReassignmentViaBackingFieldError : KtFirDiagnostic() { - override val diagnosticClass get() = ValReassignmentViaBackingFieldError::class + abstract class ValReassignmentViaBackingFieldWarning : KtFirDiagnostic() { + override val diagnosticClass get() = ValReassignmentViaBackingFieldWarning::class abstract val property: KtVariableSymbol } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/diagnostics/KtFirDiagnosticsImpl.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/diagnostics/KtFirDiagnosticsImpl.kt index 45c616ef0e9..f6b506da8d0 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/diagnostics/KtFirDiagnosticsImpl.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/diagnostics/KtFirDiagnosticsImpl.kt @@ -853,17 +853,31 @@ internal class DeprecatedSinceKotlinOutsideKotlinSubpackageImpl( override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic) } -internal class AnnotationOnSuperclassImpl( +internal class AnnotationOnSuperclassErrorImpl( firDiagnostic: FirPsiDiagnostic, override val token: ValidityToken, -) : KtFirDiagnostic.AnnotationOnSuperclass(), KtAbstractFirDiagnostic { +) : KtFirDiagnostic.AnnotationOnSuperclassError(), KtAbstractFirDiagnostic { override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic) } -internal class RestrictedRetentionForExpressionAnnotationImpl( +internal class AnnotationOnSuperclassWarningImpl( firDiagnostic: FirPsiDiagnostic, override val token: ValidityToken, -) : KtFirDiagnostic.RestrictedRetentionForExpressionAnnotation(), KtAbstractFirDiagnostic { +) : KtFirDiagnostic.AnnotationOnSuperclassWarning(), KtAbstractFirDiagnostic { + override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic) +} + +internal class RestrictedRetentionForExpressionAnnotationErrorImpl( + firDiagnostic: FirPsiDiagnostic, + override val token: ValidityToken, +) : KtFirDiagnostic.RestrictedRetentionForExpressionAnnotationError(), KtAbstractFirDiagnostic { + override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic) +} + +internal class RestrictedRetentionForExpressionAnnotationWarningImpl( + firDiagnostic: FirPsiDiagnostic, + override val token: ValidityToken, +) : KtFirDiagnostic.RestrictedRetentionForExpressionAnnotationWarning(), KtAbstractFirDiagnostic { override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic) } @@ -1669,11 +1683,11 @@ internal class TypeParameterAsReifiedImpl( override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic) } -internal class TypeParameterAsReifiedArrayImpl( +internal class TypeParameterAsReifiedArrayErrorImpl( override val typeParameter: KtTypeParameterSymbol, firDiagnostic: FirPsiDiagnostic, override val token: ValidityToken, -) : KtFirDiagnostic.TypeParameterAsReifiedArray(), KtAbstractFirDiagnostic { +) : KtFirDiagnostic.TypeParameterAsReifiedArrayError(), KtAbstractFirDiagnostic { override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic) } @@ -2041,12 +2055,12 @@ internal class AbstractClassMemberNotImplementedImpl( override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic) } -internal class InvisibleAbstractMemberFromSuperImpl( +internal class InvisibleAbstractMemberFromSuperErrorImpl( override val classOrObject: KtClassLikeSymbol, override val invisibleDeclaration: KtCallableSymbol, firDiagnostic: FirPsiDiagnostic, override val token: ValidityToken, -) : KtFirDiagnostic.InvisibleAbstractMemberFromSuper(), KtAbstractFirDiagnostic { +) : KtFirDiagnostic.InvisibleAbstractMemberFromSuperError(), KtAbstractFirDiagnostic { override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic) } @@ -2836,14 +2850,6 @@ internal class ValReassignmentImpl( override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic) } -internal class ValReassignmentViaBackingFieldImpl( - override val property: KtVariableSymbol, - firDiagnostic: FirPsiDiagnostic, - override val token: ValidityToken, -) : KtFirDiagnostic.ValReassignmentViaBackingField(), KtAbstractFirDiagnostic { - override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic) -} - internal class ValReassignmentViaBackingFieldErrorImpl( override val property: KtVariableSymbol, firDiagnostic: FirPsiDiagnostic, @@ -2852,6 +2858,14 @@ internal class ValReassignmentViaBackingFieldErrorImpl( override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic) } +internal class ValReassignmentViaBackingFieldWarningImpl( + override val property: KtVariableSymbol, + firDiagnostic: FirPsiDiagnostic, + override val token: ValidityToken, +) : KtFirDiagnostic.ValReassignmentViaBackingFieldWarning(), KtAbstractFirDiagnostic { + override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic) +} + internal class CapturedValInitializationImpl( override val property: KtVariableSymbol, firDiagnostic: FirPsiDiagnostic,