From 6bbcc281cecb99e89f5c26505d6c4d624667f382 Mon Sep 17 00:00:00 2001 From: svtk Date: Wed, 31 Aug 2011 14:43:23 +0400 Subject: [PATCH] tests for variance added; little fixes --- idea/testData/checker/Variance.jet | 40 ++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 idea/testData/checker/Variance.jet diff --git a/idea/testData/checker/Variance.jet b/idea/testData/checker/Variance.jet new file mode 100644 index 00000000000..385dd5579f6 --- /dev/null +++ b/idea/testData/checker/Variance.jet @@ -0,0 +1,40 @@ +package variance + +abstract class Consumer {} + +abstract class Producer {} + +abstract class Usual {} + +fun foo(c: Consumer, p: Producer, u: Usual) { + val c1: Consumer = c + val c2: Consumer = c1 + + val p1: Producer = p + val p2: Producer = p1 + + val u1: Usual = u + val u2: Usual = u1 +} + +//Arrays copy example +class Array(val length : Int) { + fun get(index : Int) : T { return null } + fun set(index : Int, value : T) { /* ... */ } +} + +fun copy1(from : Array, to : Array) {} + +fun copy2(from : Array, to : Array) {} + +fun copy3(from : Array, to : Array) {} + +fun copy4(from : Array, to : Array) {} + +fun f(ints: Array, any: Array, numbers: Array) { + copy1(ints, any) + copy2(ints, any) //ok + copy2(ints, numbers) + copy3(ints, numbers) + copy4(ints, numbers) //ok +}