Named vararg arguments: don't allow to use array without spread, allow to use one value of vararg type

#KT-3802 Fixed
This commit is contained in:
Natalia Ukhorskaya
2013-12-18 12:02:40 +04:00
parent 3a57694ddd
commit 145c7811a8
3 changed files with 77 additions and 11 deletions
@@ -8,7 +8,7 @@ fun main(args : Array<String>) {
join(1, "2", "3")
join(<!NON_VARARG_SPREAD!>*<!>1, "2")
join(1, *<!TYPE_MISMATCH!>"2"<!>)
join(x = 1, a = <!TYPE_MISMATCH!>"2"<!>)
join(x = 1, a = "2")
join(x = <!NON_VARARG_SPREAD!>*<!>1, a = *<!TYPE_MISMATCH!>"2"<!>)
join(x = 1, a = *a)
join(x = 1, a = *<!TYPE_MISMATCH!>b<!>)
@@ -23,12 +23,13 @@ fun main(args : Array<String>) {
join(1, "4", *a, *<!TYPE_MISMATCH!>b<!>, "3")
join(a = *a, x = 1)
join(a = *<!TYPE_MISMATCH!>b<!>, x = 1)
join(a = <!TYPE_MISMATCH!>a<!>, x = 1)
joinG<String>(1, "2")
joinG<String>(<!NON_VARARG_SPREAD!>*<!>1, "2")
joinG<String>(1, *<!TYPE_MISMATCH!>"2"<!>)
joinG<String>(x = 1, a = *a)
joinG<String>(x = 1, a = <!TYPE_MISMATCH!>"2"<!>)
joinG<String>(x = 1, a = "2")
joinG<String>(x = <!NON_VARARG_SPREAD!>*<!>1, a = *<!TYPE_MISMATCH!>"2"<!>)
joinG<String>(1, *a)
joinG<String>(1, *a, "3")
@@ -41,7 +42,7 @@ fun main(args : Array<String>) {
joinG(<!NON_VARARG_SPREAD!>*<!>1, "2")
<!TYPE_INFERENCE_TYPE_CONSTRUCTOR_MISMATCH!>joinG<!>(1, *<!TYPE_MISMATCH!>"2"<!>)
joinG(x = 1, a = *a)
<!TYPE_INFERENCE_TYPE_CONSTRUCTOR_MISMATCH!>joinG<!>(x = 1, a = <!TYPE_MISMATCH!>"2"<!>)
joinG(x = 1, a = "2")
<!TYPE_INFERENCE_TYPE_CONSTRUCTOR_MISMATCH!>joinG<!>(x = <!NON_VARARG_SPREAD!>*<!>1, a = *<!TYPE_MISMATCH!>"2"<!>)
joinG(1, *a)
joinG(1, *a, "3")