FIR: attach annotations to Java-converted cone types
This commit is contained in:
+21
-24
@@ -44,8 +44,10 @@ fun main(
|
||||
|
||||
b: AnnotatedBoundsOfWildcard
|
||||
): Unit {
|
||||
b.superAsIs(aAnyNotNullNotNullNotNull)
|
||||
b.superAsIs(aAnyNotNullNotNullNull)
|
||||
// jspecify_nullness_mismatch
|
||||
b.superAsIs(<!ARGUMENT_TYPE_MISMATCH!>aAnyNotNullNotNullNotNull<!>)
|
||||
// jspecify_nullness_mismatch
|
||||
b.superAsIs(<!ARGUMENT_TYPE_MISMATCH!>aAnyNotNullNotNullNull<!>)
|
||||
b.superAsIs(aAnyNotNullNullNotNull)
|
||||
b.superAsIs(aAnyNotNullNullNull)
|
||||
|
||||
@@ -54,18 +56,19 @@ fun main(
|
||||
b.superNotNull(aAnyNotNullNullNotNull)
|
||||
b.superNotNull(aAnyNotNullNullNull)
|
||||
|
||||
b.superNullable(aAnyNotNullNotNullNotNull)
|
||||
b.superNullable(aAnyNotNullNotNullNull)
|
||||
b.superNullable(aAnyNotNullNullNotNull)
|
||||
b.superNullable(aAnyNotNullNullNull)
|
||||
// jspecify_nullness_mismatch
|
||||
b.superNullable(<!ARGUMENT_TYPE_MISMATCH!>aAnyNotNullNotNullNotNull<!>)
|
||||
// jspecify_nullness_mismatch
|
||||
b.superNullable(<!ARGUMENT_TYPE_MISMATCH!>aAnyNotNullNotNullNull<!>)
|
||||
// jspecify_nullness_mismatch
|
||||
b.superNullable(<!ARGUMENT_TYPE_MISMATCH!>aAnyNotNullNullNotNull<!>)
|
||||
// jspecify_nullness_mismatch
|
||||
b.superNullable(<!ARGUMENT_TYPE_MISMATCH!>aAnyNotNullNullNull<!>)
|
||||
|
||||
b.extendsAsIs(aNotNullNotNullNotNull)
|
||||
// jspecify_nullness_mismatch
|
||||
b.extendsAsIs(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNotNullNull<!>)
|
||||
// jspecify_nullness_mismatch
|
||||
b.extendsAsIs(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNullNotNull<!>)
|
||||
// jspecify_nullness_mismatch
|
||||
b.extendsAsIs(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNullNull<!>)
|
||||
b.extendsAsIs(aNotNullNotNullNull)
|
||||
b.extendsAsIs(aNotNullNullNotNull)
|
||||
b.extendsAsIs(aNotNullNullNull)
|
||||
|
||||
b.extendsNotNull(aNotNullNotNullNotNull)
|
||||
// jspecify_nullness_mismatch
|
||||
@@ -76,18 +79,12 @@ fun main(
|
||||
b.extendsNotNull(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNullNull<!>)
|
||||
|
||||
b.extendsNullable(aNotNullNotNullNotNull)
|
||||
// jspecify_nullness_mismatch
|
||||
b.extendsNullable(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNotNullNull<!>)
|
||||
// jspecify_nullness_mismatch
|
||||
b.extendsNullable(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNullNotNull<!>)
|
||||
// jspecify_nullness_mismatch
|
||||
b.extendsNullable(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNullNull<!>)
|
||||
b.extendsNullable(aNotNullNotNullNull)
|
||||
b.extendsNullable(aNotNullNullNotNull)
|
||||
b.extendsNullable(aNotNullNullNull)
|
||||
|
||||
b.noBounds(aNotNullNotNullNotNull)
|
||||
// jspecify_nullness_mismatch
|
||||
b.noBounds(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNotNullNull<!>)
|
||||
// jspecify_nullness_mismatch
|
||||
b.noBounds(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNullNotNull<!>)
|
||||
// jspecify_nullness_mismatch
|
||||
b.noBounds(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNullNull<!>)
|
||||
b.noBounds(aNotNullNotNullNull)
|
||||
b.noBounds(aNotNullNullNotNull)
|
||||
b.noBounds(aNotNullNullNull)
|
||||
}
|
||||
|
||||
-38
@@ -1,38 +0,0 @@
|
||||
// JSPECIFY_STATE: strict
|
||||
// MUTE_FOR_PSI_CLASS_FILES_READING
|
||||
|
||||
// FILE: WildcardsWithDefault.java
|
||||
import org.jspecify.nullness.*;
|
||||
|
||||
@NullMarked
|
||||
public class WildcardsWithDefault {
|
||||
public void noBoundsNotNull(A<?, ?, ?> a) {}
|
||||
public void noBoundsNullable(A<? extends @Nullable Object, ? extends @Nullable Object, ? extends @Nullable Object> a) {}
|
||||
}
|
||||
|
||||
// FILE: A.java
|
||||
import org.jspecify.nullness.*;
|
||||
|
||||
public class A <T extends Object, E extends @Nullable Object, F extends @NullnessUnspecified Object> {}
|
||||
|
||||
// FILE: main.kt
|
||||
fun main(
|
||||
aNotNullNotNullNotNull: A<Any, Any, Any>,
|
||||
aNotNullNotNullNull: A<Any, Any, Any?>,
|
||||
aNotNullNullNotNull: A<Any, Any?, Any>,
|
||||
aNotNullNullNull: A<Any, Any?, Any?>,
|
||||
b: WildcardsWithDefault
|
||||
): Unit {
|
||||
b.noBoundsNotNull(aNotNullNotNullNotNull)
|
||||
b.noBoundsNotNull(aNotNullNotNullNull)
|
||||
b.noBoundsNotNull(aNotNullNullNotNull)
|
||||
b.noBoundsNotNull(aNotNullNullNull)
|
||||
|
||||
b.noBoundsNullable(aNotNullNotNullNotNull)
|
||||
// jspecify_nullness_mismatch
|
||||
b.noBoundsNullable(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNotNullNull<!>)
|
||||
// jspecify_nullness_mismatch
|
||||
b.noBoundsNullable(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNullNotNull<!>)
|
||||
// jspecify_nullness_mismatch
|
||||
b.noBoundsNullable(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNullNull<!>)
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// JSPECIFY_STATE: strict
|
||||
// MUTE_FOR_PSI_CLASS_FILES_READING
|
||||
|
||||
|
||||
+15
-15
@@ -43,8 +43,8 @@ fun main(
|
||||
|
||||
b: AnnotatedBoundsOfWildcard
|
||||
): Unit {
|
||||
b.superAsIs(aAnyNotNullNotNullNotNull)
|
||||
b.superAsIs(aAnyNotNullNotNullNull)
|
||||
b.superAsIs(<!ARGUMENT_TYPE_MISMATCH!>aAnyNotNullNotNullNotNull<!>)
|
||||
b.superAsIs(<!ARGUMENT_TYPE_MISMATCH!>aAnyNotNullNotNullNull<!>)
|
||||
b.superAsIs(aAnyNotNullNullNotNull)
|
||||
b.superAsIs(aAnyNotNullNullNull)
|
||||
|
||||
@@ -53,15 +53,15 @@ fun main(
|
||||
b.superNotNull(aAnyNotNullNullNotNull)
|
||||
b.superNotNull(aAnyNotNullNullNull)
|
||||
|
||||
b.superNullable(aAnyNotNullNotNullNotNull)
|
||||
b.superNullable(aAnyNotNullNotNullNull)
|
||||
b.superNullable(aAnyNotNullNullNotNull)
|
||||
b.superNullable(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.extendsAsIs(aNotNullNotNullNotNull)
|
||||
b.extendsAsIs(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNotNullNull<!>)
|
||||
b.extendsAsIs(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNullNotNull<!>)
|
||||
b.extendsAsIs(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNullNull<!>)
|
||||
b.extendsAsIs(aNotNullNotNullNull)
|
||||
b.extendsAsIs(aNotNullNullNotNull)
|
||||
b.extendsAsIs(aNotNullNullNull)
|
||||
|
||||
b.extendsNotNull(aNotNullNotNullNotNull)
|
||||
b.extendsNotNull(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNotNullNull<!>)
|
||||
@@ -69,12 +69,12 @@ fun main(
|
||||
b.extendsNotNull(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNullNull<!>)
|
||||
|
||||
b.extendsNullable(aNotNullNotNullNotNull)
|
||||
b.extendsNullable(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNotNullNull<!>)
|
||||
b.extendsNullable(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNullNotNull<!>)
|
||||
b.extendsNullable(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNullNull<!>)
|
||||
b.extendsNullable(aNotNullNotNullNull)
|
||||
b.extendsNullable(aNotNullNullNotNull)
|
||||
b.extendsNullable(aNotNullNullNull)
|
||||
|
||||
b.noBounds(aNotNullNotNullNotNull)
|
||||
b.noBounds(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNotNullNull<!>)
|
||||
b.noBounds(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNullNotNull<!>)
|
||||
b.noBounds(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNullNull<!>)
|
||||
b.noBounds(aNotNullNotNullNull)
|
||||
b.noBounds(aNotNullNullNotNull)
|
||||
b.noBounds(aNotNullNullNull)
|
||||
}
|
||||
|
||||
-35
@@ -1,35 +0,0 @@
|
||||
// JSPECIFY_STATE: warn
|
||||
// MUTE_FOR_PSI_CLASS_FILES_READING
|
||||
|
||||
// FILE: WildcardsWithDefault.java
|
||||
import org.jspecify.nullness.*;
|
||||
|
||||
@NullMarked
|
||||
public class WildcardsWithDefault {
|
||||
public void noBoundsNotNull(A<?, ?, ?> a) {}
|
||||
public void noBoundsNullable(A<? extends @Nullable Object, ? extends @Nullable Object, ? extends @Nullable Object> a) {}
|
||||
}
|
||||
|
||||
// FILE: A.java
|
||||
import org.jspecify.nullness.*;
|
||||
|
||||
public class A <T extends Object, E extends @Nullable Object, F extends @NullnessUnspecified Object> {}
|
||||
|
||||
// FILE: main.kt
|
||||
fun main(
|
||||
aNotNullNotNullNotNull: A<Any, Any, Any>,
|
||||
aNotNullNotNullNull: A<Any, Any, Any?>,
|
||||
aNotNullNullNotNull: A<Any, Any?, Any>,
|
||||
aNotNullNullNull: A<Any, Any?, Any?>,
|
||||
b: WildcardsWithDefault
|
||||
): Unit {
|
||||
b.noBoundsNotNull(aNotNullNotNullNotNull)
|
||||
b.noBoundsNotNull(aNotNullNotNullNull)
|
||||
b.noBoundsNotNull(aNotNullNullNotNull)
|
||||
b.noBoundsNotNull(aNotNullNullNull)
|
||||
|
||||
b.noBoundsNullable(aNotNullNotNullNotNull)
|
||||
b.noBoundsNullable(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNotNullNull<!>)
|
||||
b.noBoundsNullable(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNullNotNull<!>)
|
||||
b.noBoundsNullable(<!ARGUMENT_TYPE_MISMATCH!>aNotNullNullNull<!>)
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// JSPECIFY_STATE: warn
|
||||
// MUTE_FOR_PSI_CLASS_FILES_READING
|
||||
|
||||
|
||||
compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc/notNullVarargsOverrides.fir.kt
Vendored
+2
-2
@@ -9,8 +9,8 @@ public class BaseClass {
|
||||
// FILE: main.kt
|
||||
class A : BaseClass() {
|
||||
// org.checkerframework.checker.nullness.qual.NonNull has @Target TYPE_USE, so it affects only elements type
|
||||
override fun loadCache(vararg args: Any?) {
|
||||
super.loadCache(*args)
|
||||
<!NOTHING_TO_OVERRIDE!>override<!> fun loadCache(vararg args: Any?) {
|
||||
super.loadCache(*<!ARGUMENT_TYPE_MISMATCH!>args<!>)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
-21
@@ -1,21 +0,0 @@
|
||||
// SOURCE_RETENTION_ANNOTATIONS
|
||||
// FILE: BaseClass.java
|
||||
import org.checkerframework.checker.nullness.qual.*;
|
||||
|
||||
public class BaseClass {
|
||||
public void loadCache(@Nullable Object... args) {}
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
class A : BaseClass() {
|
||||
override fun loadCache(vararg args: Any?) {
|
||||
super.loadCache(*args)
|
||||
}
|
||||
}
|
||||
|
||||
class B : BaseClass() {
|
||||
// org.checkerframework.checker.nullness.qual.Nullable has @Target TYPE_USE, so it affects only elements type
|
||||
override fun loadCache(vararg args: Any) {
|
||||
super.loadCache(*args)
|
||||
}
|
||||
}
|
||||
Vendored
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// SOURCE_RETENTION_ANNOTATIONS
|
||||
// FILE: BaseClass.java
|
||||
import org.checkerframework.checker.nullness.qual.*;
|
||||
|
||||
+4
-4
@@ -51,13 +51,13 @@ fun <R> main(a: ReturnType<R>) {
|
||||
takeNotNullStringAndNotNullK(x3)
|
||||
takeNullableStringAndNotNullK(<!ARGUMENT_TYPE_MISMATCH!>x3<!>)
|
||||
|
||||
val x4 = <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Array<R..R?!>..kotlin.Array<out R..R?!>")!>a.foo4<!>
|
||||
val x4 = <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Array<R!!>..kotlin.Array<out R!!>")!>a.foo4<!>
|
||||
takeArrayOfNotNullString(<!ARGUMENT_TYPE_MISMATCH!>x4<!>)
|
||||
takeArrayOfNullableString(<!ARGUMENT_TYPE_MISMATCH!>x4<!>)
|
||||
takeArrayOfNotNullK(<!ARGUMENT_TYPE_MISMATCH!>x4<!>)
|
||||
takeArrayOfNullableK(x4)
|
||||
takeArrayOfNotNullK(x4)
|
||||
takeArrayOfNullableK(<!ARGUMENT_TYPE_MISMATCH!>x4<!>)
|
||||
|
||||
val x5 = <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Array<kotlin.String..kotlin.String?!>?..kotlin.Array<out kotlin.String..kotlin.String?!>??")!>a.foo5()<!>
|
||||
val x5 = <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Array<kotlin.String?>?..kotlin.Array<out kotlin.String?>??")!>a.foo5()<!>
|
||||
takeArrayOfNotNullString(<!ARGUMENT_TYPE_MISMATCH!>x5<!>)
|
||||
takeArrayOfNullableString(<!ARGUMENT_TYPE_MISMATCH!>x5<!>)
|
||||
takeArrayOfNotNullK(<!ARGUMENT_TYPE_MISMATCH!>x5<!>)
|
||||
|
||||
Vendored
+4
-4
@@ -53,13 +53,13 @@ fun <R> main(a: ReturnTypeWithWarnings<R>) {
|
||||
takeNotNullStringAndNotNullK(x3)
|
||||
takeNullableStringAndNotNullK(<!ARGUMENT_TYPE_MISMATCH!>x3<!>)
|
||||
|
||||
val x4 = <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Array<R..R?!>..kotlin.Array<out R..R?!>")!>a.foo4<!>
|
||||
val x4 = <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Array<R!!>..kotlin.Array<out R!!>")!>a.foo4<!>
|
||||
takeArrayOfNotNullString(<!ARGUMENT_TYPE_MISMATCH!>x4<!>)
|
||||
takeArrayOfNullableString(<!ARGUMENT_TYPE_MISMATCH!>x4<!>)
|
||||
takeArrayOfNotNullK(<!ARGUMENT_TYPE_MISMATCH!>x4<!>)
|
||||
takeArrayOfNullableK(x4)
|
||||
takeArrayOfNotNullK(x4)
|
||||
takeArrayOfNullableK(<!ARGUMENT_TYPE_MISMATCH!>x4<!>)
|
||||
|
||||
val x5 = <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Array<kotlin.String..kotlin.String?!>?..kotlin.Array<out kotlin.String..kotlin.String?!>??")!>a.foo5()<!>
|
||||
val x5 = <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Array<kotlin.String?>?..kotlin.Array<out kotlin.String?>??")!>a.foo5()<!>
|
||||
takeArrayOfNotNullString(<!ARGUMENT_TYPE_MISMATCH!>x5<!>)
|
||||
takeArrayOfNullableString(<!ARGUMENT_TYPE_MISMATCH!>x5<!>)
|
||||
takeArrayOfNotNullK(<!ARGUMENT_TYPE_MISMATCH!>x5<!>)
|
||||
|
||||
Vendored
+1
-1
@@ -50,7 +50,7 @@ fun <R> main(a: ValueParameter<R>) {
|
||||
a.foo4(<!ARGUMENT_TYPE_MISMATCH!>getArrayOfNotNullString()<!>)
|
||||
a.foo4(<!ARGUMENT_TYPE_MISMATCH!>getArrayOfNullableString()<!>)
|
||||
a.foo4(getArrayOfNotNullK())
|
||||
a.foo4(getArrayOfNullableK())
|
||||
a.foo4(<!ARGUMENT_TYPE_MISMATCH!>getArrayOfNullableK()<!>)
|
||||
|
||||
a.foo5(getArrayOfNotNullString())
|
||||
a.foo5(getArrayOfNullableString())
|
||||
|
||||
+1
-1
@@ -52,7 +52,7 @@ fun <R> main(a: ValueParameterWithWarnings<R>) {
|
||||
a.foo4(<!ARGUMENT_TYPE_MISMATCH!>getArrayOfNotNullString()<!>)
|
||||
a.foo4(<!ARGUMENT_TYPE_MISMATCH!>getArrayOfNullableString()<!>)
|
||||
a.foo4(getArrayOfNotNullK())
|
||||
a.foo4(getArrayOfNullableK())
|
||||
a.foo4(<!ARGUMENT_TYPE_MISMATCH!>getArrayOfNullableK()<!>)
|
||||
|
||||
a.foo5(getArrayOfNotNullString())
|
||||
a.foo5(getArrayOfNullableString())
|
||||
|
||||
Reference in New Issue
Block a user