[Tests] Add tests on smartcasts on static Java fields

Current behavior for different modules is undesired, will be fixed in
the next commit

^KT-58279
This commit is contained in:
Dmitry Savvinov
2024-01-17 13:26:31 +01:00
committed by Space Team
parent 008d670469
commit 6661a66fc3
8 changed files with 146 additions and 0 deletions
@@ -36933,6 +36933,18 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia
runTest("compiler/testData/diagnostics/tests/smartCasts/variables/reassignedInRhs.kt");
}
@Test
@TestMetadata("staticJavaFieldFromOtherModule.kt")
public void testStaticJavaFieldFromOtherModule() throws Exception {
runTest("compiler/testData/diagnostics/tests/smartCasts/variables/staticJavaFieldFromOtherModule.kt");
}
@Test
@TestMetadata("staticJavaFieldFromSameModule.kt")
public void testStaticJavaFieldFromSameModule() throws Exception {
runTest("compiler/testData/diagnostics/tests/smartCasts/variables/staticJavaFieldFromSameModule.kt");
}
@Test
@TestMetadata("varAsUse.kt")
public void testVarAsUse() throws Exception {
@@ -36933,6 +36933,18 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated
runTest("compiler/testData/diagnostics/tests/smartCasts/variables/reassignedInRhs.kt");
}
@Test
@TestMetadata("staticJavaFieldFromOtherModule.kt")
public void testStaticJavaFieldFromOtherModule() throws Exception {
runTest("compiler/testData/diagnostics/tests/smartCasts/variables/staticJavaFieldFromOtherModule.kt");
}
@Test
@TestMetadata("staticJavaFieldFromSameModule.kt")
public void testStaticJavaFieldFromSameModule() throws Exception {
runTest("compiler/testData/diagnostics/tests/smartCasts/variables/staticJavaFieldFromSameModule.kt");
}
@Test
@TestMetadata("varAsUse.kt")
public void testVarAsUse() throws Exception {
@@ -34577,6 +34577,18 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir
runTest("compiler/testData/diagnostics/tests/smartCasts/variables/reassignedInRhs.kt");
}
@Test
@TestMetadata("staticJavaFieldFromOtherModule.kt")
public void testStaticJavaFieldFromOtherModule() throws Exception {
runTest("compiler/testData/diagnostics/tests/smartCasts/variables/staticJavaFieldFromOtherModule.kt");
}
@Test
@TestMetadata("staticJavaFieldFromSameModule.kt")
public void testStaticJavaFieldFromSameModule() throws Exception {
runTest("compiler/testData/diagnostics/tests/smartCasts/variables/staticJavaFieldFromSameModule.kt");
}
@Test
@TestMetadata("varAsUse.kt")
public void testVarAsUse() throws Exception {
@@ -34703,6 +34703,18 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia
runTest("compiler/testData/diagnostics/tests/smartCasts/variables/reassignedInRhs.kt");
}
@Test
@TestMetadata("staticJavaFieldFromOtherModule.kt")
public void testStaticJavaFieldFromOtherModule() throws Exception {
runTest("compiler/testData/diagnostics/tests/smartCasts/variables/staticJavaFieldFromOtherModule.kt");
}
@Test
@TestMetadata("staticJavaFieldFromSameModule.kt")
public void testStaticJavaFieldFromSameModule() throws Exception {
runTest("compiler/testData/diagnostics/tests/smartCasts/variables/staticJavaFieldFromSameModule.kt");
}
@Test
@TestMetadata("varAsUse.kt")
public void testVarAsUse() throws Exception {
@@ -0,0 +1,30 @@
// FIR_IDENTICAL
// SKIP_TXT
// MODULE: lib
// FILE: J.java
public class J {
public static final Object staticFinalJava = "";
public static Object staticNonFinalJava = "";
}
// MODULE: app(lib)
fun isCast() {
if (J.staticFinalJava is String) {
J.staticFinalJava.length
(J.staticFinalJava <!USELESS_CAST!>as String<!>).length
}
if (J.staticNonFinalJava is String) {
<!SMARTCAST_IMPOSSIBLE!>J.staticNonFinalJava<!>.length
(J.staticFinalJava as String).length
}
}
fun asCast() {
J.staticFinalJava as String
J.staticFinalJava.length
J.staticNonFinalJava as String
<!SMARTCAST_IMPOSSIBLE!>J.staticNonFinalJava<!>.length
}
@@ -0,0 +1,28 @@
// SKIP_TXT
// FILE: J.java
public class J {
public static final Object staticFinalJava = "";
public static Object staticNonFinalJava = "";
}
// FILE: Test.kt
fun isCast() {
if (J.staticFinalJava is String) {
J.staticFinalJava.length
(J.staticFinalJava <!USELESS_CAST!>as String<!>).length
}
if (J.staticNonFinalJava is String) {
<!SMARTCAST_IMPOSSIBLE!>J.staticNonFinalJava<!>.length
(J.staticFinalJava as String).length
}
}
fun asCast() {
J.staticFinalJava as String
J.staticFinalJava.length
J.staticNonFinalJava as String
<!SMARTCAST_IMPOSSIBLE!>J.staticNonFinalJava<!>.length
}
@@ -0,0 +1,28 @@
// SKIP_TXT
// FILE: J.java
public class J {
public static final Object staticFinalJava = "";
public static Object staticNonFinalJava = "";
}
// FILE: Test.kt
fun isCast() {
if (J.staticFinalJava is String) {
<!DEBUG_INFO_SMARTCAST!>J.staticFinalJava<!>.length
(J.staticFinalJava <!USELESS_CAST!>as String<!>).length
}
if (J.staticNonFinalJava is String) {
<!SMARTCAST_IMPOSSIBLE!>J.staticNonFinalJava<!>.length
(J.staticFinalJava as String).length
}
}
fun asCast() {
J.staticFinalJava as String
<!DEBUG_INFO_SMARTCAST!>J.staticFinalJava<!>.length
J.staticNonFinalJava as String
<!SMARTCAST_IMPOSSIBLE!>J.staticNonFinalJava<!>.length
}
@@ -36933,6 +36933,18 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest {
runTest("compiler/testData/diagnostics/tests/smartCasts/variables/reassignedInRhs.kt");
}
@Test
@TestMetadata("staticJavaFieldFromOtherModule.kt")
public void testStaticJavaFieldFromOtherModule() throws Exception {
runTest("compiler/testData/diagnostics/tests/smartCasts/variables/staticJavaFieldFromOtherModule.kt");
}
@Test
@TestMetadata("staticJavaFieldFromSameModule.kt")
public void testStaticJavaFieldFromSameModule() throws Exception {
runTest("compiler/testData/diagnostics/tests/smartCasts/variables/staticJavaFieldFromSameModule.kt");
}
@Test
@TestMetadata("varAsUse.kt")
public void testVarAsUse() throws Exception {