Debugger: get correct context for breakpoints inside lambdas
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
package callableBug
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val callable = 1
|
||||
array(1, 2).map {
|
||||
it + 1
|
||||
//Breakpoint!
|
||||
}.forEach { it + 2 }
|
||||
}
|
||||
|
||||
// EXPRESSION: callable
|
||||
// RESULT: 1: I
|
||||
@@ -0,0 +1,11 @@
|
||||
package inlineLambda
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val a = array(1)
|
||||
// EXPRESSION: it
|
||||
// RESULT: Unresolved reference: it
|
||||
// STEP_INTO: 1
|
||||
//Breakpoint!
|
||||
a.map { it * 1 }
|
||||
}
|
||||
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
package lambdaOnSecondLine
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val a = A()
|
||||
// EXPRESSION: it
|
||||
// RESULT: 1: I
|
||||
// STEP_INTO: 2
|
||||
a.foo { a }
|
||||
//Breakpoint!
|
||||
.foo { a }
|
||||
}
|
||||
|
||||
class A {
|
||||
fun foo(f: (Int) -> A): A {
|
||||
return f(1)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
package oneLineLambda
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val a = A()
|
||||
// EXPRESSION: it
|
||||
// RESULT: 1: I
|
||||
// STEP_INTO: 2
|
||||
//Breakpoint!
|
||||
a.foo { a }
|
||||
}
|
||||
|
||||
class A {
|
||||
fun foo(f: (Int) -> A): A {
|
||||
return f(1)
|
||||
}
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
package twoLambdasOnOneLineFirst
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val a = A()
|
||||
// EXPRESSION: it
|
||||
// RESULT: 1: I
|
||||
// STEP_INTO: 2
|
||||
//Breakpoint!
|
||||
a.foo { a }.foo { a }
|
||||
}
|
||||
|
||||
class A {
|
||||
fun foo(f: (Int) -> A): A {
|
||||
return f(1)
|
||||
}
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
package twoLambdasOnOneLineSecond
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val a = A()
|
||||
// EXPRESSION: it
|
||||
// RESULT: 2: I
|
||||
// STEP_INTO: 4
|
||||
//Breakpoint!
|
||||
a.foo { counter++; a }.foo { a }
|
||||
}
|
||||
|
||||
var counter = 1
|
||||
|
||||
class A {
|
||||
fun foo(f: (Int) -> A): A {
|
||||
return f(counter)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user