FIR: support more precise diagnostics about parameter names

#KT-52762 Fixed
This commit is contained in:
Mikhail Glukhikh
2022-06-17 18:27:04 +02:00
committed by Space
parent 9fbafc3eb9
commit 065e852199
18 changed files with 154 additions and 57 deletions
@@ -10,18 +10,18 @@ interface C : A, B
interface D : B, A
fun foo(x : C, y : D){
x.foo(x = 0)
x.foo(<!NAMED_PARAMETER_NOT_FOUND!>y<!> = 0<!NO_VALUE_FOR_PARAMETER!>)<!>
y.foo(<!NAMED_PARAMETER_NOT_FOUND!>x<!> = 0<!NO_VALUE_FOR_PARAMETER!>)<!>
y.foo(y = 0)
x.foo(<!NAME_FOR_AMBIGUOUS_PARAMETER!>x<!> = 0)
x.foo(<!NAME_FOR_AMBIGUOUS_PARAMETER!>y<!> = 0)
y.foo(<!NAME_FOR_AMBIGUOUS_PARAMETER!>x<!> = 0)
y.foo(<!NAME_FOR_AMBIGUOUS_PARAMETER!>y<!> = 0)
}
abstract class C1 : A, B
abstract class D1 : A, B
fun bar(x : C1, y : D1){
x.foo(x = 0)
x.foo(<!NAMED_PARAMETER_NOT_FOUND!>y<!> = 0<!NO_VALUE_FOR_PARAMETER!>)<!>
y.foo(x = 0)
y.foo(<!NAMED_PARAMETER_NOT_FOUND!>y<!> = 0<!NO_VALUE_FOR_PARAMETER!>)<!>
x.foo(<!NAME_FOR_AMBIGUOUS_PARAMETER!>x<!> = 0)
x.foo(<!NAME_FOR_AMBIGUOUS_PARAMETER!>y<!> = 0)
y.foo(<!NAME_FOR_AMBIGUOUS_PARAMETER!>x<!> = 0)
y.foo(<!NAME_FOR_AMBIGUOUS_PARAMETER!>y<!> = 0)
}