diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/diagnostics/KtFirDiagnostics.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/diagnostics/KtFirDiagnostics.kt index a64d43f7c07..38ade7eae77 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/diagnostics/KtFirDiagnostics.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/diagnostics/KtFirDiagnostics.kt @@ -976,25 +976,25 @@ sealed interface KtFirDiagnostic : KtDiagnosticWithPsi { interface OptInUsage : KtFirDiagnostic { override val diagnosticClass get() = OptInUsage::class - val optInMarkerFqName: FqName + val optInMarkerClassId: ClassId val message: String } interface OptInUsageError : KtFirDiagnostic { override val diagnosticClass get() = OptInUsageError::class - val optInMarkerFqName: FqName + val optInMarkerClassId: ClassId val message: String } interface OptInOverride : KtFirDiagnostic { override val diagnosticClass get() = OptInOverride::class - val optInMarkerFqName: FqName + val optInMarkerClassId: ClassId val message: String } interface OptInOverrideError : KtFirDiagnostic { override val diagnosticClass get() = OptInOverrideError::class - val optInMarkerFqName: FqName + val optInMarkerClassId: ClassId val message: String } @@ -1016,7 +1016,7 @@ sealed interface KtFirDiagnostic : KtDiagnosticWithPsi { interface OptInArgumentIsNotMarker : KtFirDiagnostic { override val diagnosticClass get() = OptInArgumentIsNotMarker::class - val notMarkerFqName: FqName + val notMarkerClassId: ClassId } interface OptInMarkerWithWrongTarget : KtFirDiagnostic { @@ -1799,7 +1799,7 @@ sealed interface KtFirDiagnostic : KtDiagnosticWithPsi { interface PlatformClassMappedToKotlin : KtFirDiagnostic { override val diagnosticClass get() = PlatformClassMappedToKotlin::class - val kotlinClass: FqName + val kotlinClass: ClassId } interface InferredTypeVariableIntoEmptyIntersectionError : KtFirDiagnostic { diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/diagnostics/KtFirDiagnosticsImpl.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/diagnostics/KtFirDiagnosticsImpl.kt index f90301ca61f..668dfbc7cbd 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/diagnostics/KtFirDiagnosticsImpl.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/diagnostics/KtFirDiagnosticsImpl.kt @@ -1170,28 +1170,28 @@ internal class WrongJsQualifierImpl( ) : KtAbstractFirDiagnostic(firDiagnostic, token), KtFirDiagnostic.WrongJsQualifier internal class OptInUsageImpl( - override val optInMarkerFqName: FqName, + override val optInMarkerClassId: ClassId, override val message: String, firDiagnostic: KtPsiDiagnostic, token: KtLifetimeToken, ) : KtAbstractFirDiagnostic(firDiagnostic, token), KtFirDiagnostic.OptInUsage internal class OptInUsageErrorImpl( - override val optInMarkerFqName: FqName, + override val optInMarkerClassId: ClassId, override val message: String, firDiagnostic: KtPsiDiagnostic, token: KtLifetimeToken, ) : KtAbstractFirDiagnostic(firDiagnostic, token), KtFirDiagnostic.OptInUsageError internal class OptInOverrideImpl( - override val optInMarkerFqName: FqName, + override val optInMarkerClassId: ClassId, override val message: String, firDiagnostic: KtPsiDiagnostic, token: KtLifetimeToken, ) : KtAbstractFirDiagnostic(firDiagnostic, token), KtFirDiagnostic.OptInOverride internal class OptInOverrideErrorImpl( - override val optInMarkerFqName: FqName, + override val optInMarkerClassId: ClassId, override val message: String, firDiagnostic: KtPsiDiagnostic, token: KtLifetimeToken, @@ -1218,7 +1218,7 @@ internal class OptInWithoutArgumentsImpl( ) : KtAbstractFirDiagnostic(firDiagnostic, token), KtFirDiagnostic.OptInWithoutArguments internal class OptInArgumentIsNotMarkerImpl( - override val notMarkerFqName: FqName, + override val notMarkerClassId: ClassId, firDiagnostic: KtPsiDiagnostic, token: KtLifetimeToken, ) : KtAbstractFirDiagnostic(firDiagnostic, token), KtFirDiagnostic.OptInArgumentIsNotMarker @@ -2161,7 +2161,7 @@ internal class RedundantNullableImpl( ) : KtAbstractFirDiagnostic(firDiagnostic, token), KtFirDiagnostic.RedundantNullable internal class PlatformClassMappedToKotlinImpl( - override val kotlinClass: FqName, + override val kotlinClass: ClassId, firDiagnostic: KtPsiDiagnostic, token: KtLifetimeToken, ) : KtAbstractFirDiagnostic(firDiagnostic, token), KtFirDiagnostic.PlatformClassMappedToKotlin 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 6fd2d40e1a7..a6110a4b8fc 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 @@ -1,5 +1,5 @@ /* - * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2023 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. */ @@ -30,7 +30,6 @@ import org.jetbrains.kotlin.lexer.KtModifierKeywordToken import org.jetbrains.kotlin.metadata.deserialization.VersionRequirement import org.jetbrains.kotlin.name.CallableId import org.jetbrains.kotlin.name.ClassId -import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.resolve.ForbiddenNamedArgumentsTarget @@ -402,19 +401,19 @@ object DIAGNOSTICS_LIST : DiagnosticList("FirErrors") { val OPT_IN by object : DiagnosticGroup("OptIn") { val OPT_IN_USAGE by warning(PositioningStrategy.REFERENCE_BY_QUALIFIED) { - parameter("optInMarkerFqName") + parameter("optInMarkerClassId") parameter("message") } val OPT_IN_USAGE_ERROR by error(PositioningStrategy.REFERENCE_BY_QUALIFIED) { - parameter("optInMarkerFqName") + parameter("optInMarkerClassId") parameter("message") } val OPT_IN_OVERRIDE by warning(PositioningStrategy.DECLARATION_NAME) { - parameter("optInMarkerFqName") + parameter("optInMarkerClassId") parameter("message") } val OPT_IN_OVERRIDE_ERROR by error(PositioningStrategy.DECLARATION_NAME) { - parameter("optInMarkerFqName") + parameter("optInMarkerClassId") parameter("message") } @@ -424,7 +423,7 @@ object DIAGNOSTICS_LIST : DiagnosticList("FirErrors") { val OPT_IN_WITHOUT_ARGUMENTS by warning() val OPT_IN_ARGUMENT_IS_NOT_MARKER by warning { - parameter("notMarkerFqName") + parameter("notMarkerClassId") } val OPT_IN_MARKER_WITH_WRONG_TARGET by error { parameter("target") @@ -849,7 +848,7 @@ object DIAGNOSTICS_LIST : DiagnosticList("FirErrors") { val REDUNDANT_NULLABLE by warning(PositioningStrategy.REDUNDANT_NULLABLE) val PLATFORM_CLASS_MAPPED_TO_KOTLIN by warning(PositioningStrategy.REFERENCED_NAME_BY_QUALIFIED) { - parameter("kotlinClass") + parameter("kotlinClass") } val INFERRED_TYPE_VARIABLE_INTO_EMPTY_INTERSECTION by deprecationError( 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 d3f5fd19bb5..f77d6f5f155 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 @@ -69,7 +69,6 @@ import org.jetbrains.kotlin.lexer.KtModifierKeywordToken import org.jetbrains.kotlin.metadata.deserialization.VersionRequirement.Version import org.jetbrains.kotlin.name.CallableId import org.jetbrains.kotlin.name.ClassId -import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.KtAnnotationEntry import org.jetbrains.kotlin.psi.KtAnonymousInitializer @@ -311,15 +310,15 @@ object FirErrors { val POTENTIALLY_NON_REPORTED_ANNOTATION: KtDiagnosticFactory0 by warning0() // OptIn - val OPT_IN_USAGE: KtDiagnosticFactory2 by warning2(SourceElementPositioningStrategies.REFERENCE_BY_QUALIFIED) - val OPT_IN_USAGE_ERROR: KtDiagnosticFactory2 by error2(SourceElementPositioningStrategies.REFERENCE_BY_QUALIFIED) - val OPT_IN_OVERRIDE: KtDiagnosticFactory2 by warning2(SourceElementPositioningStrategies.DECLARATION_NAME) - val OPT_IN_OVERRIDE_ERROR: KtDiagnosticFactory2 by error2(SourceElementPositioningStrategies.DECLARATION_NAME) + val OPT_IN_USAGE: KtDiagnosticFactory2 by warning2(SourceElementPositioningStrategies.REFERENCE_BY_QUALIFIED) + val OPT_IN_USAGE_ERROR: KtDiagnosticFactory2 by error2(SourceElementPositioningStrategies.REFERENCE_BY_QUALIFIED) + val OPT_IN_OVERRIDE: KtDiagnosticFactory2 by warning2(SourceElementPositioningStrategies.DECLARATION_NAME) + val OPT_IN_OVERRIDE_ERROR: KtDiagnosticFactory2 by error2(SourceElementPositioningStrategies.DECLARATION_NAME) val OPT_IN_IS_NOT_ENABLED: KtDiagnosticFactory0 by warning0(SourceElementPositioningStrategies.REFERENCED_NAME_BY_QUALIFIED) val OPT_IN_CAN_ONLY_BE_USED_AS_ANNOTATION: KtDiagnosticFactory0 by error0() val OPT_IN_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_OPT_IN: KtDiagnosticFactory0 by error0() val OPT_IN_WITHOUT_ARGUMENTS: KtDiagnosticFactory0 by warning0() - val OPT_IN_ARGUMENT_IS_NOT_MARKER: KtDiagnosticFactory1 by warning1() + val OPT_IN_ARGUMENT_IS_NOT_MARKER: KtDiagnosticFactory1 by warning1() val OPT_IN_MARKER_WITH_WRONG_TARGET: KtDiagnosticFactory1 by error1() val OPT_IN_MARKER_WITH_WRONG_RETENTION: KtDiagnosticFactory0 by error0() val OPT_IN_MARKER_ON_WRONG_TARGET: KtDiagnosticFactory1 by error1() @@ -489,7 +488,7 @@ object FirErrors { val TYPE_VARIANCE_CONFLICT_IN_EXPANDED_TYPE: KtDiagnosticFactory4 by error4(SourceElementPositioningStrategies.DECLARATION_SIGNATURE_OR_DEFAULT) val SMARTCAST_IMPOSSIBLE: KtDiagnosticFactory4 by error4() val REDUNDANT_NULLABLE: KtDiagnosticFactory0 by warning0(SourceElementPositioningStrategies.REDUNDANT_NULLABLE) - val PLATFORM_CLASS_MAPPED_TO_KOTLIN: KtDiagnosticFactory1 by warning1(SourceElementPositioningStrategies.REFERENCED_NAME_BY_QUALIFIED) + val PLATFORM_CLASS_MAPPED_TO_KOTLIN: KtDiagnosticFactory1 by warning1(SourceElementPositioningStrategies.REFERENCED_NAME_BY_QUALIFIED) val INFERRED_TYPE_VARIABLE_INTO_EMPTY_INTERSECTION: KtDiagnosticFactoryForDeprecation4, String, String> by deprecationError4, String, String>(ForbidInferringTypeVariablesIntoEmptyIntersection) val INFERRED_TYPE_VARIABLE_INTO_POSSIBLE_EMPTY_INTERSECTION: KtDiagnosticFactory4, String, String> by warning4, String, String>() val INCORRECT_LEFT_COMPONENT_OF_INTERSECTION: KtDiagnosticFactory0 by error0() diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirOptInAnnotationCallChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirOptInAnnotationCallChecker.kt index c297dd16b1a..59cf444778a 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirOptInAnnotationCallChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirOptInAnnotationCallChecker.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2023 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. */ @@ -10,13 +10,13 @@ import org.jetbrains.kotlin.config.AnalysisFlags import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext -import org.jetbrains.kotlin.fir.analysis.checkers.extractClassesFromArgument import org.jetbrains.kotlin.diagnostics.DiagnosticReporter -import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors import org.jetbrains.kotlin.diagnostics.reportOn +import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext import org.jetbrains.kotlin.fir.analysis.checkers.extractClassFromArgument +import org.jetbrains.kotlin.fir.analysis.checkers.extractClassesFromArgument import org.jetbrains.kotlin.fir.analysis.checkers.modality +import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors import org.jetbrains.kotlin.fir.declarations.FirClass import org.jetbrains.kotlin.fir.declarations.findArgumentByName import org.jetbrains.kotlin.fir.declarations.utils.isFun @@ -102,7 +102,7 @@ object FirOptInAnnotationCallChecker : FirAnnotationCallChecker() { reporter.reportOn( source, FirErrors.OPT_IN_ARGUMENT_IS_NOT_MARKER, - classSymbol.classId.asSingleFqName(), + classSymbol.classId, context ) } diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirOptInUsageBaseChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirOptInUsageBaseChecker.kt index a1cc8b7736d..cd386389db1 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirOptInUsageBaseChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirOptInUsageBaseChecker.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2023 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. */ @@ -303,10 +303,9 @@ object FirOptInUsageBaseChecker { Experimentality.Severity.WARNING -> FirErrors.OPT_IN_USAGE to "should" Experimentality.Severity.ERROR -> FirErrors.OPT_IN_USAGE_ERROR to "must" } - val fqName = annotationClassId.asSingleFqName() val reportedMessage = message?.takeIf { it.isNotBlank() } - ?: OptInNames.buildDefaultDiagnosticMessage(OptInNames.buildMessagePrefix(verb), fqName.asString()) - reporter.reportOn(source, diagnostic, fqName, reportedMessage, context) + ?: OptInNames.buildDefaultDiagnosticMessage(OptInNames.buildMessagePrefix(verb), annotationClassId.asFqNameString()) + reporter.reportOn(source, diagnostic, annotationClassId, reportedMessage, context) } } } @@ -332,7 +331,7 @@ object FirOptInUsageBaseChecker { verb, markerName = annotationClassId.asFqNameString() ) - reporter.reportOn(symbol.source, diagnostic, annotationClassId.asSingleFqName(), message, context) + reporter.reportOn(symbol.source, diagnostic, annotationClassId, message, context) } } } diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/extended/PlatformClassMappedToKotlinImportsChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/extended/PlatformClassMappedToKotlinImportsChecker.kt index 01c44bedbd6..d47e8a48cc3 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/extended/PlatformClassMappedToKotlinImportsChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/extended/PlatformClassMappedToKotlinImportsChecker.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2023 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. */ @@ -27,7 +27,7 @@ object PlatformClassMappedToKotlinImportsChecker : FirFileChecker() { val kotlinClass = context.session.platformClassMapper.getCorrespondingKotlinClass(classId) if (kotlinClass != null) { - reporter.reportOn(import.source, FirErrors.PLATFORM_CLASS_MAPPED_TO_KOTLIN, importedFqName, context) + reporter.reportOn(import.source, FirErrors.PLATFORM_CLASS_MAPPED_TO_KOTLIN, classId, context) } } } diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/extended/PlatformClassMappedToKotlinTypeRefChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/extended/PlatformClassMappedToKotlinTypeRefChecker.kt index 77c83758a85..3e207c11e54 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/extended/PlatformClassMappedToKotlinTypeRefChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/extended/PlatformClassMappedToKotlinTypeRefChecker.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2023 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. */ @@ -20,7 +20,7 @@ object PlatformClassMappedToKotlinTypeRefChecker : FirTypeRefChecker() { if (typeRef is FirResolvedTypeRef && typeRef.source != null) { val kotlinClass = context.session.platformClassMapper.getCorrespondingKotlinClass(typeRef.type.classId) if (kotlinClass != null) { - reporter.reportOn(typeRef.source, FirErrors.PLATFORM_CLASS_MAPPED_TO_KOTLIN, kotlinClass.asSingleFqName(), context) + reporter.reportOn(typeRef.source, FirErrors.PLATFORM_CLASS_MAPPED_TO_KOTLIN, kotlinClass, context) } } }