[FIR] Add REDUNDANT_NULLABLE diagnostics
This commit is contained in:
committed by
TeamCityServer
parent
4caf3c5e83
commit
51b73bb6ae
@@ -1,6 +1,7 @@
|
||||
// WITH_EXTENDED_CHECKERS
|
||||
interface A<T> {}
|
||||
interface B<T> {}
|
||||
interface C<T> {}
|
||||
interface D<T> {}
|
||||
|
||||
interface Test : A<<!PROJECTION_IN_IMMEDIATE_ARGUMENT_TO_SUPERTYPE!>in<!> Int>, B<<!PROJECTION_IN_IMMEDIATE_ARGUMENT_TO_SUPERTYPE!>out<!> Int>, C<<!PROJECTION_IN_IMMEDIATE_ARGUMENT_TO_SUPERTYPE!>*<!>>??<!NULLABLE_SUPERTYPE!>?<!>, D<Int> {}
|
||||
interface Test : A<<!PROJECTION_IN_IMMEDIATE_ARGUMENT_TO_SUPERTYPE!>in<!> Int>, B<<!PROJECTION_IN_IMMEDIATE_ARGUMENT_TO_SUPERTYPE!>out<!> Int>, C<<!PROJECTION_IN_IMMEDIATE_ARGUMENT_TO_SUPERTYPE!>*<!>>?<!REDUNDANT_NULLABLE!>?<!NULLABLE_SUPERTYPE!>?<!><!>, D<Int> {}
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
interface B<T>
|
||||
class G<T>: B<T>
|
||||
|
||||
fun f(b: B<String>?) = b is G??
|
||||
@@ -1,3 +1,5 @@
|
||||
// FIR_IDENTICAL
|
||||
// WITH_EXTENDED_CHECKERS
|
||||
interface B<T>
|
||||
class G<T>: B<T>
|
||||
|
||||
|
||||
-13
@@ -1,13 +0,0 @@
|
||||
fun <NN: Any, NNN: NN> nonMisleadingNullable(
|
||||
nn: NN?,
|
||||
nnn: NNN?
|
||||
) {}
|
||||
|
||||
fun <T, N: T, INDIRECT: N> misleadingNullableSimple(
|
||||
t: T?,
|
||||
t2: T?,
|
||||
n: N?,
|
||||
ind: INDIRECT?
|
||||
) {}
|
||||
|
||||
fun <T> interactionWithRedundant(t: T??) {}
|
||||
+2
@@ -1,3 +1,5 @@
|
||||
// FIR_IDENTICAL
|
||||
// WITH_EXTENDED_CHECKERS
|
||||
fun <NN: Any, NNN: NN> nonMisleadingNullable(
|
||||
nn: NN?,
|
||||
nnn: NNN?
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
// WITH_EXTENDED_CHECKERS
|
||||
class Generic<T>
|
||||
|
||||
fun redundantNullable(
|
||||
i: Int??,
|
||||
three: Int???,
|
||||
gOut: Generic<Int>??,
|
||||
gIn: Generic<Int??>
|
||||
i: Int?<!REDUNDANT_NULLABLE!>?<!>,
|
||||
three: Int?<!REDUNDANT_NULLABLE!>??<!>,
|
||||
gOut: Generic<Int>?<!REDUNDANT_NULLABLE!>?<!>,
|
||||
gIn: Generic<Int?<!REDUNDANT_NULLABLE!>?<!>>
|
||||
) {
|
||||
}
|
||||
+3
-2
@@ -1,9 +1,10 @@
|
||||
// WITH_EXTENDED_CHECKERS
|
||||
interface A
|
||||
interface X: A?<!NULLABLE_SUPERTYPE!>?<!> {
|
||||
interface X: A?<!NULLABLE_SUPERTYPE, REDUNDANT_NULLABLE!>?<!> {
|
||||
|
||||
}
|
||||
|
||||
fun <T> interaction(t: T) {
|
||||
if (t == null) {}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Ann
|
||||
|
||||
typealias TString = String
|
||||
|
||||
typealias TNString = TString?
|
||||
|
||||
typealias TNAString = @Ann TString?
|
||||
|
||||
val test1: TNString = TODO()
|
||||
val test2: TNAString = TODO()
|
||||
val test3: List<TNString> = TODO()
|
||||
val test4: List<TNAString> = TODO()
|
||||
val test5: List<TNString?> = TODO()
|
||||
val test6: () -> List<TNString> = TODO()
|
||||
|
||||
fun test(x: TNString) {
|
||||
x<!UNSAFE_CALL!>.<!>hashCode()
|
||||
}
|
||||
@@ -1,3 +1,5 @@
|
||||
// FIR_IDENTICAL
|
||||
// WITH_EXTENDED_CHECKERS
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Ann
|
||||
|
||||
|
||||
Reference in New Issue
Block a user