FIR: add EXPERIMENTAL_API_USAGE reporting

This commit is contained in:
Mikhail Glukhikh
2021-07-08 15:50:53 +03:00
parent 3235b09a92
commit 82f268d611
81 changed files with 520 additions and 650 deletions
@@ -9,15 +9,15 @@ annotation class Marker
interface Some
abstract class User {
abstract fun createSome(): Some
fun Some?.onSome() {}
fun withSome(some: Some? = null) {}
abstract fun createSome(): <!EXPERIMENTAL_API_USAGE_ERROR!>Some<!>
fun <!EXPERIMENTAL_API_USAGE_ERROR!>Some<!>?.onSome() {}
fun withSome(some: <!EXPERIMENTAL_API_USAGE_ERROR!>Some<!>? = null) {}
fun use() {
val something = createSome()
val somethingOther: Some = createSome()
null.onSome()
withSome()
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<!>()
}
}
@@ -25,15 +25,15 @@ data class DataClass(@property:Marker val x: Int)
fun useDataClass(d: DataClass) {
// Should have error in both
d.x
d.<!EXPERIMENTAL_API_USAGE_ERROR!>x<!>
val (x) = d
}
typealias My = Some
typealias My = <!EXPERIMENTAL_API_USAGE_ERROR!>Some<!>
fun my(my: My) {}
fun my(my: <!EXPERIMENTAL_API_USAGE_ERROR!>My<!>) {}
fun your(my: Some) {}
fun your(my: <!EXPERIMENTAL_API_USAGE_ERROR!>Some<!>) {}
@Marker
interface ExperimentalType {
@@ -48,7 +48,7 @@ interface NotExperimentalExtension : ExperimentalType {
fun use(arg: NotExperimentalExtension) {
arg.foo()
arg.bar()
arg.<!EXPERIMENTAL_API_USAGE_ERROR!>bar<!>()
}
@Marker
@@ -67,7 +67,7 @@ typealias MyList = ArrayList<I>
typealias YourList = ArrayList<String>
fun main() {
val x = listOf(A(), B())
val x = <!EXPERIMENTAL_API_USAGE_ERROR!>listOf<!>(A(), B())
val y = MyList()
val z = YourList()
YourList().add("")
@@ -83,7 +83,7 @@ object O {
operator fun provideDelegate(x: Any?, y: Any?): C = C()
}
val x: String by O
val x: String by <!EXPERIMENTAL_API_USAGE_ERROR!>O<!>
@Marker
class OperatorContainer : Comparable<OperatorContainer> {
@@ -116,8 +116,8 @@ operator fun String.minus(s: String) = OperatorContainer()
operator fun String.invoke() = OperatorContainer()
fun operatorContainerUsage(s: String, a: AnotherContainer) {
val res1 = s - s
val res2 = s()
val res3 = res1 > res2
for (c in a) {}
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) {}<!>
}