Support -Xexperimental/-Xuse-experimental in ExperimentalUsageChecker

#KT-22759 In Progress
This commit is contained in:
Alexander Udalov
2018-01-17 16:43:02 +01:00
parent 77625831f7
commit 5e78adb501
8 changed files with 165 additions and 24 deletions
@@ -0,0 +1,23 @@
// !API_VERSION: 1.3
// !EXPERIMENTAL: api.ExperimentalAPI
// MODULE: api
// FILE: api.kt
package api
@Experimental
annotation class ExperimentalAPI
@ExperimentalAPI
fun function(): String = ""
// MODULE: usage(api)
// FILE: usage.kt
package usage
import api.*
fun use() {
function()
}
@@ -0,0 +1,24 @@
// -- Module: <api> --
package
package api {
@api.ExperimentalAPI public fun function(): kotlin.String
@kotlin.Experimental public final annotation class ExperimentalAPI : kotlin.Annotation {
public constructor ExperimentalAPI()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
// -- Module: <usage> --
package
package api {
}
package usage {
public fun use(): kotlin.Unit
}
@@ -0,0 +1,23 @@
// !API_VERSION: 1.3
// !USE_EXPERIMENTAL: api.ExperimentalAPI
// MODULE: api
// FILE: api.kt
package api
@Experimental(Experimental.Level.ERROR, [Experimental.Impact.COMPILATION])
annotation class ExperimentalAPI
@ExperimentalAPI
fun function(): String = ""
// MODULE: usage(api)
// FILE: usage.kt
package usage
import api.*
fun use() {
function()
}
@@ -0,0 +1,24 @@
// -- Module: <api> --
package
package api {
@api.ExperimentalAPI public fun function(): kotlin.String
@kotlin.Experimental(changesMayBreak = {Impact.COMPILATION}, level = Level.ERROR) public final annotation class ExperimentalAPI : kotlin.Annotation {
public constructor ExperimentalAPI()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
// -- Module: <usage> --
package
package api {
}
package usage {
public fun use(): kotlin.Unit
}