diff --git a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesForLibraryTestGenerated.java b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesForLibraryTestGenerated.java index d7ea04c1f3e..7b946ad1813 100644 --- a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesForLibraryTestGenerated.java +++ b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesForLibraryTestGenerated.java @@ -198,12 +198,6 @@ public class SymbolLightClassesForLibraryTestGenerated extends AbstractSymbolLig runTest("compiler/testData/asJava/lightClasses/SpecialAnnotationsOnAnnotationClass.kt"); } - @Test - @TestMetadata("SpecialAnnotationsOnAnnotationClass_1_6.kt") - public void testSpecialAnnotationsOnAnnotationClass_1_6() throws Exception { - runTest("compiler/testData/asJava/lightClasses/SpecialAnnotationsOnAnnotationClass_1_6.kt"); - } - @Test @TestMetadata("StubOrderForOverloads.kt") public void testStubOrderForOverloads() throws Exception { diff --git a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesLoadingForLibraryTestGenerated.java b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesLoadingForLibraryTestGenerated.java index ff27cf1062d..a547ea0aa06 100644 --- a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesLoadingForLibraryTestGenerated.java +++ b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesLoadingForLibraryTestGenerated.java @@ -24,12 +24,6 @@ public class SymbolLightClassesLoadingForLibraryTestGenerated extends AbstractSy KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/asJava/ultraLightClasses"), Pattern.compile("^(.+)\\.(kt)$"), null, true); } - @Test - @TestMetadata("annotationTargets_1_6.kt") - public void testAnnotationTargets_1_6() throws Exception { - runTest("compiler/testData/asJava/ultraLightClasses/annotationTargets_1_6.kt"); - } - @Test @TestMetadata("annotationWithSetParamPropertyModifier.kt") public void testAnnotationWithSetParamPropertyModifier() throws Exception { diff --git a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesForSourceTestGenerated.java b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesForSourceTestGenerated.java index d8fc884ccc0..b3e0d6c398e 100644 --- a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesForSourceTestGenerated.java +++ b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesForSourceTestGenerated.java @@ -198,12 +198,6 @@ public class SymbolLightClassesForSourceTestGenerated extends AbstractSymbolLigh runTest("compiler/testData/asJava/lightClasses/SpecialAnnotationsOnAnnotationClass.kt"); } - @Test - @TestMetadata("SpecialAnnotationsOnAnnotationClass_1_6.kt") - public void testSpecialAnnotationsOnAnnotationClass_1_6() throws Exception { - runTest("compiler/testData/asJava/lightClasses/SpecialAnnotationsOnAnnotationClass_1_6.kt"); - } - @Test @TestMetadata("StubOrderForOverloads.kt") public void testStubOrderForOverloads() throws Exception { diff --git a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesLoadingForSourceTestGenerated.java b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesLoadingForSourceTestGenerated.java index cde53951f91..ba70e5b03b8 100644 --- a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesLoadingForSourceTestGenerated.java +++ b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesLoadingForSourceTestGenerated.java @@ -24,12 +24,6 @@ public class SymbolLightClassesLoadingForSourceTestGenerated extends AbstractSym KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/asJava/ultraLightClasses"), Pattern.compile("^(.+)\\.(kt)$"), null, true); } - @Test - @TestMetadata("annotationTargets_1_6.kt") - public void testAnnotationTargets_1_6() throws Exception { - runTest("compiler/testData/asJava/ultraLightClasses/annotationTargets_1_6.kt"); - } - @Test @TestMetadata("annotationWithSetParamPropertyModifier.kt") public void testAnnotationWithSetParamPropertyModifier() throws Exception { diff --git a/compiler/testData/asJava/lightClasses/SpecialAnnotationsOnAnnotationClass_1_6.fir.java b/compiler/testData/asJava/lightClasses/SpecialAnnotationsOnAnnotationClass_1_6.fir.java deleted file mode 100644 index d807864a6e0..00000000000 --- a/compiler/testData/asJava/lightClasses/SpecialAnnotationsOnAnnotationClass_1_6.fir.java +++ /dev/null @@ -1,8 +0,0 @@ -@kotlin.annotation.MustBeDocumented() -@kotlin.annotation.Repeatable() -@kotlin.annotation.Retention(value = kotlin.annotation.AnnotationRetention.SOURCE) -@kotlin.annotation.Target(allowedTargets = kotlin.annotation.AnnotationTarget.TYPE_PARAMETER) -public abstract @interface Anno /* Anno*/ { - public abstract int i();// i() - -} diff --git a/compiler/testData/asJava/lightClasses/SpecialAnnotationsOnAnnotationClass_1_6.java b/compiler/testData/asJava/lightClasses/SpecialAnnotationsOnAnnotationClass_1_6.java deleted file mode 100644 index a5d57291450..00000000000 --- a/compiler/testData/asJava/lightClasses/SpecialAnnotationsOnAnnotationClass_1_6.java +++ /dev/null @@ -1,21 +0,0 @@ -@java.lang.annotation.Documented() -@java.lang.annotation.Repeatable(value = Anno.Container.class) -@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.SOURCE) -@java.lang.annotation.Target(value = {}) -@kotlin.annotation.MustBeDocumented() -@kotlin.annotation.Repeatable() -@kotlin.annotation.Retention(value = kotlin.annotation.AnnotationRetention.SOURCE) -@kotlin.annotation.Target(allowedTargets = {kotlin.annotation.AnnotationTarget.TYPE_PARAMETER, kotlin.annotation.AnnotationTarget.TYPE}) -public abstract @interface Anno /* Anno*/ { - public abstract int i();// i() - - -@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.SOURCE) -@java.lang.annotation.Target(value = {}) -@kotlin.annotation.Retention(value = kotlin.annotation.AnnotationRetention.SOURCE) -@kotlin.annotation.Target(allowedTargets = {kotlin.annotation.AnnotationTarget.TYPE_PARAMETER, kotlin.annotation.AnnotationTarget.TYPE}) -@kotlin.jvm.internal.RepeatableContainer() -public static abstract @interface Container /* Anno.Container*/ { - public abstract Anno[] value();// value() - -}} \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/SpecialAnnotationsOnAnnotationClass_1_6.kt b/compiler/testData/asJava/lightClasses/SpecialAnnotationsOnAnnotationClass_1_6.kt deleted file mode 100644 index f7230fed4e8..00000000000 --- a/compiler/testData/asJava/lightClasses/SpecialAnnotationsOnAnnotationClass_1_6.kt +++ /dev/null @@ -1,11 +0,0 @@ -// Anno -// JVM_TARGET: 1.6 -// FULL_JDK -// SKIP_SANITY_TEST -// SKIP_IDE_TEST - -@Retention(AnnotationRetention.SOURCE) -@Target(AnnotationTarget.TYPE_PARAMETER, AnnotationTarget.TYPE) -@MustBeDocumented -@Repeatable -annotation class Anno(val i: Int) diff --git a/compiler/testData/asJava/ultraLightClasses/annotationTargets_1_6.fir.java b/compiler/testData/asJava/ultraLightClasses/annotationTargets_1_6.fir.java deleted file mode 100644 index 3c463e3b328..00000000000 --- a/compiler/testData/asJava/ultraLightClasses/annotationTargets_1_6.fir.java +++ /dev/null @@ -1,11 +0,0 @@ -@kotlin.annotation.Target() -public abstract @interface A0 /* A0*/ { -} - -@kotlin.annotation.Target(allowedTargets = kotlin.annotation.AnnotationTarget.VALUE_PARAMETER) -public abstract @interface A1 /* A1*/ { -} - -@kotlin.annotation.Target(allowedTargets = kotlin.annotation.AnnotationTarget.VALUE_PARAMETER) -public abstract @interface A2 /* A2*/ { -} diff --git a/compiler/testData/asJava/ultraLightClasses/annotationTargets_1_6.java b/compiler/testData/asJava/ultraLightClasses/annotationTargets_1_6.java deleted file mode 100644 index 37de513eb55..00000000000 --- a/compiler/testData/asJava/ultraLightClasses/annotationTargets_1_6.java +++ /dev/null @@ -1,16 +0,0 @@ -@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) -@kotlin.annotation.Target() -public abstract @interface A0 /* A0*/ { -} - -@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) -@java.lang.annotation.Target(value = {java.lang.annotation.ElementType.PARAMETER}) -@kotlin.annotation.Target(allowedTargets = {kotlin.annotation.AnnotationTarget.VALUE_PARAMETER, kotlin.annotation.AnnotationTarget.TYPE}) -public abstract @interface A1 /* A1*/ { -} - -@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) -@java.lang.annotation.Target(value = {java.lang.annotation.ElementType.PARAMETER}) -@kotlin.annotation.Target(allowedTargets = {kotlin.annotation.AnnotationTarget.VALUE_PARAMETER, kotlin.annotation.AnnotationTarget.TYPE, kotlin.annotation.AnnotationTarget.TYPE_PARAMETER}) -public abstract @interface A2 /* A2*/ { -} \ No newline at end of file diff --git a/compiler/testData/asJava/ultraLightClasses/annotationTargets_1_6.kt b/compiler/testData/asJava/ultraLightClasses/annotationTargets_1_6.kt deleted file mode 100644 index 013fc1dfb9d..00000000000 --- a/compiler/testData/asJava/ultraLightClasses/annotationTargets_1_6.kt +++ /dev/null @@ -1,9 +0,0 @@ -// CHECK_BY_JAVA_FILE -// JVM_TARGET: 1.6 - -@Target() -annotation class A0 -@Target(AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.TYPE) -annotation class A1 -@Target(AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.TYPE, AnnotationTarget.TYPE_PARAMETER) -annotation class A2 diff --git a/compiler/testData/asJava/ultraLightClasses/annotationTargets_1_6.lib.java b/compiler/testData/asJava/ultraLightClasses/annotationTargets_1_6.lib.java deleted file mode 100644 index 97387fb888e..00000000000 --- a/compiler/testData/asJava/ultraLightClasses/annotationTargets_1_6.lib.java +++ /dev/null @@ -1,5 +0,0 @@ -@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) -@java.lang.annotation.Target(value = {java.lang.annotation.ElementType.PARAMETER}) -@kotlin.annotation.Target(allowedTargets = {kotlin.annotation.AnnotationTarget.VALUE_PARAMETER, kotlin.annotation.AnnotationTarget.TYPE, kotlin.annotation.AnnotationTarget.TYPE_PARAMETER}) -public abstract @interface A2 /* A2*/ { -} diff --git a/compiler/tests-gen/org/jetbrains/kotlin/asJava/CompilerLightClassTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/asJava/CompilerLightClassTestGenerated.java index ebe216b0356..f29e900b3d9 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/asJava/CompilerLightClassTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/asJava/CompilerLightClassTestGenerated.java @@ -174,11 +174,6 @@ public class CompilerLightClassTestGenerated extends AbstractCompilerLightClassT runTest("compiler/testData/asJava/lightClasses/SpecialAnnotationsOnAnnotationClass.kt"); } - @TestMetadata("SpecialAnnotationsOnAnnotationClass_1_6.kt") - public void testSpecialAnnotationsOnAnnotationClass_1_6() throws Exception { - runTest("compiler/testData/asJava/lightClasses/SpecialAnnotationsOnAnnotationClass_1_6.kt"); - } - @TestMetadata("StubOrderForOverloads.kt") public void testStubOrderForOverloads() throws Exception { runTest("compiler/testData/asJava/lightClasses/StubOrderForOverloads.kt"); diff --git a/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/ScriptingHostTest.kt b/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/ScriptingHostTest.kt index 62f2ae9ece0..eb1a2b6223f 100644 --- a/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/ScriptingHostTest.kt +++ b/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/ScriptingHostTest.kt @@ -412,9 +412,9 @@ class ScriptingHostTest : TestCase() { @Test fun testJvmTarget() { - jvmTargetTestImpl("1.6", 50) jvmTargetTestImpl("1.8", 52) jvmTargetTestImpl("9", 53) + jvmTargetTestImpl("17", 61) } @Test diff --git a/libraries/tools/kotlin-main-kts-test/test/org/jetbrains/kotlin/mainKts/test/mainKtsTest.kt b/libraries/tools/kotlin-main-kts-test/test/org/jetbrains/kotlin/mainKts/test/mainKtsTest.kt index 9bfa3b2bffe..f301dcf6a33 100644 --- a/libraries/tools/kotlin-main-kts-test/test/org/jetbrains/kotlin/mainKts/test/mainKtsTest.kt +++ b/libraries/tools/kotlin-main-kts-test/test/org/jetbrains/kotlin/mainKts/test/mainKtsTest.kt @@ -148,14 +148,20 @@ class MainKtsTest { @Test fun testCompilerOptions() { - val out = captureOut { - val res = evalFile(File("$TEST_DATA_ROOT/compile-java6.main.kts")) + val res = evalFile(File("$TEST_DATA_ROOT/compiler-options.main.kts")) assertSucceeded(res) - assertIsJava6Bytecode(res) + + // `-Xabi-stability=unstable` unsets 5th bit in `Metadata.extraInt` (see kdoc). Let's check that it had effect. + val scriptClass = res.valueOrThrow().returnValue.scriptClass!!.java + val metadata = scriptClass.declaredAnnotations.single { it.annotationClass.java.name == "kotlin.Metadata" } + val extraInt = metadata.javaClass.getDeclaredMethod("xi").invoke(metadata) as Int + assertTrue(extraInt and (1 shl 5) == 0) { + "Incorrect value of Metadata.extraInt; probably the compiler flag -Xabi-stability=unstable wasn't recognized: $extraInt" + } }.lines() - Assert.assertEquals(listOf("Hi from sub", "Hi from super", "Hi from random"), out) + assertEquals(listOf("Hi from sub", "Hi from super", "Hi from random"), out) } @Test @@ -217,21 +223,6 @@ class MainKtsTest { assertEquals("success", value) } - private fun assertIsJava6Bytecode(res: ResultWithDiagnostics) { - val scriptClassResource = res.valueOrThrow().returnValue.scriptClass!!.java.run { - getResource("$simpleName.class") - } - - DataInputStream(ByteArrayInputStream(scriptClassResource.readBytes())).use { stream -> - val header = stream.readInt() - if (0xCAFEBABE.toInt() != header) throw IOException("Invalid header class header: $header") - @Suppress("UNUSED_VARIABLE") - val minor = stream.readUnsignedShort() - val major = stream.readUnsignedShort() - Assert.assertTrue(major == 50) - } - } - private fun assertSucceeded(res: ResultWithDiagnostics) { Assert.assertTrue( "test failed:\n ${res.reports.joinToString("\n ") { it.message + if (it.exception == null) "" else ": ${it.exception}" }}", diff --git a/libraries/tools/kotlin-main-kts-test/testData/compile-java6.main.kts b/libraries/tools/kotlin-main-kts-test/testData/compiler-options.main.kts similarity index 79% rename from libraries/tools/kotlin-main-kts-test/testData/compile-java6.main.kts rename to libraries/tools/kotlin-main-kts-test/testData/compiler-options.main.kts index 45d78c35fb0..cd9ba021d6f 100644 --- a/libraries/tools/kotlin-main-kts-test/testData/compile-java6.main.kts +++ b/libraries/tools/kotlin-main-kts-test/testData/compiler-options.main.kts @@ -1,4 +1,4 @@ -@file:CompilerOptions("-jvm-target", "1.6") +@file:CompilerOptions("-jvm-target", "1.8", "-Xabi-stability=unstable") interface Test { fun print()