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
This commit is contained in:
Alexander Udalov
2018-01-02 18:49:34 +01:00
parent 6d4e8f3781
commit 29c35e6686
37 changed files with 511 additions and 50 deletions
@@ -1,5 +1,6 @@
// !API_VERSION: 1.3
// !DIAGNOSTICS: -UNUSED_PARAMETER
// MODULE: api
// FILE: api.kt
package api
@@ -14,6 +15,7 @@ annotation class ExperimentalAPI
AnnotationTarget.VALUE_PARAMETER)
annotation class EAnno
// MODULE: usage1(api)
// FILE: usage-propagate.kt
package usage1
@@ -59,6 +61,7 @@ val inProperty = @EAnno fun() {}
val inPropertyAccessor: () -> Unit
get() = @EAnno fun() {}
// MODULE: usage2(api)
// FILE: usage-use.kt
package usage2
@@ -102,6 +105,7 @@ val inPropertyAccessor: () -> Unit
@UseExperimental(ExperimentalAPI::class)
get() = @EAnno fun() {}
// MODULE: usage3(api)
// FILE: usage-none.kt
package usage3