Add tests to check collection literals with varargs

This commit is contained in:
Mikhail Zarechenskiy
2017-03-27 16:23:48 +03:00
parent ae2b4f5ff2
commit b46205f60b
8 changed files with 193 additions and 0 deletions
@@ -0,0 +1,40 @@
// !LANGUAGE: +ArrayLiteralsInAnnotations
annotation class Ann1(vararg val a: String = [])
annotation class Ann2(vararg val a: Int = [1, 2])
annotation class Ann3(vararg val a: Float = [1f])
annotation class Ann4(vararg val a: String = ["/"])
annotation class Ann5(vararg val a: Ann4 = [])
annotation class Ann6(vararg val a: Ann4 = [Ann4(*["a", "b"])])
annotation class Ann7(vararg val a: Long = [1L, <!NULL_FOR_NONNULL_TYPE!>null<!>, <!TYPE_MISMATCH!>""<!>])
@Ann1(*[])
fun test1_0() {}
@Ann1(*["a", "b"])
fun test1_1() {}
@Ann1(*<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>["a", 1, <!ANNOTATION_PARAMETER_MUST_BE_CONST!>null<!>]<!>)
fun test1_2() {}
@Ann2(*[])
fun test2() {}
@Ann3(a = *[0f, <!DIVISION_BY_ZERO!>1 / 0f<!>])
fun test3() {}
@Ann5(Ann4(*["/"]))
fun test5() {}
@Ann6(*[])
fun test6() {}
annotation class AnnArray(val a: Array<String>)
@AnnArray(<!NON_VARARG_SPREAD!>*<!>["/"])
fun testArray() {}
@Ann1(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH, TYPE_MISMATCH!>[""]<!>)
fun testVararg() {}
@@ -0,0 +1,75 @@
package
@Ann1(a = {}) public fun test1_0(): kotlin.Unit
@Ann1(a = {"a", "b"}) public fun test1_1(): kotlin.Unit
@Ann1(a = {"a", 1, null}) public fun test1_2(): kotlin.Unit
@Ann2(a = {}) public fun test2(): kotlin.Unit
@Ann3(a = {0.0.toFloat(), Infinity.toFloat()}) public fun test3(): kotlin.Unit
@Ann5(a = {Ann4(a = {"/"})}) public fun test5(): kotlin.Unit
@Ann6(a = {}) public fun test6(): kotlin.Unit
@AnnArray(a = {"/"}) public fun testArray(): kotlin.Unit
@Ann1(a = {{""}}) public fun testVararg(): kotlin.Unit
public final annotation class Ann1 : kotlin.Annotation {
public constructor Ann1(/*0*/ vararg a: kotlin.String /*kotlin.Array<out kotlin.String>*/ = ...)
public final val a: kotlin.Array<out kotlin.String>
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final annotation class Ann2 : kotlin.Annotation {
public constructor Ann2(/*0*/ vararg a: kotlin.Int /*kotlin.IntArray*/ = ...)
public final val a: kotlin.IntArray
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final annotation class Ann3 : kotlin.Annotation {
public constructor Ann3(/*0*/ vararg a: kotlin.Float /*kotlin.FloatArray*/ = ...)
public final val a: kotlin.FloatArray
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final annotation class Ann4 : kotlin.Annotation {
public constructor Ann4(/*0*/ vararg a: kotlin.String /*kotlin.Array<out kotlin.String>*/ = ...)
public final val a: kotlin.Array<out kotlin.String>
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final annotation class Ann5 : kotlin.Annotation {
public constructor Ann5(/*0*/ vararg a: Ann4 /*kotlin.Array<out Ann4>*/ = ...)
public final val a: kotlin.Array<out Ann4>
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final annotation class Ann6 : kotlin.Annotation {
public constructor Ann6(/*0*/ vararg a: Ann4 /*kotlin.Array<out Ann4>*/ = ...)
public final val a: kotlin.Array<out Ann4>
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final annotation class Ann7 : kotlin.Annotation {
public constructor Ann7(/*0*/ vararg a: kotlin.Long /*kotlin.LongArray*/ = ...)
public final val a: kotlin.LongArray
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final annotation class AnnArray : kotlin.Annotation {
public constructor AnnArray(/*0*/ a: kotlin.Array<kotlin.String>)
public final val a: kotlin.Array<kotlin.String>
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}