Disable some features when LV=1.1 API=1.0.

Feature list:
 - bound callable references
 - local delegated properties
 - coroutines.

#KT-16017 Fixed
This commit is contained in:
Stanislav Erokhin
2017-02-13 09:48:55 +03:00
parent be0211cd49
commit b6fa10cf9e
43 changed files with 232 additions and 75 deletions
+4 -1
View File
@@ -1,4 +1,7 @@
compiler/testData/cli/jvm/apiVersion.kt:2:5: error: the feature "bound callable references" is only available since API version 1.1
""::class.isInstance(42)
^
compiler/testData/cli/jvm/apiVersion.kt:2:15: error: unresolved reference: isInstance
""::class.isInstance(42)
^
COMPILATION_ERROR
COMPILATION_ERROR
+7
View File
@@ -0,0 +1,7 @@
$TESTDATA_DIR$/apiVersion1.0.kt
-d
$TEMP_DIR$
-language-version
1.1
-api-version
1.0
+16
View File
@@ -0,0 +1,16 @@
typealias Foo = Int
sealed class A
data class B(val foo: Int): A()
inline val f get() = ""
suspend fun test() {
""::class
""::toString
Foo::class
Foo::toString
val b by lazy { "" }
}
+13
View File
@@ -0,0 +1,13 @@
compiler/testData/cli/jvm/apiVersion1.0.kt:8:1: error: the feature "coroutines" is only available since API version 1.1 (see: https://kotlinlang.org/docs/diagnostics/experimental-coroutines)
suspend fun test() {
^
compiler/testData/cli/jvm/apiVersion1.0.kt:9:5: error: the feature "bound callable references" is only available since API version 1.1
""::class
^
compiler/testData/cli/jvm/apiVersion1.0.kt:10:5: error: the feature "bound callable references" is only available since API version 1.1
""::toString
^
compiler/testData/cli/jvm/apiVersion1.0.kt:15:11: error: the feature "local delegated properties" is only available since API version 1.1
val b by lazy { "" }
^
COMPILATION_ERROR
+4 -1
View File
@@ -1,4 +1,7 @@
compiler/testData/cli/jvm/apiVersion.kt:2:5: error: the feature "bound callable references" is only available since API version 1.1
""::class.isInstance(42)
^
compiler/testData/cli/jvm/apiVersion.kt:2:15: error: unresolved reference: isInstance
""::class.isInstance(42)
^
COMPILATION_ERROR
COMPILATION_ERROR
+1
View File
@@ -0,0 +1 @@
suspend fun simple() = 5
+4
View File
@@ -0,0 +1,4 @@
$TESTDATA_DIR$/coroutines.kt
-d
$TEMP_DIR$
-Xcoroutines=enable
+1
View File
@@ -0,0 +1 @@
OK
+4
View File
@@ -0,0 +1,4 @@
$TESTDATA_DIR$/coroutines.kt
-d
$TEMP_DIR$
-Xcoroutines=error
+4
View File
@@ -0,0 +1,4 @@
compiler/testData/cli/jvm/coroutines.kt:1:1: error: the feature "coroutines" is experimental and disabled (see: https://kotlinlang.org/docs/diagnostics/experimental-coroutines)
suspend fun simple() = 5
^
COMPILATION_ERROR
+4
View File
@@ -0,0 +1,4 @@
$TESTDATA_DIR$/coroutines.kt
-d
$TEMP_DIR$
-Xcoroutines=warn
+4
View File
@@ -0,0 +1,4 @@
compiler/testData/cli/jvm/coroutines.kt:1:1: warning: the feature "coroutines" is experimental (see: https://kotlinlang.org/docs/diagnostics/experimental-coroutines)
suspend fun simple() = 5
^
OK
+2 -2
View File
@@ -1,10 +1,10 @@
compiler/testData/cli/jvm/languageVersion.kt:5:17: error: this type is sealed, so it can be inherited by only its own nested classes or objects
class Derived : Base()
^
compiler/testData/cli/jvm/languageVersion.kt:8:5: error: the feature is only available since Kotlin 1.1: bound callable references
compiler/testData/cli/jvm/languageVersion.kt:8:5: error: the feature "bound callable references" is only available since language version 1.1
""::class.isInstance(42)
^
compiler/testData/cli/jvm/languageVersion.kt:8:15: error: unresolved reference: isInstance
""::class.isInstance(42)
^
COMPILATION_ERROR
COMPILATION_ERROR
+1 -1
View File
@@ -1,4 +1,4 @@
compiler/testData/cli/jvm/unsupportedTypeAlias.kt:3:1: error: the feature is only available since Kotlin 1.1: type aliases
compiler/testData/cli/jvm/unsupportedTypeAlias.kt:3:1: error: the feature "type aliases" is only available since language version 1.1
typealias Unused = String
^
COMPILATION_ERROR