diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/DiagnosticReporterByTrackingStrategy.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/DiagnosticReporterByTrackingStrategy.kt index 0d55f89b9ee..dc48df798b9 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/DiagnosticReporterByTrackingStrategy.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/DiagnosticReporterByTrackingStrategy.kt @@ -17,6 +17,7 @@ import org.jetbrains.kotlin.diagnostics.reportDiagnosticOnce import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.isNull import org.jetbrains.kotlin.resolve.BindingContext +import org.jetbrains.kotlin.resolve.calls.callUtil.getCalleeExpressionIfAny import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall import org.jetbrains.kotlin.resolve.calls.callUtil.reportTrailingLambdaErrorOr import org.jetbrains.kotlin.resolve.calls.context.BasicCallResolutionContext @@ -81,9 +82,10 @@ class DiagnosticReporterByTrackingStrategy( trace.report(CANDIDATE_CHOSEN_USING_OVERLOAD_RESOLUTION_BY_LAMBDA_ANNOTATION.on(psiKotlinCall.psiCall.callElement)) } CompatibilityWarning::class.java -> { + val callElement = psiKotlinCall.psiCall.callElement trace.report( COMPATIBILITY_WARNING.on( - psiKotlinCall.psiCall.callElement, + callElement.getCalleeExpressionIfAny() ?: callElement, (diagnostic as CompatibilityWarning).candidate ) ) diff --git a/compiler/testData/diagnostics/tests/j+k/sam/compatibilityResolveToOuterScopeForKotlinFunctions.kt b/compiler/testData/diagnostics/tests/j+k/sam/compatibilityResolveToOuterScopeForKotlinFunctions.kt index 1139b0b20d0..377ba083957 100644 --- a/compiler/testData/diagnostics/tests/j+k/sam/compatibilityResolveToOuterScopeForKotlinFunctions.kt +++ b/compiler/testData/diagnostics/tests/j+k/sam/compatibilityResolveToOuterScopeForKotlinFunctions.kt @@ -18,7 +18,7 @@ object Test1 { fun foo(r: Runnable) {} fun test(f: () -> Unit) { - foo(f) + foo(f) } } } @@ -65,7 +65,7 @@ object Test5 { fun foo(r: Runnable) {} fun test() { - foo { } + foo { } } } } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/suspendConversion/suspendAndFunConversionInDisabledMode.kt b/compiler/testData/diagnostics/tests/suspendConversion/suspendAndFunConversionInDisabledMode.kt index 79accbd9af4..3ae5855bfa9 100644 --- a/compiler/testData/diagnostics/tests/suspendConversion/suspendAndFunConversionInDisabledMode.kt +++ b/compiler/testData/diagnostics/tests/suspendConversion/suspendAndFunConversionInDisabledMode.kt @@ -12,7 +12,7 @@ object Test1 { fun call(r: SuspendRunnable) {} fun bar(f: () -> Unit) { - call(f) + call(f) } } } diff --git a/compiler/testData/diagnostics/tests/suspendConversion/suspendConversionCompatibility.kt b/compiler/testData/diagnostics/tests/suspendConversion/suspendConversionCompatibility.kt index 4b8790cffeb..2d83b8a378c 100644 --- a/compiler/testData/diagnostics/tests/suspendConversion/suspendConversionCompatibility.kt +++ b/compiler/testData/diagnostics/tests/suspendConversion/suspendConversionCompatibility.kt @@ -8,7 +8,7 @@ object Test1 { fun foo(f: suspend () -> Unit) {} fun test(g: () -> Unit) { - foo(g) + foo(g) } } }