Use OPT_IN instead of EXPERIMENTAL in diagnostic names
This commit is contained in:
committed by
TeamCityServer
parent
2f07589b42
commit
3febabe977
@@ -111,29 +111,29 @@ package usage3
|
||||
|
||||
import api.*
|
||||
|
||||
@<!EXPERIMENTAL_API_USAGE!>EAnno<!> fun function() {}
|
||||
@<!OPT_IN_USAGE!>EAnno<!> fun function() {}
|
||||
|
||||
fun parameter(@<!EXPERIMENTAL_API_USAGE!>EAnno<!> p: String) {}
|
||||
fun parameter(@<!OPT_IN_USAGE!>EAnno<!> p: String) {}
|
||||
|
||||
fun parameterType(p: <!WRONG_ANNOTATION_TARGET!>@<!EXPERIMENTAL_API_USAGE!>EAnno<!><!> String) {}
|
||||
fun parameterType(p: <!WRONG_ANNOTATION_TARGET!>@<!OPT_IN_USAGE!>EAnno<!><!> String) {}
|
||||
|
||||
fun returnType(): <!WRONG_ANNOTATION_TARGET!>@<!EXPERIMENTAL_API_USAGE!>EAnno<!><!> Unit {}
|
||||
fun returnType(): <!WRONG_ANNOTATION_TARGET!>@<!OPT_IN_USAGE!>EAnno<!><!> Unit {}
|
||||
|
||||
@<!EXPERIMENTAL_API_USAGE!>EAnno<!> val property = ""
|
||||
@<!OPT_IN_USAGE!>EAnno<!> val property = ""
|
||||
|
||||
@<!EXPERIMENTAL_API_USAGE!>EAnno<!> typealias Typealias = Unit
|
||||
@<!OPT_IN_USAGE!>EAnno<!> typealias Typealias = Unit
|
||||
|
||||
@<!EXPERIMENTAL_API_USAGE!>EAnno<!> class Klass
|
||||
@<!OPT_IN_USAGE!>EAnno<!> class Klass
|
||||
|
||||
annotation class AnnotationArgument(val p: <!EXPERIMENTAL_API_USAGE!>EAnno<!>)
|
||||
annotation class AnnotationArgument(val p: <!OPT_IN_USAGE!>EAnno<!>)
|
||||
|
||||
fun insideBody() {
|
||||
@<!EXPERIMENTAL_API_USAGE!>EAnno<!> fun local() {}
|
||||
@<!OPT_IN_USAGE!>EAnno<!> fun local() {}
|
||||
}
|
||||
|
||||
fun inDefaultArgument(f: () -> Unit = @<!EXPERIMENTAL_API_USAGE!>EAnno<!> fun() {}) {}
|
||||
fun inDefaultArgument(f: () -> Unit = @<!OPT_IN_USAGE!>EAnno<!> fun() {}) {}
|
||||
|
||||
val inProperty = @<!EXPERIMENTAL_API_USAGE!>EAnno<!> fun() {}
|
||||
val inProperty = @<!OPT_IN_USAGE!>EAnno<!> fun() {}
|
||||
|
||||
val inPropertyAccessor: () -> Unit
|
||||
get() = @<!EXPERIMENTAL_API_USAGE!>EAnno<!> fun() {}
|
||||
get() = @<!OPT_IN_USAGE!>EAnno<!> fun() {}
|
||||
|
||||
+11
-11
@@ -19,10 +19,10 @@ package usage
|
||||
import api.*
|
||||
|
||||
fun use1() {
|
||||
<!EXPERIMENTAL_API_USAGE!>f<!>()
|
||||
<!OPT_IN_USAGE!>f<!>()
|
||||
}
|
||||
|
||||
val use2 = <!EXPERIMENTAL_API_USAGE!>f<!>()
|
||||
val use2 = <!OPT_IN_USAGE!>f<!>()
|
||||
|
||||
// FILE: inline-usage.kt
|
||||
|
||||
@@ -31,20 +31,20 @@ package usage
|
||||
import api.*
|
||||
|
||||
inline fun inlineUse1() {
|
||||
<!EXPERIMENTAL_API_USAGE!>f<!>()
|
||||
<!OPT_IN_USAGE!>f<!>()
|
||||
}
|
||||
|
||||
inline var inlineUse2: Unit
|
||||
get() {
|
||||
<!EXPERIMENTAL_API_USAGE!>f<!>()
|
||||
<!OPT_IN_USAGE!>f<!>()
|
||||
}
|
||||
set(value) {
|
||||
<!EXPERIMENTAL_API_USAGE!>f<!>()
|
||||
<!OPT_IN_USAGE!>f<!>()
|
||||
}
|
||||
|
||||
var inlineUse3: Unit
|
||||
inline get() {
|
||||
<!EXPERIMENTAL_API_USAGE!>f<!>()
|
||||
<!OPT_IN_USAGE!>f<!>()
|
||||
}
|
||||
@API
|
||||
inline set(value) {
|
||||
@@ -63,23 +63,23 @@ package usage
|
||||
import api.*
|
||||
|
||||
private inline fun privateInline1() {
|
||||
<!EXPERIMENTAL_API_USAGE!>f<!>()
|
||||
<!OPT_IN_USAGE!>f<!>()
|
||||
}
|
||||
|
||||
internal inline fun privateInline2() {
|
||||
<!EXPERIMENTAL_API_USAGE!>f<!>()
|
||||
<!OPT_IN_USAGE!>f<!>()
|
||||
}
|
||||
|
||||
private inline var privateInline3: Unit
|
||||
get() {
|
||||
<!EXPERIMENTAL_API_USAGE!>f<!>()
|
||||
<!OPT_IN_USAGE!>f<!>()
|
||||
}
|
||||
set(value) {
|
||||
<!EXPERIMENTAL_API_USAGE!>f<!>()
|
||||
<!OPT_IN_USAGE!>f<!>()
|
||||
}
|
||||
|
||||
internal class InternalClass {
|
||||
inline fun privateInline4() {
|
||||
<!EXPERIMENTAL_API_USAGE!>f<!>()
|
||||
<!OPT_IN_USAGE!>f<!>()
|
||||
}
|
||||
}
|
||||
|
||||
+6
-6
@@ -80,10 +80,10 @@ package usage3
|
||||
import api.*
|
||||
|
||||
fun use() {
|
||||
val c: <!EXPERIMENTAL_API_USAGE!>C<!> = <!EXPERIMENTAL_API_USAGE!>C<!>()
|
||||
<!EXPERIMENTAL_API_USAGE!>c<!>.<!EXPERIMENTAL_API_USAGE!>function<!>()
|
||||
<!EXPERIMENTAL_API_USAGE!>c<!>.<!EXPERIMENTAL_API_USAGE!>property<!>
|
||||
<!EXPERIMENTAL_API_USAGE!>C<!>.<!EXPERIMENTAL_API_USAGE!>Nested<!>()
|
||||
<!EXPERIMENTAL_API_USAGE!>c<!>.<!EXPERIMENTAL_API_USAGE!>Inner<!>()
|
||||
<!EXPERIMENTAL_API_USAGE!>c<!>.<!EXPERIMENTAL_API_USAGE!>extension<!>()
|
||||
val c: <!OPT_IN_USAGE!>C<!> = <!OPT_IN_USAGE!>C<!>()
|
||||
<!OPT_IN_USAGE!>c<!>.<!OPT_IN_USAGE!>function<!>()
|
||||
<!OPT_IN_USAGE!>c<!>.<!OPT_IN_USAGE!>property<!>
|
||||
<!OPT_IN_USAGE!>C<!>.<!OPT_IN_USAGE!>Nested<!>()
|
||||
<!OPT_IN_USAGE!>c<!>.<!OPT_IN_USAGE!>Inner<!>()
|
||||
<!OPT_IN_USAGE!>c<!>.<!OPT_IN_USAGE!>extension<!>()
|
||||
}
|
||||
|
||||
@@ -80,10 +80,10 @@ package usage3
|
||||
import api.*
|
||||
|
||||
fun use() {
|
||||
val c: <!EXPERIMENTAL_API_USAGE!>C<!> = <!EXPERIMENTAL_API_USAGE!>C<!>()
|
||||
<!EXPERIMENTAL_API_USAGE!>c<!>.function()
|
||||
<!EXPERIMENTAL_API_USAGE!>c<!>.property
|
||||
<!EXPERIMENTAL_API_USAGE!>C<!>.Nested()
|
||||
<!EXPERIMENTAL_API_USAGE!>c<!>.Inner()
|
||||
<!EXPERIMENTAL_API_USAGE!>c<!>.<!EXPERIMENTAL_API_USAGE!>extension<!>()
|
||||
val c: <!OPT_IN_USAGE!>C<!> = <!OPT_IN_USAGE!>C<!>()
|
||||
<!OPT_IN_USAGE!>c<!>.function()
|
||||
<!OPT_IN_USAGE!>c<!>.property
|
||||
<!OPT_IN_USAGE!>C<!>.Nested()
|
||||
<!OPT_IN_USAGE!>c<!>.Inner()
|
||||
<!OPT_IN_USAGE!>c<!>.<!OPT_IN_USAGE!>extension<!>()
|
||||
}
|
||||
|
||||
Vendored
+4
-4
@@ -31,8 +31,8 @@ package usage
|
||||
import api.*
|
||||
|
||||
fun use() {
|
||||
val c: <!EXPERIMENTAL_API_USAGE!>C<!> = <!EXPERIMENTAL_API_USAGE!>C<!>()
|
||||
<!EXPERIMENTAL_API_USAGE!>c<!>.<!EXPERIMENTAL_API_USAGE!>function<!>()
|
||||
<!EXPERIMENTAL_API_USAGE!>c<!>.<!EXPERIMENTAL_API_USAGE!>property<!>
|
||||
<!EXPERIMENTAL_API_USAGE!>C<!>.<!EXPERIMENTAL_API_USAGE!>Nested<!>().<!EXPERIMENTAL_API_USAGE!>nestedFunction<!>()
|
||||
val c: <!OPT_IN_USAGE!>C<!> = <!OPT_IN_USAGE!>C<!>()
|
||||
<!OPT_IN_USAGE!>c<!>.<!OPT_IN_USAGE!>function<!>()
|
||||
<!OPT_IN_USAGE!>c<!>.<!OPT_IN_USAGE!>property<!>
|
||||
<!OPT_IN_USAGE!>C<!>.<!OPT_IN_USAGE!>Nested<!>().<!OPT_IN_USAGE!>nestedFunction<!>()
|
||||
}
|
||||
|
||||
@@ -40,5 +40,5 @@ package usage3
|
||||
|
||||
import api.*
|
||||
|
||||
@Anno(<!EXPERIMENTAL_API_USAGE!>MEANING<!>)
|
||||
@Anno(<!OPT_IN_USAGE!>MEANING<!>)
|
||||
fun usage() {}
|
||||
|
||||
@@ -31,7 +31,7 @@ package usage2
|
||||
import api.*
|
||||
|
||||
// TODO: there should be no warning here
|
||||
@Anno(<!EXPERIMENTAL_API_USAGE!>MEANING<!>)
|
||||
@Anno(<!OPT_IN_USAGE!>MEANING<!>)
|
||||
fun usage() {}
|
||||
|
||||
// FILE: usage-none.kt
|
||||
@@ -40,5 +40,5 @@ package usage3
|
||||
|
||||
import api.*
|
||||
|
||||
@Anno(<!EXPERIMENTAL_API_USAGE!>MEANING<!>)
|
||||
@Anno(<!OPT_IN_USAGE!>MEANING<!>)
|
||||
fun usage() {}
|
||||
|
||||
+2
-2
@@ -52,7 +52,7 @@ package usage3
|
||||
import api.*
|
||||
|
||||
fun use1() {
|
||||
C.D.<!EXPERIMENTAL_API_USAGE!>E<!>.<!EXPERIMENTAL_API_USAGE!>F<!>()
|
||||
C.D.<!OPT_IN_USAGE!>E<!>.<!OPT_IN_USAGE!>F<!>()
|
||||
}
|
||||
|
||||
fun use2(f: <!EXPERIMENTAL_API_USAGE!>C.D.E.F<!>) = <!EXPERIMENTAL_API_USAGE!>f<!>.hashCode()
|
||||
fun use2(f: <!OPT_IN_USAGE!>C.D.E.F<!>) = <!OPT_IN_USAGE!>f<!>.hashCode()
|
||||
|
||||
+2
-2
@@ -52,7 +52,7 @@ package usage3
|
||||
import api.*
|
||||
|
||||
fun use1() {
|
||||
<!EXPERIMENTAL_API_USAGE!>C<!>.D.E.F()
|
||||
<!OPT_IN_USAGE!>C<!>.D.E.F()
|
||||
}
|
||||
|
||||
fun use2(f: <!EXPERIMENTAL_API_USAGE!>C<!>.D.E.F) = f.hashCode()
|
||||
fun use2(f: <!OPT_IN_USAGE!>C<!>.D.E.F) = f.hashCode()
|
||||
|
||||
@@ -23,5 +23,5 @@ class Derived : Base() {
|
||||
}
|
||||
|
||||
fun test(b: Base) {
|
||||
b.<!EXPERIMENTAL_API_USAGE_ERROR!>foo<!>()
|
||||
b.<!OPT_IN_USAGE_ERROR!>foo<!>()
|
||||
}
|
||||
|
||||
@@ -19,9 +19,9 @@ package usage
|
||||
import api.*
|
||||
|
||||
class Derived : Base() {
|
||||
override fun <!EXPERIMENTAL_OVERRIDE_ERROR!>foo<!>() {}
|
||||
override fun <!OPT_IN_OVERRIDE_ERROR!>foo<!>() {}
|
||||
}
|
||||
|
||||
fun test(b: Base) {
|
||||
b.<!EXPERIMENTAL_API_USAGE_ERROR!>foo<!>()
|
||||
b.<!OPT_IN_USAGE_ERROR!>foo<!>()
|
||||
}
|
||||
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
// FIR_IDENTICAL
|
||||
// FILE: api.kt
|
||||
|
||||
@<!EXPERIMENTAL_IS_NOT_ENABLED!>RequiresOptIn<!>
|
||||
@<!OPT_IN_IS_NOT_ENABLED!>RequiresOptIn<!>
|
||||
@Retention(AnnotationRetention.BINARY)
|
||||
annotation class Marker
|
||||
|
||||
@@ -11,7 +11,7 @@ fun f() {}
|
||||
// FILE: usage.kt
|
||||
|
||||
fun use1() {
|
||||
<!EXPERIMENTAL_API_USAGE_ERROR!>f<!>()
|
||||
<!OPT_IN_USAGE_ERROR!>f<!>()
|
||||
}
|
||||
|
||||
@Marker
|
||||
@@ -19,7 +19,7 @@ fun use2() {
|
||||
f()
|
||||
}
|
||||
|
||||
@<!EXPERIMENTAL_IS_NOT_ENABLED!>OptIn<!>(Marker::class)
|
||||
@<!OPT_IN_IS_NOT_ENABLED!>OptIn<!>(Marker::class)
|
||||
fun use3() {
|
||||
f()
|
||||
}
|
||||
|
||||
Vendored
+1
-1
@@ -6,7 +6,7 @@
|
||||
annotation class E
|
||||
|
||||
class My {
|
||||
<!EXPERIMENTAL_ANNOTATION_ON_OVERRIDE_WARNING!>@E<!>
|
||||
<!OPT_IN_MARKER_ON_OVERRIDE_WARNING!>@E<!>
|
||||
override fun hashCode() = 0
|
||||
}
|
||||
|
||||
|
||||
+4
-4
@@ -17,8 +17,8 @@ var z: Int = 44
|
||||
}
|
||||
|
||||
fun user(): Int {
|
||||
<!EXPERIMENTAL_API_USAGE_ERROR!>x<!> = 10
|
||||
<!EXPERIMENTAL_API_USAGE_ERROR!>y<!> = 5
|
||||
<!EXPERIMENTAL_API_USAGE_ERROR!>x<!> = 15
|
||||
return x + <!EXPERIMENTAL_API_USAGE_ERROR!>y<!> + z
|
||||
<!OPT_IN_USAGE_ERROR!>x<!> = 10
|
||||
<!OPT_IN_USAGE_ERROR!>y<!> = 5
|
||||
<!OPT_IN_USAGE_ERROR!>x<!> = 15
|
||||
return x + <!OPT_IN_USAGE_ERROR!>y<!> + z
|
||||
}
|
||||
|
||||
+18
-18
@@ -10,15 +10,15 @@ annotation class Marker
|
||||
interface Some
|
||||
|
||||
abstract class User {
|
||||
abstract fun createSome(): <!EXPERIMENTAL_API_USAGE_ERROR!>Some<!>
|
||||
fun <!EXPERIMENTAL_API_USAGE_ERROR!>Some<!>?.onSome() {}
|
||||
fun withSome(some: <!EXPERIMENTAL_API_USAGE_ERROR!>Some<!>? = null) {}
|
||||
abstract fun createSome(): <!OPT_IN_USAGE_ERROR!>Some<!>
|
||||
fun <!OPT_IN_USAGE_ERROR!>Some<!>?.onSome() {}
|
||||
fun withSome(some: <!OPT_IN_USAGE_ERROR!>Some<!>? = null) {}
|
||||
|
||||
fun use() {
|
||||
val something = <!EXPERIMENTAL_API_USAGE_ERROR!>createSome<!>()
|
||||
val somethingOther: <!EXPERIMENTAL_API_USAGE_ERROR!>Some<!> = <!EXPERIMENTAL_API_USAGE_ERROR!>createSome<!>()
|
||||
null.<!EXPERIMENTAL_API_USAGE_ERROR!>onSome<!>()
|
||||
<!EXPERIMENTAL_API_USAGE_ERROR!>withSome<!>()
|
||||
val something = <!OPT_IN_USAGE_ERROR!>createSome<!>()
|
||||
val somethingOther: <!OPT_IN_USAGE_ERROR!>Some<!> = <!OPT_IN_USAGE_ERROR!>createSome<!>()
|
||||
null.<!OPT_IN_USAGE_ERROR!>onSome<!>()
|
||||
<!OPT_IN_USAGE_ERROR!>withSome<!>()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,15 +26,15 @@ data class DataClass(@property:Marker val x: Int)
|
||||
|
||||
fun useDataClass(d: DataClass) {
|
||||
// Should have error in both
|
||||
d.<!EXPERIMENTAL_API_USAGE_ERROR!>x<!>
|
||||
d.<!OPT_IN_USAGE_ERROR!>x<!>
|
||||
val (x) = d
|
||||
}
|
||||
|
||||
typealias My = <!EXPERIMENTAL_API_USAGE_ERROR!>Some<!>
|
||||
typealias My = <!OPT_IN_USAGE_ERROR!>Some<!>
|
||||
|
||||
fun my(my: <!EXPERIMENTAL_API_USAGE_ERROR!>My<!>) {}
|
||||
fun my(my: <!OPT_IN_USAGE_ERROR!>My<!>) {}
|
||||
|
||||
fun your(my: <!EXPERIMENTAL_API_USAGE_ERROR!>Some<!>) {}
|
||||
fun your(my: <!OPT_IN_USAGE_ERROR!>Some<!>) {}
|
||||
|
||||
@Marker
|
||||
interface ExperimentalType {
|
||||
@@ -49,7 +49,7 @@ interface NotExperimentalExtension : ExperimentalType {
|
||||
|
||||
fun use(arg: NotExperimentalExtension) {
|
||||
arg.foo()
|
||||
arg.<!EXPERIMENTAL_API_USAGE_ERROR!>bar<!>()
|
||||
arg.<!OPT_IN_USAGE_ERROR!>bar<!>()
|
||||
}
|
||||
|
||||
@Marker
|
||||
@@ -68,7 +68,7 @@ typealias MyList = ArrayList<I>
|
||||
typealias YourList = ArrayList<String>
|
||||
|
||||
fun main() {
|
||||
val x = <!EXPERIMENTAL_API_USAGE_ERROR!>listOf<!>(A(), B())
|
||||
val x = <!OPT_IN_USAGE_ERROR!>listOf<!>(A(), B())
|
||||
val y = MyList()
|
||||
val z = YourList()
|
||||
YourList().add("")
|
||||
@@ -84,7 +84,7 @@ object O {
|
||||
operator fun provideDelegate(x: Any?, y: Any?): C = C()
|
||||
}
|
||||
|
||||
val x: String by <!EXPERIMENTAL_API_USAGE_ERROR!>O<!>
|
||||
val x: String by <!OPT_IN_USAGE_ERROR!>O<!>
|
||||
|
||||
@Marker
|
||||
class OperatorContainer : Comparable<OperatorContainer> {
|
||||
@@ -117,8 +117,8 @@ operator fun String.minus(s: String) = OperatorContainer()
|
||||
operator fun String.invoke() = OperatorContainer()
|
||||
|
||||
fun operatorContainerUsage(s: String, a: AnotherContainer) {
|
||||
val res1 = s <!EXPERIMENTAL_API_USAGE_ERROR!>-<!> s
|
||||
val res2 = <!EXPERIMENTAL_API_USAGE_ERROR!>s<!>()
|
||||
val res3 = <!EXPERIMENTAL_API_USAGE_ERROR!>res1<!> <!EXPERIMENTAL_API_USAGE_ERROR!>><!> <!EXPERIMENTAL_API_USAGE_ERROR!>res2<!>
|
||||
<!EXPERIMENTAL_API_USAGE_ERROR, EXPERIMENTAL_API_USAGE_ERROR, EXPERIMENTAL_API_USAGE_ERROR, EXPERIMENTAL_API_USAGE_ERROR!>for (c in a) {}<!>
|
||||
val res1 = s <!OPT_IN_USAGE_ERROR!>-<!> s
|
||||
val res2 = <!OPT_IN_USAGE_ERROR!>s<!>()
|
||||
val res3 = <!OPT_IN_USAGE_ERROR!>res1<!> <!OPT_IN_USAGE_ERROR!>><!> <!OPT_IN_USAGE_ERROR!>res2<!>
|
||||
<!OPT_IN_USAGE_ERROR, OPT_IN_USAGE_ERROR, OPT_IN_USAGE_ERROR, OPT_IN_USAGE_ERROR!>for (c in a) {}<!>
|
||||
}
|
||||
+21
-21
@@ -10,15 +10,15 @@ annotation class Marker
|
||||
interface Some
|
||||
|
||||
abstract class User {
|
||||
abstract fun createSome(): <!EXPERIMENTAL_API_USAGE_ERROR!>Some<!>
|
||||
fun <!EXPERIMENTAL_API_USAGE_ERROR!>Some<!>?.onSome() {}
|
||||
fun withSome(some: <!EXPERIMENTAL_API_USAGE_ERROR!>Some<!>? = null) {}
|
||||
abstract fun createSome(): <!OPT_IN_USAGE_ERROR!>Some<!>
|
||||
fun <!OPT_IN_USAGE_ERROR!>Some<!>?.onSome() {}
|
||||
fun withSome(some: <!OPT_IN_USAGE_ERROR!>Some<!>? = null) {}
|
||||
|
||||
fun use() {
|
||||
val something = <!EXPERIMENTAL_API_USAGE_ERROR!>createSome<!>()
|
||||
val somethingOther: <!EXPERIMENTAL_API_USAGE_ERROR!>Some<!> = <!EXPERIMENTAL_API_USAGE_ERROR!>createSome<!>()
|
||||
null.<!EXPERIMENTAL_API_USAGE_ERROR!>onSome<!>()
|
||||
<!EXPERIMENTAL_API_USAGE_ERROR!>withSome<!>()
|
||||
val something = <!OPT_IN_USAGE_ERROR!>createSome<!>()
|
||||
val somethingOther: <!OPT_IN_USAGE_ERROR!>Some<!> = <!OPT_IN_USAGE_ERROR!>createSome<!>()
|
||||
null.<!OPT_IN_USAGE_ERROR!>onSome<!>()
|
||||
<!OPT_IN_USAGE_ERROR!>withSome<!>()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,15 +26,15 @@ data class DataClass(@property:Marker val x: Int)
|
||||
|
||||
fun useDataClass(d: DataClass) {
|
||||
// Should have error in both
|
||||
d.<!EXPERIMENTAL_API_USAGE_ERROR!>x<!>
|
||||
val (<!EXPERIMENTAL_API_USAGE_ERROR!>x<!>) = d
|
||||
d.<!OPT_IN_USAGE_ERROR!>x<!>
|
||||
val (<!OPT_IN_USAGE_ERROR!>x<!>) = d
|
||||
}
|
||||
|
||||
typealias My = <!EXPERIMENTAL_API_USAGE_ERROR!>Some<!>
|
||||
typealias My = <!OPT_IN_USAGE_ERROR!>Some<!>
|
||||
|
||||
fun my(my: <!EXPERIMENTAL_API_USAGE_ERROR!>My<!>) {}
|
||||
fun my(my: <!OPT_IN_USAGE_ERROR!>My<!>) {}
|
||||
|
||||
fun your(my: <!EXPERIMENTAL_API_USAGE_ERROR!>Some<!>) {}
|
||||
fun your(my: <!OPT_IN_USAGE_ERROR!>Some<!>) {}
|
||||
|
||||
@Marker
|
||||
interface ExperimentalType {
|
||||
@@ -68,10 +68,10 @@ typealias MyList = ArrayList<I>
|
||||
typealias YourList = ArrayList<String>
|
||||
|
||||
fun main() {
|
||||
val x = <!EXPERIMENTAL_API_USAGE_ERROR!>listOf<!>(A(), B())
|
||||
val y = <!EXPERIMENTAL_API_USAGE_ERROR!>MyList<!>()
|
||||
val z = <!EXPERIMENTAL_API_USAGE_ERROR!>YourList<!>()
|
||||
<!EXPERIMENTAL_API_USAGE_ERROR!>YourList<!>().add("")
|
||||
val x = <!OPT_IN_USAGE_ERROR!>listOf<!>(A(), B())
|
||||
val y = <!OPT_IN_USAGE_ERROR!>MyList<!>()
|
||||
val z = <!OPT_IN_USAGE_ERROR!>YourList<!>()
|
||||
<!OPT_IN_USAGE_ERROR!>YourList<!>().add("")
|
||||
}
|
||||
|
||||
@Marker
|
||||
@@ -84,7 +84,7 @@ object O {
|
||||
operator fun provideDelegate(x: Any?, y: Any?): C = C()
|
||||
}
|
||||
|
||||
val x: String by <!EXPERIMENTAL_API_USAGE_ERROR!>O<!>
|
||||
val x: String by <!OPT_IN_USAGE_ERROR!>O<!>
|
||||
|
||||
@Marker
|
||||
class OperatorContainer : Comparable<OperatorContainer> {
|
||||
@@ -117,8 +117,8 @@ operator fun String.minus(s: String) = OperatorContainer()
|
||||
operator fun String.invoke() = OperatorContainer()
|
||||
|
||||
fun operatorContainerUsage(s: String, a: AnotherContainer) {
|
||||
val res1 = s <!EXPERIMENTAL_API_USAGE_ERROR!>-<!> s
|
||||
val res2 = <!EXPERIMENTAL_API_USAGE_ERROR!>s<!>()
|
||||
val res3 = <!EXPERIMENTAL_API_USAGE_ERROR!>res1<!> <!EXPERIMENTAL_API_USAGE_ERROR!>><!> <!EXPERIMENTAL_API_USAGE_ERROR!>res2<!>
|
||||
for (c in <!EXPERIMENTAL_API_USAGE_ERROR!>a<!>) {}
|
||||
val res1 = s <!OPT_IN_USAGE_ERROR!>-<!> s
|
||||
val res2 = <!OPT_IN_USAGE_ERROR!>s<!>()
|
||||
val res3 = <!OPT_IN_USAGE_ERROR!>res1<!> <!OPT_IN_USAGE_ERROR!>><!> <!OPT_IN_USAGE_ERROR!>res2<!>
|
||||
for (c in <!OPT_IN_USAGE_ERROR!>a<!>) {}
|
||||
}
|
||||
|
||||
+18
-18
@@ -10,15 +10,15 @@ annotation class Marker
|
||||
interface Some
|
||||
|
||||
abstract class User {
|
||||
abstract fun createSome(): <!EXPERIMENTAL_API_USAGE_ERROR!>Some<!>
|
||||
fun <!EXPERIMENTAL_API_USAGE_ERROR!>Some<!>?.onSome() {}
|
||||
fun withSome(some: <!EXPERIMENTAL_API_USAGE_ERROR!>Some<!>? = null) {}
|
||||
abstract fun createSome(): <!OPT_IN_USAGE_ERROR!>Some<!>
|
||||
fun <!OPT_IN_USAGE_ERROR!>Some<!>?.onSome() {}
|
||||
fun withSome(some: <!OPT_IN_USAGE_ERROR!>Some<!>? = null) {}
|
||||
|
||||
fun use() {
|
||||
val something = <!EXPERIMENTAL_API_USAGE_ERROR!>createSome<!>()
|
||||
val somethingOther: <!EXPERIMENTAL_API_USAGE_ERROR!>Some<!> = <!EXPERIMENTAL_API_USAGE_ERROR!>createSome<!>()
|
||||
null.<!EXPERIMENTAL_API_USAGE_ERROR!>onSome<!>()
|
||||
<!EXPERIMENTAL_API_USAGE_ERROR!>withSome<!>()
|
||||
val something = <!OPT_IN_USAGE_ERROR!>createSome<!>()
|
||||
val somethingOther: <!OPT_IN_USAGE_ERROR!>Some<!> = <!OPT_IN_USAGE_ERROR!>createSome<!>()
|
||||
null.<!OPT_IN_USAGE_ERROR!>onSome<!>()
|
||||
<!OPT_IN_USAGE_ERROR!>withSome<!>()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,15 +26,15 @@ data class DataClass(@property:Marker val x: Int)
|
||||
|
||||
fun useDataClass(d: DataClass) {
|
||||
// Should have error in both
|
||||
d.<!EXPERIMENTAL_API_USAGE_ERROR!>x<!>
|
||||
d.<!OPT_IN_USAGE_ERROR!>x<!>
|
||||
val (x) = d
|
||||
}
|
||||
|
||||
typealias My = <!EXPERIMENTAL_API_USAGE_ERROR!>Some<!>
|
||||
typealias My = <!OPT_IN_USAGE_ERROR!>Some<!>
|
||||
|
||||
fun my(my: <!EXPERIMENTAL_API_USAGE_ERROR!>My<!>) {}
|
||||
fun my(my: <!OPT_IN_USAGE_ERROR!>My<!>) {}
|
||||
|
||||
fun your(my: <!EXPERIMENTAL_API_USAGE_ERROR!>Some<!>) {}
|
||||
fun your(my: <!OPT_IN_USAGE_ERROR!>Some<!>) {}
|
||||
|
||||
@Marker
|
||||
interface ExperimentalType {
|
||||
@@ -49,7 +49,7 @@ interface NotExperimentalExtension : ExperimentalType {
|
||||
|
||||
fun use(arg: NotExperimentalExtension) {
|
||||
arg.foo()
|
||||
arg.<!EXPERIMENTAL_API_USAGE_ERROR!>bar<!>()
|
||||
arg.<!OPT_IN_USAGE_ERROR!>bar<!>()
|
||||
}
|
||||
|
||||
@Marker
|
||||
@@ -68,7 +68,7 @@ typealias MyList = ArrayList<I>
|
||||
typealias YourList = ArrayList<String>
|
||||
|
||||
fun main() {
|
||||
val x = <!EXPERIMENTAL_API_USAGE_ERROR!>listOf<!>(A(), B())
|
||||
val x = <!OPT_IN_USAGE_ERROR!>listOf<!>(A(), B())
|
||||
val y = MyList()
|
||||
val z = YourList()
|
||||
YourList().add("")
|
||||
@@ -84,7 +84,7 @@ object O {
|
||||
operator fun provideDelegate(x: Any?, y: Any?): C = C()
|
||||
}
|
||||
|
||||
val x: String by <!EXPERIMENTAL_API_USAGE_ERROR!>O<!>
|
||||
val x: String by <!OPT_IN_USAGE_ERROR!>O<!>
|
||||
|
||||
@Marker
|
||||
class OperatorContainer : Comparable<OperatorContainer> {
|
||||
@@ -117,8 +117,8 @@ operator fun String.minus(s: String) = OperatorContainer()
|
||||
operator fun String.invoke() = OperatorContainer()
|
||||
|
||||
fun operatorContainerUsage(s: String, a: AnotherContainer) {
|
||||
val res1 = s <!EXPERIMENTAL_API_USAGE_ERROR!>-<!> s
|
||||
val res2 = <!EXPERIMENTAL_API_USAGE_ERROR!>s<!>()
|
||||
val res3 = <!EXPERIMENTAL_API_USAGE_ERROR!>res1<!> <!EXPERIMENTAL_API_USAGE_ERROR!>><!> <!EXPERIMENTAL_API_USAGE_ERROR!>res2<!>
|
||||
<!EXPERIMENTAL_API_USAGE_ERROR, EXPERIMENTAL_API_USAGE_ERROR, EXPERIMENTAL_API_USAGE_ERROR, EXPERIMENTAL_API_USAGE_ERROR!>for (c in a) {}<!>
|
||||
val res1 = s <!OPT_IN_USAGE_ERROR!>-<!> s
|
||||
val res2 = <!OPT_IN_USAGE_ERROR!>s<!>()
|
||||
val res3 = <!OPT_IN_USAGE_ERROR!>res1<!> <!OPT_IN_USAGE_ERROR!>><!> <!OPT_IN_USAGE_ERROR!>res2<!>
|
||||
<!OPT_IN_USAGE_ERROR, OPT_IN_USAGE_ERROR, OPT_IN_USAGE_ERROR, OPT_IN_USAGE_ERROR!>for (c in a) {}<!>
|
||||
}
|
||||
|
||||
+21
-21
@@ -10,15 +10,15 @@ annotation class Marker
|
||||
interface Some
|
||||
|
||||
abstract class User {
|
||||
abstract fun createSome(): <!EXPERIMENTAL_API_USAGE_ERROR!>Some<!>
|
||||
fun <!EXPERIMENTAL_API_USAGE_ERROR!>Some<!>?.onSome() {}
|
||||
fun withSome(some: <!EXPERIMENTAL_API_USAGE_ERROR!>Some<!>? = null) {}
|
||||
abstract fun createSome(): <!OPT_IN_USAGE_ERROR!>Some<!>
|
||||
fun <!OPT_IN_USAGE_ERROR!>Some<!>?.onSome() {}
|
||||
fun withSome(some: <!OPT_IN_USAGE_ERROR!>Some<!>? = null) {}
|
||||
|
||||
fun use() {
|
||||
val something = <!EXPERIMENTAL_API_USAGE_FUTURE_ERROR!>createSome<!>()
|
||||
val somethingOther: <!EXPERIMENTAL_API_USAGE_ERROR!>Some<!> = <!EXPERIMENTAL_API_USAGE_FUTURE_ERROR!>createSome<!>()
|
||||
null.<!EXPERIMENTAL_API_USAGE_FUTURE_ERROR!>onSome<!>()
|
||||
<!EXPERIMENTAL_API_USAGE_FUTURE_ERROR!>withSome<!>()
|
||||
val something = <!OPT_IN_USAGE_FUTURE_ERROR!>createSome<!>()
|
||||
val somethingOther: <!OPT_IN_USAGE_ERROR!>Some<!> = <!OPT_IN_USAGE_FUTURE_ERROR!>createSome<!>()
|
||||
null.<!OPT_IN_USAGE_FUTURE_ERROR!>onSome<!>()
|
||||
<!OPT_IN_USAGE_FUTURE_ERROR!>withSome<!>()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,15 +26,15 @@ data class DataClass(@property:Marker val x: Int)
|
||||
|
||||
fun useDataClass(d: DataClass) {
|
||||
// Should have error in both
|
||||
d.<!EXPERIMENTAL_API_USAGE_ERROR!>x<!>
|
||||
val (<!EXPERIMENTAL_API_USAGE_ERROR!>x<!>) = d
|
||||
d.<!OPT_IN_USAGE_ERROR!>x<!>
|
||||
val (<!OPT_IN_USAGE_ERROR!>x<!>) = d
|
||||
}
|
||||
|
||||
typealias My = <!EXPERIMENTAL_API_USAGE_ERROR!>Some<!>
|
||||
typealias My = <!OPT_IN_USAGE_ERROR!>Some<!>
|
||||
|
||||
fun my(my: <!EXPERIMENTAL_API_USAGE_FUTURE_ERROR!>My<!>) {}
|
||||
fun my(my: <!OPT_IN_USAGE_FUTURE_ERROR!>My<!>) {}
|
||||
|
||||
fun your(my: <!EXPERIMENTAL_API_USAGE_ERROR!>Some<!>) {}
|
||||
fun your(my: <!OPT_IN_USAGE_ERROR!>Some<!>) {}
|
||||
|
||||
@Marker
|
||||
interface ExperimentalType {
|
||||
@@ -68,10 +68,10 @@ typealias MyList = ArrayList<I>
|
||||
typealias YourList = ArrayList<String>
|
||||
|
||||
fun main() {
|
||||
val x = <!EXPERIMENTAL_API_USAGE_FUTURE_ERROR!>listOf<!>(A(), B())
|
||||
val y = <!EXPERIMENTAL_API_USAGE_FUTURE_ERROR!>MyList<!>()
|
||||
val z = <!EXPERIMENTAL_API_USAGE_FUTURE_ERROR!>YourList<!>()
|
||||
<!EXPERIMENTAL_API_USAGE_FUTURE_ERROR!>YourList<!>().add("")
|
||||
val x = <!OPT_IN_USAGE_FUTURE_ERROR!>listOf<!>(A(), B())
|
||||
val y = <!OPT_IN_USAGE_FUTURE_ERROR!>MyList<!>()
|
||||
val z = <!OPT_IN_USAGE_FUTURE_ERROR!>YourList<!>()
|
||||
<!OPT_IN_USAGE_FUTURE_ERROR!>YourList<!>().add("")
|
||||
}
|
||||
|
||||
@Marker
|
||||
@@ -84,7 +84,7 @@ object O {
|
||||
operator fun provideDelegate(x: Any?, y: Any?): C = C()
|
||||
}
|
||||
|
||||
val x: String by <!EXPERIMENTAL_API_USAGE_FUTURE_ERROR!>O<!>
|
||||
val x: String by <!OPT_IN_USAGE_FUTURE_ERROR!>O<!>
|
||||
|
||||
@Marker
|
||||
class OperatorContainer : Comparable<OperatorContainer> {
|
||||
@@ -117,8 +117,8 @@ operator fun String.minus(s: String) = OperatorContainer()
|
||||
operator fun String.invoke() = OperatorContainer()
|
||||
|
||||
fun operatorContainerUsage(s: String, a: AnotherContainer) {
|
||||
val res1 = s <!EXPERIMENTAL_API_USAGE_FUTURE_ERROR!>-<!> s
|
||||
val res2 = <!EXPERIMENTAL_API_USAGE_FUTURE_ERROR!>s<!>()
|
||||
val res3 = <!EXPERIMENTAL_API_USAGE_FUTURE_ERROR!>res1<!> <!EXPERIMENTAL_API_USAGE_FUTURE_ERROR!>><!> <!EXPERIMENTAL_API_USAGE_FUTURE_ERROR!>res2<!>
|
||||
for (c in <!EXPERIMENTAL_API_USAGE_FUTURE_ERROR!>a<!>) {}
|
||||
val res1 = s <!OPT_IN_USAGE_FUTURE_ERROR!>-<!> s
|
||||
val res2 = <!OPT_IN_USAGE_FUTURE_ERROR!>s<!>()
|
||||
val res3 = <!OPT_IN_USAGE_FUTURE_ERROR!>res1<!> <!OPT_IN_USAGE_FUTURE_ERROR!>><!> <!OPT_IN_USAGE_FUTURE_ERROR!>res2<!>
|
||||
for (c in <!OPT_IN_USAGE_FUTURE_ERROR!>a<!>) {}
|
||||
}
|
||||
|
||||
+5
-5
@@ -13,21 +13,21 @@ import kotlin.annotation.AnnotationTarget.*
|
||||
annotation class E1
|
||||
|
||||
@RequiresOptIn(level = RequiresOptIn.Level.WARNING)
|
||||
<!EXPERIMENTAL_ANNOTATION_WITH_WRONG_TARGET!>@Target(FILE)<!>
|
||||
<!OPT_IN_MARKER_WITH_WRONG_TARGET!>@Target(FILE)<!>
|
||||
annotation class E2
|
||||
|
||||
@RequiresOptIn(level = RequiresOptIn.Level.WARNING)
|
||||
<!EXPERIMENTAL_ANNOTATION_WITH_WRONG_TARGET!>@Target(EXPRESSION)<!>
|
||||
<!EXPERIMENTAL_ANNOTATION_WITH_WRONG_RETENTION!>@Retention(AnnotationRetention.SOURCE)<!>
|
||||
<!OPT_IN_MARKER_WITH_WRONG_TARGET!>@Target(EXPRESSION)<!>
|
||||
<!OPT_IN_MARKER_WITH_WRONG_RETENTION!>@Retention(AnnotationRetention.SOURCE)<!>
|
||||
annotation class E3
|
||||
|
||||
@RequiresOptIn(level = RequiresOptIn.Level.WARNING)
|
||||
<!EXPERIMENTAL_ANNOTATION_WITH_WRONG_TARGET!>@Target(TYPE_PARAMETER)<!>
|
||||
<!OPT_IN_MARKER_WITH_WRONG_TARGET!>@Target(TYPE_PARAMETER)<!>
|
||||
@Retention(AnnotationRetention.BINARY)
|
||||
annotation class E3A
|
||||
|
||||
@RequiresOptIn(level = RequiresOptIn.Level.WARNING)
|
||||
<!EXPERIMENTAL_ANNOTATION_WITH_WRONG_TARGET!>@Target(TYPE)<!>
|
||||
<!OPT_IN_MARKER_WITH_WRONG_TARGET!>@Target(TYPE)<!>
|
||||
@Retention(AnnotationRetention.BINARY)
|
||||
annotation class E3B
|
||||
|
||||
|
||||
+15
-15
@@ -13,21 +13,21 @@ import kotlin.annotation.AnnotationTarget.*
|
||||
annotation class E1
|
||||
|
||||
@RequiresOptIn(level = RequiresOptIn.Level.WARNING)
|
||||
<!EXPERIMENTAL_ANNOTATION_WITH_WRONG_TARGET!>@Target(FILE)<!>
|
||||
<!OPT_IN_MARKER_WITH_WRONG_TARGET!>@Target(FILE)<!>
|
||||
annotation class E2
|
||||
|
||||
@RequiresOptIn(level = RequiresOptIn.Level.WARNING)
|
||||
<!EXPERIMENTAL_ANNOTATION_WITH_WRONG_TARGET!>@Target(EXPRESSION)<!>
|
||||
<!EXPERIMENTAL_ANNOTATION_WITH_WRONG_RETENTION!>@Retention(AnnotationRetention.SOURCE)<!>
|
||||
<!OPT_IN_MARKER_WITH_WRONG_TARGET!>@Target(EXPRESSION)<!>
|
||||
<!OPT_IN_MARKER_WITH_WRONG_RETENTION!>@Retention(AnnotationRetention.SOURCE)<!>
|
||||
annotation class E3
|
||||
|
||||
@RequiresOptIn(level = RequiresOptIn.Level.WARNING)
|
||||
<!EXPERIMENTAL_ANNOTATION_WITH_WRONG_TARGET!>@Target(TYPE_PARAMETER)<!>
|
||||
<!OPT_IN_MARKER_WITH_WRONG_TARGET!>@Target(TYPE_PARAMETER)<!>
|
||||
@Retention(AnnotationRetention.BINARY)
|
||||
annotation class E3A
|
||||
|
||||
@RequiresOptIn(level = RequiresOptIn.Level.WARNING)
|
||||
<!EXPERIMENTAL_ANNOTATION_WITH_WRONG_TARGET!>@Target(TYPE)<!>
|
||||
<!OPT_IN_MARKER_WITH_WRONG_TARGET!>@Target(TYPE)<!>
|
||||
@Retention(AnnotationRetention.BINARY)
|
||||
annotation class E3B
|
||||
|
||||
@@ -47,16 +47,16 @@ annotation class E5
|
||||
annotation class E6
|
||||
|
||||
var some: Int
|
||||
<!EXPERIMENTAL_ANNOTATION_ON_WRONG_TARGET!>@E4<!>
|
||||
<!OPT_IN_MARKER_ON_WRONG_TARGET!>@E4<!>
|
||||
get() = 42
|
||||
@E5
|
||||
set(value) {}
|
||||
|
||||
<!EXPERIMENTAL_ANNOTATION_ON_WRONG_TARGET!>@get:E4<!>
|
||||
<!OPT_IN_MARKER_ON_WRONG_TARGET!>@get:E4<!>
|
||||
val another: Int = 42
|
||||
|
||||
class My {
|
||||
<!EXPERIMENTAL_ANNOTATION_ON_OVERRIDE!>@E6<!>
|
||||
<!OPT_IN_MARKER_ON_OVERRIDE!>@E6<!>
|
||||
override fun hashCode() = 0
|
||||
}
|
||||
|
||||
@@ -72,24 +72,24 @@ interface Base {
|
||||
}
|
||||
|
||||
class Derived : Base {
|
||||
<!EXPERIMENTAL_ANNOTATION_ON_OVERRIDE!>@E6<!>
|
||||
<!OPT_IN_MARKER_ON_OVERRIDE!>@E6<!>
|
||||
override val bar: Int = 42
|
||||
|
||||
@set:E6 <!EXPERIMENTAL_ANNOTATION_ON_WRONG_TARGET!>@setparam:E6<!>
|
||||
@set:E6 <!OPT_IN_MARKER_ON_WRONG_TARGET!>@setparam:E6<!>
|
||||
override var baz: Int = 13
|
||||
|
||||
@E6
|
||||
override fun foo() {}
|
||||
|
||||
override fun <!EXPERIMENTAL_ANNOTATION_ON_WRONG_TARGET!>@receiver:E6<!> String.withReceiver() {}
|
||||
override fun <!OPT_IN_MARKER_ON_WRONG_TARGET!>@receiver:E6<!> String.withReceiver() {}
|
||||
}
|
||||
|
||||
abstract class Another(<!EXPERIMENTAL_ANNOTATION_ON_WRONG_TARGET!>@param:E6<!> val x: String) : Base {
|
||||
<!EXPERIMENTAL_ANNOTATION_ON_WRONG_TARGET!>@delegate:E6<!>
|
||||
abstract class Another(<!OPT_IN_MARKER_ON_WRONG_TARGET!>@param:E6<!> val x: String) : Base {
|
||||
<!OPT_IN_MARKER_ON_WRONG_TARGET!>@delegate:E6<!>
|
||||
override val bar: Int by lazy { 42 }
|
||||
|
||||
fun baz(<!EXPERIMENTAL_ANNOTATION_ON_WRONG_TARGET!>@E6<!> param: Int) {
|
||||
<!EXPERIMENTAL_ANNOTATION_ON_WRONG_TARGET!>@E6<!> val x = param
|
||||
fun baz(<!OPT_IN_MARKER_ON_WRONG_TARGET!>@E6<!> param: Int) {
|
||||
<!OPT_IN_MARKER_ON_WRONG_TARGET!>@E6<!> val x = param
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -3,8 +3,8 @@
|
||||
|
||||
annotation class NotAMarker
|
||||
|
||||
<!USE_EXPERIMENTAL_WITHOUT_ARGUMENTS!>@OptIn<!>
|
||||
<!OPT_IN_WITHOUT_ARGUMENTS!>@OptIn<!>
|
||||
fun f1() {}
|
||||
|
||||
<!USE_EXPERIMENTAL_ARGUMENT_IS_NOT_MARKER!>@OptIn(NotAMarker::class)<!>
|
||||
<!OPT_IN_ARGUMENT_IS_NOT_MARKER!>@OptIn(NotAMarker::class)<!>
|
||||
fun f2() {}
|
||||
|
||||
@@ -13,7 +13,7 @@ open class Base {
|
||||
}
|
||||
|
||||
class DerivedInSameModule : Base() {
|
||||
override fun <!EXPERIMENTAL_OVERRIDE!>foo<!>() {}
|
||||
override fun <!OPT_IN_OVERRIDE!>foo<!>() {}
|
||||
}
|
||||
|
||||
// FILE: usage-propagate.kt
|
||||
@@ -41,5 +41,5 @@ package usage2
|
||||
import api.*
|
||||
|
||||
class Derived : Base() {
|
||||
override fun <!EXPERIMENTAL_OVERRIDE!>foo<!>() {}
|
||||
override fun <!OPT_IN_OVERRIDE!>foo<!>() {}
|
||||
}
|
||||
|
||||
Vendored
+2
-2
@@ -23,12 +23,12 @@ interface Base3 {
|
||||
}
|
||||
|
||||
class DerivedA : Base1, Base2, Base3 {
|
||||
override fun <!EXPERIMENTAL_OVERRIDE, EXPERIMENTAL_OVERRIDE!>foo<!>() {}
|
||||
override fun <!OPT_IN_OVERRIDE, OPT_IN_OVERRIDE!>foo<!>() {}
|
||||
}
|
||||
|
||||
class DerivedB : Base1, Base3 {
|
||||
@E3
|
||||
override fun <!EXPERIMENTAL_OVERRIDE!>foo<!>() {}
|
||||
override fun <!OPT_IN_OVERRIDE!>foo<!>() {}
|
||||
}
|
||||
|
||||
class DerivedC : Base1, Base2, Base3 {
|
||||
|
||||
@@ -19,8 +19,8 @@ fun use() {
|
||||
function()
|
||||
}
|
||||
|
||||
<!EXPERIMENTAL_API_USAGE!>function<!>()
|
||||
<!EXPERIMENTAL_API_USAGE!>use<!>()
|
||||
<!OPT_IN_USAGE!>function<!>()
|
||||
<!OPT_IN_USAGE!>use<!>()
|
||||
|
||||
// FILE: usage-use.kts
|
||||
|
||||
@@ -39,8 +39,8 @@ use()
|
||||
import api.*
|
||||
|
||||
fun use() {
|
||||
<!EXPERIMENTAL_API_USAGE!>function<!>()
|
||||
<!OPT_IN_USAGE!>function<!>()
|
||||
}
|
||||
|
||||
<!EXPERIMENTAL_API_USAGE!>function<!>()
|
||||
<!OPT_IN_USAGE!>function<!>()
|
||||
use()
|
||||
|
||||
@@ -73,8 +73,8 @@ package usage3
|
||||
import api.*
|
||||
|
||||
fun use() {
|
||||
<!EXPERIMENTAL_API_USAGE!>function<!>()
|
||||
<!EXPERIMENTAL_API_USAGE!>property<!>
|
||||
val s: <!EXPERIMENTAL_API_USAGE!>Typealias<!> = ""
|
||||
<!EXPERIMENTAL_API_USAGE!>s<!>.hashCode()
|
||||
<!OPT_IN_USAGE!>function<!>()
|
||||
<!OPT_IN_USAGE!>property<!>
|
||||
val s: <!OPT_IN_USAGE!>Typealias<!> = ""
|
||||
<!OPT_IN_USAGE!>s<!>.hashCode()
|
||||
}
|
||||
|
||||
@@ -12,4 +12,4 @@ annotation class ExperimentalAPI
|
||||
@ExperimentalAPI
|
||||
class Foo
|
||||
|
||||
typealias Bar = <!EXPERIMENTAL_API_USAGE_ERROR!>Foo<!>
|
||||
typealias Bar = <!OPT_IN_USAGE_ERROR!>Foo<!>
|
||||
|
||||
+12
-12
@@ -21,11 +21,11 @@ annotation class M
|
||||
|
||||
// Usages as types should be errors
|
||||
|
||||
fun f1(e: <!EXPERIMENTAL_CAN_ONLY_BE_USED_AS_ANNOTATION!>RequiresOptIn<!>) {}
|
||||
fun f2(u: <!EXPERIMENTAL_CAN_ONLY_BE_USED_AS_ANNOTATION!>OptIn?<!>) {}
|
||||
fun f1(e: <!OPT_IN_CAN_ONLY_BE_USED_AS_ANNOTATION!>RequiresOptIn<!>) {}
|
||||
fun f2(u: <!OPT_IN_CAN_ONLY_BE_USED_AS_ANNOTATION!>OptIn?<!>) {}
|
||||
|
||||
typealias Experimental0 = <!EXPERIMENTAL_CAN_ONLY_BE_USED_AS_ANNOTATION!>RequiresOptIn<!>
|
||||
typealias OptIn0 = <!EXPERIMENTAL_CAN_ONLY_BE_USED_AS_ANNOTATION!>OptIn<!>
|
||||
typealias Experimental0 = <!OPT_IN_CAN_ONLY_BE_USED_AS_ANNOTATION!>RequiresOptIn<!>
|
||||
typealias OptIn0 = <!OPT_IN_CAN_ONLY_BE_USED_AS_ANNOTATION!>OptIn<!>
|
||||
fun f3(e: Experimental0 /* TODO */) {}
|
||||
fun f4(u: OptIn0 /* TODO */) {}
|
||||
|
||||
@@ -35,10 +35,10 @@ fun f4(u: OptIn0 /* TODO */) {}
|
||||
annotation class VarargKClasses(vararg val k: KClass<*>)
|
||||
|
||||
@VarargKClasses(
|
||||
<!EXPERIMENTAL_CAN_ONLY_BE_USED_AS_ANNOTATION!>RequiresOptIn<!>::class,
|
||||
<!EXPERIMENTAL_CAN_ONLY_BE_USED_AS_ANNOTATION!>OptIn<!>::class,
|
||||
<!EXPERIMENTAL_CAN_ONLY_BE_USED_AS_ANNOTATION!>kotlin.RequiresOptIn<!>::class,
|
||||
<!EXPERIMENTAL_CAN_ONLY_BE_USED_AS_ANNOTATION!>kotlin.OptIn<!>::class
|
||||
<!OPT_IN_CAN_ONLY_BE_USED_AS_ANNOTATION!>RequiresOptIn<!>::class,
|
||||
<!OPT_IN_CAN_ONLY_BE_USED_AS_ANNOTATION!>OptIn<!>::class,
|
||||
<!OPT_IN_CAN_ONLY_BE_USED_AS_ANNOTATION!>kotlin.RequiresOptIn<!>::class,
|
||||
<!OPT_IN_CAN_ONLY_BE_USED_AS_ANNOTATION!>kotlin.OptIn<!>::class
|
||||
)
|
||||
fun f5() {}
|
||||
|
||||
@@ -54,11 +54,11 @@ annotation class Marker {
|
||||
}
|
||||
}
|
||||
|
||||
fun f6(m: <!EXPERIMENTAL_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_USE_EXPERIMENTAL!>Marker<!>) {}
|
||||
fun f7(): List<<!EXPERIMENTAL_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_USE_EXPERIMENTAL!>Marker<!>>? = null
|
||||
fun f8(): <!EXPERIMENTAL_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_USE_EXPERIMENTAL!>test.Marker?<!> = null
|
||||
fun f6(m: <!OPT_IN_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_OPT_IN!>Marker<!>) {}
|
||||
fun f7(): List<<!OPT_IN_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_OPT_IN!>Marker<!>>? = null
|
||||
fun f8(): <!OPT_IN_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_OPT_IN!>test.Marker?<!> = null
|
||||
|
||||
typealias Marker0 = <!EXPERIMENTAL_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_USE_EXPERIMENTAL!>Marker<!>
|
||||
typealias Marker0 = <!OPT_IN_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_OPT_IN!>Marker<!>
|
||||
|
||||
fun f9(m: Marker0) {}
|
||||
|
||||
|
||||
+17
-17
@@ -21,11 +21,11 @@ annotation class M
|
||||
|
||||
// Usages as types should be errors
|
||||
|
||||
fun f1(e: <!EXPERIMENTAL_CAN_ONLY_BE_USED_AS_ANNOTATION!>RequiresOptIn<!>) {}
|
||||
fun f2(u: <!EXPERIMENTAL_CAN_ONLY_BE_USED_AS_ANNOTATION!>OptIn<!>?) {}
|
||||
fun f1(e: <!OPT_IN_CAN_ONLY_BE_USED_AS_ANNOTATION!>RequiresOptIn<!>) {}
|
||||
fun f2(u: <!OPT_IN_CAN_ONLY_BE_USED_AS_ANNOTATION!>OptIn<!>?) {}
|
||||
|
||||
typealias Experimental0 = <!EXPERIMENTAL_CAN_ONLY_BE_USED_AS_ANNOTATION!>RequiresOptIn<!>
|
||||
typealias OptIn0 = <!EXPERIMENTAL_CAN_ONLY_BE_USED_AS_ANNOTATION!>OptIn<!>
|
||||
typealias Experimental0 = <!OPT_IN_CAN_ONLY_BE_USED_AS_ANNOTATION!>RequiresOptIn<!>
|
||||
typealias OptIn0 = <!OPT_IN_CAN_ONLY_BE_USED_AS_ANNOTATION!>OptIn<!>
|
||||
fun f3(e: Experimental0 /* TODO */) {}
|
||||
fun f4(u: OptIn0 /* TODO */) {}
|
||||
|
||||
@@ -35,10 +35,10 @@ fun f4(u: OptIn0 /* TODO */) {}
|
||||
annotation class VarargKClasses(vararg val k: KClass<*>)
|
||||
|
||||
@VarargKClasses(
|
||||
<!EXPERIMENTAL_CAN_ONLY_BE_USED_AS_ANNOTATION!>RequiresOptIn<!>::class,
|
||||
<!EXPERIMENTAL_CAN_ONLY_BE_USED_AS_ANNOTATION!>OptIn<!>::class,
|
||||
kotlin.<!EXPERIMENTAL_CAN_ONLY_BE_USED_AS_ANNOTATION!>RequiresOptIn<!>::class,
|
||||
kotlin.<!EXPERIMENTAL_CAN_ONLY_BE_USED_AS_ANNOTATION!>OptIn<!>::class
|
||||
<!OPT_IN_CAN_ONLY_BE_USED_AS_ANNOTATION!>RequiresOptIn<!>::class,
|
||||
<!OPT_IN_CAN_ONLY_BE_USED_AS_ANNOTATION!>OptIn<!>::class,
|
||||
kotlin.<!OPT_IN_CAN_ONLY_BE_USED_AS_ANNOTATION!>RequiresOptIn<!>::class,
|
||||
kotlin.<!OPT_IN_CAN_ONLY_BE_USED_AS_ANNOTATION!>OptIn<!>::class
|
||||
)
|
||||
fun f5() {}
|
||||
|
||||
@@ -54,19 +54,19 @@ annotation class Marker {
|
||||
}
|
||||
}
|
||||
|
||||
fun f6(m: <!EXPERIMENTAL_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_USE_EXPERIMENTAL!>Marker<!>) {}
|
||||
fun f7(): List<<!EXPERIMENTAL_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_USE_EXPERIMENTAL!>Marker<!>>? = null
|
||||
fun f8(): test.<!EXPERIMENTAL_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_USE_EXPERIMENTAL!>Marker<!>? = null
|
||||
fun f6(m: <!OPT_IN_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_OPT_IN!>Marker<!>) {}
|
||||
fun f7(): List<<!OPT_IN_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_OPT_IN!>Marker<!>>? = null
|
||||
fun f8(): test.<!OPT_IN_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_OPT_IN!>Marker<!>? = null
|
||||
|
||||
typealias Marker0 = <!EXPERIMENTAL_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_USE_EXPERIMENTAL!>Marker<!>
|
||||
typealias Marker0 = <!OPT_IN_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_OPT_IN!>Marker<!>
|
||||
|
||||
fun f9(m: <!EXPERIMENTAL_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_USE_EXPERIMENTAL!>Marker0<!>) {}
|
||||
fun f9(m: <!OPT_IN_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_OPT_IN!>Marker0<!>) {}
|
||||
|
||||
|
||||
// Usages of markers as qualifiers are errors as well (we can lift this restriction for select cases)
|
||||
|
||||
fun f10(m: <!EXPERIMENTAL_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_USE_EXPERIMENTAL!>Marker<!>.NestedClass) {
|
||||
<!EXPERIMENTAL_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_USE_EXPERIMENTAL!>Marker<!>.value
|
||||
fun f10(m: <!OPT_IN_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_OPT_IN!>Marker<!>.NestedClass) {
|
||||
<!OPT_IN_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_OPT_IN!>Marker<!>.value
|
||||
}
|
||||
|
||||
// FILE: usage-from-other-file.kt
|
||||
@@ -74,5 +74,5 @@ fun f10(m: <!EXPERIMENTAL_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_U
|
||||
// Usages of markers in import statements should be OK, but not as qualifiers to import their nested classes
|
||||
|
||||
import test.Marker
|
||||
import test.<!EXPERIMENTAL_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_USE_EXPERIMENTAL!>Marker<!>.NestedClass
|
||||
import test.<!EXPERIMENTAL_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_USE_EXPERIMENTAL!>Marker<!>.Companion
|
||||
import test.<!OPT_IN_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_OPT_IN!>Marker<!>.NestedClass
|
||||
import test.<!OPT_IN_MARKER_CAN_ONLY_BE_USED_AS_ANNOTATION_OR_ARGUMENT_IN_OPT_IN!>Marker<!>.Companion
|
||||
|
||||
+2
-2
@@ -29,12 +29,12 @@ import api.*
|
||||
|
||||
fun use() {
|
||||
compilation()
|
||||
<!EXPERIMENTAL_API_USAGE!>runtime<!>()
|
||||
<!OPT_IN_USAGE!>runtime<!>()
|
||||
}
|
||||
|
||||
class Use {
|
||||
fun use() {
|
||||
compilation()
|
||||
<!EXPERIMENTAL_API_USAGE!>runtime<!>()
|
||||
<!OPT_IN_USAGE!>runtime<!>()
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
+1
-1
@@ -52,5 +52,5 @@ fun use2() {
|
||||
fun use3() {
|
||||
e1()
|
||||
e2()
|
||||
<!EXPERIMENTAL_API_USAGE!>e3<!>()
|
||||
<!OPT_IN_USAGE!>e3<!>()
|
||||
}
|
||||
|
||||
+3
-3
@@ -24,12 +24,12 @@ class NewClassExperimentalInThePast
|
||||
|
||||
@SinceKotlin("1.4")
|
||||
@WasExperimental(Marker::class)
|
||||
typealias TypeAliasToNewClass = <!EXPERIMENTAL_API_USAGE_ERROR!>NewClassExperimentalInThePast<!>
|
||||
typealias TypeAliasToNewClass = <!OPT_IN_USAGE_ERROR!>NewClassExperimentalInThePast<!>
|
||||
|
||||
|
||||
fun use1(
|
||||
c1: <!EXPERIMENTAL_API_USAGE_ERROR!>NewClassExperimentalInThePast<!>,
|
||||
t1: <!EXPERIMENTAL_API_USAGE_ERROR!>TypeAliasToNewClass<!>
|
||||
c1: <!OPT_IN_USAGE_ERROR!>NewClassExperimentalInThePast<!>,
|
||||
t1: <!OPT_IN_USAGE_ERROR!>TypeAliasToNewClass<!>
|
||||
) {
|
||||
<!UNRESOLVED_REFERENCE!>newPublishedFun<!>()
|
||||
<!UNRESOLVED_REFERENCE!>newFunExperimentalInThePast<!>()
|
||||
|
||||
Vendored
+6
-6
@@ -8,18 +8,18 @@ annotation class SomeOptInMarker
|
||||
annotation class OtherOptInMarker
|
||||
|
||||
class IntWrapper(
|
||||
<!EXPERIMENTAL_ANNOTATION_ON_WRONG_TARGET!>@SomeOptInMarker<!>
|
||||
<!EXPERIMENTAL_ANNOTATION_ON_WRONG_TARGET!>@OtherOptInMarker<!>
|
||||
<!OPT_IN_MARKER_ON_WRONG_TARGET!>@SomeOptInMarker<!>
|
||||
<!OPT_IN_MARKER_ON_WRONG_TARGET!>@OtherOptInMarker<!>
|
||||
val value: Int
|
||||
) {
|
||||
val isEven: Boolean
|
||||
<!EXPERIMENTAL_ANNOTATION_ON_WRONG_TARGET!>@SomeOptInMarker<!>
|
||||
<!EXPERIMENTAL_ANNOTATION_ON_WRONG_TARGET!>@OtherOptInMarker<!>
|
||||
<!OPT_IN_MARKER_ON_WRONG_TARGET!>@SomeOptInMarker<!>
|
||||
<!OPT_IN_MARKER_ON_WRONG_TARGET!>@OtherOptInMarker<!>
|
||||
get() = (value % 2) == 0
|
||||
}
|
||||
|
||||
fun foo() {
|
||||
<!EXPERIMENTAL_ANNOTATION_ON_WRONG_TARGET!>@SomeOptInMarker<!>
|
||||
<!EXPERIMENTAL_ANNOTATION_ON_WRONG_TARGET!>@OtherOptInMarker<!>
|
||||
<!OPT_IN_MARKER_ON_WRONG_TARGET!>@SomeOptInMarker<!>
|
||||
<!OPT_IN_MARKER_ON_WRONG_TARGET!>@OtherOptInMarker<!>
|
||||
val value = 2
|
||||
}
|
||||
Reference in New Issue
Block a user