FIR: disregard enhancements for warnings

Warnings are not implemented yet, so don't produce errors either.
This commit is contained in:
pyos
2021-09-02 12:18:49 +02:00
committed by teamcityserver
parent a475453a01
commit 9bb7a29baa
79 changed files with 325 additions and 284 deletions
@@ -43,8 +43,8 @@ fun main(
b: AnnotatedBoundsOfWildcard
): Unit {
b.superAsIs(<!ARGUMENT_TYPE_MISMATCH!>aAnyNotNullNotNullNotNull<!>)
b.superAsIs(<!ARGUMENT_TYPE_MISMATCH!>aAnyNotNullNotNullNull<!>)
b.superAsIs(aAnyNotNullNotNullNotNull)
b.superAsIs(aAnyNotNullNotNullNull)
b.superAsIs(aAnyNotNullNullNotNull)
b.superAsIs(aAnyNotNullNullNull)
@@ -53,10 +53,10 @@ fun main(
b.superNotNull(aAnyNotNullNullNotNull)
b.superNotNull(aAnyNotNullNullNull)
b.superNullable(<!ARGUMENT_TYPE_MISMATCH!>aAnyNotNullNotNullNotNull<!>)
b.superNullable(<!ARGUMENT_TYPE_MISMATCH!>aAnyNotNullNotNullNull<!>)
b.superNullable(<!ARGUMENT_TYPE_MISMATCH!>aAnyNotNullNullNotNull<!>)
b.superNullable(<!ARGUMENT_TYPE_MISMATCH!>aAnyNotNullNullNull<!>)
b.superNullable(aAnyNotNullNotNullNotNull)
b.superNullable(aAnyNotNullNotNullNull)
b.superNullable(aAnyNotNullNullNotNull)
b.superNullable(aAnyNotNullNullNull)
b.extendsAsIs(aNotNullNotNullNotNull)
b.extendsAsIs(aNotNullNotNullNull)
@@ -64,9 +64,9 @@ fun main(
b.extendsAsIs(aNotNullNullNull)
b.extendsNotNull(aNotNullNotNullNotNull)
b.extendsNotNull(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNotNullNull<!>)
b.extendsNotNull(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNullNotNull<!>)
b.extendsNotNull(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNullNull<!>)
b.extendsNotNull(aNotNullNotNullNull)
b.extendsNotNull(aNotNullNullNotNull)
b.extendsNotNull(aNotNullNullNull)
b.extendsNullable(aNotNullNotNullNotNull)
b.extendsNullable(aNotNullNotNullNull)
@@ -1,17 +0,0 @@
// JSPECIFY_STATE: warn
// !LANGUAGE: +TypeEnhancementImprovementsInStrictMode
// FILE: J1.java
import org.jetbrains.annotations.Nullable;
public interface J1<T> {
@Nullable
public static <T> T foo(J1<T> x) { return null; }
}
// FILE: J2.java
import org.jspecify.nullness.Nullable;
public interface J2<V extends @Nullable Object> extends J1<V> { }
// FILE: kotlin.kt
private fun J2<*>.bar() = <!NEW_INFERENCE_ERROR!>J1.foo(this)<!>
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// JSPECIFY_STATE: warn
// !LANGUAGE: +TypeEnhancementImprovementsInStrictMode
// FILE: J1.java
@@ -26,20 +26,20 @@ public class Foo {
// FILE: main.kt
fun main(a: Defaults, x: Foo): Unit {
a.everythingNotNullable(<!NULL_FOR_NONNULL_TYPE!>null<!>).foo()
a.everythingNotNullable(null).foo()
a.everythingNotNullable(x).foo()
a.everythingNullable(null)<!UNSAFE_CALL!>.<!>foo()
a.everythingNullable(null).foo()
a.everythingUnknown(null).foo()
a.mixed(<!NULL_FOR_NONNULL_TYPE!>null<!>)<!UNSAFE_CALL!>.<!>foo()
a.mixed(x)<!UNSAFE_CALL!>.<!>foo()
a.mixed(null).foo()
a.mixed(x).foo()
a.explicitlyNullnessUnspecified(x).foo()
a.explicitlyNullnessUnspecified(null).foo()
a.defaultField.foo()
a.field<!UNSAFE_CALL!>.<!>foo()
a.field.foo()
}
@@ -29,15 +29,15 @@ public class Derived extends Base { }
// FILE: main.kt
fun main(a: IgnoreAnnotations, x: Derived): Unit {
a.foo(x, null)<!UNSAFE_CALL!>.<!>foo()
a.foo(<!NULL_FOR_NONNULL_TYPE!>null<!>, x)<!UNSAFE_CALL!>.<!>foo()
a.foo(x, null).foo()
a.foo(null, x).foo()
a.field<!UNSAFE_CALL!>.<!>foo()
a.field.foo()
a.everythingNotNullable(<!NULL_FOR_NONNULL_TYPE!>null<!>).foo()
a.everythingNotNullable(null).foo()
a.everythingNotNullable(x).foo()
a.everythingNullable(null)<!UNSAFE_CALL!>.<!>foo()
a.everythingNullable(null).foo()
a.everythingUnknown(null).foo()
}
@@ -17,11 +17,11 @@ public class Test {}
fun <T : Test> main(a1: NonPlatformTypeParameter<Any?>, a2: NonPlatformTypeParameter<Test>, x: T): Unit {
a1.foo(null)
a1.bar<Test?>(null)
a1.bar<T>(<!NULL_FOR_NONNULL_TYPE!>null<!>)
a1.bar<T>(null)
a1.bar<T>(x)
a2.foo(<!NULL_FOR_NONNULL_TYPE!>null<!>)
a2.foo(null)
a2.bar<Test?>(null)
a2.bar<T>(<!NULL_FOR_NONNULL_TYPE!>null<!>)
a2.bar<T>(null)
a2.bar<T>(x)
}
@@ -13,18 +13,18 @@ public class NullnessUnspecifiedTypeParameter<T> {
public class Test {}
// FILE: main.kt
fun main(a1: NullnessUnspecifiedTypeParameter<Any>, a2: NullnessUnspecifiedTypeParameter<<!UPPER_BOUND_VIOLATED!>Any?<!>>, x: Test): Unit {
a1.foo(<!NULL_FOR_NONNULL_TYPE!>null<!>)
fun main(a1: NullnessUnspecifiedTypeParameter<Any>, a2: NullnessUnspecifiedTypeParameter<Any?>, x: Test): Unit {
a1.foo(null)
a1.foo(1)
a2.foo(null)
a2.foo(1)
a1.bar(<!NULL_FOR_NONNULL_TYPE!>null<!>, <!NULL_FOR_NONNULL_TYPE!>null<!>)
a1.bar(x, <!NULL_FOR_NONNULL_TYPE!>null<!>)
a1.bar(null, null)
a1.bar(x, null)
a1.bar(x, 1)
a2.bar(<!NULL_FOR_NONNULL_TYPE!>null<!>, null)
a2.bar(null, null)
a2.bar(x, null)
a2.bar(x, 1)
}
@@ -40,15 +40,15 @@ public class CKN extends C<@Nullable CK> {}
// FILE: main.kt
fun main(ak: AK, akn: AKN, bk: BK, ck: CK, ckn: CKN): Unit {
ak.foo(ak)
ak.foo(<!NULL_FOR_NONNULL_TYPE!>null<!>)
ak.foo(null)
akn.foo(null) // the corresponding warning/error is present on the Java side
bk.foo(bk)
bk.foo(<!NULL_FOR_NONNULL_TYPE!>null<!>)
bk.foo(null)
ck.foo(ck)
ck.foo(<!NULL_FOR_NONNULL_TYPE!>null<!>)
ck.foo(null)
ckn.foo(null) // the corresponding warning/error is present on the Java side
}
@@ -27,10 +27,10 @@ public class Derived extends Base {
// FILE: main.kt
fun main(a: Simple, x: Derived): Unit {
a.foo(x, null)<!UNSAFE_CALL!>.<!>foo()
a.foo(<!NULL_FOR_NONNULL_TYPE!>null<!>, x)<!UNSAFE_CALL!>.<!>foo()
a.foo(x, null).foo()
a.foo(null, x).foo()
a.bar().foo()
a.field<!UNSAFE_CALL!>.<!>foo()
a.field.foo()
}
@@ -34,9 +34,9 @@ fun main(
a: A, b: B
): Unit {
a.bar(aNotNullNotNullNotNull)
a.bar(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNotNullNull<!>)
a.bar(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNullNotNull<!>)
a.bar(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNullNull<!>)
a.bar(aNotNullNotNullNull)
a.bar(aNotNullNullNotNull)
a.bar(aNotNullNullNull)
b.bar(aNotNullNotNullNotNull)
b.bar(aNotNullNotNullNull)
@@ -20,20 +20,20 @@ public class B<T> {
public class Test {}
// FILE: main.kt
fun <T : Test> main(a1: A<<!UPPER_BOUND_VIOLATED!>Any?<!>>, a2: A<Test>, b1: B<<!UPPER_BOUND_VIOLATED!>Any?<!>>, b2: B<Test>, x: T): Unit {
fun <T : Test> main(a1: A<Any?>, a2: A<Test>, b1: B<Any?>, b2: B<Test>, x: T): Unit {
a1.foo(null)
a1.bar<<!UPPER_BOUND_VIOLATED!>T?<!>>(<!NULL_FOR_NONNULL_TYPE!>null<!>)
a1.bar<T?>(null)
a1.bar<T>(x)
a2.foo(null)
a2.bar<<!UPPER_BOUND_VIOLATED!>T?<!>>(<!NULL_FOR_NONNULL_TYPE!>null<!>)
a2.bar<T?>(null)
a2.bar<T>(x)
b1.foo(null)
b1.bar<<!UPPER_BOUND_VIOLATED!>T?<!>>(<!NULL_FOR_NONNULL_TYPE!>null<!>)
b1.bar<T?>(null)
b1.bar<T>(x)
b2.foo(<!NULL_FOR_NONNULL_TYPE!>null<!>)
b2.bar<<!UPPER_BOUND_VIOLATED!>T?<!>>(<!NULL_FOR_NONNULL_TYPE!>null<!>)
b2.foo(null)
b2.bar<T?>(null)
b2.bar<T>(x)
}