Evaluate Expression: support anonymous objects evaluation
This commit is contained in:
+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