[FIR-TEST] Add new testdata generated after changes in previous commit

This commit is contained in:
Dmitriy Novozhilov
2019-12-11 16:16:22 +03:00
parent e9c02a1cca
commit 2536fa0cd5
4578 changed files with 104067 additions and 1 deletions
+41
View File
@@ -0,0 +1,41 @@
// !WITH_NEW_INFERENCE
package variance
abstract class Consumer<in T> {}
abstract class Producer<out T> {}
abstract class Usual<T> {}
fun foo(c: Consumer<Int>, p: Producer<Int>, u: Usual<Int>) {
val c1: Consumer<Any> = c
val c2: Consumer<Int> = c1
val p1: Producer<Any> = p
val p2: Producer<Int> = p1
val u1: Usual<Any> = u
val u2: Usual<Int> = u1
}
//Arrays copy example
class Array<T>(val length : Int, val t : T) {
fun get(index : Int) : T { return t }
fun set(index : Int, value : T) { /* ... */ }
}
fun copy1(from : Array<Any>, to : Array<Any>) {}
fun copy2(from : Array<out Any>, to : Array<in Any>) {}
fun <T> copy3(from : Array<out T>, to : Array<in T>) {}
fun copy4(from : Array<out Number>, to : Array<in Int>) {}
fun f(ints: Array<Int>, any: Array<Any>, numbers: Array<Number>) {
<!INAPPLICABLE_CANDIDATE!>copy1<!>(ints, any)
copy2(ints, any) //ok
<!INAPPLICABLE_CANDIDATE!>copy2<!>(ints, numbers)
copy3<Int>(ints, numbers)
copy4(ints, numbers) //ok
}