added test for KT-238

This commit is contained in:
Alex Tkachman
2011-08-31 15:53:54 +02:00
parent 778ba44c64
commit 628f5a5232
5 changed files with 74 additions and 6 deletions
@@ -0,0 +1,58 @@
fun t1 () {
val a1 = Array<String?>(1)
a1[0] = "0" //ok
val s = a1[0] //ok
}
fun t2 () {
val a2 = Array<Int>(1)
a2[0] = 0 //ok
var i = a2[0] //ok
}
fun t3 () {
val a3 = Array<Int?>(1)
a3[0] = 0 //verify error
var j = a3[0] //ok
var k : Int = a3[0] ?: 5 //ok
}
fun t4 () {
val b1 = StrangeIntArray(10)
b1[4] = 5 //ok
var i = b1[1] //ok
}
fun t5 () {
val b2 = StrangeArray<Int>(10, 0)
b2.set(4, 5) //ok
b2[4] = 5 //verify error
var i = b2.get(2) //ok
i = b2[1] //verify error
}
fun t6() {
val b3 = StrangeArray<Int?>(10, 0)
b3.set(5, 6) //ok
b3[4] = 5 //verify error
val v = b3[1] //ok
}
fun box() : String {
return "OK"
}
class StrangeArray<T>(size: Int, private var defaultValue: T) {
fun get(index: Int): T = defaultValue
fun set(index: Int, v: T) {
defaultValue = v
}
}
class StrangeIntArray(size: Int) {
private var defaultValue = 0
fun get(index: Int): Int = defaultValue
fun set(index: Int, v: Int) {
defaultValue = v
}
}