Fix Array<out> variance in stdlib #KT-6482 Fixed

This commit is contained in:
Ilya Ryzhenkov
2014-12-22 23:08:41 +03:00
parent 377988cb7b
commit 4cd2ba1e30
11 changed files with 66 additions and 61 deletions
@@ -200,13 +200,16 @@ class ArraysJVMTest {
test fun orEmptyNull() {
val x: Array<String>? = null
val xArray: Array<String> = x.orEmpty()
val y: Array<out String>? = null
val xArray = x.orEmpty()
val yArray = y.orEmpty()
expect(0) { xArray.size() }
expect(0) { yArray.size() }
}
test fun orEmptyNotNull() {
val x: Array<String>? = array("1", "2")
val xArray: Array<String> = x.orEmpty()
val xArray = x.orEmpty()
expect(2) { xArray.size() }
expect("1") { xArray[0] }
expect("2") { xArray[1] }
@@ -170,6 +170,11 @@ class ArraysTest {
assertEquals(listOf("1","2","3","4"), listOf("1", "2") + array("3", "4"))
}
test fun plusVararg() {
fun onePlus(vararg a: String) = array("1") + a
assertEquals(listOf("1","2"), onePlus("2"))
}
test fun first() {
expect(1) { array(1,2,3).first() }
expect(2) { array(1,2,3).first { it % 2 == 0 } }