[FIR] Support Clonable

#KT-36762 Fixed
This commit is contained in:
Dmitriy Novozhilov
2020-03-05 18:12:48 +03:00
parent 83d01fbaaa
commit af67aff303
10 changed files with 185 additions and 43 deletions
@@ -3,23 +3,23 @@
fun foo(x: Cloneable) = x
fun test() {
<!INAPPLICABLE_CANDIDATE!>foo<!>(arrayOf(""))
<!INAPPLICABLE_CANDIDATE!>foo<!>(intArrayOf())
<!INAPPLICABLE_CANDIDATE!>foo<!>(longArrayOf())
<!INAPPLICABLE_CANDIDATE!>foo<!>(shortArrayOf())
<!INAPPLICABLE_CANDIDATE!>foo<!>(byteArrayOf())
<!INAPPLICABLE_CANDIDATE!>foo<!>(charArrayOf())
<!INAPPLICABLE_CANDIDATE!>foo<!>(doubleArrayOf())
<!INAPPLICABLE_CANDIDATE!>foo<!>(floatArrayOf())
<!INAPPLICABLE_CANDIDATE!>foo<!>(booleanArrayOf())
foo(arrayOf(""))
foo(intArrayOf())
foo(longArrayOf())
foo(shortArrayOf())
foo(byteArrayOf())
foo(charArrayOf())
foo(doubleArrayOf())
foo(floatArrayOf())
foo(booleanArrayOf())
arrayOf("").<!UNRESOLVED_REFERENCE!>clone<!>() <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><Array<String>>() }
intArrayOf().<!UNRESOLVED_REFERENCE!>clone<!>() <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><IntArray>() }
longArrayOf().<!UNRESOLVED_REFERENCE!>clone<!>() <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><LongArray>() }
shortArrayOf().<!UNRESOLVED_REFERENCE!>clone<!>() <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><ShortArray>() }
byteArrayOf().<!UNRESOLVED_REFERENCE!>clone<!>() <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><ByteArray>() }
charArrayOf().<!UNRESOLVED_REFERENCE!>clone<!>() <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><CharArray>() }
doubleArrayOf().<!UNRESOLVED_REFERENCE!>clone<!>() <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><DoubleArray>() }
floatArrayOf().<!UNRESOLVED_REFERENCE!>clone<!>() <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><FloatArray>() }
booleanArrayOf().<!UNRESOLVED_REFERENCE!>clone<!>() <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><BooleanArray>() }
arrayOf("").clone() checkType { <!UNRESOLVED_REFERENCE!>_<!><Array<String>>() }
intArrayOf().clone() checkType { <!UNRESOLVED_REFERENCE!>_<!><IntArray>() }
longArrayOf().clone() checkType { <!UNRESOLVED_REFERENCE!>_<!><LongArray>() }
shortArrayOf().clone() checkType { <!UNRESOLVED_REFERENCE!>_<!><ShortArray>() }
byteArrayOf().clone() checkType { <!UNRESOLVED_REFERENCE!>_<!><ByteArray>() }
charArrayOf().clone() checkType { <!UNRESOLVED_REFERENCE!>_<!><CharArray>() }
doubleArrayOf().clone() checkType { <!UNRESOLVED_REFERENCE!>_<!><DoubleArray>() }
floatArrayOf().clone() checkType { <!UNRESOLVED_REFERENCE!>_<!><FloatArray>() }
booleanArrayOf().clone() checkType { <!UNRESOLVED_REFERENCE!>_<!><BooleanArray>() }
}