Implement new stepping for suspend functions

This commit is contained in:
Yan Zhulanow
2020-01-16 19:55:40 +09:00
parent 2044ece335
commit 69965eaa5c
21 changed files with 390 additions and 201 deletions
@@ -0,0 +1,26 @@
package test
fun main() {
val seq = sequence {
//Breakpoint!
yield(
sequence {
yield(1)
yield(2)
yield(3)
}
)
yield(
sequence {
yield(4)
yield(5)
yield(6)
}
)
}
seq.map { it.toList() }.flatten().toList()
}
// STEP_OVER: 10
@@ -0,0 +1,15 @@
LineBreakpoint created at sequenceNested.kt:6
Run Java
Connected to the target VM
sequenceNested.kt:6
sequenceNested.kt:7
sequenceNested.kt:6
sequenceNested.kt:14
sequenceNested.kt:15
sequenceNested.kt:14
sequenceNested.kt:21
sequenceNested.kt:23
sequenceNested.kt:24
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,26 @@
package test
fun main() {
val seq = sequence {
yield(
sequence {
//Breakpoint!
yield(1)
yield(2)
yield(3)
}
)
yield(
sequence {
yield(4)
yield(5)
yield(6)
}
)
}
seq.map { it.toList() }.flatten().toList()
}
// STEP_OVER: 10
@@ -0,0 +1,13 @@
LineBreakpoint created at sequenceNested2.kt:8
Run Java
Connected to the target VM
sequenceNested2.kt:8
sequenceNested2.kt:9
sequenceNested2.kt:10
sequenceNested2.kt:11
sequenceNested2.kt:23
sequenceNested2.kt:23
sequenceNested2.kt:24
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,14 @@
package test
fun main() {
val seq = sequence {
//Breakpoint!
yield(1)
yield(2)
yield(3)
}
seq.toList()
}
// STEP_OVER: 4
@@ -0,0 +1,11 @@
LineBreakpoint created at sequenceSimple.kt:6
Run Java
Connected to the target VM
sequenceSimple.kt:6
sequenceSimple.kt:7
sequenceSimple.kt:8
sequenceSimple.kt:9
sequenceSimple.kt:11
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,14 @@
package test
fun main() {
val seq = sequence {
//Breakpoint!
yield(1)
yield(2)
yield(3)
}
seq.take(2).toList()
}
// STEP_OVER: 4
@@ -0,0 +1,8 @@
LineBreakpoint created at sequenceTake2.kt:6
Run Java
Connected to the target VM
sequenceTake2.kt:6
sequenceTake2.kt:7
Disconnected from the target VM
Process finished with exit code 0