Introduce "-api-version" CLI option
The `@SinceKotlin("X.Y.Z")` annotation now hides a particular declaration from
resolution when the API version specified by the `-api-version` option is
_less_ than X.Y.Z. The comparison is performed as for versions in Maven:
MavenComparableVersion is in fact a copy of
org.apache.maven.artifact.versioning.ComparableVersion.
Also support "!API_VERSION" directive in diagnostic tests
#KT-14298 Fixed
This commit is contained in:
+7
@@ -4,6 +4,13 @@ package org.jetbrains.kotlin.gradle.dsl
|
||||
|
||||
interface KotlinJsOptions {
|
||||
|
||||
/**
|
||||
* Allow to use declarations only from the specified version of bundled libraries
|
||||
* Possible values: "1.0", "1.1"
|
||||
* Default value: "1.1"
|
||||
*/
|
||||
var apiVersion: kotlin.String
|
||||
|
||||
/**
|
||||
* Generate kjsm-files (for creating libraries)
|
||||
* Default value: true
|
||||
|
||||
+7
@@ -4,6 +4,11 @@ package org.jetbrains.kotlin.gradle.dsl
|
||||
|
||||
internal abstract class KotlinJsOptionsBase : org.jetbrains.kotlin.gradle.dsl.KotlinJsOptions {
|
||||
|
||||
private var apiVersionField: kotlin.String? = null
|
||||
override var apiVersion: kotlin.String
|
||||
get() = apiVersionField ?: "1.1"
|
||||
set(value) { apiVersionField = value }
|
||||
|
||||
private var kjsmField: kotlin.Boolean? = null
|
||||
override var kjsm: kotlin.Boolean
|
||||
get() = kjsmField ?: true
|
||||
@@ -60,6 +65,7 @@ internal abstract class KotlinJsOptionsBase : org.jetbrains.kotlin.gradle.dsl.Ko
|
||||
set(value) { verboseField = value }
|
||||
|
||||
open fun updateArguments(args: org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments) {
|
||||
apiVersionField?.let { args.apiVersion = it }
|
||||
kjsmField?.let { args.kjsm = it }
|
||||
languageVersionField?.let { args.languageVersion = it }
|
||||
mainField?.let { args.main = it }
|
||||
@@ -75,6 +81,7 @@ internal abstract class KotlinJsOptionsBase : org.jetbrains.kotlin.gradle.dsl.Ko
|
||||
}
|
||||
|
||||
internal fun org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments.fillDefaultValues() {
|
||||
apiVersion = "1.1"
|
||||
kjsm = true
|
||||
languageVersion = "1.1"
|
||||
main = "noCall"
|
||||
|
||||
+7
@@ -4,6 +4,13 @@ package org.jetbrains.kotlin.gradle.dsl
|
||||
|
||||
interface KotlinJvmOptions {
|
||||
|
||||
/**
|
||||
* Allow to use declarations only from the specified version of bundled libraries
|
||||
* Possible values: "1.0", "1.1"
|
||||
* Default value: "1.1"
|
||||
*/
|
||||
var apiVersion: kotlin.String
|
||||
|
||||
/**
|
||||
* Include Kotlin runtime in to resulting .jar
|
||||
* Default value: false
|
||||
|
||||
+7
@@ -4,6 +4,11 @@ package org.jetbrains.kotlin.gradle.dsl
|
||||
|
||||
internal abstract class KotlinJvmOptionsBase : org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions {
|
||||
|
||||
private var apiVersionField: kotlin.String? = null
|
||||
override var apiVersion: kotlin.String
|
||||
get() = apiVersionField ?: "1.1"
|
||||
set(value) { apiVersionField = value }
|
||||
|
||||
private var includeRuntimeField: kotlin.Boolean? = null
|
||||
override var includeRuntime: kotlin.Boolean
|
||||
get() = includeRuntimeField ?: false
|
||||
@@ -50,6 +55,7 @@ internal abstract class KotlinJvmOptionsBase : org.jetbrains.kotlin.gradle.dsl.K
|
||||
set(value) { verboseField = value }
|
||||
|
||||
open fun updateArguments(args: org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments) {
|
||||
apiVersionField?.let { args.apiVersion = it }
|
||||
includeRuntimeField?.let { args.includeRuntime = it }
|
||||
jdkHomeField?.let { args.jdkHome = it }
|
||||
jvmTargetField?.let { args.jvmTarget = it }
|
||||
@@ -63,6 +69,7 @@ internal abstract class KotlinJvmOptionsBase : org.jetbrains.kotlin.gradle.dsl.K
|
||||
}
|
||||
|
||||
internal fun org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments.fillDefaultValues() {
|
||||
apiVersion = "1.1"
|
||||
includeRuntime = false
|
||||
jdkHome = null
|
||||
jvmTarget = "1.6"
|
||||
|
||||
Reference in New Issue
Block a user