FIR: support more precise diagnostics about parameter names
#KT-52762 Fixed
This commit is contained in:
+8
-8
@@ -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)
|
||||
}
|
||||
|
||||
+7
-7
@@ -14,11 +14,11 @@ interface C : A, B { // Warning here, this is correct
|
||||
}
|
||||
|
||||
fun test(c: C) {
|
||||
c.foo(<!NAMED_PARAMETER_NOT_FOUND!>b1<!> = 1, <!NAMED_PARAMETER_NOT_FOUND!>b2<!> = 1.0<!NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER!>)<!>
|
||||
c.foo(a1 = 1, <!NAMED_PARAMETER_NOT_FOUND!>b2<!> = 1.0<!NO_VALUE_FOR_PARAMETER!>)<!>
|
||||
c.foo(a1 = 1, a2 = 1.0)
|
||||
c.foo(a1 = 1, a2 = 1.0)
|
||||
c.bar(a1 = 1, a2 = 1.0, <!NAMED_PARAMETER_NOT_FOUND!>b3<!>= ""<!NO_VALUE_FOR_PARAMETER!>)<!>
|
||||
c.baz(a1 = 1, <!NAMED_PARAMETER_NOT_FOUND!>b2<!> = 1.0, a3 = "", <!NAMED_PARAMETER_NOT_FOUND!>b4<!> = 2, a5 = ""<!NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER!>)<!>
|
||||
c.baz(a1 = 1, a2 = 1.0, a3 = "", <!NAMED_PARAMETER_NOT_FOUND!>b4<!> = 2, a5 = ""<!NO_VALUE_FOR_PARAMETER!>)<!>
|
||||
c.foo(<!NAME_FOR_AMBIGUOUS_PARAMETER!>b1<!> = 1, <!NAME_FOR_AMBIGUOUS_PARAMETER!>b2<!> = 1.0)
|
||||
c.foo(<!NAME_FOR_AMBIGUOUS_PARAMETER!>a1<!> = 1, <!NAME_FOR_AMBIGUOUS_PARAMETER!>b2<!> = 1.0)
|
||||
c.foo(<!NAME_FOR_AMBIGUOUS_PARAMETER!>a1<!> = 1, <!NAME_FOR_AMBIGUOUS_PARAMETER!>a2<!> = 1.0)
|
||||
c.foo(<!NAME_FOR_AMBIGUOUS_PARAMETER!>a1<!> = 1, <!NAME_FOR_AMBIGUOUS_PARAMETER!>a2<!> = 1.0)
|
||||
c.bar(a1 = 1, a2 = 1.0, <!NAME_FOR_AMBIGUOUS_PARAMETER!>b3<!>= "")
|
||||
c.baz(a1 = 1, <!NAME_FOR_AMBIGUOUS_PARAMETER!>b2<!> = 1.0, a3 = "", <!NAME_FOR_AMBIGUOUS_PARAMETER!>b4<!> = 2, a5 = "")
|
||||
c.baz(a1 = 1, <!NAME_FOR_AMBIGUOUS_PARAMETER!>a2<!> = 1.0, a3 = "", <!NAME_FOR_AMBIGUOUS_PARAMETER!>b4<!> = 2, a5 = "")
|
||||
}
|
||||
|
||||
Vendored
+2
-2
@@ -10,6 +10,6 @@ interface C : A<Int>, B { // Warning here, this is correct
|
||||
}
|
||||
|
||||
fun test(c: C) {
|
||||
c.foo(a = 1)
|
||||
c.foo(<!NAMED_PARAMETER_NOT_FOUND!>b<!> = 1<!NO_VALUE_FOR_PARAMETER!>)<!>
|
||||
c.foo(<!NAME_FOR_AMBIGUOUS_PARAMETER!>a<!> = 1)
|
||||
c.foo(<!NAME_FOR_AMBIGUOUS_PARAMETER!>b<!> = 1)
|
||||
}
|
||||
|
||||
Vendored
+2
-2
@@ -10,6 +10,6 @@ interface C : A, B { // Warning here, this is correct
|
||||
}
|
||||
|
||||
fun test(c: C) {
|
||||
c.foo(a = 1)
|
||||
c.foo(<!NAMED_PARAMETER_NOT_FOUND!>b<!> = 1<!NO_VALUE_FOR_PARAMETER!>)<!>
|
||||
c.foo(<!NAME_FOR_AMBIGUOUS_PARAMETER!>a<!> = 1)
|
||||
c.foo(<!NAME_FOR_AMBIGUOUS_PARAMETER!>b<!> = 1)
|
||||
}
|
||||
|
||||
Vendored
+1
-1
@@ -11,5 +11,5 @@ interface C<U> : A<U>, B<U> { // Warning here, this is correct
|
||||
|
||||
fun test(c: C<Int>) {
|
||||
c.foo(a = 1)
|
||||
c.foo(<!NAMED_PARAMETER_NOT_FOUND!>b<!> = 1<!NO_VALUE_FOR_PARAMETER!>)<!>
|
||||
c.foo(<!NAME_FOR_AMBIGUOUS_PARAMETER!>b<!> = 1)
|
||||
}
|
||||
|
||||
+1
-1
@@ -18,5 +18,5 @@ fun test1(d: D) {
|
||||
}
|
||||
|
||||
fun test2(c: C) {
|
||||
c.foo(<!NAMED_PARAMETER_NOT_FOUND!>b1<!> = 1, <!NAMED_PARAMETER_NOT_FOUND!>b2<!> = 1.0<!NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER!>)<!>
|
||||
c.foo(<!NAME_FOR_AMBIGUOUS_PARAMETER!>b1<!> = 1, <!NAME_FOR_AMBIGUOUS_PARAMETER!>b2<!> = 1.0)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user