Support Evaluate Expression for renamed local variables in inline function

#KT-10179 Fixed
This commit is contained in:
Natalia Ukhorskaya
2015-11-30 15:22:41 +03:00
parent cd5e406876
commit dc60c025c3
9 changed files with 300 additions and 1 deletions
@@ -0,0 +1,24 @@
package frameInlineArgument
fun main(args: Array<String>) {
val element = 1
A().inlineFun {
//Breakpoint!
element
}
}
class A {
inline fun inlineFun(s: () -> Unit) {
val element = 1.0
s()
}
val prop = 1
}
// PRINT_FRAME
// EXPRESSION: element
// RESULT: 1: I
@@ -0,0 +1,27 @@
package frameInlineFun
fun main(args: Array<String>) {
val element = 1
A().inlineFun {
element
}
}
class A {
inline fun inlineFun(s: (Int) -> Unit) {
val element = 1.0
//Breakpoint!
s(1)
}
val prop = 1
}
// PRINT_FRAME
// EXPRESSION: element
// RESULT: 1.0: D
// EXPRESSION: this.prop
// RESULT: 1: I
@@ -0,0 +1,47 @@
package frameInlineFunCallInsideInlineFun
class A {
inline fun inlineFun(s: (Int) -> Unit) {
val element = 1.0
//TODO breakpoint here doesn't work (not only in tests)
s(1)
}
val prop = 1
}
class B {
inline fun foo(s: (Int) -> Unit) {
val element = 2
val a = A()
// STEP_INTO: 1
// STEP_OVER: 1
//Breakpoint!
a.inlineFun {
val e = element
}
s(1)
}
}
class C {
fun bar() {
val element = 1f
B().foo {
val e = element
}
}
}
fun main(args: Array<String>) {
C().bar()
}
// PRINT_FRAME
// EXPRESSION: element
// RESULT: 1.0: D
// EXPRESSION: this.prop
// RESULT: 1: I