Support new form of definitely non-nullable types: T & Any
^KT-26245 In Progress
This commit is contained in:
committed by
teamcityserver
parent
cdd8d1c163
commit
302eacbf59
+10
-10
@@ -1,33 +1,33 @@
|
||||
package test
|
||||
|
||||
interface A<T> {
|
||||
fun foo(x: T!!)
|
||||
fun foo(x: T & Any)
|
||||
|
||||
val w: T!!
|
||||
val w: T & Any
|
||||
}
|
||||
|
||||
class B<X>(r: X!!)
|
||||
class B<X>(r: X & Any)
|
||||
|
||||
fun <K> inside() {
|
||||
object : A<K> {
|
||||
override fun foo(x: K!!) {
|
||||
override fun foo(x: K & Any) {
|
||||
}
|
||||
|
||||
override val w: K!!
|
||||
override val w: K & Any
|
||||
get() = TODO("")
|
||||
}
|
||||
}
|
||||
|
||||
fun <F> bar1(x: F!!) {}
|
||||
fun <F> bar1(x: F & Any) {}
|
||||
fun <F> bar2(x: F) = x!!
|
||||
|
||||
val <E> E.nn: E!! get() = this!!
|
||||
val <E> E.nn: E & Any get() = this!!
|
||||
|
||||
class Outer {
|
||||
abstract class R1<T, F : T!!> : A<T!!>
|
||||
abstract class R2<T, F : T!!> : A<T>
|
||||
abstract class R1<T, F : T & Any> : A<T & Any>
|
||||
abstract class R2<T, F : T & Any> : A<T>
|
||||
|
||||
abstract class W<T> : A<T>
|
||||
}
|
||||
|
||||
typealias Alias<R> = A<R!!>
|
||||
typealias Alias<R> = A<R & Any>
|
||||
|
||||
Reference in New Issue
Block a user