[NI] Fix isNullableType for definitely not null type parameter
Consider type parameter with nullable bound not null if it is inside of a definitely not null type.
This commit is contained in:
Vendored
+17
@@ -0,0 +1,17 @@
|
||||
// !LANGUAGE: +NewInference
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE -UNUSED_EXPRESSION
|
||||
|
||||
fun <D> makeDefinitelyNotNull(arg: D?): D = TODO()
|
||||
|
||||
fun <N : Number?> test(arg: N) {
|
||||
makeDefinitelyNotNull(arg) ?: 1
|
||||
|
||||
makeDefinitelyNotNull(arg)!!
|
||||
|
||||
makeDefinitelyNotNull(arg)?.toInt()
|
||||
|
||||
val nullImposible = when (val dnn = makeDefinitelyNotNull(arg)) {
|
||||
null -> false
|
||||
else -> true
|
||||
}
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
// !LANGUAGE: +NewInference
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE -UNUSED_EXPRESSION
|
||||
|
||||
fun <D> makeDefinitelyNotNull(arg: D?): D = TODO()
|
||||
|
||||
fun <N : Number?> test(arg: N) {
|
||||
makeDefinitelyNotNull(arg) <!USELESS_ELVIS!>?: 1<!>
|
||||
|
||||
makeDefinitelyNotNull(arg)<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>
|
||||
|
||||
makeDefinitelyNotNull(arg)<!UNNECESSARY_SAFE_CALL!>?.<!>toInt()
|
||||
|
||||
val nullImposible = when (val dnn = makeDefinitelyNotNull(arg)) {
|
||||
<!SENSELESS_NULL_IN_WHEN!>null<!> -> false
|
||||
else -> true
|
||||
}
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
public fun </*0*/ D> makeDefinitelyNotNull(/*0*/ arg: D?): D
|
||||
public fun </*0*/ N : kotlin.Number?> test(/*0*/ arg: N): kotlin.Unit
|
||||
Reference in New Issue
Block a user