4f53a54115
See https://github.com/Kotlin/KEEP/issues/95#issuecomment-383889404 Drop Experimental.changesMayBreak, Experimental.Impact, the concept of signature/body usage, same module exemption. Make the majority of tests single-module because there is now no difference in the checker between usages from the same module or from another module
89 lines
1.5 KiB
Kotlin
Vendored
89 lines
1.5 KiB
Kotlin
Vendored
// !API_VERSION: 1.3
|
|
// FILE: api.kt
|
|
|
|
package api
|
|
|
|
@Experimental(Experimental.Level.WARNING)
|
|
@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION)
|
|
annotation class ExperimentalAPI
|
|
|
|
@ExperimentalAPI
|
|
class C {
|
|
fun function(): String = ""
|
|
val property: String = ""
|
|
class Nested
|
|
inner class Inner
|
|
}
|
|
|
|
@ExperimentalAPI
|
|
fun C.extension() {}
|
|
|
|
// FILE: usage-propagate.kt
|
|
|
|
package usage1
|
|
|
|
import api.*
|
|
|
|
@ExperimentalAPI
|
|
fun useAll() {
|
|
val c: C = C()
|
|
c.function()
|
|
c.property
|
|
C.Nested()
|
|
c.Inner()
|
|
c.extension()
|
|
}
|
|
|
|
@ExperimentalAPI
|
|
class Use {
|
|
fun useAll(c: C) {
|
|
c.function()
|
|
c.property
|
|
C.Nested()
|
|
c.Inner()
|
|
c.extension()
|
|
}
|
|
}
|
|
|
|
// FILE: usage-use.kt
|
|
|
|
package usage2
|
|
|
|
import api.*
|
|
|
|
@UseExperimental(ExperimentalAPI::class)
|
|
fun useAll() {
|
|
val c: C = C()
|
|
c.function()
|
|
c.property
|
|
C.Nested()
|
|
c.Inner()
|
|
c.extension()
|
|
}
|
|
|
|
@UseExperimental(ExperimentalAPI::class)
|
|
class Use {
|
|
fun useAll(c: C) {
|
|
c.function()
|
|
c.property
|
|
C.Nested()
|
|
c.Inner()
|
|
c.extension()
|
|
}
|
|
}
|
|
|
|
// FILE: usage-none.kt
|
|
|
|
package usage3
|
|
|
|
import api.*
|
|
|
|
fun use() {
|
|
val c: <!EXPERIMENTAL_API_USAGE!>C<!> = <!EXPERIMENTAL_API_USAGE!>C<!>()
|
|
c.<!EXPERIMENTAL_API_USAGE!>function<!>()
|
|
c.<!EXPERIMENTAL_API_USAGE!>property<!>
|
|
<!EXPERIMENTAL_API_USAGE!>C<!>.<!EXPERIMENTAL_API_USAGE!>Nested<!>()
|
|
c.<!EXPERIMENTAL_API_USAGE!>Inner<!>()
|
|
c.<!EXPERIMENTAL_API_USAGE!>extension<!>()
|
|
}
|