94 lines
2.2 KiB
Kotlin
94 lines
2.2 KiB
Kotlin
fun Array<String>.test1(): Array<String> {
|
|
val func = {(i:Int) -> this}
|
|
return func(1)
|
|
}
|
|
|
|
fun Array<String>.test1Nested(): Array<String> {
|
|
val func = {(i:Int) -> { this }()}
|
|
return func(1)
|
|
}
|
|
|
|
|
|
fun Array<String>.test2() : Array<String> {
|
|
class Z2() {
|
|
fun run(): Array<String> {
|
|
return this@test2
|
|
}
|
|
}
|
|
return Z2().run()
|
|
}
|
|
|
|
fun Array<String>.test2Nested() : Array<String> {
|
|
class Z2() {
|
|
fun run(): Array<String> {
|
|
class Z3 {
|
|
fun run(): Array<String> {
|
|
return this@test2Nested;
|
|
}
|
|
}
|
|
return Z3().run()
|
|
}
|
|
}
|
|
return Z2().run()
|
|
}
|
|
|
|
fun Array<String>.test3(): Array<String> {
|
|
fun local(): Array<String> {
|
|
return this@test3
|
|
}
|
|
return local()
|
|
}
|
|
|
|
fun Array<String>.test3Nested(): Array<String> {
|
|
fun local(): Array<String> {
|
|
fun local2(): Array<String> {
|
|
return this@test3Nested
|
|
}
|
|
return local2()
|
|
}
|
|
return local()
|
|
}
|
|
|
|
|
|
fun Array<String>.test4() : Array<String> {
|
|
return object {
|
|
fun run() : Array<String> {
|
|
return this@test4
|
|
}
|
|
}.run()
|
|
}
|
|
|
|
fun Array<String>.test4Nested() : Array<String> {
|
|
return object {
|
|
fun run() : Array<String> {
|
|
return object {
|
|
fun run() : Array<String> {
|
|
return this@test4Nested
|
|
}
|
|
}.run()
|
|
}
|
|
}.run()
|
|
}
|
|
|
|
fun Array<DoubleArray>.test1(): Array<DoubleArray> {
|
|
val func = {(i:Int) -> this}
|
|
return func(1)
|
|
}
|
|
|
|
|
|
fun box() : String {
|
|
val array = Array<String>(2, { i -> "${i}" })
|
|
if (array != array.test1()) return "fail 1"
|
|
if (array != array.test2()) return "fail 2"
|
|
if (array != array.test3()) return "fail 3"
|
|
if (array != array.test4()) return "fail 4"
|
|
|
|
if (array != array.test1Nested()) return "fail 1Nested"
|
|
if (array != array.test2Nested()) return "fail 2Nested"
|
|
if (array != array.test3Nested()) return "fail 3Nested"
|
|
if (array != array.test4Nested()) return "fail 4Nested"
|
|
|
|
val array2 = Array<DoubleArray>(2, { i -> DoubleArray(i) })
|
|
if (array2 != array2.test1()) return "fail on array of double []"
|
|
return "OK"
|
|
} |