FIR: Introduce NAMED_PARAMETER_NOT_FOUND diagnostic

This commit is contained in:
Denis.Zharkov
2021-04-02 13:37:59 +03:00
committed by TeamCityServer
parent 2d42e64c17
commit 0637748f10
31 changed files with 103 additions and 66 deletions
@@ -11,8 +11,8 @@ interface D : B, A
fun foo(x : C, y : D){
x.foo(x = 0)
x.foo(y = 0<!NO_VALUE_FOR_PARAMETER!>)<!>
y.foo(x = 0<!NO_VALUE_FOR_PARAMETER!>)<!>
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)
}
@@ -21,7 +21,7 @@ abstract class D1 : A, B
fun bar(x : C1, y : D1){
x.foo(x = 0)
x.foo(y = 0<!NO_VALUE_FOR_PARAMETER!>)<!>
x.foo(<!NAMED_PARAMETER_NOT_FOUND!>y<!> = 0<!NO_VALUE_FOR_PARAMETER!>)<!>
y.foo(x = 0)
y.foo(y = 0<!NO_VALUE_FOR_PARAMETER!>)<!>
y.foo(<!NAMED_PARAMETER_NOT_FOUND!>y<!> = 0<!NO_VALUE_FOR_PARAMETER!>)<!>
}
@@ -14,11 +14,11 @@ interface C : A, B { // Warning here, this is correct
}
fun test(c: C) {
c.foo(b1 = 1, b2 = 1.0<!NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER!>)<!>
c.foo(a1 = 1, b2 = 1.0<!NO_VALUE_FOR_PARAMETER!>)<!>
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, b3= ""<!NO_VALUE_FOR_PARAMETER!>)<!>
c.baz(a1 = 1, b2 = 1.0, a3 = "", b4 = 2, a5 = ""<!NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER!>)<!>
c.baz(a1 = 1, a2 = 1.0, a3 = "", b4 = 2, a5 = ""<!NO_VALUE_FOR_PARAMETER!>)<!>
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!>)<!>
}
@@ -11,5 +11,5 @@ interface C : A<Int>, B { // Warning here, this is correct
fun test(c: C) {
c.foo(a = 1)
c.foo(b = 1<!NO_VALUE_FOR_PARAMETER!>)<!>
c.foo(<!NAMED_PARAMETER_NOT_FOUND!>b<!> = 1<!NO_VALUE_FOR_PARAMETER!>)<!>
}
@@ -11,5 +11,5 @@ interface C : A, B { // Warning here, this is correct
fun test(c: C) {
c.foo(a = 1)
c.foo(b = 1<!NO_VALUE_FOR_PARAMETER!>)<!>
c.foo(<!NAMED_PARAMETER_NOT_FOUND!>b<!> = 1<!NO_VALUE_FOR_PARAMETER!>)<!>
}
@@ -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(b = 1<!NO_VALUE_FOR_PARAMETER!>)<!>
c.foo(<!NAMED_PARAMETER_NOT_FOUND!>b<!> = 1<!NO_VALUE_FOR_PARAMETER!>)<!>
}
@@ -21,7 +21,7 @@ class KotlinSubSubClass : KotlinSubClass() {
fun viaRealOverride() = KotlinSubSubClass().foo(kotlinName = 3)
fun unresolvedParameter() = JavaSuperClass(<!NO_VALUE_FOR_PARAMETER!>)<!>.foo(nonexistentName = 4)
fun unresolvedParameter() = JavaSuperClass(<!NO_VALUE_FOR_PARAMETER!>)<!>.foo(<!NAMED_PARAMETER_NOT_FOUND!>nonexistentName<!> = 4)
fun multipleParameters() = JavaSuperClass().multipleParameters(<!NAMED_ARGUMENTS_NOT_ALLOWED!>first<!> = 1, <!NAMED_ARGUMENTS_NOT_ALLOWED!>second<!> = 2L, <!NAMED_ARGUMENTS_NOT_ALLOWED!>third<!> = "3")
@@ -21,7 +21,7 @@ fun test() {
bar(1, z = "")
bar(1, z = "", y = 2)
<!INAPPLICABLE_CANDIDATE!>bar<!>(z = "", 1)
bar(1, zz = "",
bar(1, <!NAMED_PARAMETER_NOT_FOUND!>zz<!> = "",
<!UNRESOLVED_REFERENCE!>zz<!>.foo
<!NO_VALUE_FOR_PARAMETER!>)<!>
}
@@ -18,5 +18,5 @@ fun test1(d: D) {
}
fun test2(c: C) {
c.foo(b1 = 1, b2 = 1.0<!NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER!>)<!>
c.foo(<!NAMED_PARAMETER_NOT_FOUND!>b1<!> = 1, <!NAMED_PARAMETER_NOT_FOUND!>b2<!> = 1.0<!NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER!>)<!>
}