diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java index 522242a44a3..b8ba248d441 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java @@ -21984,6 +21984,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/tests/j+k/kjkRawTypeWithKotlinUpperBound.kt"); } + @Test + @TestMetadata("kjkimplicitTypesCrash.kt") + public void testKjkimplicitTypesCrash() { + runTest("compiler/testData/diagnostics/tests/j+k/kjkimplicitTypesCrash.kt"); + } + @Test @TestMetadata("kt1402.kt") public void testKt1402() { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java index f2032b78a2f..f3b7da53d1f 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java @@ -21984,6 +21984,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/tests/j+k/kjkRawTypeWithKotlinUpperBound.kt"); } + @Test + @TestMetadata("kjkimplicitTypesCrash.kt") + public void testKjkimplicitTypesCrash() { + runTest("compiler/testData/diagnostics/tests/j+k/kjkimplicitTypesCrash.kt"); + } + @Test @TestMetadata("kt1402.kt") public void testKt1402() { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java index a769fb938a7..12f3fdb9dde 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java @@ -21978,6 +21978,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/tests/j+k/kjkRawTypeWithKotlinUpperBound.kt"); } + @Test + @TestMetadata("kjkimplicitTypesCrash.kt") + public void testKjkimplicitTypesCrash() { + runTest("compiler/testData/diagnostics/tests/j+k/kjkimplicitTypesCrash.kt"); + } + @Test @TestMetadata("kt1402.kt") public void testKt1402() { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java index 572e7af8d36..347d1bc773a 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java @@ -21984,6 +21984,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/tests/j+k/kjkRawTypeWithKotlinUpperBound.kt"); } + @Test + @TestMetadata("kjkimplicitTypesCrash.kt") + public void testKjkimplicitTypesCrash() { + runTest("compiler/testData/diagnostics/tests/j+k/kjkimplicitTypesCrash.kt"); + } + @Test @TestMetadata("kt1402.kt") public void testKt1402() { diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassUseSiteMemberScope.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassUseSiteMemberScope.kt index d4bef126bf6..1c0a58d219f 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassUseSiteMemberScope.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassUseSiteMemberScope.kt @@ -18,6 +18,8 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertySetter import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty import org.jetbrains.kotlin.fir.declarations.synthetic.buildSyntheticProperty import org.jetbrains.kotlin.fir.declarations.utils.* +import org.jetbrains.kotlin.fir.diagnostics.ConeSimpleDiagnostic +import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind import org.jetbrains.kotlin.fir.java.SyntheticPropertiesCacheKey import org.jetbrains.kotlin.fir.java.declarations.FirJavaClass import org.jetbrains.kotlin.fir.java.declarations.FirJavaMethod @@ -890,10 +892,7 @@ class JavaClassUseSiteMemberScope( } private fun FirTypeRef.probablyJavaTypeRefToConeType(): ConeKotlinType { - return when (this) { - is FirJavaTypeRef -> toConeKotlinTypeProbablyFlexible(session, typeParameterStack) - else -> coneType - } + return toConeKotlinTypeProbablyFlexible(session, typeParameterStack) } // It's either overrides Collection.contains(Object) or Collection.containsAll(Collection) or similar methods diff --git a/compiler/testData/diagnostics/tests/j+k/kjkImplicitReturnType.kt b/compiler/testData/diagnostics/tests/j+k/kjkImplicitReturnType.kt index f6cf08a437f..a3cc62a1fd6 100644 --- a/compiler/testData/diagnostics/tests/j+k/kjkImplicitReturnType.kt +++ b/compiler/testData/diagnostics/tests/j+k/kjkImplicitReturnType.kt @@ -1,7 +1,5 @@ // FIR_IDENTICAL // ISSUE: KT-66048 -// IGNORE_REVERSED_RESOLVE -// ^KT-66392 // FILE: Java1.java public class Java1 extends KotlinClass { diff --git a/compiler/testData/diagnostics/tests/j+k/kjkimplicitTypesCrash.fir.kt b/compiler/testData/diagnostics/tests/j+k/kjkimplicitTypesCrash.fir.kt new file mode 100644 index 00000000000..e6f0e4b8747 --- /dev/null +++ b/compiler/testData/diagnostics/tests/j+k/kjkimplicitTypesCrash.fir.kt @@ -0,0 +1,18 @@ +// ISSUE: KT-66392 +// FILE: Java1.java +public class Java1 extends KotlinClass { + @Override + public String getE() { + return "2"; + } +} + +// FILE: test.kt +// The order of Kotlin classes is important +class B : Java1() { + override var e = super.e +} + +open class KotlinClass { + open var e = "1" +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/j+k/kjkimplicitTypesCrash.kt b/compiler/testData/diagnostics/tests/j+k/kjkimplicitTypesCrash.kt new file mode 100644 index 00000000000..af3836aedae --- /dev/null +++ b/compiler/testData/diagnostics/tests/j+k/kjkimplicitTypesCrash.kt @@ -0,0 +1,18 @@ +// ISSUE: KT-66392 +// FILE: Java1.java +public class Java1 extends KotlinClass { + @Override + public String getE() { + return "2"; + } +} + +// FILE: test.kt +// The order of Kotlin classes is important +class B : Java1() { + override var e = super.e +} + +open class KotlinClass { + open var e = "1" +} \ No newline at end of file diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java index 700a8483b1f..e70733eb362 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java @@ -21984,6 +21984,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/j+k/kjkRawTypeWithKotlinUpperBound.kt"); } + @Test + @TestMetadata("kjkimplicitTypesCrash.kt") + public void testKjkimplicitTypesCrash() { + runTest("compiler/testData/diagnostics/tests/j+k/kjkimplicitTypesCrash.kt"); + } + @Test @TestMetadata("kt1402.kt") public void testKt1402() {