Files
kotlin-fork/compiler/testData/asJava/lightClasses/lightClassByPsi/jvmWildcardAnnotations.kt
T
2024-03-07 10:17:00 +00:00

66 lines
1.7 KiB
Kotlin
Vendored

// IGNORE_PARENTING_CHECK
class Inv<E>
class Out<out T>
class OutPair<out Final, out Y>
class In<in Z>
class Final
open class Open
class Container {
@JvmSuppressWildcards(true)
fun deepOpen(x: Out<Out<Out<Open>>>) {}
@JvmSuppressWildcards(false)
fun bar(): Out<Open> = null!!
fun simpleOut(x: Out<@JvmWildcard Final>) {}
fun simpleIn(x: In<@JvmWildcard Any?>) {}
fun falseTrueFalse(): @JvmSuppressWildcards(false) OutPair<Final, @JvmSuppressWildcards OutPair<Out<Final>, Out<@JvmSuppressWildcards(false) Final>>> = null!!
fun combination(): @JvmSuppressWildcards OutPair<Open, @JvmWildcard OutPair<Open, @JvmWildcard Out<Open>>> = null!!
@JvmSuppressWildcards(false)
fun foo(x: Boolean, y: Out<Int>): Int = 1
@JvmSuppressWildcards(true)
fun bar(x: Boolean, y: In<Long>, z: @JvmSuppressWildcards(false) Long): Int = 1
@JvmSuppressWildcards(true)
fun Out<Out<Out<Open>>>.zoo(z: @JvmSuppressWildcards(false) Out<Open>) {}
}
class ContainerForPropertyAndAccessors {
@JvmSuppressWildcards(true)
val deepOpen: Out<Out<Out<Open>>> = TODO()
@JvmSuppressWildcards(false)
var bar: Out<Open> = TODO()
val simpleOut: Out<@JvmWildcard Final> = TODO()
val simpleIn: In<@JvmWildcard Any?> = TODO()
@JvmSuppressWildcards(true)
val Out<Out<Out<Open>>>.zoo: @JvmSuppressWildcards(false) Out<Open>
get() = TODO()
}
@JvmSuppressWildcards(true)
class HasAnnotation {
fun doesNot(p: Out<Out<Open>>) {}
fun parameterDisagrees(p: @JvmSuppressWildcards(false) Out<Int>) {}
}
interface A<T> {
@JvmSuppressWildcards(true)
fun foo(): Out<T>
}
interface B {
@JvmSuppressWildcards(true)
fun foo(): In<Open>
}