Files
kotlin-fork/compiler/testData/diagnostics/testsWithStdLib/experimental/useExperimentalTargets.kt
T
Alexander Udalov 29c35e6686 Do not require experimental propagation for body usages in same module
Unless it's a usage inside the body of an effectively public inline
function

 #KT-22759 In Progress
2018-02-08 17:07:22 +01:00

57 lines
1000 B
Kotlin
Vendored

// !API_VERSION: 1.3
// !DIAGNOSTICS: -UNUSED_PARAMETER
// MODULE: api
// FILE: api.kt
package api
@Experimental(Experimental.Level.WARNING, [Experimental.Impact.COMPILATION])
@Target(AnnotationTarget.CLASS)
annotation class E
@E
open class Foo(val s: String = "")
// MODULE: usage(api)
// FILE: usage.kt
import api.*
@UseExperimental(E::class)
class Klass {
init {
Foo()
}
}
class Constructor {
@UseExperimental(E::class) constructor() {
Foo()
}
}
@UseExperimental(E::class)
val property = Foo().s
@UseExperimental(E::class)
fun function() {
Foo()
}
fun valueParameter(@UseExperimental(E::class) p: String = Foo().s): String {
@UseExperimental(E::class)
val localVariable: String = Foo().s
return localVariable
}
var propertyAccessors: String
@UseExperimental(E::class)
get() = Foo().s
@UseExperimental(E::class)
set(value) { Foo() }
fun expression(): String {
val s = @UseExperimental(E::class) Foo().s
return s
}