diff --git a/compiler/fir/analysis-tests/tests/org/jetbrains/kotlin/fir/FirOldFrontendDiagnosticsTestWithStdlibGenerated.java b/compiler/fir/analysis-tests/tests/org/jetbrains/kotlin/fir/FirOldFrontendDiagnosticsTestWithStdlibGenerated.java index 09bce6e5767..8d7a5d779a3 100644 --- a/compiler/fir/analysis-tests/tests/org/jetbrains/kotlin/fir/FirOldFrontendDiagnosticsTestWithStdlibGenerated.java +++ b/compiler/fir/analysis-tests/tests/org/jetbrains/kotlin/fir/FirOldFrontendDiagnosticsTestWithStdlibGenerated.java @@ -2418,6 +2418,11 @@ public class FirOldFrontendDiagnosticsTestWithStdlibGenerated extends AbstractFi public void testKt9820_javaFunctionTypeInheritor() throws Exception { runTest("compiler/testData/diagnostics/testsWithStdLib/regression/kt9820_javaFunctionTypeInheritor.kt"); } + + @TestMetadata("kt-37497.kt") + public void testKt_37497() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/regression/kt-37497.kt"); + } } @TestMetadata("compiler/testData/diagnostics/testsWithStdLib/reified") diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tower/KotlinResolutionStatelessCallbacksImpl.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tower/KotlinResolutionStatelessCallbacksImpl.kt index 328ba48dc5a..5f17c62867f 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tower/KotlinResolutionStatelessCallbacksImpl.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tower/KotlinResolutionStatelessCallbacksImpl.kt @@ -65,7 +65,7 @@ class KotlinResolutionStatelessCallbacksImpl( descriptor, (kotlinCall as? PSIKotlinCall)?.psiCall, (resolutionCallbacks as? KotlinResolutionCallbacksImpl)?.trace?.bindingContext, - isSuperOrDelegatingConstructorCall(kotlinCall), + kotlinCall is PSIKotlinCallImpl && kotlinCall.psiCall.isCallWithSuperReceiver(), ) override fun isSuperExpression(receiver: SimpleKotlinCallArgument?): Boolean = diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tower/NewResolutionOldInference.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tower/NewResolutionOldInference.kt index 67f476796de..b5a58d3b607 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tower/NewResolutionOldInference.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tower/NewResolutionOldInference.kt @@ -601,7 +601,8 @@ internal fun createPreviousResolveError(status: ResolutionStatus): PreviousResol return PreviousResolutionError(level) } -private val BasicCallResolutionContext.isSuperCall: Boolean get() = call.explicitReceiver is SuperCallReceiverValue +internal fun Call.isCallWithSuperReceiver(): Boolean = explicitReceiver is SuperCallReceiverValue +private val BasicCallResolutionContext.isSuperCall: Boolean get() = call.isCallWithSuperReceiver() internal fun reportResolvedUsingDeprecatedVisibility( call: Call, diff --git a/compiler/testData/diagnostics/testsWithStdLib/regression/kt-37497.kt b/compiler/testData/diagnostics/testsWithStdLib/regression/kt-37497.kt new file mode 100644 index 00000000000..e893f7af98c --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/regression/kt-37497.kt @@ -0,0 +1,18 @@ +// FIR_IDENTICAL +// FULL_JDK +// Issue: KT-37497 + +import java.util.* + +object Bug1 { + @JvmStatic + fun main(args: Array) { + val list = object : ArrayList(listOf("a")) { + override fun sort(c: Comparator?) { + super.sort(c) + println(c) + } + } + println(list) + } +} diff --git a/compiler/testData/diagnostics/testsWithStdLib/regression/kt-37497.txt b/compiler/testData/diagnostics/testsWithStdLib/regression/kt-37497.txt new file mode 100644 index 00000000000..c2f18f502f4 --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/regression/kt-37497.txt @@ -0,0 +1,9 @@ +package + +public object Bug1 { + private constructor Bug1() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + @kotlin.jvm.JvmStatic public final fun main(/*0*/ args: kotlin.Array): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} diff --git a/compiler/testData/diagnostics/testsWithStdLib/targetedBuiltIns/blackListed.fir.kt b/compiler/testData/diagnostics/testsWithStdLib/targetedBuiltIns/blackListed.fir.kt index cb813c3dc2d..9106c382a88 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/targetedBuiltIns/blackListed.fir.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/targetedBuiltIns/blackListed.fir.kt @@ -1,4 +1,3 @@ -// !WITH_NEW_INFERENCE // FULL_JDK abstract class A : MutableList { diff --git a/compiler/testData/diagnostics/testsWithStdLib/targetedBuiltIns/blackListed.kt b/compiler/testData/diagnostics/testsWithStdLib/targetedBuiltIns/blackListed.kt index 8d24e7355f1..5738db9fc65 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/targetedBuiltIns/blackListed.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/targetedBuiltIns/blackListed.kt @@ -1,9 +1,8 @@ -// !WITH_NEW_INFERENCE // FULL_JDK abstract class A : MutableList { override fun sort(/*0*/ p0: java.util.Comparator) { - super.sort(p0) + super.sort(p0) } } diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestWithStdLibGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestWithStdLibGenerated.java index 01deb1ccb29..b39c6708a82 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestWithStdLibGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestWithStdLibGenerated.java @@ -3423,6 +3423,11 @@ public class DiagnosticsTestWithStdLibGenerated extends AbstractDiagnosticsTestW public void testKt9820_javaFunctionTypeInheritor() throws Exception { runTest("compiler/testData/diagnostics/testsWithStdLib/regression/kt9820_javaFunctionTypeInheritor.kt"); } + + @TestMetadata("kt-37497.kt") + public void testKt_37497() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/regression/kt-37497.kt"); + } } @TestMetadata("compiler/testData/diagnostics/testsWithStdLib/reified") diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsTestWithStdLibUsingJavacGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsTestWithStdLibUsingJavacGenerated.java index bc73b3d4be4..75c2f25b83e 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsTestWithStdLibUsingJavacGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsTestWithStdLibUsingJavacGenerated.java @@ -3423,6 +3423,11 @@ public class DiagnosticsTestWithStdLibUsingJavacGenerated extends AbstractDiagno public void testKt9820_javaFunctionTypeInheritor() throws Exception { runTest("compiler/testData/diagnostics/testsWithStdLib/regression/kt9820_javaFunctionTypeInheritor.kt"); } + + @TestMetadata("kt-37497.kt") + public void testKt_37497() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/regression/kt-37497.kt"); + } } @TestMetadata("compiler/testData/diagnostics/testsWithStdLib/reified")