Debugger: initial support for member extension functions in evaluate expression
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
LineBreakpoint created at extensionMemberFunction.kt:13
|
||||
LineBreakpoint created at extensionMemberFunction.kt:19
|
||||
LineBreakpoint created at extensionMemberFunction.kt:25
|
||||
LineBreakpoint created at extensionMemberFunction.kt:31
|
||||
LineBreakpoint created at extensionMemberFunction.kt:41
|
||||
LineBreakpoint created at extensionMemberFunction.kt:46
|
||||
LineBreakpoint created at extensionMemberFunction.kt:51
|
||||
LineBreakpoint created at extensionMemberFunction.kt:56
|
||||
LineBreakpoint created at extensionMemberFunction.kt:70
|
||||
LineBreakpoint created at extensionMemberFunction.kt:76
|
||||
LineBreakpoint created at extensionMemberFunction.kt:82
|
||||
LineBreakpoint created at extensionMemberFunction.kt:88
|
||||
LineBreakpoint created at extensionMemberFunction.kt:98
|
||||
LineBreakpoint created at extensionMemberFunction.kt:103
|
||||
LineBreakpoint created at extensionMemberFunction.kt:108
|
||||
LineBreakpoint created at extensionMemberFunction.kt:113
|
||||
!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! extensionMemberFunction.ExtensionMemberFunctionKt
|
||||
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
|
||||
extensionMemberFunction.kt:13
|
||||
Compile bytecode for extClass.testPublic()
|
||||
extensionMemberFunction.kt:19
|
||||
extensionMemberFunction.kt:25
|
||||
Compile bytecode for extClass.testPrivate()
|
||||
extensionMemberFunction.kt:31
|
||||
extensionMemberFunction.kt:41
|
||||
extensionMemberFunction.kt:46
|
||||
extensionMemberFunction.kt:51
|
||||
extensionMemberFunction.kt:56
|
||||
extensionMemberFunction.kt:70
|
||||
Compile bytecode for extClass.testCompPublic()
|
||||
extensionMemberFunction.kt:76
|
||||
extensionMemberFunction.kt:82
|
||||
Compile bytecode for extClass.testCompPrivate()
|
||||
extensionMemberFunction.kt:88
|
||||
extensionMemberFunction.kt:98
|
||||
extensionMemberFunction.kt:103
|
||||
extensionMemberFunction.kt:108
|
||||
extensionMemberFunction.kt:113
|
||||
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
|
||||
|
||||
Process finished with exit code 0
|
||||
+120
@@ -0,0 +1,120 @@
|
||||
package extensionMemberFunction
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
MemberClass().testMember(ExtClass())
|
||||
MemberClass.testCompanion(ExtClass())
|
||||
}
|
||||
|
||||
class MemberClass {
|
||||
fun testMember(extClass: ExtClass) {
|
||||
// EXPRESSION: extClass.testPublic()
|
||||
// RESULT: 1: I
|
||||
//Breakpoint!
|
||||
extClass.testPublic()
|
||||
|
||||
with(extClass) {
|
||||
// EXPRESSION: testPublic()
|
||||
// RESULT: Following declarations are unavailable in debug scope: testPublic
|
||||
//Breakpoint!
|
||||
testPublic()
|
||||
}
|
||||
|
||||
// EXPRESSION: extClass.testPrivate()
|
||||
// RESULT: 1: I
|
||||
//Breakpoint!
|
||||
extClass.testPrivate()
|
||||
|
||||
with(extClass) {
|
||||
// EXPRESSION: testPrivate()
|
||||
// RESULT: Following declarations are unavailable in debug scope: testPrivate
|
||||
//Breakpoint!
|
||||
testPrivate()
|
||||
}
|
||||
|
||||
extClass.testExtMember()
|
||||
}
|
||||
|
||||
fun ExtClass.testExtMember() {
|
||||
// EXPRESSION: testPublic()
|
||||
// RESULT: Following declarations are unavailable in debug scope: testPublic
|
||||
//Breakpoint!
|
||||
testPublic()
|
||||
|
||||
// EXPRESSION: this.testPublic()
|
||||
// RESULT: A receiver of type extensionMemberFunction.ExtClass is required
|
||||
//Breakpoint!
|
||||
this.testPublic()
|
||||
|
||||
// EXPRESSION: testPrivate()
|
||||
// RESULT: Following declarations are unavailable in debug scope: testPrivate
|
||||
//Breakpoint!
|
||||
testPrivate()
|
||||
|
||||
// EXPRESSION: this.testPrivate()
|
||||
// RESULT: A receiver of type extensionMemberFunction.ExtClass is required
|
||||
//Breakpoint!
|
||||
this.testPrivate()
|
||||
}
|
||||
|
||||
public fun ExtClass.testPublic() = a
|
||||
private fun ExtClass.testPrivate() = a
|
||||
|
||||
companion object {
|
||||
public fun ExtClass.testCompPublic() = a
|
||||
private fun ExtClass.testCompPrivate() = a
|
||||
|
||||
fun testCompanion(extClass: ExtClass) {
|
||||
// EXPRESSION: extClass.testCompPublic()
|
||||
// RESULT: 1: I
|
||||
//Breakpoint!
|
||||
extClass.testCompPublic()
|
||||
|
||||
with(extClass) {
|
||||
// EXPRESSION: testCompPublic()
|
||||
// RESULT: Following declarations are unavailable in debug scope: testCompPublic
|
||||
//Breakpoint!
|
||||
testCompPublic()
|
||||
}
|
||||
|
||||
// EXPRESSION: extClass.testCompPrivate()
|
||||
// RESULT: 1: I
|
||||
//Breakpoint!
|
||||
extClass.testCompPrivate()
|
||||
|
||||
with(extClass) {
|
||||
// EXPRESSION: testCompPrivate()
|
||||
// RESULT: Following declarations are unavailable in debug scope: testCompPrivate
|
||||
//Breakpoint!
|
||||
testCompPrivate()
|
||||
}
|
||||
|
||||
extClass.testExtCompanion()
|
||||
}
|
||||
|
||||
fun ExtClass.testExtCompanion() {
|
||||
// EXPRESSION: testCompPublic()
|
||||
// RESULT: Following declarations are unavailable in debug scope: testCompPublic
|
||||
//Breakpoint!
|
||||
testCompPublic()
|
||||
|
||||
// EXPRESSION: this.testCompPublic()
|
||||
// RESULT: A receiver of type extensionMemberFunction.ExtClass is required
|
||||
//Breakpoint!
|
||||
this.testCompPublic()
|
||||
|
||||
// EXPRESSION: testCompPrivate()
|
||||
// RESULT: Following declarations are unavailable in debug scope: testCompPrivate
|
||||
//Breakpoint!
|
||||
testCompPrivate()
|
||||
|
||||
// EXPRESSION: this.testCompPrivate()
|
||||
// RESULT: A receiver of type extensionMemberFunction.ExtClass is required
|
||||
//Breakpoint!
|
||||
this.testCompPrivate()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class ExtClass {
|
||||
val a = 1
|
||||
}
|
||||
Reference in New Issue
Block a user