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
package a
fun foo0(f: () -> String) = f
@@ -8,37 +9,37 @@ fun test1() {
foo0 {
""
}
foo0 <!TYPE_MISMATCH!>{
foo0 <!TYPE_MISMATCH{NI}!>{
<!EXPECTED_PARAMETERS_NUMBER_MISMATCH!>s: String<!>-> ""
}<!>
foo0 <!TYPE_MISMATCH!>{
foo0 <!TYPE_MISMATCH{NI}!>{
<!EXPECTED_PARAMETERS_NUMBER_MISMATCH!><!CANNOT_INFER_PARAMETER_TYPE!>x<!>, <!CANNOT_INFER_PARAMETER_TYPE!>y<!><!> -> ""
}<!>
foo1 {
""
}
foo1 <!TYPE_MISMATCH!>{
foo1 <!TYPE_MISMATCH{NI}!>{
<!EXPECTED_PARAMETER_TYPE_MISMATCH!>s: String<!> -> ""
}<!>
foo1 <!TYPE_MISMATCH!>{
foo1 <!TYPE_MISMATCH{NI}!>{
<!EXPECTED_PARAMETERS_NUMBER_MISMATCH!>x, <!CANNOT_INFER_PARAMETER_TYPE!>y<!><!> -> ""
}<!>
foo1 <!TYPE_MISMATCH!>{
<!EXPECTED_PARAMETERS_NUMBER_MISMATCH!><!>-> <!CONSTANT_EXPECTED_TYPE_MISMATCH, CONSTANT_EXPECTED_TYPE_MISMATCH, CONSTANT_EXPECTED_TYPE_MISMATCH!>42<!>
foo1 <!TYPE_MISMATCH{NI}!>{
<!EXPECTED_PARAMETERS_NUMBER_MISMATCH!><!>-> <!CONSTANT_EXPECTED_TYPE_MISMATCH, CONSTANT_EXPECTED_TYPE_MISMATCH!>42<!>
}<!>
foo2 <!TYPE_MISMATCH!><!EXPECTED_PARAMETERS_NUMBER_MISMATCH!>{<!>
foo2 <!TYPE_MISMATCH{NI}!><!EXPECTED_PARAMETERS_NUMBER_MISMATCH!>{<!>
""
}<!>
foo2 <!TYPE_MISMATCH!>{
foo2 <!TYPE_MISMATCH{NI}!>{
<!EXPECTED_PARAMETERS_NUMBER_MISMATCH, EXPECTED_PARAMETER_TYPE_MISMATCH!>s: String<!> -> ""
}<!>
foo2 <!TYPE_MISMATCH!>{
foo2 <!TYPE_MISMATCH{NI}!>{
<!EXPECTED_PARAMETERS_NUMBER_MISMATCH!>x<!> -> ""
}<!>
foo2 <!TYPE_MISMATCH!>{
<!EXPECTED_PARAMETERS_NUMBER_MISMATCH!><!>-> <!CONSTANT_EXPECTED_TYPE_MISMATCH, CONSTANT_EXPECTED_TYPE_MISMATCH, CONSTANT_EXPECTED_TYPE_MISMATCH!>42<!>
foo2 <!TYPE_MISMATCH{NI}!>{
<!EXPECTED_PARAMETERS_NUMBER_MISMATCH!><!>-> <!CONSTANT_EXPECTED_TYPE_MISMATCH, CONSTANT_EXPECTED_TYPE_MISMATCH!>42<!>
}<!>
}
@@ -1,9 +1,9 @@
fun test(a: Int) {
run<Int>f@{
if (a > 0) return@f <!TYPE_MISMATCH, TYPE_MISMATCH!>""<!>
if (a > 0) return@f <!TYPE_MISMATCH!>""<!>
return@f 1
}
run<Int>{ <!TYPE_MISMATCH, TYPE_MISMATCH!>""<!> }
run<Int>{ <!TYPE_MISMATCH!>""<!> }
run<Int>{ 1 }
}