Debugger: fix step over for inline argument with non-local return

This commit is contained in:
Natalia Ukhorskaya
2016-04-08 16:21:27 +03:00
parent f0cfd450e5
commit f0badb05ea
5 changed files with 192 additions and 0 deletions
@@ -0,0 +1,17 @@
LineBreakpoint created at stepOverNonLocalReturnInLambda.kt:20
LineBreakpoint created at stepOverNonLocalReturnInLambda.kt:34
LineBreakpoint created at stepOverNonLocalReturnInLambda.kt:52
!JDK_HOME!\bin\java -agentlib:jdwp=transport=dt_socket,address=!HOST_NAME!:!HOST_PORT!,suspend=y,server=n -Dfile.encoding=!FILE_ENCODING! -classpath !OUTPUT_PATH!;!KOTLIN_RUNTIME!;!CUSTOM_LIBRARY!;!RT_JAR! stepOverNonLocalReturnInLambda.StepOverNonLocalReturnInLambdaKt
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
stepOverNonLocalReturnInLambda.kt:20
stepOverNonLocalReturnInLambda.kt:21
stepOverNonLocalReturnInLambda.kt:27
stepOverNonLocalReturnInLambda.kt:34
stepOverNonLocalReturnInLambda.kt:35
stepOverNonLocalReturnInLambda.kt:7
stepOverNonLocalReturnInLambda.kt:52
stepOverNonLocalReturnInLambda.kt:53
stepOverNonLocalReturnInLambda.kt:10
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
Process finished with exit code 0
@@ -0,0 +1,56 @@
package stepOverNonLocalReturnInLambda
fun main(args: Array<String>) {
try {
test1()
test2()
test3()
}
catch(e: Exception) {
val a = 1
}
val c = 1
}
fun test1() {
// STEP_OVER: 2
// RESUME: 1
//Breakpoint!
val a = "aaa"
synchronized(a) {
if (a == "bbb") {
return
}
}
val c = 1
}
fun test2() {
// STEP_OVER: 2
// RESUME: 1
//Breakpoint!
val a = "aaa"
synchronized(a) {
if (a == "aaa") {
return
}
}
val c = 1
}
private fun test3() {
inlineFunThrowException()
}
inline fun inlineFunThrowException() {
// STEP_OVER: 2
// RESUME: 1
//Breakpoint!
val a = 1
synchronized(a) {
throw IllegalArgumentException()
}
}