KT-2106 Mixed named and positional arguments should be allowed

#KT-2106 Fixed
This commit is contained in:
Andrey Breslav
2013-01-30 21:03:36 +04:00
parent 8fd59feb21
commit 2d2c44ca9d
6 changed files with 36 additions and 46 deletions
@@ -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
}