[FIR] Reproduce #KT-58939

This commit is contained in:
Kirill Rakhman
2023-05-26 17:01:59 +02:00
committed by Space Team
parent cf2ef443f4
commit bc602b3827
7 changed files with 70 additions and 0 deletions
@@ -4941,6 +4941,12 @@ public class DiagnosticCompilerTestFirTestdataTestGenerated extends AbstractDiag
runTest("compiler/fir/analysis-tests/testData/resolve/unqualifiedEnum/correctJava.kt");
}
@Test
@TestMetadata("enumWithTheSameNameAsEntry.kt")
public void testEnumWithTheSameNameAsEntry() throws Exception {
runTest("compiler/fir/analysis-tests/testData/resolve/unqualifiedEnum/enumWithTheSameNameAsEntry.kt");
}
@Test
@TestMetadata("incorrectJava.kt")
public void testIncorrectJava() throws Exception {
@@ -4941,6 +4941,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFirTestDataTestGenerated
runTest("compiler/fir/analysis-tests/testData/resolve/unqualifiedEnum/correctJava.kt");
}
@Test
@TestMetadata("enumWithTheSameNameAsEntry.kt")
public void testEnumWithTheSameNameAsEntry() throws Exception {
runTest("compiler/fir/analysis-tests/testData/resolve/unqualifiedEnum/enumWithTheSameNameAsEntry.kt");
}
@Test
@TestMetadata("incorrectJava.kt")
public void testIncorrectJava() throws Exception {
@@ -4400,6 +4400,11 @@ public class LazyBodyIsNotTouchedTestGenerated extends AbstractLazyBodyIsNotTouc
runTest("compiler/fir/analysis-tests/testData/resolve/unqualifiedEnum/correctJava.kt");
}
@TestMetadata("enumWithTheSameNameAsEntry.kt")
public void testEnumWithTheSameNameAsEntry() throws Exception {
runTest("compiler/fir/analysis-tests/testData/resolve/unqualifiedEnum/enumWithTheSameNameAsEntry.kt");
}
@TestMetadata("incorrectJava.kt")
public void testIncorrectJava() throws Exception {
runTest("compiler/fir/analysis-tests/testData/resolve/unqualifiedEnum/incorrectJava.kt");
@@ -0,0 +1,29 @@
FILE: enumWithTheSameNameAsEntry.kt
public final enum class A : R|kotlin/Enum<A>| {
private constructor(): R|A| {
super<R|kotlin/Enum<A>|>()
}
public final static enum entry A: R|A|
public final static enum entry B: R|A|
public final static fun values(): R|kotlin/Array<A>| {
}
public final static fun valueOf(value: R|kotlin/String|): R|A| {
}
public final static val entries: R|kotlin/enums/EnumEntries<A>|
public get(): R|kotlin/enums/EnumEntries<A>|
}
public final fun test(a: R|A|): R|kotlin/Unit| {
^test when (R|<local>/a|) {
==($subj$, R|/A.A|.<Unresolved name: A>#) -> {
String(A)
}
==($subj$, R|/A.A|.<Unresolved name: B>#) -> {
String(B)
}
}
}
@@ -0,0 +1,12 @@
// LANGUAGE: +ContextSensitiveEnumResolutionInWhen
// KT-58939
enum class A {
A,
B,
}
fun test(a: A) = <!NO_ELSE_IN_WHEN!>when<!> (a) {
A.<!UNRESOLVED_REFERENCE!>A<!> -> "A"
A.<!UNRESOLVED_REFERENCE!>B<!> -> "B"
}
@@ -4941,6 +4941,12 @@ public class FirLightTreeDiagnosticsTestGenerated extends AbstractFirLightTreeDi
runTest("compiler/fir/analysis-tests/testData/resolve/unqualifiedEnum/correctJava.kt");
}
@Test
@TestMetadata("enumWithTheSameNameAsEntry.kt")
public void testEnumWithTheSameNameAsEntry() throws Exception {
runTest("compiler/fir/analysis-tests/testData/resolve/unqualifiedEnum/enumWithTheSameNameAsEntry.kt");
}
@Test
@TestMetadata("incorrectJava.kt")
public void testIncorrectJava() throws Exception {
@@ -4941,6 +4941,12 @@ public class FirPsiDiagnosticTestGenerated extends AbstractFirPsiDiagnosticTest
runTest("compiler/fir/analysis-tests/testData/resolve/unqualifiedEnum/correctJava.kt");
}
@Test
@TestMetadata("enumWithTheSameNameAsEntry.kt")
public void testEnumWithTheSameNameAsEntry() throws Exception {
runTest("compiler/fir/analysis-tests/testData/resolve/unqualifiedEnum/enumWithTheSameNameAsEntry.kt");
}
@Test
@TestMetadata("incorrectJava.kt")
public void testIncorrectJava() throws Exception {