From 8e9e8302f7803633ea45ab998c07387c0f78b0ca Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Tue, 19 Jul 2022 14:28:55 +0200 Subject: [PATCH] CandidateApplicability: merge INAPPLICABLE_MODIFIER into CONVENTION_ERROR --- .../resolve/expresssions/invoke/implicitTypeOrder.fir.txt | 2 +- .../testData/resolve/qualifierWithCompanion.fir.txt | 2 +- .../kotlin/fir/resolve/calls/ResolutionDiagnostic.kt | 4 ++-- .../kotlin/resolve/calls/tower/CandidateApplicability.kt | 3 +-- .../diagnostics/tests/BinaryCallsOnNullableValues.fir.kt | 2 +- 5 files changed, 6 insertions(+), 7 deletions(-) diff --git a/compiler/fir/analysis-tests/testData/resolve/expresssions/invoke/implicitTypeOrder.fir.txt b/compiler/fir/analysis-tests/testData/resolve/expresssions/invoke/implicitTypeOrder.fir.txt index ba91fae59bd..91953901e91 100644 --- a/compiler/fir/analysis-tests/testData/resolve/expresssions/invoke/implicitTypeOrder.fir.txt +++ b/compiler/fir/analysis-tests/testData/resolve/expresssions/invoke/implicitTypeOrder.fir.txt @@ -5,7 +5,7 @@ FILE: implicitTypeOrder.kt } public final fun bar(): R|A| { - ^bar R|/foo|.#() + ^bar R|/foo|.#() } public final fun invoke(): R|A| { diff --git a/compiler/fir/analysis-tests/testData/resolve/qualifierWithCompanion.fir.txt b/compiler/fir/analysis-tests/testData/resolve/qualifierWithCompanion.fir.txt index 801e88d7ca0..4548fe91bc7 100644 --- a/compiler/fir/analysis-tests/testData/resolve/qualifierWithCompanion.fir.txt +++ b/compiler/fir/analysis-tests/testData/resolve/qualifierWithCompanion.fir.txt @@ -26,5 +26,5 @@ FILE: qualifierWithCompanion.kt local final fun R|my/A|.invoke(): R|kotlin/Unit| { } - Q|my|.R|my/xx|./invoke>#() + Q|my|.R|my/xx|./invoke>#() } diff --git a/compiler/fir/semantics/src/org/jetbrains/kotlin/fir/resolve/calls/ResolutionDiagnostic.kt b/compiler/fir/semantics/src/org/jetbrains/kotlin/fir/resolve/calls/ResolutionDiagnostic.kt index 068bc2f45a5..711cdc4cffa 100644 --- a/compiler/fir/semantics/src/org/jetbrains/kotlin/fir/resolve/calls/ResolutionDiagnostic.kt +++ b/compiler/fir/semantics/src/org/jetbrains/kotlin/fir/resolve/calls/ResolutionDiagnostic.kt @@ -119,8 +119,8 @@ class ManyLambdaExpressionArguments( val argument: FirExpression ) : ResolutionDiagnostic(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR) -class InfixCallOfNonInfixFunction(val function: FirNamedFunctionSymbol) : ResolutionDiagnostic(INAPPLICABLE_MODIFIER) -class OperatorCallOfNonOperatorFunction(val function: FirNamedFunctionSymbol) : ResolutionDiagnostic(INAPPLICABLE_MODIFIER) +class InfixCallOfNonInfixFunction(val function: FirNamedFunctionSymbol) : ResolutionDiagnostic(CONVENTION_ERROR) +class OperatorCallOfNonOperatorFunction(val function: FirNamedFunctionSymbol) : ResolutionDiagnostic(CONVENTION_ERROR) class InferenceError(val constraintError: ConstraintSystemError) : ResolutionDiagnostic(constraintError.applicability) class Unsupported(val message: String, val source: KtSourceElement? = null) : ResolutionDiagnostic(UNSUPPORTED) diff --git a/compiler/resolution.common/src/org/jetbrains/kotlin/resolve/calls/tower/CandidateApplicability.kt b/compiler/resolution.common/src/org/jetbrains/kotlin/resolve/calls/tower/CandidateApplicability.kt index 62ec410574a..8d883533771 100644 --- a/compiler/resolution.common/src/org/jetbrains/kotlin/resolve/calls/tower/CandidateApplicability.kt +++ b/compiler/resolution.common/src/org/jetbrains/kotlin/resolve/calls/tower/CandidateApplicability.kt @@ -13,13 +13,12 @@ enum class CandidateApplicability { INAPPLICABLE_WRONG_RECEIVER, // receiver not matched INAPPLICABLE_ARGUMENTS_MAPPING_ERROR, // arguments not mapped to parameters (i.e. different size of arguments and parameters) INAPPLICABLE, // arguments have wrong types - INAPPLICABLE_MODIFIER, // no expected modifier (eg infix call on non-infix function) NO_COMPANION_OBJECT, // Classifier does not have a companion object IMPOSSIBLE_TO_GENERATE, // access to outer class from nested RUNTIME_ERROR, // TODO: FE 1.0 uses this as catch-all for all other errors. Consider re-assigning those diagnostics. UNSAFE_CALL, // receiver or argument nullability doesn't match UNSTABLE_SMARTCAST, // unstable smart cast - CONVENTION_ERROR, // missing infix, operator etc + CONVENTION_ERROR, // missing infix, operator etc (= no expected modifier) // Below has shouldStopResolve = true DSL_SCOPE_VIOLATION, // Skip other levels for DSL_SCOPE_VIOLATION because if the candidate is marked DSL_SCOPE_VIOLATION with an inner receiver, one should not keep going to outer receivers. diff --git a/compiler/testData/diagnostics/tests/BinaryCallsOnNullableValues.fir.kt b/compiler/testData/diagnostics/tests/BinaryCallsOnNullableValues.fir.kt index abde368a993..1fadf2e7bf6 100644 --- a/compiler/testData/diagnostics/tests/BinaryCallsOnNullableValues.fir.kt +++ b/compiler/testData/diagnostics/tests/BinaryCallsOnNullableValues.fir.kt @@ -6,7 +6,7 @@ fun f(): Unit { var x: Int? = 1 x = null x + 1 - x plus 1 + x plus 1 x < 1 x += 1