[FIR] Properly setup java parser version for CLI pipeline with light tree

^KT-56549 Fixed
This commit is contained in:
Dmitriy Novozhilov
2023-02-20 14:34:51 +02:00
committed by Space Team
parent f836d16dc6
commit e0fa1e64b9
12 changed files with 69 additions and 0 deletions
@@ -518,6 +518,8 @@ fun createProjectEnvironment(
project.registerService(MetadataFinderFactory::class.java, finderFactory)
project.registerService(VirtualFileFinderFactory::class.java, finderFactory)
project.setupHighestLanguageLevel()
return ProjectEnvironmentWithCoreEnvironmentEmulation(
project,
localFileSystem,
@@ -766,6 +766,12 @@ public class FirLightTreeBlackBoxModernJdkCodegenTestGenerated extends AbstractF
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/sealed/javaSealedInterface.kt");
}
@Test
@TestMetadata("kotlinExhaustiveWhenOnJavaSealedClass.kt")
public void testKotlinExhaustiveWhenOnJavaSealedClass() throws Exception {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/sealed/kotlinExhaustiveWhenOnJavaSealedClass.kt");
}
@Test
@TestMetadata("permittedSubclassesOfSealedKotlinClass.kt")
public void testPermittedSubclassesOfSealedKotlinClass() throws Exception {
@@ -340,6 +340,12 @@ public class FirPsiBlackBoxModernJdkCodegenTestGenerated extends AbstractFirPsiB
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxModernJdk/testsWithJava17/records"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("binaryRecord.kt")
public void testBinaryRecord() throws Exception {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/records/binaryRecord.kt");
}
@Test
@TestMetadata("bytecodeShapeForJava.kt")
public void testBytecodeShapeForJava() throws Exception {
@@ -760,6 +766,12 @@ public class FirPsiBlackBoxModernJdkCodegenTestGenerated extends AbstractFirPsiB
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/sealed/javaSealedInterface.kt");
}
@Test
@TestMetadata("kotlinExhaustiveWhenOnJavaSealedClass.kt")
public void testKotlinExhaustiveWhenOnJavaSealedClass() throws Exception {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/sealed/kotlinExhaustiveWhenOnJavaSealedClass.kt");
}
@Test
@TestMetadata("permittedSubclassesOfSealedKotlinClass.kt")
public void testPermittedSubclassesOfSealedKotlinClass() throws Exception {
+8
View File
@@ -0,0 +1,8 @@
$TESTDATA_DIR$/javaSealedClass/SealedJava.java
$TESTDATA_DIR$/javaSealedClass/SubSealedAJava.java
$TESTDATA_DIR$/javaSealedClass/SubSealedBJava.java
$TESTDATA_DIR$/javaSealedClass/javaSealedClass.kt
-d
$TEMP_DIR$
-language-version
2.0
+2
View File
@@ -0,0 +1,2 @@
warning: language version 2.0 is experimental, there are no backwards compatibility guarantees for new language and library features
OK
@@ -0,0 +1 @@
public abstract sealed class SealedJava permits SubSealedAJava, SubSealedBJava {}
@@ -0,0 +1 @@
public final class SubSealedAJava extends SealedJava {}
@@ -0,0 +1 @@
public non-sealed class SubSealedBJava extends SealedJava {}
@@ -0,0 +1,4 @@
fun test(sj: SealedJava) = when (sj) {
is SubSealedAJava -> "O"
is SubSealedBJava -> "K"
}
@@ -0,0 +1,21 @@
// TARGET_BACKEND: JVM_IR
// ISSUE: KT-56549
// FILE: SealedJava.java
public abstract sealed class SealedJava permits SubSealedAJava, SubSealedBJava {}
// FILE: SubSealedAJava.java
public final class SubSealedAJava extends SealedJava {}
// FILE: SubSealedBJava.java
public non-sealed class SubSealedBJava extends SealedJava {}
// FILE: main.kt
fun test(sj: SealedJava) = when (sj) {
is SubSealedAJava -> "O"
is SubSealedBJava -> "K"
}
fun box(): String {
return test(SubSealedAJava()) + test(SubSealedBJava())
}
@@ -766,6 +766,12 @@ public class IrBlackBoxModernJdkCodegenTestGenerated extends AbstractIrBlackBoxC
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/sealed/javaSealedInterface.kt");
}
@Test
@TestMetadata("kotlinExhaustiveWhenOnJavaSealedClass.kt")
public void testKotlinExhaustiveWhenOnJavaSealedClass() throws Exception {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/sealed/kotlinExhaustiveWhenOnJavaSealedClass.kt");
}
@Test
@TestMetadata("permittedSubclassesOfSealedKotlinClass.kt")
public void testPermittedSubclassesOfSealedKotlinClass() throws Exception {
@@ -680,6 +680,11 @@ public class CliTestGenerated extends AbstractCliTest {
runTest("compiler/testData/cli/jvm/irSupported.args");
}
@TestMetadata("javaSealedClass.args")
public void testJavaSealedClass() throws Exception {
runTest("compiler/testData/cli/jvm/javaSealedClass.args");
}
@TestMetadata("javaSrcWrongPackage.args")
public void testJavaSrcWrongPackage() throws Exception {
runTest("compiler/testData/cli/jvm/javaSrcWrongPackage.args");