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 93c6faa5af0..1661c7ddad2 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 @@ -26,7 +26,6 @@ import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.resolve.calls.inference.model.* import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability import org.jetbrains.kotlin.resolve.calls.tower.isSuccess -import org.jetbrains.kotlin.types.AbstractTypeChecker import org.jetbrains.kotlin.utils.addIfNotNull import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstance import org.jetbrains.kotlin.utils.addToStdlib.safeAs @@ -105,16 +104,15 @@ private fun mapUnsafeCallError( (candidateFunction?.isOperator == true || candidateFunction?.isInfix == true) ) { val operationToken = source.getChild(KtTokens.IDENTIFIER) - if (candidateFunction.isInfix && operationToken?.elementType == KtTokens.IDENTIFIER) { - return FirErrors.UNSAFE_INFIX_CALL.on( + return if (operationToken != null) { + FirErrors.UNSAFE_INFIX_CALL.on( source, receiverExpression, candidateFunctionName!!.asString(), singleArgument, ) - } - if (candidateFunction.isOperator && operationToken == null) { - return FirErrors.UNSAFE_OPERATOR_CALL.on( + } else { + FirErrors.UNSAFE_OPERATOR_CALL.on( source, receiverExpression, candidateFunctionName!!.asString(), diff --git a/compiler/testData/diagnostics/tests/BinaryCallsOnNullableValues.fir.kt b/compiler/testData/diagnostics/tests/BinaryCallsOnNullableValues.fir.kt index 5b81b2a8b17..6c290ba4952 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 diff --git a/idea/testData/quickfix/nullables/unsafeInfixCall/unsafeInfixCall.kt b/idea/testData/quickfix/nullables/unsafeInfixCall/unsafeInfixCall.kt index b1d1b44b4c2..96d6df997c8 100644 --- a/idea/testData/quickfix/nullables/unsafeInfixCall/unsafeInfixCall.kt +++ b/idea/testData/quickfix/nullables/unsafeInfixCall/unsafeInfixCall.kt @@ -1,6 +1,4 @@ // "Replace with safe (?.) call" "true" fun test(a : Int?) : Int? { return a compareTo 6; -} - -/* IGNORE_FIR */ +} \ No newline at end of file diff --git a/idea/testData/quickfix/nullables/unsafeInfixCall/unsafeInfixCall.kt.after b/idea/testData/quickfix/nullables/unsafeInfixCall/unsafeInfixCall.kt.after index 606cd60e311..98e3dc43801 100644 --- a/idea/testData/quickfix/nullables/unsafeInfixCall/unsafeInfixCall.kt.after +++ b/idea/testData/quickfix/nullables/unsafeInfixCall/unsafeInfixCall.kt.after @@ -1,6 +1,4 @@ // "Replace with safe (?.) call" "true" fun test(a : Int?) : Int? { return a?.compareTo(6); -} - -/* IGNORE_FIR */ +} \ No newline at end of file