From 2f893017ee7e111a27a32ce933e467037b12847a Mon Sep 17 00:00:00 2001 From: Egor Kulikov Date: Thu, 31 Aug 2023 16:27:37 +0200 Subject: [PATCH] [FIR] Fix incorrect psi provided to checker ^KT-60343 fixed --- .../DiagnosticCompilerTestFE10TestdataTestGenerated.java | 6 ++++++ ...ReversedDiagnosticCompilerFE10TestDataTestGenerated.java | 6 ++++++ .../FirLightTreeOldFrontendDiagnosticsTestGenerated.java | 6 ++++++ .../runners/FirPsiOldFrontendDiagnosticsTestGenerated.java | 6 ++++++ .../expression/FirTypeParameterInQualifiedAccessChecker.kt | 2 +- compiler/testData/diagnostics/tests/Kt60343.fir.kt | 3 +++ compiler/testData/diagnostics/tests/Kt60343.kt | 3 +++ .../kotlin/test/runners/DiagnosticTestGenerated.java | 6 ++++++ 8 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 compiler/testData/diagnostics/tests/Kt60343.fir.kt create mode 100644 compiler/testData/diagnostics/tests/Kt60343.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 3653922cf1f..7fc823f2e09 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 @@ -717,6 +717,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/tests/kt58583.kt"); } + @Test + @TestMetadata("Kt60343.kt") + public void testKt60343() throws Exception { + runTest("compiler/testData/diagnostics/tests/Kt60343.kt"); + } + @Test @TestMetadata("kt60638.kt") public void testKt60638() 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 84afc5eea62..eac967e3fd3 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 @@ -717,6 +717,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/tests/kt58583.kt"); } + @Test + @TestMetadata("Kt60343.kt") + public void testKt60343() throws Exception { + runTest("compiler/testData/diagnostics/tests/Kt60343.kt"); + } + @Test @TestMetadata("kt60638.kt") public void testKt60638() 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 9a8bc0977ae..23470946f63 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 @@ -717,6 +717,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/tests/kt58583.kt"); } + @Test + @TestMetadata("Kt60343.kt") + public void testKt60343() throws Exception { + runTest("compiler/testData/diagnostics/tests/Kt60343.kt"); + } + @Test @TestMetadata("kt60638.kt") public void testKt60638() 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 4b07b108fc8..c895998940d 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 @@ -717,6 +717,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/tests/kt58583.kt"); } + @Test + @TestMetadata("Kt60343.kt") + public void testKt60343() throws Exception { + runTest("compiler/testData/diagnostics/tests/Kt60343.kt"); + } + @Test @TestMetadata("kt60638.kt") public void testKt60638() throws Exception { diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirTypeParameterInQualifiedAccessChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirTypeParameterInQualifiedAccessChecker.kt index ba4bbcaf445..f55705bce8a 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirTypeParameterInQualifiedAccessChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirTypeParameterInQualifiedAccessChecker.kt @@ -37,7 +37,7 @@ object FirTypeParameterInQualifiedAccessChecker : FirQualifiedAccessExpressionCh if (secondLast is FirQualifiedAccessExpression && secondLast.explicitReceiver == expression) return val diagnostic = expression.coneTypeOrNull?.coneTypeParameterInQualifiedAccess ?: return - val source = expression.source ?: return + val source = expression.calleeReference.source ?: return reporter.reportOn(source, FirErrors.TYPE_PARAMETER_IS_NOT_AN_EXPRESSION, diagnostic.symbol, context) } diff --git a/compiler/testData/diagnostics/tests/Kt60343.fir.kt b/compiler/testData/diagnostics/tests/Kt60343.fir.kt new file mode 100644 index 00000000000..20502a11431 --- /dev/null +++ b/compiler/testData/diagnostics/tests/Kt60343.fir.kt @@ -0,0 +1,3 @@ +fun test(x: Any) { + println(T) +} diff --git a/compiler/testData/diagnostics/tests/Kt60343.kt b/compiler/testData/diagnostics/tests/Kt60343.kt new file mode 100644 index 00000000000..67371c729a5 --- /dev/null +++ b/compiler/testData/diagnostics/tests/Kt60343.kt @@ -0,0 +1,3 @@ +fun test(x: Any) { + println(T) +} 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 d01a7c05699..d768759d683 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 @@ -717,6 +717,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/kt58583.kt"); } + @Test + @TestMetadata("Kt60343.kt") + public void testKt60343() throws Exception { + runTest("compiler/testData/diagnostics/tests/Kt60343.kt"); + } + @Test @TestMetadata("kt60638.kt") public void testKt60638() throws Exception {