FIR: check NAMED_ARGUMENTS_NOT_ALLOWED
The check has already been partially implemented in org.jetbrains.kotlin.fir.resolve.calls.FirCallArgumentsProcessor. This change completes the missing piece that determines if a `FirFunction` has stable parameter names.
This commit is contained in:
committed by
Mikhail Glukhikh
parent
0d4e9ca0b9
commit
be0dd84a06
@@ -7,5 +7,5 @@ class A(foo: Int.() -> Unit) {
|
||||
fun test(foo: Int.(String) -> Unit) {
|
||||
4.foo("")
|
||||
4.<!INAPPLICABLE_CANDIDATE!>foo<!>(p1 = "")
|
||||
4.foo(p2 = "")
|
||||
}
|
||||
4.foo(<!NAMED_ARGUMENTS_NOT_ALLOWED!>p2 = ""<!>)
|
||||
}
|
||||
|
||||
@@ -12,10 +12,10 @@ expect class Foo(zzz: Int) {
|
||||
expect fun f2(xxx: Int)
|
||||
|
||||
fun testCommon() {
|
||||
Foo(zzz = 0)
|
||||
val f = Foo(aaa = true)
|
||||
f.f1(xxx = "")
|
||||
f2(xxx = 42)
|
||||
Foo(<!NAMED_ARGUMENTS_NOT_ALLOWED!>zzz = 0<!>)
|
||||
val f = Foo(<!NAMED_ARGUMENTS_NOT_ALLOWED!>aaa = true<!>)
|
||||
f.f1(<!NAMED_ARGUMENTS_NOT_ALLOWED!>xxx = ""<!>)
|
||||
f2(<!NAMED_ARGUMENTS_NOT_ALLOWED!>xxx = 42<!>)
|
||||
}
|
||||
|
||||
// MODULE: m2-jvm(m1-common)
|
||||
|
||||
+1
-1
@@ -6,4 +6,4 @@ public class A {
|
||||
|
||||
// FILE: 1.kt
|
||||
|
||||
val test = A(x = 1, y = "2")
|
||||
val test = A(<!NAMED_ARGUMENTS_NOT_ALLOWED!>x = 1<!>, <!NAMED_ARGUMENTS_NOT_ALLOWED!>y = "2"<!>)
|
||||
|
||||
+3
-3
@@ -8,11 +8,11 @@ public class JavaSuperClass {
|
||||
|
||||
// FILE: 1.kt
|
||||
|
||||
fun directInvocation() = JavaSuperClass().foo(javaName = 1)
|
||||
fun directInvocation() = JavaSuperClass().foo(<!NAMED_ARGUMENTS_NOT_ALLOWED!>javaName = 1<!>)
|
||||
|
||||
open class KotlinSubClass : JavaSuperClass()
|
||||
|
||||
fun viaFakeOverride() = KotlinSubClass().foo(javaName = 2)
|
||||
fun viaFakeOverride() = KotlinSubClass().foo(<!NAMED_ARGUMENTS_NOT_ALLOWED!>javaName = 2<!>)
|
||||
|
||||
class KotlinSubSubClass : KotlinSubClass() {
|
||||
override fun foo(kotlinName: Int) {}
|
||||
@@ -24,4 +24,4 @@ fun viaRealOverride() = KotlinSubSubClass().foo(kotlinName = 3)
|
||||
fun unresolvedParameter() = JavaSuperClass().<!INAPPLICABLE_CANDIDATE!>foo<!>(nonexistentName = 4)
|
||||
|
||||
|
||||
fun multipleParameters() = JavaSuperClass().multipleParameters(first = 1, second = 2L, third = "3")
|
||||
fun multipleParameters() = JavaSuperClass().multipleParameters(<!NAMED_ARGUMENTS_NOT_ALLOWED!>first = 1<!>, <!NAMED_ARGUMENTS_NOT_ALLOWED!>second = 2L<!>, <!NAMED_ARGUMENTS_NOT_ALLOWED!>third = "3"<!>)
|
||||
|
||||
+1
-1
@@ -13,5 +13,5 @@ public class J {
|
||||
package test
|
||||
|
||||
fun test() {
|
||||
J("", r = { }, z = false)
|
||||
J("", <!NAMED_ARGUMENTS_NOT_ALLOWED!>r = { }<!>, <!NAMED_ARGUMENTS_NOT_ALLOWED!>z = false<!>)
|
||||
}
|
||||
|
||||
+1
-1
@@ -13,5 +13,5 @@ public class J {
|
||||
package test
|
||||
|
||||
fun test() {
|
||||
J.foo("", r = { }, z = false)
|
||||
J.foo("", <!NAMED_ARGUMENTS_NOT_ALLOWED!>r = { }<!>, <!NAMED_ARGUMENTS_NOT_ALLOWED!>z = false<!>)
|
||||
}
|
||||
|
||||
Vendored
+2
-2
@@ -1,7 +1,7 @@
|
||||
// !WITH_NEW_INFERENCE
|
||||
// FILE: KotlinFile.kt
|
||||
fun foo(javaClass: JavaClass) {
|
||||
javaClass.doSomething(p = 1) {
|
||||
javaClass.doSomething(<!NAMED_ARGUMENTS_NOT_ALLOWED!>p = 1<!>) {
|
||||
bar()
|
||||
}
|
||||
}
|
||||
@@ -11,4 +11,4 @@ fun bar(){}
|
||||
// FILE: JavaClass.java
|
||||
public class JavaClass {
|
||||
public void doSomething(int p, Runnable runnable) { runnable.run(); }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user