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 @@
|
||||
// !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>() }
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
public fun foo(/*0*/ x: kotlin.Cloneable): kotlin.Cloneable
|
||||
public fun test(): kotlin.Unit
|
||||
Reference in New Issue
Block a user