Fix incorrect "senseless null in when" on nullable type
This commit is contained in:
+21
@@ -0,0 +1,21 @@
|
||||
// FILE: A.java
|
||||
|
||||
class A {
|
||||
enum Empty {}
|
||||
|
||||
static Empty foo() { return null; }
|
||||
}
|
||||
|
||||
// FILE: 1.kt
|
||||
|
||||
fun bar() = when (A.foo()) {
|
||||
null -> "null"
|
||||
else -> "else"
|
||||
}
|
||||
|
||||
fun <T : Number?> baz(t: T) = when (t) {
|
||||
is Int -> "int"
|
||||
is Long -> "long"
|
||||
null -> "null"
|
||||
else -> "else"
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
package
|
||||
|
||||
internal fun bar(): kotlin.String
|
||||
internal fun </*0*/ T : kotlin.Number?> baz(/*0*/ t: T): kotlin.String
|
||||
|
||||
public/*package*/ open class A {
|
||||
public/*package*/ constructor A()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public/*package*/ final enum class Empty : kotlin.Enum<A.Empty!> {
|
||||
public/*package*/ constructor Empty()
|
||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: A.Empty!): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun name(): kotlin.String
|
||||
public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): A.Empty
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<A.Empty>
|
||||
}
|
||||
|
||||
// Static members
|
||||
public/*package*/ open fun foo(): A.Empty!
|
||||
}
|
||||
Reference in New Issue
Block a user