diff --git a/compiler/testData/integration/ant/jvm/languageVersion/build.log.expected b/compiler/testData/integration/ant/jvm/languageVersion/build.log.expected
new file mode 100644
index 00000000000..5c07676d562
--- /dev/null
+++ b/compiler/testData/integration/ant/jvm/languageVersion/build.log.expected
@@ -0,0 +1,17 @@
+OUT:
+Buildfile: [TestData]/build.xml
+
+build:
+ [kotlinc] Compiling [[TestData]/main.kt] => [[Temp]/hello.jar]
+ [kotlinc] [TestData]/main.kt:3:17: error: this type is sealed, so it can be inherited by only its own nested classes or objects
+ [kotlinc] class Derived : Base()
+ [kotlinc] ^
+
+ERR:
+
+BUILD FAILED
+[TestData]/build.xml:5: Compile failed; see the compiler error output for details.
+
+Total time: [time]
+
+Return code: 1
diff --git a/compiler/testData/integration/ant/jvm/languageVersion/build.xml b/compiler/testData/integration/ant/jvm/languageVersion/build.xml
new file mode 100644
index 00000000000..7f8229c02e5
--- /dev/null
+++ b/compiler/testData/integration/ant/jvm/languageVersion/build.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/compiler/testData/integration/ant/jvm/languageVersion/main.kt b/compiler/testData/integration/ant/jvm/languageVersion/main.kt
new file mode 100644
index 00000000000..a4c2f854f25
--- /dev/null
+++ b/compiler/testData/integration/ant/jvm/languageVersion/main.kt
@@ -0,0 +1,3 @@
+sealed class Base
+
+class Derived : Base()
diff --git a/compiler/tests/org/jetbrains/kotlin/integration/AntTaskTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/integration/AntTaskTestGenerated.java
index f56299fe74c..e38256eb99b 100644
--- a/compiler/tests/org/jetbrains/kotlin/integration/AntTaskTestGenerated.java
+++ b/compiler/tests/org/jetbrains/kotlin/integration/AntTaskTestGenerated.java
@@ -77,6 +77,12 @@ public class AntTaskTestGenerated extends AbstractAntTaskTest {
doTest(fileName);
}
+ @TestMetadata("languageVersion")
+ public void testLanguageVersion() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/integration/ant/jvm/languageVersion/");
+ doTest(fileName);
+ }
+
@TestMetadata("mainInFiles")
public void testMainInFiles() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/integration/ant/jvm/mainInFiles/");
diff --git a/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt b/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt
index 41cb816116c..420eea88f16 100644
--- a/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt
+++ b/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt
@@ -207,6 +207,7 @@ open class KotlinCompile() : AbstractKotlinCompile() {
args.noCallAssertions = kotlinOptions.noCallAssertions
args.noParamAssertions = kotlinOptions.noParamAssertions
args.moduleName = kotlinOptions.moduleName ?: extraProperties.getOrNull("defaultModuleName")
+ args.languageVersion = kotlinOptions.languageVersion
fun addFriendPathForTestTask(taskName: String) {
logger.kotlinDebug("try to determine the output directory of corresponding $taskName task")
diff --git a/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/BasicKotlinGradlePluginIT.kt b/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/BasicKotlinGradlePluginIT.kt
index 7aa2ebce9f5..17edd49d31e 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/BasicKotlinGradlePluginIT.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/BasicKotlinGradlePluginIT.kt
@@ -92,6 +92,14 @@ class SimpleKotlinGradleIT : BaseGradleIT() {
}
}
+ @Test
+ fun testLanguageVersion() {
+ Project("languageVersion", "1.6").build("build") {
+ assertFailed()
+ assertContains("This type is sealed")
+ }
+ }
+
@Test
fun testGradleSubplugin() {
val project = Project("kotlinGradleSubplugin", "1.6")
diff --git a/libraries/tools/kotlin-gradle-plugin/src/test/resources/testProject/languageVersion/build.gradle b/libraries/tools/kotlin-gradle-plugin/src/test/resources/testProject/languageVersion/build.gradle
new file mode 100644
index 00000000000..146fc6e2804
--- /dev/null
+++ b/libraries/tools/kotlin-gradle-plugin/src/test/resources/testProject/languageVersion/build.gradle
@@ -0,0 +1,40 @@
+buildscript {
+ repositories {
+ mavenCentral()
+ maven {
+ url 'file://' + pathToKotlinPlugin
+ }
+ }
+ dependencies {
+ classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.1-SNAPSHOT'
+ }
+}
+
+apply plugin: "kotlin"
+
+sourceSets {
+ main {
+ kotlin {
+ srcDir 'src'
+ }
+ }
+}
+
+repositories {
+ maven {
+ url 'file://' + pathToKotlinPlugin
+ }
+ mavenCentral()
+}
+
+dependencies {
+ compile 'org.jetbrains.kotlin:kotlin-stdlib:1.1-SNAPSHOT'
+}
+
+compileKotlin {
+ kotlinOptions.languageVersion = "1.0"
+}
+
+task wrapper(type: Wrapper) {
+ gradleVersion = "1.4"
+}
diff --git a/libraries/tools/kotlin-gradle-plugin/src/test/resources/testProject/languageVersion/src/helloWorld.kt b/libraries/tools/kotlin-gradle-plugin/src/test/resources/testProject/languageVersion/src/helloWorld.kt
new file mode 100644
index 00000000000..a4c2f854f25
--- /dev/null
+++ b/libraries/tools/kotlin-gradle-plugin/src/test/resources/testProject/languageVersion/src/helloWorld.kt
@@ -0,0 +1,3 @@
+sealed class Base
+
+class Derived : Base()
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-languageVersion/invoker.properties b/libraries/tools/kotlin-maven-plugin-test/src/it/test-languageVersion/invoker.properties
new file mode 100644
index 00000000000..c21e972fc6b
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-languageVersion/invoker.properties
@@ -0,0 +1 @@
+invoker.buildResult = failure
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-languageVersion/pom.xml b/libraries/tools/kotlin-maven-plugin-test/src/it/test-languageVersion/pom.xml
new file mode 100644
index 00000000000..617b0a1f02b
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-languageVersion/pom.xml
@@ -0,0 +1,69 @@
+
+
+ 4.0.0
+
+ org.jetbrains.kotlin
+ test-languageVersion
+ 1.0-SNAPSHOT
+
+
+
+ junit
+ junit
+ 4.9
+
+
+ org.jetbrains.kotlin
+ kotlin-runtime
+ ${kotlin.version}
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 2.3.2
+
+ 1.6
+ 1.6
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+ 2.1.2
+
+
+
+
+ ${project.basedir}/src/main/kotlin
+
+
+ kotlin-maven-plugin
+ org.jetbrains.kotlin
+ ${kotlin.version}
+
+
+ compile
+ process-sources
+
+ compile
+
+
+
+
+
+ -language-version
+ 1.0
+
+
+
+
+
+
+
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-languageVersion/src/main/kotlin/main.kt b/libraries/tools/kotlin-maven-plugin-test/src/it/test-languageVersion/src/main/kotlin/main.kt
new file mode 100644
index 00000000000..a4c2f854f25
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-languageVersion/src/main/kotlin/main.kt
@@ -0,0 +1,3 @@
+sealed class Base
+
+class Derived : Base()
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-languageVersion/verify.bsh b/libraries/tools/kotlin-maven-plugin-test/src/it/test-languageVersion/verify.bsh
new file mode 100644
index 00000000000..d5c0ef985e5
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-languageVersion/verify.bsh
@@ -0,0 +1,4 @@
+source(new File(basedir, "../../../verify-common.bsh").getAbsolutePath());
+
+assertBuildLogHasLine("[INFO] BUILD FAILURE");
+assertBuildLogHasLineThatContains("This type is sealed");