diff --git a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArguments.java b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArguments.java index 06a4de6374a..e2d7e6de232 100644 --- a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArguments.java +++ b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArguments.java @@ -111,9 +111,6 @@ public class K2JVMCompilerArguments extends CommonCompilerArguments { @Argument(value = "Xload-builtins-from-dependencies", description = "Load definitions of built-in declarations from module dependencies, instead of from the compiler") public boolean loadBuiltInsFromDependencies; - @Argument(value = "Xinterface-compatibility", description = "Generate DefaultImpls classes for interfaces in JVM target bytecode version 1.8 for binary compatibility with 1.6") - public boolean interfaceCompatibility; - // Paths to output directories for friend modules. public String[] friendPaths; diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.kt index 3fcd8d48b4e..ea67161e5e8 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.kt @@ -133,7 +133,12 @@ class K2JVMCompiler : CLICompiler() { if (arguments.jvmTarget != null) { val jvmTarget = JvmTarget.fromString(arguments.jvmTarget) if (jvmTarget != null) { - configuration.put(JVMConfigurationKeys.JVM_TARGET, jvmTarget) + if (jvmTarget == JvmTarget.JVM_1_8) { + val warning = "The -jvm-target option has no effect yet" + messageCollector.report(CompilerMessageSeverity.WARNING, warning, CompilerMessageLocation.NO_LOCATION) + } + //use default target for now + //configuration.put(JVMConfigurationKeys.JVM_TARGET, jvmTarget) } else { val errorMessage = "Unknown JVM target version: ${arguments.jvmTarget}\n" + @@ -144,17 +149,6 @@ class K2JVMCompiler : CLICompiler() { configuration.put(JVMConfigurationKeys.PARAMETERS_METADATA, arguments.javaParameters) - if (arguments.interfaceCompatibility) { - val target = configuration.get(JVMConfigurationKeys.JVM_TARGET) - if (target != JvmTarget.JVM_1_8) { - val errorMessage = "The -Xinterface-compatibility option has effect only for JVM target bytecode version 1.8." - messageCollector.report(CompilerMessageSeverity.WARNING, errorMessage, CompilerMessageLocation.NO_LOCATION) - } - else { - configuration.put(JVMConfigurationKeys.INTERFACE_COMPATIBILITY, true) - } - } - putAdvancedOptions(configuration, arguments) messageCollector.report(CompilerMessageSeverity.LOGGING, "Configuring the compilation environment", CompilerMessageLocation.NO_LOCATION) diff --git a/compiler/testData/cli/jvm/extraHelp.out b/compiler/testData/cli/jvm/extraHelp.out index 981dd94328f..13b3314324e 100644 --- a/compiler/testData/cli/jvm/extraHelp.out +++ b/compiler/testData/cli/jvm/extraHelp.out @@ -12,7 +12,6 @@ where advanced options include: -Xadd-compiler-builtins Add definitions of built-in declarations to the compilation classpath (useful with -no-stdlib) -Xload-builtins-from-dependencies Load definitions of built-in declarations from module dependencies, instead of from the compiler - -Xinterface-compatibility Generate DefaultImpls classes for interfaces in JVM target bytecode version 1.8 for binary compatibility with 1.6 -Xno-inline Disable method inlining -Xrepeat Repeat compilation (for performance analysis) -Xplugin Load plugins from the given classpath diff --git a/compiler/testData/cli/jvm/jvm8Target.args b/compiler/testData/cli/jvm/jvm8Target.args new file mode 100644 index 00000000000..87009b6534a --- /dev/null +++ b/compiler/testData/cli/jvm/jvm8Target.args @@ -0,0 +1,6 @@ +$TESTDATA_DIR$/jvm8Target.kt +-d +$TEMP_DIR$ +-jvm-target +1.8 + diff --git a/compiler/testData/cli/jvm/jvm8Target.kt b/compiler/testData/cli/jvm/jvm8Target.kt new file mode 100644 index 00000000000..9c8ea32d77a --- /dev/null +++ b/compiler/testData/cli/jvm/jvm8Target.kt @@ -0,0 +1,7 @@ +interface A { + fun test() = "OK" +} + +fun main(args: Array) { + println(object : A {}.test()) +} \ No newline at end of file diff --git a/compiler/testData/cli/jvm/jvm8Target.out b/compiler/testData/cli/jvm/jvm8Target.out new file mode 100644 index 00000000000..05e7e8e7841 --- /dev/null +++ b/compiler/testData/cli/jvm/jvm8Target.out @@ -0,0 +1,2 @@ +warning: the -jvm-target option has no effect yet +OK \ No newline at end of file diff --git a/compiler/testData/compileKotlinAgainstCustomBinaries/target6Inheritance/main.kt b/compiler/testData/compileKotlinAgainstCustomBinaries/target6Inheritance/main.kt deleted file mode 100644 index 26fd28a41ed..00000000000 --- a/compiler/testData/compileKotlinAgainstCustomBinaries/target6Inheritance/main.kt +++ /dev/null @@ -1,13 +0,0 @@ -interface Z2 : Z { - -} - -class Z2Class : Z { - override fun test() { - - } -} - -fun main(args: Array) { - -} diff --git a/compiler/testData/compileKotlinAgainstCustomBinaries/target6Inheritance/output.txt b/compiler/testData/compileKotlinAgainstCustomBinaries/target6Inheritance/output.txt deleted file mode 100644 index defb26f4c33..00000000000 --- a/compiler/testData/compileKotlinAgainstCustomBinaries/target6Inheritance/output.txt +++ /dev/null @@ -1,10 +0,0 @@ -compiler/testData/compileKotlinAgainstCustomBinaries/target6Inheritance/main.kt:1:1: error: compiling 'Z2' to JVM 1.8, but its superinterface 'Z' was compiled for JVM 1.6. Method implementation inheritance is restricted for such cases. Please make explicit overrides (abstract or concrete) for the following non-abstract members of 'Z': -val z: String -fun test(): Unit -interface Z2 : Z { -^ -compiler/testData/compileKotlinAgainstCustomBinaries/target6Inheritance/main.kt:5:1: error: compiling 'Z2Class' to JVM 1.8, but its superinterface 'Z' was compiled for JVM 1.6. Method implementation inheritance is restricted for such cases. Please make explicit overrides (abstract or concrete) for the following non-abstract members of 'Z': -val z: String -class Z2Class : Z { -^ -COMPILATION_ERROR \ No newline at end of file diff --git a/compiler/testData/compileKotlinAgainstCustomBinaries/target6Inheritance/target6.kt b/compiler/testData/compileKotlinAgainstCustomBinaries/target6Inheritance/target6.kt deleted file mode 100644 index 99accaebed7..00000000000 --- a/compiler/testData/compileKotlinAgainstCustomBinaries/target6Inheritance/target6.kt +++ /dev/null @@ -1,9 +0,0 @@ -interface Z { - - fun test() { - - } - - val z: String - get() = "OK" -} \ No newline at end of file diff --git a/compiler/testData/compileKotlinAgainstCustomBinaries/target6MultiInheritance/main.kt b/compiler/testData/compileKotlinAgainstCustomBinaries/target6MultiInheritance/main.kt deleted file mode 100644 index a7a366f9219..00000000000 --- a/compiler/testData/compileKotlinAgainstCustomBinaries/target6MultiInheritance/main.kt +++ /dev/null @@ -1,14 +0,0 @@ -interface Z3 : Z, Z2 { - -} - -class Z3Class : Z, Z2 { - override fun test() { - - } -} - - -fun main(args: Array) { - -} diff --git a/compiler/testData/compileKotlinAgainstCustomBinaries/target6MultiInheritance/output.txt b/compiler/testData/compileKotlinAgainstCustomBinaries/target6MultiInheritance/output.txt deleted file mode 100644 index c99ef93f615..00000000000 --- a/compiler/testData/compileKotlinAgainstCustomBinaries/target6MultiInheritance/output.txt +++ /dev/null @@ -1,13 +0,0 @@ -compiler/testData/compileKotlinAgainstCustomBinaries/target6MultiInheritance/main.kt:1:1: error: compiling 'Z3' to JVM 1.8, but its superinterface 'Z' was compiled for JVM 1.6. Method implementation inheritance is restricted for such cases. Please make explicit overrides (abstract or concrete) for the following non-abstract members of 'Z': -fun test(): Unit -interface Z3 : Z, Z2 { -^ -compiler/testData/compileKotlinAgainstCustomBinaries/target6MultiInheritance/main.kt:1:1: error: compiling 'Z3' to JVM 1.8, but its superinterface 'Z2' was compiled for JVM 1.6. Method implementation inheritance is restricted for such cases. Please make explicit overrides (abstract or concrete) for the following non-abstract members of 'Z2': -val z: String -interface Z3 : Z, Z2 { -^ -compiler/testData/compileKotlinAgainstCustomBinaries/target6MultiInheritance/main.kt:5:1: error: compiling 'Z3Class' to JVM 1.8, but its superinterface 'Z2' was compiled for JVM 1.6. Method implementation inheritance is restricted for such cases. Please make explicit overrides (abstract or concrete) for the following non-abstract members of 'Z2': -val z: String -class Z3Class : Z, Z2 { -^ -COMPILATION_ERROR \ No newline at end of file diff --git a/compiler/testData/compileKotlinAgainstCustomBinaries/target6MultiInheritance/target6.kt b/compiler/testData/compileKotlinAgainstCustomBinaries/target6MultiInheritance/target6.kt deleted file mode 100644 index 1b8eee9b4da..00000000000 --- a/compiler/testData/compileKotlinAgainstCustomBinaries/target6MultiInheritance/target6.kt +++ /dev/null @@ -1,13 +0,0 @@ -interface Z { - - fun test() { - - } - -} - -interface Z2 { - - val z: String - get() = "OK" -} \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/kotlin/cli/CliTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/cli/CliTestGenerated.java index dddac588816..081ba0e779f 100644 --- a/compiler/tests/org/jetbrains/kotlin/cli/CliTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/cli/CliTestGenerated.java @@ -176,6 +176,12 @@ public class CliTestGenerated extends AbstractCliTest { doJvmTest(fileName); } + @TestMetadata("jvm8Target.args") + public void testJvm8Target() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/cli/jvm/jvm8Target.args"); + doJvmTest(fileName); + } + @TestMetadata("kotlinPackage.args") public void testKotlinPackage() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/cli/jvm/kotlinPackage.args"); diff --git a/compiler/tests/org/jetbrains/kotlin/jvm/compiler/CompileKotlinAgainstCustomBinariesTest.java b/compiler/tests/org/jetbrains/kotlin/jvm/compiler/CompileKotlinAgainstCustomBinariesTest.java index 9d4c4c6c306..2901560d2a8 100644 --- a/compiler/tests/org/jetbrains/kotlin/jvm/compiler/CompileKotlinAgainstCustomBinariesTest.java +++ b/compiler/tests/org/jetbrains/kotlin/jvm/compiler/CompileKotlinAgainstCustomBinariesTest.java @@ -546,24 +546,6 @@ public class CompileKotlinAgainstCustomBinariesTest extends TestCaseWithTmpdir { ); } - public void testTarget6Inheritance() throws Exception { - target6Inheritance(); - } - - public void testTarget6MultiInheritance() throws Exception { - target6Inheritance(); - } - - private void target6Inheritance() { - compileKotlin("target6.kt", tmpdir); - - Pair outputMain = compileKotlin("main.kt", tmpdir, Arrays.asList("-jvm-target", "1.8"), tmpdir); - - KotlinTestUtils.assertEqualsToFile( - new File(getTestDataDirectory(), "output.txt"), normalizeOutput(outputMain) - ); - } - public void testTypeAliasesAreInvisibleInCompatibilityMode() { compileKotlin("typeAliases.kt", tmpdir);