Don't report the same diagnsotics several times

This commit is contained in:
Victor Petukhov
2021-05-26 12:58:48 +03:00
parent e942052eb6
commit 4a767c597e
62 changed files with 202 additions and 166 deletions
@@ -1,3 +1,4 @@
// !WITH_NEW_INFERENCE
// !CHECK_TYPE
// FILE: Outer.java
@@ -12,6 +13,6 @@ fun test(x: List<Int>, y: List<String>) {
Outer<Int>().Inner("", y, 1) checkType { _<Outer<Int>.Inner<String>>() }
Outer<Int>().Inner<CharSequence, String, Int>("", y, 1) checkType { _<Outer<Int>.Inner<CharSequence>>() }
Outer<Int>().Inner("", x, 1) checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><Outer<Int>.Inner<Any>>() }
Outer<Int>().Inner("", x, 1) checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER{NI}!>_<!><Outer<Int>.Inner<Any>>() }
Outer<Int>().Inner<CharSequence, String, Int>("", <!TYPE_MISMATCH, TYPE_MISMATCH!>x<!>, 1)
}
@@ -12,7 +12,7 @@ fun test(x: Inv<Int>, y: Inv<String>) {
A("", <!TYPE_MISMATCH!>x<!>)
A("", y)
A<String>("", <!TYPE_MISMATCH, TYPE_MISMATCH, TYPE_MISMATCH!>x<!>)
A<String>("", <!TYPE_MISMATCH, TYPE_MISMATCH!>x<!>)
A<Any>("", <!TYPE_MISMATCH, TYPE_MISMATCH!>x<!>)
A<String>("", y)
@@ -18,5 +18,5 @@ fun test(a: A<Runnable>, b: B, c: C<Runnable>) {
b.f { }
c.f { }
C<Runnable>().f { }
C.g<Runnable> <!TYPE_MISMATCH, TYPE_MISMATCH!>{ }<!>
C.g<Runnable> <!TYPE_MISMATCH!>{ }<!>
}
@@ -18,10 +18,10 @@ fun main() {
J <!TYPE_MISMATCH!>{ <!EXPECTED_PARAMETER_TYPE_MISMATCH!>s: String<!> -> s}<!> // should be prohibited, because SAM value parameter has nullable type
J { "" + it<!UNSAFE_CALL!>.<!>length }
J { <!NULL_FOR_NONNULL_TYPE, NULL_FOR_NONNULL_TYPE!>null<!> }
J { <!TYPE_MISMATCH, TYPE_MISMATCH, TYPE_MISMATCH!>it?.length?.toString()<!> }
J { <!TYPE_MISMATCH, TYPE_MISMATCH!>it?.length?.toString()<!> }
J2 <!TYPE_MISMATCH!>{ <!EXPECTED_PARAMETER_TYPE_MISMATCH!>s: String<!> -> s}<!>
J2 { "" + it<!UNSAFE_CALL!>.<!>length }
J2 { <!NULL_FOR_NONNULL_TYPE, NULL_FOR_NONNULL_TYPE!>null<!> }
J2 { <!TYPE_MISMATCH, TYPE_MISMATCH, TYPE_MISMATCH!>it?.length?.toString()<!> }
J2 { <!TYPE_MISMATCH, TYPE_MISMATCH!>it?.length?.toString()<!> }
}
@@ -33,7 +33,7 @@ fun main() {
}
A.baz {
x -> <!TYPE_MISMATCH, TYPE_MISMATCH, TYPE_MISMATCH!>x.hashCode()<!>
x -> <!TYPE_MISMATCH, TYPE_MISMATCH!>x.hashCode()<!>
}
val block: (String) -> Any? = {