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
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
fun foo(x: Cloneable) = x
|
||||
|
||||
fun box(): String {
|
||||
foo(arrayOf(""))
|
||||
foo(intArrayOf())
|
||||
foo(longArrayOf())
|
||||
foo(shortArrayOf())
|
||||
foo(byteArrayOf())
|
||||
foo(charArrayOf())
|
||||
foo(doubleArrayOf())
|
||||
foo(floatArrayOf())
|
||||
foo(booleanArrayOf())
|
||||
|
||||
arrayOf("").clone()
|
||||
intArrayOf().clone()
|
||||
longArrayOf().clone()
|
||||
shortArrayOf().clone()
|
||||
byteArrayOf().clone()
|
||||
charArrayOf().clone()
|
||||
doubleArrayOf().clone()
|
||||
floatArrayOf().clone()
|
||||
booleanArrayOf().clone()
|
||||
|
||||
return "OK"
|
||||
}
|
||||
+2
-2
@@ -35,8 +35,8 @@ fun box(): String {
|
||||
check<Int>(::number, ::comparableOfInt, ::serializable)
|
||||
checkAll<Int>(::number, ::comparableOfInt, ::serializable, ::any)
|
||||
|
||||
check<Array<Any>>(::cloneable, ::serializable)
|
||||
checkAll<Array<Any>>(::cloneable, ::serializable, ::any)
|
||||
check<Array<Any>>(::any, ::cloneable, ::serializable)
|
||||
checkAll<Array<Any>>(::any, ::cloneable, ::serializable)
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user