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:
Tianyu Geng
2021-03-05 00:12:36 +03:00
committed by Mikhail Glukhikh
parent 0d4e9ca0b9
commit be0dd84a06
19 changed files with 133 additions and 25 deletions
@@ -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"<!>)
@@ -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"<!>)
@@ -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<!>)
}
@@ -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<!>)
}