OptIn: handle usages via type aliases properly

This commit is contained in:
Mikhail Glukhikh
2021-06-03 18:16:35 +03:00
committed by teamcityserver
parent b4ee116de7
commit eb9c658c1c
5 changed files with 38 additions and 8 deletions
@@ -2,6 +2,7 @@
@RequiresOptIn
@Retention(AnnotationRetention.BINARY)
@Target(AnnotationTarget.CLASS, AnnotationTarget.PROPERTY, AnnotationTarget.TYPEALIAS)
annotation class Marker
@Marker
@@ -59,8 +60,17 @@ class A : I
@OptIn(Marker::class)
class B : I
@OptIn(Marker::class)
typealias MyList = ArrayList<I>
@Marker
typealias YourList = ArrayList<String>
fun main() {
val x = <!EXPERIMENTAL_API_USAGE_ERROR!>listOf<!>(A(), B())
val y = <!EXPERIMENTAL_API_USAGE_ERROR!>MyList<!>()
val z = <!EXPERIMENTAL_API_USAGE_ERROR!>YourList<!>()
<!EXPERIMENTAL_API_USAGE_ERROR!>YourList<!>().add("")
}
@Marker