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 d8373d3c2dc..1bbfb698156 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 @@ -10,7 +10,7 @@ import com.intellij.psi.PsiTypeElement import org.jetbrains.kotlin.contracts.description.EventOccurrencesRange import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.diagnostics.WhenMissingCase -import org.jetbrains.kotlin.resolve.BadNamedArgumentsTarget +import org.jetbrains.kotlin.resolve.ForbiddenNamedArgumentsTarget import org.jetbrains.kotlin.fir.FirEffectiveVisibility import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.PrivateForInline @@ -201,7 +201,7 @@ object DIAGNOSTICS_LIST : DiagnosticList() { // TODO: implement a position strategy that highlights the argument name instead of the whole named argument val NAMED_ARGUMENTS_NOT_ALLOWED by error { - parameter("badNamedArgumentTarget") + parameter("forbiddenNamedArgumentsTarget") } } 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 46ca0a62472..81e27adae71 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 @@ -44,7 +44,7 @@ import org.jetbrains.kotlin.psi.KtTypeParameter import org.jetbrains.kotlin.psi.KtTypeParameterList import org.jetbrains.kotlin.psi.KtTypeReference import org.jetbrains.kotlin.psi.KtWhenExpression -import org.jetbrains.kotlin.resolve.BadNamedArgumentsTarget +import org.jetbrains.kotlin.resolve.ForbiddenNamedArgumentsTarget /* * This file was generated automatically @@ -168,7 +168,7 @@ object FirErrors { val INAPPLICABLE_CANDIDATE by error1>(SourceElementPositioningStrategies.REFERENCE_BY_QUALIFIED) val INAPPLICABLE_LATEINIT_MODIFIER by error1(SourceElementPositioningStrategies.LATEINIT_MODIFIER) val VARARG_OUTSIDE_PARENTHESES by error0() - val NAMED_ARGUMENTS_NOT_ALLOWED by error1() + val NAMED_ARGUMENTS_NOT_ALLOWED by error1() // Ambiguity val AMBIGUITY by error1>>(SourceElementPositioningStrategies.REFERENCE_BY_QUALIFIED) 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 6aecb710452..bbd04dce118 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 @@ -118,7 +118,7 @@ private fun mapInapplicableCandidateError( is VarargArgumentOutsideParentheses -> FirErrors.VARARG_OUTSIDE_PARENTHESES.on(rootCause.argument.source ?: source) is NamedArgumentNotAllowed -> FirErrors.NAMED_ARGUMENTS_NOT_ALLOWED.on( rootCause.argument.source ?: source, - rootCause.badNamedArgumentsTarget + rootCause.forbiddenNamedArgumentsTarget ) else -> null } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ResolveUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ResolveUtils.kt index 2de28bb1370..7080d9e2bd4 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ResolveUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ResolveUtils.kt @@ -38,7 +38,7 @@ 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.resolve.BadNamedArgumentsTarget +import org.jetbrains.kotlin.resolve.ForbiddenNamedArgumentsTarget fun List.toTypeProjections(): Array = asReversed().flatMap { it.typeArgumentList.typeArguments.map { typeArgument -> typeArgument.toConeTypeProjection() } }.toTypedArray() @@ -359,7 +359,7 @@ inline val FirCallableDeclaration<*>.containingClass: FirRegularClass? session.symbolProvider.getSymbolByLookupTag(lookupTag)?.fir as? FirRegularClass } -val FirFunction<*>.asBadForNamedArgumentTarget: BadNamedArgumentsTarget? +val FirFunction<*>.asForbiddenNamedArgumentsTarget: ForbiddenNamedArgumentsTarget? get() { if (this is FirConstructor && this.isPrimary) { this.containingClass?.let { containingClass -> @@ -370,25 +370,25 @@ val FirFunction<*>.asBadForNamedArgumentTarget: BadNamedArgumentsTarget? } } if (this is FirMemberDeclaration && status.isExpect) { - return BadNamedArgumentsTarget.EXPECTED_CLASS_MEMBER + return ForbiddenNamedArgumentsTarget.EXPECTED_CLASS_MEMBER } return when (origin) { FirDeclarationOrigin.Source, FirDeclarationOrigin.Library, FirDeclarationOrigin.BuiltIns -> null - FirDeclarationOrigin.Delegated -> delegatedWrapperData?.wrapped?.asBadForNamedArgumentTarget - FirDeclarationOrigin.ImportedFromObject -> importedFromObjectData?.original?.asBadForNamedArgumentTarget + FirDeclarationOrigin.Delegated -> delegatedWrapperData?.wrapped?.asForbiddenNamedArgumentsTarget + FirDeclarationOrigin.ImportedFromObject -> importedFromObjectData?.original?.asForbiddenNamedArgumentsTarget // For intersection overrides, the logic in // org.jetbrains.kotlin.fir.scopes.impl.FirTypeIntersectionScope#selectMostSpecificMember picks the most specific one and store // it in originalForIntersectionOverrideAttr. This follows from FE1.0 behavior which selects the most specific function // (org.jetbrains.kotlin.resolve.OverridingUtil#selectMostSpecificMember), from which the `hasStableParameterNames` status is // copied. - FirDeclarationOrigin.IntersectionOverride -> originalForIntersectionOverrideAttr?.asBadForNamedArgumentTarget - FirDeclarationOrigin.Java, FirDeclarationOrigin.Enhancement -> BadNamedArgumentsTarget.NON_KOTLIN_FUNCTION + FirDeclarationOrigin.IntersectionOverride -> originalForIntersectionOverrideAttr?.asForbiddenNamedArgumentsTarget + FirDeclarationOrigin.Java, FirDeclarationOrigin.Enhancement -> ForbiddenNamedArgumentsTarget.NON_KOTLIN_FUNCTION FirDeclarationOrigin.SamConstructor -> null - FirDeclarationOrigin.SubstitutionOverride -> originalForSubstitutionOverrideAttr?.asBadForNamedArgumentTarget + FirDeclarationOrigin.SubstitutionOverride -> originalForSubstitutionOverrideAttr?.asForbiddenNamedArgumentsTarget // referenced function of a Kotlin function type is synthetic FirDeclarationOrigin.Synthetic -> { if (dispatchReceiverClassOrNull()?.isBuiltinFunctionalType() == true) { - BadNamedArgumentsTarget.INVOKE_ON_FUNCTION_TYPE + ForbiddenNamedArgumentsTarget.INVOKE_ON_FUNCTION_TYPE } else { null } @@ -400,4 +400,4 @@ val FirFunction<*>.asBadForNamedArgumentTarget: BadNamedArgumentsTarget? // TODO: handle functions with non-stable parameter names, see also // org.jetbrains.kotlin.fir.serialization.FirElementSerializer.functionProto // org.jetbrains.kotlin.fir.serialization.FirElementSerializer.constructorProto -inline val FirFunction<*>.hasStableParameterNames: Boolean get() = asBadForNamedArgumentTarget == null +inline val FirFunction<*>.hasStableParameterNames: Boolean get() = asForbiddenNamedArgumentsTarget == null diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/FirArgumentsToParametersMapper.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/FirArgumentsToParametersMapper.kt index 92136ee11a8..fa3bb6ad249 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/FirArgumentsToParametersMapper.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/FirArgumentsToParametersMapper.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.fir.resolve.calls -import org.jetbrains.kotlin.resolve.BadNamedArgumentsTarget +import org.jetbrains.kotlin.resolve.ForbiddenNamedArgumentsTarget import org.jetbrains.kotlin.fir.declarations.FirFunction import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction import org.jetbrains.kotlin.fir.declarations.FirValueParameter @@ -16,7 +16,7 @@ import org.jetbrains.kotlin.fir.expressions.FirNamedArgumentExpression import org.jetbrains.kotlin.fir.expressions.FirSpreadArgumentExpression import org.jetbrains.kotlin.fir.expressions.builder.buildNamedArgumentExpression import org.jetbrains.kotlin.fir.resolve.BodyResolveComponents -import org.jetbrains.kotlin.fir.resolve.asBadForNamedArgumentTarget +import org.jetbrains.kotlin.fir.resolve.asForbiddenNamedArgumentsTarget import org.jetbrains.kotlin.fir.resolve.defaultParameterResolver import org.jetbrains.kotlin.fir.scopes.FirScope import org.jetbrains.kotlin.name.Name @@ -108,8 +108,8 @@ private class FirCallArgumentsProcessor( private set val result: LinkedHashMap = LinkedHashMap(function.valueParameters.size) - val badForNamedArgumentTarget: BadNamedArgumentsTarget? by lazy { - function.asBadForNamedArgumentTarget + val forbiddenNamedArgumentsTarget: ForbiddenNamedArgumentsTarget? by lazy { + function.asForbiddenNamedArgumentsTarget } private enum class State { @@ -169,7 +169,7 @@ private class FirCallArgumentsProcessor( } private fun processNamedArgument(argument: FirExpression, name: Name) { - badForNamedArgumentTarget?.let { + forbiddenNamedArgumentsTarget?.let { addDiagnostic(NamedArgumentNotAllowed(argument, function, it)) } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolutionDiagnostic.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolutionDiagnostic.kt index 3cf9b6d6234..7d1773cc098 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolutionDiagnostic.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolutionDiagnostic.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.fir.resolve.calls -import org.jetbrains.kotlin.resolve.BadNamedArgumentsTarget +import org.jetbrains.kotlin.resolve.ForbiddenNamedArgumentsTarget import org.jetbrains.kotlin.fir.declarations.FirFunction import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.expressions.FirExpression @@ -28,7 +28,7 @@ class TooManyArguments( class NamedArgumentNotAllowed( override val argument: FirExpression, val function: FirFunction<*>, - val badNamedArgumentsTarget: BadNamedArgumentsTarget + val forbiddenNamedArgumentsTarget: ForbiddenNamedArgumentsTarget ) : InapplicableArgumentDiagnostic() class ArgumentPassedTwice( diff --git a/compiler/frontend.common/src/org/jetbrains/kotlin/resolve/BadNamedArgumentsTarget.kt b/compiler/frontend.common/src/org/jetbrains/kotlin/resolve/ForbiddenNamedArgumentsTarget.kt similarity index 91% rename from compiler/frontend.common/src/org/jetbrains/kotlin/resolve/BadNamedArgumentsTarget.kt rename to compiler/frontend.common/src/org/jetbrains/kotlin/resolve/ForbiddenNamedArgumentsTarget.kt index 1447ac1d3ce..3d3627314a3 100644 --- a/compiler/frontend.common/src/org/jetbrains/kotlin/resolve/BadNamedArgumentsTarget.kt +++ b/compiler/frontend.common/src/org/jetbrains/kotlin/resolve/ForbiddenNamedArgumentsTarget.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.resolve -enum class BadNamedArgumentsTarget(private val description:String) { +enum class ForbiddenNamedArgumentsTarget(private val description: String) { NON_KOTLIN_FUNCTION("non-Kotlin functions"), // a function provided by non-Kotlin artifact, ex: Java function INVOKE_ON_FUNCTION_TYPE("function types"), EXPECTED_CLASS_MEMBER("members of expected classes"), 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 a490fd3d8a8..01bdfea3022 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 @@ -9,7 +9,7 @@ import com.intellij.psi.PsiElement import org.jetbrains.kotlin.contracts.description.EventOccurrencesRange import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.diagnostics.WhenMissingCase -import org.jetbrains.kotlin.resolve.BadNamedArgumentsTarget +import org.jetbrains.kotlin.resolve.ForbiddenNamedArgumentsTarget import org.jetbrains.kotlin.fir.FirEffectiveVisibility import org.jetbrains.kotlin.fir.checkers.generator.diagnostics.DiagnosticData import org.jetbrains.kotlin.fir.checkers.generator.diagnostics.DiagnosticList @@ -174,7 +174,7 @@ private object FirToKtConversionCreator { KtModifierKeywordToken::class, Visibility::class, WhenMissingCase::class, - BadNamedArgumentsTarget::class, + ForbiddenNamedArgumentsTarget::class, ) private val KType.kClass: KClass<*> 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 b68e330b50c..c6cb524d35d 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 @@ -39,7 +39,7 @@ import org.jetbrains.kotlin.psi.KtTypeParameter import org.jetbrains.kotlin.psi.KtTypeParameterList import org.jetbrains.kotlin.psi.KtTypeReference import org.jetbrains.kotlin.psi.KtWhenExpression -import org.jetbrains.kotlin.resolve.BadNamedArgumentsTarget +import org.jetbrains.kotlin.resolve.ForbiddenNamedArgumentsTarget /* * This file was generated automatically @@ -472,7 +472,7 @@ sealed class KtFirDiagnostic : KtDiagnosticWithPsi { abstract class NamedArgumentsNotAllowed : KtFirDiagnostic() { override val diagnosticClass get() = NamedArgumentsNotAllowed::class - abstract val badNamedArgumentTarget: BadNamedArgumentsTarget + abstract val forbiddenNamedArgumentsTarget: ForbiddenNamedArgumentsTarget } abstract class Ambiguity : KtFirDiagnostic() { 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 ce2249bc42a..73a21eddc08 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 @@ -41,7 +41,7 @@ import org.jetbrains.kotlin.psi.KtTypeParameter import org.jetbrains.kotlin.psi.KtTypeParameterList import org.jetbrains.kotlin.psi.KtTypeReference import org.jetbrains.kotlin.psi.KtWhenExpression -import org.jetbrains.kotlin.resolve.BadNamedArgumentsTarget +import org.jetbrains.kotlin.resolve.ForbiddenNamedArgumentsTarget /* * This file was generated automatically @@ -757,7 +757,7 @@ internal class VarargOutsideParenthesesImpl( } internal class NamedArgumentsNotAllowedImpl( - override val badNamedArgumentTarget: BadNamedArgumentsTarget, + override val forbiddenNamedArgumentsTarget: ForbiddenNamedArgumentsTarget, firDiagnostic: FirPsiDiagnostic<*>, override val token: ValidityToken, ) : KtFirDiagnostic.NamedArgumentsNotAllowed(), KtAbstractFirDiagnostic {