FIR: disregard enhancements for warnings
Warnings are not implemented yet, so don't produce errors either.
This commit is contained in:
+9
-9
@@ -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)
|
||||
|
||||
Vendored
-17
@@ -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)<!>
|
||||
Vendored
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// JSPECIFY_STATE: warn
|
||||
// !LANGUAGE: +TypeEnhancementImprovementsInStrictMode
|
||||
// FILE: J1.java
|
||||
|
||||
Vendored
+5
-5
@@ -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()
|
||||
}
|
||||
|
||||
+5
-5
@@ -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()
|
||||
}
|
||||
|
||||
+3
-3
@@ -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)
|
||||
}
|
||||
|
||||
+5
-5
@@ -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)
|
||||
}
|
||||
|
||||
Vendored
+3
-3
@@ -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
|
||||
}
|
||||
|
||||
Vendored
+3
-3
@@ -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()
|
||||
}
|
||||
|
||||
+3
-3
@@ -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)
|
||||
|
||||
+6
-6
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user