[FIR] Report UPPER_BOUND_VIOLATED only on checkers stage, fix detection of missing cases and testData
This commit is contained in:
committed by
teamcityserver
parent
ada14413e0
commit
5741374883
Vendored
-13
@@ -1,13 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
interface A<T : CharSequence>
|
||||
|
||||
fun <S : CharSequence?> foo1(a: A<S>) {}
|
||||
|
||||
class B1<E : String?> : A<E>
|
||||
class B2<E : CharSequence?> : A<E>
|
||||
class B3<E> : A<E>
|
||||
|
||||
class B4<E : CharSequence> : A<E>
|
||||
|
||||
fun <X : CharSequence, Y1 : X, Y2: Y1?> foo(a: A<X>, b: A<Y1>, c: A<Y2>) {}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
interface A<T : CharSequence>
|
||||
|
||||
+2
-2
@@ -7,10 +7,10 @@ fun <E : CharSequence> E.foo2() {}
|
||||
|
||||
fun <F : String?> bar(x: F) {
|
||||
A(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
|
||||
A<F>(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
|
||||
A<<!UPPER_BOUND_VIOLATED!>F<!>>(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
|
||||
|
||||
foo1(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
|
||||
foo1<F>(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
|
||||
foo1<<!UPPER_BOUND_VIOLATED!>F<!>>(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
|
||||
|
||||
x<!UNSAFE_CALL!>.<!>foo2()
|
||||
x.<!INAPPLICABLE_CANDIDATE!>foo2<!><F>()
|
||||
|
||||
+3
-3
@@ -16,7 +16,7 @@ class A<F> {
|
||||
val x2 = foo2(x)
|
||||
x2.checkType { _<F>() }
|
||||
|
||||
foo1<F?>(<!ARGUMENT_TYPE_MISMATCH!>y<!>)
|
||||
foo1<<!UPPER_BOUND_VIOLATED!>F?<!>>(<!ARGUMENT_TYPE_MISMATCH!>y<!>)
|
||||
foo1(<!ARGUMENT_TYPE_MISMATCH!>y<!>)
|
||||
foo2<F?>(y)
|
||||
|
||||
@@ -36,13 +36,13 @@ class A<F> {
|
||||
val x5 = foo2(z)
|
||||
x4.checkType { _<Z>() }
|
||||
|
||||
foo1<W>(<!ARGUMENT_TYPE_MISMATCH!>w<!>)
|
||||
foo1<<!UPPER_BOUND_VIOLATED!>W<!>>(<!ARGUMENT_TYPE_MISMATCH!>w<!>)
|
||||
foo1(<!ARGUMENT_TYPE_MISMATCH!>w<!>)
|
||||
foo2<W>(w)
|
||||
|
||||
val x6 = foo2(w)
|
||||
x6.checkType { _<W>() }
|
||||
|
||||
foo1<W>(<!ARGUMENT_TYPE_MISMATCH!>w<!>)
|
||||
foo1<<!UPPER_BOUND_VIOLATED!>W<!>>(<!ARGUMENT_TYPE_MISMATCH!>w<!>)
|
||||
}
|
||||
}
|
||||
|
||||
+10
-10
@@ -17,7 +17,7 @@ class A<F> {
|
||||
fun <Z : F, W : Z?> bar() {
|
||||
// F
|
||||
fooInv1<Inv<F>>(Inv<F>())
|
||||
fooInv2<Inv<F>>(<!ARGUMENT_TYPE_MISMATCH!>Inv<F>()<!>)
|
||||
fooInv2<<!UPPER_BOUND_VIOLATED!>Inv<F><!>>(<!ARGUMENT_TYPE_MISMATCH!>Inv<F>()<!>)
|
||||
fooInv1(Inv<F>())
|
||||
fooInv2(<!ARGUMENT_TYPE_MISMATCH!>Inv<F>()<!>)
|
||||
|
||||
@@ -32,13 +32,13 @@ class A<F> {
|
||||
fooOut2(Out<F>())
|
||||
|
||||
// Z
|
||||
fooInv1<Inv<Z>>(<!ARGUMENT_TYPE_MISMATCH!>Inv<Z>()<!>)
|
||||
fooInv2<Inv<Z>>(<!ARGUMENT_TYPE_MISMATCH!>Inv<Z>()<!>)
|
||||
fooInv1<<!UPPER_BOUND_VIOLATED!>Inv<Z><!>>(<!ARGUMENT_TYPE_MISMATCH!>Inv<Z>()<!>)
|
||||
fooInv2<<!UPPER_BOUND_VIOLATED!>Inv<Z><!>>(<!ARGUMENT_TYPE_MISMATCH!>Inv<Z>()<!>)
|
||||
fooInv1(<!ARGUMENT_TYPE_MISMATCH!>Inv<Z>()<!>)
|
||||
fooInv2(<!ARGUMENT_TYPE_MISMATCH!>Inv<Z>()<!>)
|
||||
|
||||
fooIn1<In<Z?>>(<!ARGUMENT_TYPE_MISMATCH!>In<Z?>()<!>)
|
||||
fooIn2<In<Z?>>(<!ARGUMENT_TYPE_MISMATCH!>In<Z?>()<!>)
|
||||
fooIn1<<!UPPER_BOUND_VIOLATED!>In<Z?><!>>(<!ARGUMENT_TYPE_MISMATCH!>In<Z?>()<!>)
|
||||
fooIn2<<!UPPER_BOUND_VIOLATED!>In<Z?><!>>(<!ARGUMENT_TYPE_MISMATCH!>In<Z?>()<!>)
|
||||
fooIn1(<!ARGUMENT_TYPE_MISMATCH!>In<Z?>()<!>)
|
||||
fooIn2(<!ARGUMENT_TYPE_MISMATCH!>In<Z?>()<!>)
|
||||
|
||||
@@ -48,17 +48,17 @@ class A<F> {
|
||||
fooOut2(Out<Z>())
|
||||
|
||||
// W
|
||||
fooInv1<Inv<W>>(<!ARGUMENT_TYPE_MISMATCH!>Inv<W>()<!>)
|
||||
fooInv2<Inv<W>>(<!ARGUMENT_TYPE_MISMATCH!>Inv<W>()<!>)
|
||||
fooInv1<<!UPPER_BOUND_VIOLATED!>Inv<W><!>>(<!ARGUMENT_TYPE_MISMATCH!>Inv<W>()<!>)
|
||||
fooInv2<<!UPPER_BOUND_VIOLATED!>Inv<W><!>>(<!ARGUMENT_TYPE_MISMATCH!>Inv<W>()<!>)
|
||||
fooInv1(<!ARGUMENT_TYPE_MISMATCH!>Inv<W>()<!>)
|
||||
fooInv2(<!ARGUMENT_TYPE_MISMATCH!>Inv<W>()<!>)
|
||||
|
||||
fooIn1<In<W?>>(<!ARGUMENT_TYPE_MISMATCH!>In<W?>()<!>)
|
||||
fooIn2<In<W?>>(<!ARGUMENT_TYPE_MISMATCH!>In<W?>()<!>)
|
||||
fooIn1<<!UPPER_BOUND_VIOLATED!>In<W?><!>>(<!ARGUMENT_TYPE_MISMATCH!>In<W?>()<!>)
|
||||
fooIn2<<!UPPER_BOUND_VIOLATED!>In<W?><!>>(<!ARGUMENT_TYPE_MISMATCH!>In<W?>()<!>)
|
||||
fooIn1(<!ARGUMENT_TYPE_MISMATCH!>In<W?>()<!>)
|
||||
fooIn2(<!ARGUMENT_TYPE_MISMATCH!>In<W?>()<!>)
|
||||
|
||||
fooOut1<Out<W>>(<!ARGUMENT_TYPE_MISMATCH!>Out<W>()<!>)
|
||||
fooOut1<<!UPPER_BOUND_VIOLATED!>Out<W><!>>(<!ARGUMENT_TYPE_MISMATCH!>Out<W>()<!>)
|
||||
fooOut2<Out<W>>(Out<W>())
|
||||
fooOut1(<!ARGUMENT_TYPE_MISMATCH!>Out<W>()<!>)
|
||||
fooOut2(Out<W>())
|
||||
|
||||
Reference in New Issue
Block a user