Prohibit using null as a value of generic type

#KT-7350 Fixed
 #KT-7736 Fixed
 #KT-7485 Fixed
This commit is contained in:
Denis Zharkov
2015-08-05 18:31:28 +03:00
parent dfac2205fd
commit a906be6dd7
5 changed files with 87 additions and 1 deletions
@@ -0,0 +1,35 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE,-BASE_WITH_NULLABLE_UPPER_BOUND
fun <E> bar(x: E) {}
fun <T> foo(): T {
val x1: T = <!NULL_FOR_NONNULL_TYPE!>null<!>
val x2: T? = null
bar<T>(<!NULL_FOR_NONNULL_TYPE!>null<!>)
bar<T?>(null)
return <!NULL_FOR_NONNULL_TYPE!>null<!>
}
fun <T> baz(): T? = null
fun <T> foobar(): T = <!NULL_FOR_NONNULL_TYPE!>null<!>
class A<F> {
fun xyz(x: F) {}
fun foo(): F {
val x1: F = <!NULL_FOR_NONNULL_TYPE!>null<!>
val x2: F? = null
xyz(<!NULL_FOR_NONNULL_TYPE!>null<!>)
bar<F?>(null)
return <!NULL_FOR_NONNULL_TYPE!>null<!>
}
fun baz(): F? = null
fun foobar(): F = <!NULL_FOR_NONNULL_TYPE!>null<!>
}