From 3b7f43a9c27d9f77a896dde80810e8f56781013d Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Mon, 20 Nov 2023 12:10:07 +0100 Subject: [PATCH] K2: don't throw an exception for type parameter case in isJavaTypeOnThePath #KT-63569 Fixed --- ...CompilerTestFE10TestdataTestGenerated.java | 6 +++ ...sticCompilerFE10TestDataTestGenerated.java | 6 +++ ...eeOldFrontendDiagnosticsTestGenerated.java | 6 +++ ...siOldFrontendDiagnosticsTestGenerated.java | 6 +++ .../kotlin/fir/resolve/calls/Synthetics.kt | 2 +- .../tests/j+k/javaLikeCallOnTypeParameter.kt | 37 +++++++++++++++++++ .../test/runners/DiagnosticTestGenerated.java | 6 +++ 7 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 compiler/testData/diagnostics/tests/j+k/javaLikeCallOnTypeParameter.kt 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 4b7cac8ce36..bc4abde570a 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 @@ -21058,6 +21058,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/tests/j+k/javaLangStringCtr.kt"); } + @Test + @TestMetadata("javaLikeCallOnTypeParameter.kt") + public void testJavaLikeCallOnTypeParameter() throws Exception { + runTest("compiler/testData/diagnostics/tests/j+k/javaLikeCallOnTypeParameter.kt"); + } + @Test @TestMetadata("javaStaticImport.kt") public void testJavaStaticImport() throws Exception { 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 b08bf3fcd57..c01e7b5f12a 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 @@ -21058,6 +21058,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/tests/j+k/javaLangStringCtr.kt"); } + @Test + @TestMetadata("javaLikeCallOnTypeParameter.kt") + public void testJavaLikeCallOnTypeParameter() throws Exception { + runTest("compiler/testData/diagnostics/tests/j+k/javaLikeCallOnTypeParameter.kt"); + } + @Test @TestMetadata("javaStaticImport.kt") public void testJavaStaticImport() throws Exception { 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 535df5ea98f..c71e3b67d7b 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 @@ -21052,6 +21052,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/tests/j+k/javaLangStringCtr.kt"); } + @Test + @TestMetadata("javaLikeCallOnTypeParameter.kt") + public void testJavaLikeCallOnTypeParameter() throws Exception { + runTest("compiler/testData/diagnostics/tests/j+k/javaLikeCallOnTypeParameter.kt"); + } + @Test @TestMetadata("javaStaticImport.kt") public void testJavaStaticImport() throws Exception { 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 93690774d17..ae1f107fd93 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 @@ -21058,6 +21058,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/tests/j+k/javaLangStringCtr.kt"); } + @Test + @TestMetadata("javaLikeCallOnTypeParameter.kt") + public void testJavaLikeCallOnTypeParameter() throws Exception { + runTest("compiler/testData/diagnostics/tests/j+k/javaLikeCallOnTypeParameter.kt"); + } + @Test @TestMetadata("javaStaticImport.kt") public void testJavaStaticImport() throws Exception { diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/calls/Synthetics.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/calls/Synthetics.kt index 51ca5dad8d0..0c500ea0abe 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/calls/Synthetics.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/calls/Synthetics.kt @@ -305,7 +305,7 @@ class FirSyntheticPropertiesScope private constructor( return false } is FirTypeParameterSymbol -> { - error("Type parameter symbol ${dispatchReceiverClassSymbol.name} is not expected here") + return false } } } diff --git a/compiler/testData/diagnostics/tests/j+k/javaLikeCallOnTypeParameter.kt b/compiler/testData/diagnostics/tests/j+k/javaLikeCallOnTypeParameter.kt new file mode 100644 index 00000000000..9d054773264 --- /dev/null +++ b/compiler/testData/diagnostics/tests/j+k/javaLikeCallOnTypeParameter.kt @@ -0,0 +1,37 @@ +// FIR_IDENTICAL +// ISSUE: KT-63569 + +// FILE: Baz.java + +public class Baz extends Base { + public boolean isSomething() { + return false; + } +} + +// FILE: Foo.kt + +abstract class Base { + open fun isSomethingElse() = false +} + +abstract class Bar { + open fun isSomething() = false +} + +abstract class BazBaz : Baz() + +abstract class Foo { + abstract val c: C + abstract val d: D + abstract val e: E + abstract val f: F + + fun callMe() { + c.isSomething + d.isSomething + d.isSomethingElse + e.isSomething + f.isSomethingElse + } +} 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 12cfdd41019..3e0aa6465a8 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 @@ -21058,6 +21058,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/j+k/javaLangStringCtr.kt"); } + @Test + @TestMetadata("javaLikeCallOnTypeParameter.kt") + public void testJavaLikeCallOnTypeParameter() throws Exception { + runTest("compiler/testData/diagnostics/tests/j+k/javaLikeCallOnTypeParameter.kt"); + } + @Test @TestMetadata("javaStaticImport.kt") public void testJavaStaticImport() throws Exception {