Debugger: remove usage of JDIEval during finding local variable in frame because it invokeMethod (loadClass) for find field type which invalidates frame
This commit is contained in:
@@ -7,6 +7,7 @@ fun main(args: Array<String>) {
|
||||
class A {
|
||||
class object {
|
||||
val prop = 1
|
||||
fun myFun() = 1
|
||||
}
|
||||
|
||||
fun test() {
|
||||
@@ -24,4 +25,7 @@ fun foo(f: () -> Unit) {
|
||||
// PRINT_FRAME
|
||||
|
||||
// EXPRESSION: prop
|
||||
// RESULT: 1: I
|
||||
|
||||
// EXPRESSION: myFun()
|
||||
// RESULT: 1: I
|
||||
+12
@@ -6,10 +6,12 @@ fun main(args: Array<String>) {
|
||||
|
||||
class A {
|
||||
val aProp = 1
|
||||
fun aMyFun() = 1
|
||||
}
|
||||
|
||||
class Outer {
|
||||
val outerProp = 1
|
||||
fun outerMyFun() = 1
|
||||
|
||||
fun A.foo() {
|
||||
val valFoo = 1
|
||||
@@ -37,6 +39,7 @@ class Outer {
|
||||
|
||||
class B {
|
||||
val bProp = 1
|
||||
fun bMyFun() = 1
|
||||
}
|
||||
|
||||
fun lambda(f: () -> Unit) {
|
||||
@@ -58,4 +61,13 @@ fun lambda(f: () -> Unit) {
|
||||
// RESULT: 1: I
|
||||
|
||||
// EXPRESSION: bProp
|
||||
// RESULT: 1: I
|
||||
|
||||
// EXPRESSION: aMyFun()
|
||||
// RESULT: 1: I
|
||||
|
||||
// EXPRESSION: outerMyFun()
|
||||
// RESULT: 1: I
|
||||
|
||||
// EXPRESSION: bMyFun()
|
||||
// RESULT: 1: I
|
||||
+4
@@ -6,6 +6,7 @@ fun main(args: Array<String>) {
|
||||
|
||||
class A {
|
||||
val prop = 1
|
||||
fun myFun() = 1
|
||||
}
|
||||
|
||||
fun A.foo() {
|
||||
@@ -16,4 +17,7 @@ fun A.foo() {
|
||||
// PRINT_FRAME
|
||||
|
||||
// EXPRESSION: prop
|
||||
// RESULT: 1: I
|
||||
|
||||
// EXPRESSION: myFun()
|
||||
// RESULT: 1: I
|
||||
@@ -6,9 +6,11 @@ fun main(args: Array<String>) {
|
||||
|
||||
class A {
|
||||
val prop1 = 1
|
||||
fun myFun1() = 1
|
||||
|
||||
inner class Inner {
|
||||
val prop2 = 1
|
||||
fun myFun2() = 1
|
||||
|
||||
fun test() {
|
||||
//Breakpoint!
|
||||
@@ -23,4 +25,10 @@ class A {
|
||||
// RESULT: 1: I
|
||||
|
||||
// EXPRESSION: prop2
|
||||
// RESULT: 1: I
|
||||
|
||||
// EXPRESSION: myFun1()
|
||||
// RESULT: 1: I
|
||||
|
||||
// EXPRESSION: myFun2()
|
||||
// RESULT: 1: I
|
||||
@@ -9,6 +9,7 @@ fun main(args: Array<String>) {
|
||||
|
||||
object O {
|
||||
val obProp = 1
|
||||
fun obMyFun() = 1
|
||||
}
|
||||
|
||||
fun foo(f: () -> Unit) {
|
||||
@@ -18,4 +19,7 @@ fun foo(f: () -> Unit) {
|
||||
// PRINT_FRAME
|
||||
|
||||
// EXPRESSION: O.obProp
|
||||
// RESULT: 1: I
|
||||
|
||||
// EXPRESSION: O.obMyFun()
|
||||
// RESULT: 1: I
|
||||
@@ -6,6 +6,7 @@ fun main(args: Array<String>) {
|
||||
|
||||
class A {
|
||||
val prop1 = 1
|
||||
fun myFun() = 1
|
||||
|
||||
fun test() {
|
||||
val val1 = 1
|
||||
@@ -33,4 +34,7 @@ fun foo(f: () -> Unit) {
|
||||
// RESULT: 1: I
|
||||
|
||||
// EXPRESSION: prop1 + val1 + val2
|
||||
// RESULT: 3: I
|
||||
// RESULT: 3: I
|
||||
|
||||
// EXPRESSION: myFun()
|
||||
// RESULT: 1: I
|
||||
@@ -6,6 +6,7 @@ fun main(args: Array<String>) {
|
||||
|
||||
class A {
|
||||
val prop1 = 1
|
||||
fun myFun1() = 1
|
||||
|
||||
fun AExt.testExt() {
|
||||
val val1 = 1
|
||||
@@ -22,6 +23,7 @@ class A {
|
||||
|
||||
class AExt {
|
||||
val prop2 = 1
|
||||
fun myFun2() = 1
|
||||
}
|
||||
|
||||
fun foo(f: () -> Unit) {
|
||||
@@ -43,4 +45,10 @@ fun foo(f: () -> Unit) {
|
||||
// RESULT: 2: I
|
||||
|
||||
// EXPRESSION: prop2 + val1
|
||||
// RESULT: 2: I
|
||||
// RESULT: 2: I
|
||||
|
||||
// EXPRESSION: myFun1()
|
||||
// RESULT: 1: I
|
||||
|
||||
// EXPRESSION: myFun2()
|
||||
// RESULT: 1: I
|
||||
+5
-1
@@ -6,6 +6,7 @@ fun main(args: Array<String>) {
|
||||
|
||||
class A {
|
||||
val prop1 = 1
|
||||
fun myFun() = 1
|
||||
|
||||
fun test() {
|
||||
val val1 = 1
|
||||
@@ -35,4 +36,7 @@ fun foo(f: () -> Unit) {
|
||||
// RESULT: 1: I
|
||||
|
||||
// EXPRESSION: prop1 + val1 + val2
|
||||
// RESULT: 3: I
|
||||
// RESULT: 3: I
|
||||
|
||||
// EXPRESSION: myFun()
|
||||
// RESULT: 1: I
|
||||
Reference in New Issue
Block a user