blob: 7a0eb89df7f5caa862753caa99a78b9558f38aaa [file] [log] [blame]
fun <T> checkSubtype(t: T) = t
class A(val a:Int) {
inner class B() {
val x = checkSubtype<B>(this@B)
val y = checkSubtype<A>(this@A)
val z = checkSubtype<B>(this)
val Int.xx : Int get() = checkSubtype<Int>(this)
fun Byte.xx() : Double.() -> Unit {
checkSubtype<Byte>(this)
val <warning>a</warning>: Double.() -> Unit = { checkSubtype<Double>(this) + checkSubtype<Byte>(this@xx) }
val <warning>b</warning>: Double.() -> Unit = a@{checkSubtype<Double>(this@a) + checkSubtype<Byte>(this@xx) }
val <warning>c</warning> = a@{<error>this@a</error> <error>+</error> checkSubtype<Byte>(this@xx) }
return (a@{checkSubtype<Double>(this@a) + checkSubtype<Byte>(this@xx) })
}
}
}