backend/tests: add objectExpression{1,2,3}

This commit is contained in:
Svyatoslav Scherbina
2017-01-20 13:04:35 +07:00
committed by SvyatoslavScherbina
parent 26e1075893
commit d5988297b1
4 changed files with 62 additions and 0 deletions
+15
View File
@@ -814,6 +814,21 @@ task lambda13(type: RunKonanTest) {
source = "codegen/lambda/lambda13.kt"
}
task objectExpression1(type: RunKonanTest) {
goldValue = "aabb\n"
source = "codegen/objectExpression/1.kt"
}
task objectExpression2(type: RunKonanTest) {
goldValue = "a\n"
source = "codegen/objectExpression/2.kt"
}
task objectExpression3(type: RunKonanTest) {
goldValue = "\n1\n2\n"
source = "codegen/objectExpression/3.kt"
}
task initializers2(type: RunKonanTest) {
goldValue = "init globalValue2\n" +
"init globalValue3\n" +
@@ -0,0 +1,13 @@
fun main(args: Array<String>) {
val a = "a"
val x = object {
override fun toString(): String {
return foo(a) + foo("b")
}
fun foo(s: String) = s + s
}
println(x.toString())
}
@@ -0,0 +1,17 @@
fun main(args: Array<String>) {
val a = "a"
val x = object {
override fun toString(): String {
return foo {
a
}
}
fun foo(lambda: () -> String) = lambda()
}
print(x)
}
fun print(x: Any) = println(x.toString())
@@ -0,0 +1,17 @@
fun main(args: Array<String>) {
var cnt = 0
var x: Any = ""
for (i in 0 .. 1) {
print(x)
cnt++
val y = object {
override fun toString() = cnt.toString()
}
x = y
}
print(x)
}
fun print(x: Any) = println(x.toString())