Evaluate Expression: support anonymous objects evaluation
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
LineBreakpoint created at ceAnonymousObject.kt:18
|
||||
!JDK_HOME!\bin\java -agentlib:jdwp=transport=dt_socket,address=!HOST_NAME!:!HOST_PORT!,suspend=y,server=n -Dfile.encoding=!FILE_ENCODING! -classpath !APP_PATH!\classes;!KOTLIN_RUNTIME!;!CUSTOM_LIBRARY!;!RT_JAR! ceAnonymousObject.CeAnonymousObjectPackage
|
||||
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
|
||||
ceAnonymousObject.kt:18
|
||||
Compile bytecode for publicTopLevelObject
|
||||
Compile bytecode for privateTopLevelObject
|
||||
Compile bytecode for publicObject
|
||||
Compile bytecode for protectedObject
|
||||
Compile bytecode for localObject
|
||||
Compile bytecode for localObject.test()
|
||||
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
|
||||
|
||||
Process finished with exit code 0
|
||||
@@ -0,0 +1,9 @@
|
||||
LineBreakpoint created at ceAnonymousObjectCapturedInClosure.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 !APP_PATH!\classes;!KOTLIN_RUNTIME!;!CUSTOM_LIBRARY!;!RT_JAR! ceAnonymousObjectCapturedInClosure.CeAnonymousObjectCapturedInClosurePackage
|
||||
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
|
||||
ceAnonymousObjectCapturedInClosure.kt:7
|
||||
Compile bytecode for lambda { localObject.test() }
|
||||
Compile bytecode for lambda { localObjectVar.test() }
|
||||
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
|
||||
|
||||
Process finished with exit code 0
|
||||
@@ -0,0 +1,9 @@
|
||||
LineBreakpoint created at ceAnonymousObjectThisAsReceiver.kt:9
|
||||
!JDK_HOME!\bin\java -agentlib:jdwp=transport=dt_socket,address=!HOST_NAME!:!HOST_PORT!,suspend=y,server=n -Dfile.encoding=!FILE_ENCODING! -classpath !APP_PATH!\classes;!KOTLIN_RUNTIME!;!CUSTOM_LIBRARY!;!RT_JAR! ceAnonymousObjectThisAsReceiver.CeAnonymousObjectThisAsReceiverPackage
|
||||
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
|
||||
ceAnonymousObjectThisAsReceiver.kt:9
|
||||
Compile bytecode for test()
|
||||
Compile bytecode for this.test()
|
||||
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
|
||||
|
||||
Process finished with exit code 0
|
||||
@@ -2,6 +2,8 @@ LineBreakpoint created at ceObject.kt:5
|
||||
!JDK_HOME!\bin\java -agentlib:jdwp=transport=dt_socket,address=!HOST_NAME!:!HOST_PORT!,suspend=y,server=n -Dfile.encoding=!FILE_ENCODING! -classpath !APP_PATH!\classes;!KOTLIN_RUNTIME!;!CUSTOM_LIBRARY!;!RT_JAR! ceObject.CeObjectPackage
|
||||
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
|
||||
ceObject.kt:5
|
||||
Compile bytecode for (object: T {}).test()
|
||||
Compile bytecode for object: T {}
|
||||
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
|
||||
|
||||
Process finished with exit code 0
|
||||
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
package ceAnonymousObject
|
||||
|
||||
public val publicTopLevelObject: Any = object { fun test() = 1 }
|
||||
private val privateTopLevelObject = object { fun test() = 1 }
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
MyClass().foo()
|
||||
}
|
||||
|
||||
class MyClass {
|
||||
public val publicObject: Any = object { fun test() = 1 }
|
||||
protected val protectedObject: Any = object { fun test() = 1 }
|
||||
private val privateObject = object { fun test() = 1 }
|
||||
|
||||
fun foo() {
|
||||
val localObject = object { fun test() = 1 }
|
||||
//Breakpoint!
|
||||
val a = 1
|
||||
}
|
||||
}
|
||||
|
||||
// EXPRESSION: publicTopLevelObject
|
||||
// RESULT: instance of ceAnonymousObject.CeAnonymousObjectPackage$ceAnonymousObject$@packagePartHASH$publicTopLevelObject$1(id=ID): LceAnonymousObject/CeAnonymousObjectPackage$ceAnonymousObject$@packagePartHASH$publicTopLevelObject$1;
|
||||
|
||||
// EXPRESSION: privateTopLevelObject
|
||||
// RESULT: instance of ceAnonymousObject.CeAnonymousObjectPackage$ceAnonymousObject$@packagePartHASH$privateTopLevelObject$1(id=ID): LceAnonymousObject/CeAnonymousObjectPackage$ceAnonymousObject$@packagePartHASH$privateTopLevelObject$1;
|
||||
|
||||
// EXPRESSION: publicObject
|
||||
// RESULT: instance of ceAnonymousObject.MyClass$publicObject$1(id=ID): LceAnonymousObject/MyClass$publicObject$1;
|
||||
|
||||
// EXPRESSION: protectedObject
|
||||
// RESULT: instance of ceAnonymousObject.MyClass$protectedObject$1(id=ID): LceAnonymousObject/MyClass$protectedObject$1;
|
||||
|
||||
// -EXPRESSION: privateObject
|
||||
// -RESULT: 1
|
||||
|
||||
// -EXPRESSION: privateObject.test()
|
||||
// -RESULT: 1: I
|
||||
|
||||
// EXPRESSION: localObject
|
||||
// RESULT: instance of ceAnonymousObject.MyClass$foo$localObject$1(id=ID): LceAnonymousObject/MyClass$foo$localObject$1;
|
||||
|
||||
// EXPRESSION: localObject.test()
|
||||
// RESULT: 1: I
|
||||
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
package ceAnonymousObjectCapturedInClosure
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val localObject = object { fun test() = 1 }
|
||||
var localObjectVar = object { fun test() = 1 }
|
||||
//Breakpoint!
|
||||
lambda { localObjectVar.test() }
|
||||
}
|
||||
|
||||
fun lambda(f: () -> Int) = f()
|
||||
|
||||
// EXPRESSION: lambda { localObject.test() }
|
||||
// RESULT: 1: I
|
||||
|
||||
// EXPRESSION: lambda { localObjectVar.test() }
|
||||
// RESULT: 1: I
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
package ceAnonymousObjectThisAsReceiver
|
||||
|
||||
fun main(args : Array<String>) {
|
||||
val localObject = object {
|
||||
fun test() = 1
|
||||
|
||||
fun foo() {
|
||||
//Breakpoint!
|
||||
val a = 1
|
||||
}
|
||||
}
|
||||
|
||||
localObject.foo()
|
||||
}
|
||||
|
||||
// EXPRESSION: test()
|
||||
// RESULT: 1: I
|
||||
|
||||
// EXPRESSION: this.test()
|
||||
// RESULT: 1: I
|
||||
+5
-2
@@ -9,5 +9,8 @@ trait T {
|
||||
fun test() = 1
|
||||
}
|
||||
|
||||
//- EXPRESSION: (object: T {}).test()
|
||||
//- RESULT: 1: I
|
||||
// EXPRESSION: (object: T {}).test()
|
||||
// RESULT: 1: I
|
||||
|
||||
// EXPRESSION: object: T {}
|
||||
// RESULT: instance of packageForDebugger.PackageForDebuggerPackage$debugFile$@packagePartHASH$myFun$1(id=ID): LpackageForDebugger/PackageForDebuggerPackage$debugFile$@packagePartHASH$myFun$1;
|
||||
@@ -1,3 +0,0 @@
|
||||
object {}
|
||||
|
||||
// RESULT: Cannot perform an action because following types are unavailable from debugger scope: <no name provided>
|
||||
Reference in New Issue
Block a user