From 906b16b41e3305e8781d94720deb91850d7d8d6e Mon Sep 17 00:00:00 2001 From: Nikolay Lunyak Date: Tue, 31 Jan 2023 10:49:40 +0200 Subject: [PATCH] [FIR] KT-55503: Fix current behavior --- ...CompilerTestFE10TestdataTestGenerated.java | 12 +++++++ ...irOldFrontendDiagnosticsTestGenerated.java | 12 +++++++ ...DiagnosticsWithLightTreeTestGenerated.java | 12 +++++++ .../testsWithStdLib/kt55503.fir.kt | 12 +++++++ .../diagnostics/testsWithStdLib/kt55503.kt | 12 +++++++ .../diagnostics/testsWithStdLib/kt55503.txt | 5 +++ .../testsWithStdLib/kt55503_2.fir.txt | 34 +++++++++++++++++++ .../diagnostics/testsWithStdLib/kt55503_2.kt | 33 ++++++++++++++++++ .../diagnostics/testsWithStdLib/kt55503_2.txt | 24 +++++++++++++ .../test/runners/DiagnosticTestGenerated.java | 12 +++++++ 10 files changed, 168 insertions(+) create mode 100644 compiler/testData/diagnostics/testsWithStdLib/kt55503.fir.kt create mode 100644 compiler/testData/diagnostics/testsWithStdLib/kt55503.kt create mode 100644 compiler/testData/diagnostics/testsWithStdLib/kt55503.txt create mode 100644 compiler/testData/diagnostics/testsWithStdLib/kt55503_2.fir.txt create mode 100644 compiler/testData/diagnostics/testsWithStdLib/kt55503_2.kt create mode 100644 compiler/testData/diagnostics/testsWithStdLib/kt55503_2.txt diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java index 5a482665c72..c88145810ca 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java @@ -35473,6 +35473,18 @@ public class DiagnosisCompilerTestFE10TestdataTestGenerated extends AbstractDiag runTest("compiler/testData/diagnostics/testsWithStdLib/kt54410.kt"); } + @Test + @TestMetadata("kt55503.kt") + public void testKt55503() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/kt55503.kt"); + } + + @Test + @TestMetadata("kt55503_2.kt") + public void testKt55503_2() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/kt55503_2.kt"); + } + @Test @TestMetadata("kt55747.kt") public void testKt55747() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java index 26a8707e3b9..37ee6b8f122 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java @@ -35569,6 +35569,18 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirDiagnosti runTest("compiler/testData/diagnostics/testsWithStdLib/kt54410.kt"); } + @Test + @TestMetadata("kt55503.kt") + public void testKt55503() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/kt55503.kt"); + } + + @Test + @TestMetadata("kt55503_2.kt") + public void testKt55503_2() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/kt55503_2.kt"); + } + @Test @TestMetadata("kt55747.kt") public void testKt55747() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java index ec85add8166..043b95ae2a1 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java @@ -35473,6 +35473,18 @@ public class FirOldFrontendDiagnosticsWithLightTreeTestGenerated extends Abstrac runTest("compiler/testData/diagnostics/testsWithStdLib/kt54410.kt"); } + @Test + @TestMetadata("kt55503.kt") + public void testKt55503() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/kt55503.kt"); + } + + @Test + @TestMetadata("kt55503_2.kt") + public void testKt55503_2() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/kt55503_2.kt"); + } + @Test @TestMetadata("kt55747.kt") public void testKt55747() throws Exception { diff --git a/compiler/testData/diagnostics/testsWithStdLib/kt55503.fir.kt b/compiler/testData/diagnostics/testsWithStdLib/kt55503.fir.kt new file mode 100644 index 00000000000..cb35cb20d57 --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/kt55503.fir.kt @@ -0,0 +1,12 @@ +fun foo() = withIntList { + withStringSequence { + forEach { line -> + line.rem(1) + line.length + } + } +} + +fun withIntList(x: List.() -> Unit) {} + +fun withStringSequence(action: Sequence.() -> T): T = TODO() diff --git a/compiler/testData/diagnostics/testsWithStdLib/kt55503.kt b/compiler/testData/diagnostics/testsWithStdLib/kt55503.kt new file mode 100644 index 00000000000..d95dc233453 --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/kt55503.kt @@ -0,0 +1,12 @@ +fun foo() = withIntList { + withStringSequence { + forEach { line -> + line.rem(1) + line.length + } + } +} + +fun withIntList(x: List.() -> Unit) {} + +fun withStringSequence(action: Sequence.() -> T): T = TODO() diff --git a/compiler/testData/diagnostics/testsWithStdLib/kt55503.txt b/compiler/testData/diagnostics/testsWithStdLib/kt55503.txt new file mode 100644 index 00000000000..08ba07c7983 --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/kt55503.txt @@ -0,0 +1,5 @@ +package + +public fun foo(): kotlin.Unit +public fun withIntList(/*0*/ x: kotlin.collections.List.() -> kotlin.Unit): kotlin.Unit +public fun withStringSequence(/*0*/ action: kotlin.sequences.Sequence.() -> T): T diff --git a/compiler/testData/diagnostics/testsWithStdLib/kt55503_2.fir.txt b/compiler/testData/diagnostics/testsWithStdLib/kt55503_2.fir.txt new file mode 100644 index 00000000000..bf9ee102e0e --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/kt55503_2.fir.txt @@ -0,0 +1,34 @@ +FILE: First.kt + package sample.pack + + @R|kotlin/Suppress|(names = vararg(String(INVISIBLE_REFERENCE), String(INVISIBLE_MEMBER))) @() public final fun R|sample/pack/A|.forEach(): R|kotlin/String| { + ^forEach String(::A.forEach) + } + public final class A : R|kotlin/Any| { + public constructor(): R|sample/pack/A| { + super() + } + + public final fun R|sample/pack/B|.forEach(): R|kotlin/String| { + ^forEach String(A::B.forEach) + } + + } + public final class B : R|kotlin/Any| { + public constructor(): R|sample/pack/B| { + super() + } + + } +FILE: Second.kt + package sample + + public final fun box(): R|kotlin/Unit| { + ^box R|kotlin/with|(R|sample/pack/A.A|(), = with@fun R|sample/pack/A|.(): R|kotlin/Unit| { + R|kotlin/with|(R|sample/pack/B.B|(), = with@fun R|sample/pack/B|.(): R|kotlin/Unit| { + this@R|special/anonymous|.R|sample/pack/forEach|() + } + ) + } + ) + } diff --git a/compiler/testData/diagnostics/testsWithStdLib/kt55503_2.kt b/compiler/testData/diagnostics/testsWithStdLib/kt55503_2.kt new file mode 100644 index 00000000000..8ce4bd9fb5d --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/kt55503_2.kt @@ -0,0 +1,33 @@ +// FIR_IDENTICAL +// WITH_STDLIB +// FIR_DUMP + +// FILE: First.kt + +package sample.pack + +@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") +@kotlin.internal.HidesMembers +fun A.forEach() = "::A.forEach" + +class A { + fun B.forEach() = "A::B.forEach" +} + +class B + +// FILE: Second.kt + +package sample + +import sample.pack.* + +fun box() { + return with(A()) { + with(B()) { + // K1 resolves to A::B.check + // K2 - to ::A.check + forEach() + } + } +} diff --git a/compiler/testData/diagnostics/testsWithStdLib/kt55503_2.txt b/compiler/testData/diagnostics/testsWithStdLib/kt55503_2.txt new file mode 100644 index 00000000000..f61caa43e30 --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/kt55503_2.txt @@ -0,0 +1,24 @@ +package + +package sample { + public fun box(): kotlin.Unit + + package sample.pack { + @kotlin.Suppress(names = {"INVISIBLE_REFERENCE", "INVISIBLE_MEMBER"}) @kotlin.internal.HidesMembers public fun sample.pack.A.forEach(): kotlin.String + + public final class A { + public constructor A() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + public final fun sample.pack.B.forEach(): kotlin.String + } + + public final class B { + public constructor B() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } + } +} 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 cd74d7c6629..445687689f3 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 @@ -35569,6 +35569,18 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/testsWithStdLib/kt54410.kt"); } + @Test + @TestMetadata("kt55503.kt") + public void testKt55503() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/kt55503.kt"); + } + + @Test + @TestMetadata("kt55503_2.kt") + public void testKt55503_2() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/kt55503_2.kt"); + } + @Test @TestMetadata("kt55747.kt") public void testKt55747() throws Exception {