backend/tests: Add tests for local function closures

This commit is contained in:
Ilya Matveev
2017-02-10 16:49:23 +03:00
committed by ilmat192
parent 8004b3d096
commit 95a9f65afd
4 changed files with 66 additions and 0 deletions
+25
View File
@@ -431,6 +431,31 @@ task localClass_noPrimaryConstructor(type: RunKonanTest) {
source = "codegen/localClass/noPrimaryConstructor.kt"
}
task localClass_localFunctionCallFromLocalClass(type: RunKonanTest) {
goldValue = "OK\n"
source = "codegen/localClass/localFunctionCallFromLocalClass.kt"
}
task localClass_localFunctionInLocalClass(type: RunKonanTest) {
goldValue = "OK\n"
source = "codegen/localClass/localFunctionInLocalClass.kt"
}
task function_localFunction(type : RunKonanTest) {
goldValue = "OK\n"
source = "codegen/function/localFunction.kt"
}
task function_localFunction2(type : RunKonanTest) {
goldValue = "OK\n"
source = "codegen/function/localFunction2.kt"
}
task function_localFunction3(type : RunKonanTest) {
goldValue = "OK\n"
source = "codegen/function/localFunction3.kt"
}
task initializers_correctOrder1(type: RunKonanTest) {
goldValue = "42\n"
source = "codegen/initializers/correctOrder1.kt"
@@ -0,0 +1,11 @@
fun main(args : Array<String>) {
val x = 1
fun local0() = println(x)
fun local1() {
fun local2() {
local1()
}
local0()
}
println("OK")
}
@@ -0,0 +1,16 @@
fun main(args : Array<String>) {
fun bar() {
fun local1() {
bar()
}
local1()
var x = 0
fun local2() {
x++
bar()
}
local2()
}
println("OK")
}
@@ -0,0 +1,14 @@
fun main(args : Array<String>) {
var x = 1
fun local1() {
x++
}
class A {
fun bar() {
local1()
}
}
A().bar()
println("OK")
}