From 44aa2d86d3e447083dfb6891ca8d4dbd6677598a Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Tue, 19 Dec 2023 14:19:25 +0100 Subject: [PATCH] K2: add test to reproduce KT-64266 --- ...CompilerTestFE10TestdataTestGenerated.java | 6 ++++ ...sticCompilerFE10TestDataTestGenerated.java | 6 ++++ ...eeOldFrontendDiagnosticsTestGenerated.java | 6 ++++ ...siOldFrontendDiagnosticsTestGenerated.java | 6 ++++ .../tests/javac/LambdaNonGeneric.diag.txt | 15 ++++++++++ .../tests/javac/LambdaNonGeneric.fir.diag.txt | 23 ++++++++++++++ .../tests/javac/LambdaNonGeneric.fir.kt | 30 +++++++++++++++++++ .../tests/javac/LambdaNonGeneric.kt | 30 +++++++++++++++++++ .../test/runners/DiagnosticTestGenerated.java | 6 ++++ .../DiagnosticUsingJavacTestGenerated.java | 6 ++++ 10 files changed, 134 insertions(+) create mode 100644 compiler/testData/diagnostics/tests/javac/LambdaNonGeneric.diag.txt create mode 100644 compiler/testData/diagnostics/tests/javac/LambdaNonGeneric.fir.diag.txt create mode 100644 compiler/testData/diagnostics/tests/javac/LambdaNonGeneric.fir.kt create mode 100644 compiler/testData/diagnostics/tests/javac/LambdaNonGeneric.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 6d38e30e792..8e98aa52b99 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 @@ -22886,6 +22886,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/tests/javac/Lambda.kt"); } + @Test + @TestMetadata("LambdaNonGeneric.kt") + public void testLambdaNonGeneric() throws Exception { + runTest("compiler/testData/diagnostics/tests/javac/LambdaNonGeneric.kt"); + } + @Nested @TestMetadata("compiler/testData/diagnostics/tests/javac/fieldsResolution") @TestDataPath("$PROJECT_ROOT") 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 56b891de0a2..9a2b33f32f3 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 @@ -22886,6 +22886,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/tests/javac/Lambda.kt"); } + @Test + @TestMetadata("LambdaNonGeneric.kt") + public void testLambdaNonGeneric() throws Exception { + runTest("compiler/testData/diagnostics/tests/javac/LambdaNonGeneric.kt"); + } + @Nested @TestMetadata("compiler/testData/diagnostics/tests/javac/fieldsResolution") @TestDataPath("$PROJECT_ROOT") 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 51da3a61f4c..d0c52b554ac 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 @@ -22880,6 +22880,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/tests/javac/Lambda.kt"); } + @Test + @TestMetadata("LambdaNonGeneric.kt") + public void testLambdaNonGeneric() throws Exception { + runTest("compiler/testData/diagnostics/tests/javac/LambdaNonGeneric.kt"); + } + @Nested @TestMetadata("compiler/testData/diagnostics/tests/javac/fieldsResolution") @TestDataPath("$PROJECT_ROOT") 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 ac56d96cfee..67e53962fa1 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 @@ -22886,6 +22886,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/tests/javac/Lambda.kt"); } + @Test + @TestMetadata("LambdaNonGeneric.kt") + public void testLambdaNonGeneric() throws Exception { + runTest("compiler/testData/diagnostics/tests/javac/LambdaNonGeneric.kt"); + } + @Nested @TestMetadata("compiler/testData/diagnostics/tests/javac/fieldsResolution") @TestDataPath("$PROJECT_ROOT") diff --git a/compiler/testData/diagnostics/tests/javac/LambdaNonGeneric.diag.txt b/compiler/testData/diagnostics/tests/javac/LambdaNonGeneric.diag.txt new file mode 100644 index 00000000000..776870f4039 --- /dev/null +++ b/compiler/testData/diagnostics/tests/javac/LambdaNonGeneric.diag.txt @@ -0,0 +1,15 @@ +// -- Module: -- + +// -- Module: -- +/m2.kt:13:9: warning: parameter 'f' is never used +fun foo(f: (Some, String) -> Unit) {} + ^ +/m2.kt:14:9: warning: parameter 'f' is never used +fun bar(f: (Some) -> Unit) {} + ^ + +// -- Module: -- +/m3.kt:23:17: error: unresolved reference: Some + foo { some: Some, _ -> } + ^ + diff --git a/compiler/testData/diagnostics/tests/javac/LambdaNonGeneric.fir.diag.txt b/compiler/testData/diagnostics/tests/javac/LambdaNonGeneric.fir.diag.txt new file mode 100644 index 00000000000..0c0571acf49 --- /dev/null +++ b/compiler/testData/diagnostics/tests/javac/LambdaNonGeneric.fir.diag.txt @@ -0,0 +1,23 @@ +/m3.kt:(72,73): error: Cannot access class 'Some'. Check your module classpath for missing or conflicting dependencies. + +/m3.kt:(92,96): error: Cannot access class 'Some'. Check your module classpath for missing or conflicting dependencies. + +/m3.kt:(117,121): error: Cannot access class 'Some'. Check your module classpath for missing or conflicting dependencies. + +/m3.kt:(128,132): error: Cannot access class 'Some'. Check your module classpath for missing or conflicting dependencies. + +/m3.kt:(162,166): error: Unresolved reference 'Some'. + +/m3.kt:(184,187): error: Cannot access class 'Some'. Check your module classpath for missing or conflicting dependencies. + +/m3.kt:(198,199): error: Cannot access class 'Some'. Check your module classpath for missing or conflicting dependencies. + +/m3.kt:(215,217): error: Cannot access class 'Some'. Check your module classpath for missing or conflicting dependencies. + +/m3.kt:(231,248): error: Cannot access class 'Some'. Check your module classpath for missing or conflicting dependencies. + +/m3.kt:(233,235): error: Cannot access class 'Some'. Check your module classpath for missing or conflicting dependencies. + +/m3.kt:(259,263): error: Cannot access class 'Some'. Check your module classpath for missing or conflicting dependencies. + +/m3.kt:(267,271): error: Cannot access class 'Some'. Check your module classpath for missing or conflicting dependencies. diff --git a/compiler/testData/diagnostics/tests/javac/LambdaNonGeneric.fir.kt b/compiler/testData/diagnostics/tests/javac/LambdaNonGeneric.fir.kt new file mode 100644 index 00000000000..5d6e8f636aa --- /dev/null +++ b/compiler/testData/diagnostics/tests/javac/LambdaNonGeneric.fir.kt @@ -0,0 +1,30 @@ +// RENDER_DIAGNOSTICS_FULL_TEXT +// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_ANONYMOUS_PARAMETER +// ISSUE: KT-64266 + +// MODULE: m1 +// FILE: m1.kt + +class Some + +// MODULE: m2(m1) +// FILE: m2.kt + +fun foo(f: (Some, String) -> Unit) {} +fun bar(f: (Some) -> Unit) {} + +// MODULE: m3(m2) +// FILE: m3.kt + +fun test() { + foo { _, _ -> } + foo { some, str -> } + foo { some, _ -> some.toString() } + foo { some: Some, _ -> } + + bar { } + bar { _ -> } + bar { it -> } + bar { it.toString() } + bar { some -> some.toString() } +} diff --git a/compiler/testData/diagnostics/tests/javac/LambdaNonGeneric.kt b/compiler/testData/diagnostics/tests/javac/LambdaNonGeneric.kt new file mode 100644 index 00000000000..be9db64269d --- /dev/null +++ b/compiler/testData/diagnostics/tests/javac/LambdaNonGeneric.kt @@ -0,0 +1,30 @@ +// RENDER_DIAGNOSTICS_FULL_TEXT +// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_ANONYMOUS_PARAMETER +// ISSUE: KT-64266 + +// MODULE: m1 +// FILE: m1.kt + +class Some + +// MODULE: m2(m1) +// FILE: m2.kt + +fun foo(f: (Some, String) -> Unit) {} +fun bar(f: (Some) -> Unit) {} + +// MODULE: m3(m2) +// FILE: m3.kt + +fun test() { + foo { _, _ -> } + foo { some, str -> } + foo { some, _ -> some.toString() } + foo { some: Some, _ -> } + + bar { } + bar { _ -> } + bar { it -> } + bar { it.toString() } + bar { some -> some.toString() } +} 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 7cb798480b2..16b1da9cbe1 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 @@ -22886,6 +22886,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/javac/Lambda.kt"); } + @Test + @TestMetadata("LambdaNonGeneric.kt") + public void testLambdaNonGeneric() throws Exception { + runTest("compiler/testData/diagnostics/tests/javac/LambdaNonGeneric.kt"); + } + @Nested @TestMetadata("compiler/testData/diagnostics/tests/javac/fieldsResolution") @TestDataPath("$PROJECT_ROOT") diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticUsingJavacTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticUsingJavacTestGenerated.java index bcf61b85487..b43274b1b85 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticUsingJavacTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticUsingJavacTestGenerated.java @@ -36,6 +36,12 @@ public class DiagnosticUsingJavacTestGenerated extends AbstractDiagnosticUsingJa runTest("compiler/testData/diagnostics/tests/javac/Lambda.kt"); } + @Test + @TestMetadata("LambdaNonGeneric.kt") + public void testLambdaNonGeneric() throws Exception { + runTest("compiler/testData/diagnostics/tests/javac/LambdaNonGeneric.kt"); + } + @Nested @TestMetadata("compiler/testData/diagnostics/tests/javac/fieldsResolution") @TestDataPath("$PROJECT_ROOT")