USELESS_ELVIS_RIGHT_IS_NULL is no more reported for flexible left argument #KT-13593 Fixed

This commit is contained in:
Mikhail Glukhikh
2016-12-22 18:22:07 +03:00
parent 8d16bd1215
commit 0e70e3f80e
3 changed files with 40 additions and 1 deletions
@@ -9,11 +9,30 @@ public class J {
public static J staticN;
}
// FILE: JJ.java
public class JJ {
public static JJ staticNN;
}
// FILE: JJJ.java
import org.jetbrains.annotations.*;
public class JJJ {
@NotNull
public static JJJ staticNNN;
}
// FILE: k.kt
fun test() {
val a = J.staticN <!USELESS_ELVIS_RIGHT_IS_NULL!>?: null<!>
foo(a)
val b = JJ.staticNN ?: null
foo(b)
val c = JJJ.staticNNN <!USELESS_ELVIS!>?: null<!>
foo(c)
}
fun foo(a: Any?) {
@@ -12,3 +12,23 @@ public open class J {
// Static members
@org.jetbrains.annotations.Nullable public final var staticN: J?
}
public open class JJ {
public constructor JJ()
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
// Static members
public final var staticNN: JJ!
}
public open class JJJ {
public constructor JJJ()
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
// Static members
@org.jetbrains.annotations.NotNull public final var staticNNN: JJJ
}