Replace is Array<T> with .isArrayOf<T>()

This commit is contained in:
Alexey Tsvetkov
2015-10-09 21:22:19 +03:00
parent 01cd277d63
commit 62c25c0370
19 changed files with 114 additions and 44 deletions
-2
View File
@@ -1,2 +0,0 @@
fun box() = if(arrayOfNulls<Int>(10) is Array<java.lang.Integer>) "OK" else "fail"
@@ -1,5 +1,5 @@
fun f(x: Any?): String {
if (x is Array<String>) {
fun f(x: Any?): Any? {
if (x is Array<*>) {
for (i in x) {
return i
}
@@ -10,5 +10,5 @@ fun f(x: Any?): String {
fun box(): String {
val a = arrayOfNulls<String>(1) as Array<String>
a[0] = "OK"
return f(a)
return f(a) as String
}
@@ -0,0 +1,2 @@
fun box() = if(arrayOfNulls<Int>(10).isArrayOf<java.lang.Integer>()) "OK" else "fail"
+1 -1
View File
@@ -1,5 +1,5 @@
fun foo(x : Any): String {
return if(x is Array<String>) x[0] else "fail"
return if(x is Array<*> && x.isArrayOf<String>()) (x as Array<String>)[0] else "fail"
}
fun box(): String {
@@ -2,7 +2,7 @@ import java.util.Arrays
fun box(): String {
val array = Arrays.asList(2, 3, 9).toTypedArray()
if (array !is Array<Int>) return array.javaClass.toString()
if (!array.isArrayOf<Int>()) return array.javaClass.toString()
val str = Arrays.toString(array)
if (str != "[2, 3, 9]") return str
@@ -8,8 +8,8 @@ fun box(): String {
val array1 = collection.toArray()
val array2 = collection.toArray(arrayOfNulls<Int>(3) as Array<Int>)
if (array1 !is Array<Any>) return (array1 as Object).getClass().toString()
if (array2 !is Array<Int>) return (array2 as Object).getClass().toString()
if (!array1.isArrayOf<Any>()) return (array1 as Object).getClass().toString()
if (!array2.isArrayOf<Int>()) return (array2 as Object).getClass().toString()
val s1 = Arrays.toString(array1)
val s2 = Arrays.toString(array2)
@@ -23,8 +23,8 @@ fun box(): String {
val array1 = collection.toArray()
val array2 = collection.toArray(arrayOfNulls<Int>(3) as Array<Int>)
if (array1 !is Array<Any>) return (array1 as Object).getClass().toString()
if (array2 !is Array<Int>) return (array2 as Object).getClass().toString()
if (!array1.isArrayOf<Any>()) return (array1 as Object).getClass().toString()
if (!array2.isArrayOf<Int>()) return (array2 as Object).getClass().toString()
val s1 = Arrays.toString(array1)
val s2 = Arrays.toString(array2)
+3
View File
@@ -0,0 +1,3 @@
fun f(x: Any): Boolean = x is Array<*> && x.isArrayOf<String>()
// 2 INSTANCEOF