[FIR] Implement NULL_FOR_NONNULL_TYPE diagnostics, fix tests

This commit is contained in:
Ivan Kochurkin
2021-04-13 20:17:48 +03:00
parent 9336e4b09b
commit 4353365968
54 changed files with 130 additions and 251 deletions
@@ -1,23 +0,0 @@
// !CHECK_TYPE
// FILE: A.java
public class A {}
// FILE: X.java
import org.jetbrains.annotations.NotNull;
public class X<T> {
@NotNull T fooN() {return null;}
void barN(@NotNull T a) {}
}
// FILE: Y.java
public class Y extends X<String> {
}
// FILE: test.kt
fun main() {
checkSubtype<Any>(Y().fooN())
Y().barN(<!ARGUMENT_TYPE_MISMATCH!>null<!>);
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !CHECK_TYPE
// FILE: A.java
public class A {}
@@ -1,23 +0,0 @@
// !CHECK_TYPE
// FILE: A.java
public class A {}
// FILE: X.java
import org.jetbrains.annotations.NotNull;
public class X<T> {
@NotNull T fooN() {return null;}
void barN(@NotNull T a) {}
}
// FILE: Y.java
public class Y extends X<A> {
}
// FILE: test.kt
fun main() {
checkSubtype<Any>(Y().fooN())
Y().barN(<!ARGUMENT_TYPE_MISMATCH!>null<!>);
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !CHECK_TYPE
// FILE: A.java
public class A {}
@@ -100,7 +100,7 @@ public class SpecializedMap extends AbstractSpecializedMap {
// FILE: main.kt
fun foo(x: SpecializedMap) {
x.containsKey(1)
x.containsKey(<!ARGUMENT_TYPE_MISMATCH!>null<!>)
x.containsKey(<!NULL_FOR_NONNULL_TYPE!>null<!>)
x.<!OVERLOAD_RESOLUTION_AMBIGUITY!>get<!>(2)
x.<!NONE_APPLICABLE!>get<!>(null)
@@ -20,5 +20,5 @@ class In<in F> {
fun test() {
A.foo().x() checkType { _<Any?>() }
A.bar().y(<!ARGUMENT_TYPE_MISMATCH!>null<!>)
A.bar().y(<!NULL_FOR_NONNULL_TYPE!>null<!>)
}