Files
kotlin-fork/compiler/testData/diagnostics/testsWithStdLib/builtins/arraysAreCloneable.kt
T
Alexander Udalov 035d6156a7 Drop Cloneable in JS, synthesize it at compile-time on JVM
Use the same approach that is used for creating function type classes
(Function{0,1,...}) + add Cloneable to supertypes of Array and primitive arrays

 #KT-5537 Fixed
2016-10-25 15:42:33 +03:00

26 lines
779 B
Kotlin
Vendored

// !CHECK_TYPE
fun foo(x: Cloneable) = x
fun test() {
foo(arrayOf(""))
foo(intArrayOf())
foo(longArrayOf())
foo(shortArrayOf())
foo(byteArrayOf())
foo(charArrayOf())
foo(doubleArrayOf())
foo(floatArrayOf())
foo(booleanArrayOf())
arrayOf("").clone() checkType { _<Array<String>>() }
intArrayOf().clone() checkType { _<IntArray>() }
longArrayOf().clone() checkType { _<LongArray>() }
shortArrayOf().clone() checkType { _<ShortArray>() }
byteArrayOf().clone() checkType { _<ByteArray>() }
charArrayOf().clone() checkType { _<CharArray>() }
doubleArrayOf().clone() checkType { _<DoubleArray>() }
floatArrayOf().clone() checkType { _<FloatArray>() }
booleanArrayOf().clone() checkType { _<BooleanArray>() }
}