Debugger: add tests for accessing outer class members from lambda inside inner class

This commit is contained in:
Natalia Ukhorskaya
2015-02-06 15:12:28 +03:00
parent d3d30106a4
commit 3802957c15
3 changed files with 62 additions and 0 deletions
@@ -0,0 +1,42 @@
package funFromOuterClassInLamdba
fun main(args: Array<String>) {
Outer().Inner().test()
}
class Outer {
fun foo() = 1
inner class Inner {
fun innerFun() = 1
fun test() {
fun f() = 1
// outer is captured in lambda
lambda {
// EXPRESSION: foo() + 1
// RESULT: 2: I
//Breakpoint!
val a = foo()
}
// outer isn't captured in lambda
lambda {
// EXPRESSION: foo() + 2
// RESULT: Cannot find local variable: name = this
//Breakpoint!
val a = 1
}
// inner is captured in lambda
lambda {
// EXPRESSION: foo() + 3
// RESULT: 4: I
//Breakpoint!
val a = innerFun()
}
}
}
}
fun lambda(f: () -> Unit) = f()