KT-2106 Mixed named and positional arguments should be allowed
#KT-2106 Fixed
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
fun foo(a: String = "Default", b: Int = 1, c: Long = 2): String {
|
||||
return "$a $b $c"
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val test1 = foo("test1", 2, c = 3)
|
||||
if (test1 != "test1 2 3") return test1
|
||||
|
||||
val test2 = foo("test2", c = 3)
|
||||
if (test2 != "test2 1 3") return test2
|
||||
|
||||
val test3 = foo("test3", b = 3)
|
||||
if (test3 != "test3 3 2") return test3
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -18,8 +18,10 @@ fun test() {
|
||||
bar(""<!NO_VALUE_FOR_PARAMETER!>)<!>
|
||||
bar(1, 1, "")
|
||||
bar(1, 1, "")
|
||||
bar(1, <!MIXING_NAMED_AND_POSITIONED_ARGUMENTS!>z<!> = "")
|
||||
bar(1, <!NAMED_PARAMETER_NOT_FOUND, MIXING_NAMED_AND_POSITIONED_ARGUMENTS!>zz<!> = "",
|
||||
bar(1, z = "")
|
||||
bar(1, z = "", y = 2)
|
||||
bar(z = "", <!MIXING_NAMED_AND_POSITIONED_ARGUMENTS!>1<!>)
|
||||
bar(1, <!NAMED_PARAMETER_NOT_FOUND!>zz<!> = "",
|
||||
<!MIXING_NAMED_AND_POSITIONED_ARGUMENTS!><!UNRESOLVED_REFERENCE!>zz<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>foo<!><!>
|
||||
<!NO_VALUE_FOR_PARAMETER!>)<!>
|
||||
}
|
||||
@@ -18,7 +18,7 @@ fun test() {
|
||||
|
||||
foo(i = 1, <!ARGUMENT_PASSED_TWICE!>i<!> = 1, s = <!ERROR_COMPILE_TIME_VALUE!>11<!>)
|
||||
|
||||
foo(<!TYPE_MISMATCH!>""<!>, <!MIXING_NAMED_AND_POSITIONED_ARGUMENTS!>s<!> = <!ERROR_COMPILE_TIME_VALUE!>2<!>)
|
||||
foo(<!TYPE_MISMATCH!>""<!>, s = <!ERROR_COMPILE_TIME_VALUE!>2<!>)
|
||||
|
||||
foo(i = <!TYPE_MISMATCH!>""<!>, s = <!ERROR_COMPILE_TIME_VALUE!>2<!>, <!MIXING_NAMED_AND_POSITIONED_ARGUMENTS!>33<!>)
|
||||
|
||||
|
||||
@@ -4,6 +4,6 @@ package kt1940
|
||||
fun foo(<!UNUSED_PARAMETER!>i<!>: Int) {}
|
||||
|
||||
fun test() {
|
||||
foo(1, <!ARGUMENT_PASSED_TWICE, MIXING_NAMED_AND_POSITIONED_ARGUMENTS!>i<!> = 2) //exception
|
||||
foo(1, <!ARGUMENT_PASSED_TWICE!>i<!> = 2) //exception
|
||||
foo(i = 1, <!ARGUMENT_PASSED_TWICE!>i<!> = 2) //exception
|
||||
}
|
||||
Reference in New Issue
Block a user