Make breakpoints work in local functions in secondary constructors

This commit is contained in:
Nikolay Krasko
2016-11-22 17:40:52 +03:00
committed by Nikolay Krasko
parent 1889f4f7b1
commit 60e3c8eecd
6 changed files with 74 additions and 1 deletions
@@ -0,0 +1,8 @@
LineBreakpoint created at stopInLocalFunInSecondaryConstructor.kt:7
!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! stopInLocalFunInSecondaryConstructor.StopInLocalFunInSecondaryConstructorKt
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
stopInLocalFunInSecondaryConstructor.kt:7
stopInLocalFunInSecondaryConstructor.kt:8
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
Process finished with exit code 0
@@ -0,0 +1,8 @@
LineBreakpoint created at stopInlineCallInLocalFunInSecondaryConstructor.kt:8
!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! stopInlineCallInLocalFunInSecondaryConstructor.StopInlineCallInLocalFunInSecondaryConstructorKt
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
stopInlineCallInLocalFunInSecondaryConstructor.kt:8
stopInlineCallInLocalFunInSecondaryConstructor.kt:9
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
Process finished with exit code 0
@@ -0,0 +1,19 @@
package stopInLocalFunInSecondaryConstructor
class Foo(bar: Any) {
constructor() : this(12) {
fun some() {
//Breakpoint!
nop()
nop()
}
some()
}
fun nop() {}
}
fun main(args: Array<String>) {
Foo()
}
@@ -0,0 +1,25 @@
package stopInlineCallInLocalFunInSecondaryConstructor
class Foo(bar: Any) {
constructor() : this(12) {
fun test() {
inlineFun {
//Breakpoint!
nop()
nop()
}
}
test()
}
fun nop() {}
}
fun main(args: Array<String>) {
Foo()
}
inline fun inlineFun(f: () -> Any) {
f()
}