Implement extra variables for debugger

This commit is contained in:
Natalia Ukhorskaya
2015-01-21 15:40:51 +03:00
parent 3a03cb48df
commit 2f931f36c8
30 changed files with 811 additions and 12 deletions
@@ -0,0 +1,18 @@
package evBreakpointOnPropertyDeclaration
class A {
var prop = 1
}
fun main(args: Array<String>) {
val a1 = A()
val a2 = A()
val a3 = A()
val p1 = a1.prop
//Breakpoint!
val p2 = a2.prop
val p3 = a3.prop
}
// PRINT_FRAME
@@ -0,0 +1,16 @@
package evDelegatedProperty
import kotlin.properties.Delegates
class A {
var prop: Int by Delegates.notNull()
}
fun main(args: Array<String>) {
val a = A()
a.prop = 1
//Breakpoint!
val b = a.prop
}
// PRINT_FRAME
@@ -0,0 +1,13 @@
package evDuplicateItems
class A {
var prop = 1
}
fun main(args: Array<String>) {
val a = A()
//Breakpoint!
val b = a.prop + a.prop
}
// PRINT_FRAME
@@ -0,0 +1,13 @@
package evFinalProperty
class A {
val prop = 1
}
fun main(args: Array<String>) {
val a = A()
//Breakpoint!
val b = a.prop
}
// PRINT_FRAME
@@ -0,0 +1,22 @@
package evLineRange
class A {
var prop = 1
}
fun main(args: Array<String>) {
val a1 = A()
val a2 = A()
val a3 = A()
foo(a1.prop)
val i1 = 1
//Breakpoint!
foo(a2.prop)
val i2 = 1
foo(a3.prop)
}
fun foo(i: Int) {}
// PRINT_FRAME
@@ -0,0 +1,15 @@
package evProperty
class A {
var prop = 1
}
fun main(args: Array<String>) {
val a = A()
//Breakpoint!
if (a.prop == 1) {
}
}
// PRINT_FRAME
@@ -0,0 +1,18 @@
package evPropertyRefExpr
class A {
var prop = 1
fun test() {
//Breakpoint!
if (prop == 1) {
}
}
}
fun main(args: Array<String>) {
A().test()
}
// PRINT_FRAME
@@ -0,0 +1,26 @@
package evSkipAnonymousObject
class A {
var prop = 1
}
fun main(args: Array<String>) {
val a1 = A()
val a2 = A()
//Breakpoint!
foo(a1.prop)
object: T {
override fun f() {
foo(a2.prop)
}
}
}
trait T {
fun f() {}
}
fun foo(i: Int) {}
// PRINT_FRAME
@@ -0,0 +1,21 @@
package evSkipLambda
class A {
var prop = 1
}
fun main(args: Array<String>) {
val a1 = A()
val a2 = A()
//Breakpoint!
foo(a1.prop)
l {
foo(a2.prop)
}
}
fun foo(i: Int) {}
fun l(f: () -> Unit) {}
// PRINT_FRAME
@@ -0,0 +1,22 @@
package evSkipLocalClass
class A {
var prop = 1
}
fun main(args: Array<String>) {
val a1 = A()
val a2 = A()
//Breakpoint!
foo(a1.prop)
class B {
fun bar() {
foo(a2.prop)
}
}
}
fun foo(i: Int) {}
// PRINT_FRAME
@@ -5,7 +5,7 @@ import kotlin.properties.Delegates
fun main(args: Array<String>) {
val a = A()
//Breakpoint!
args.size
args.size()
}
class A {
@@ -3,7 +3,7 @@ package toStringRenderer
fun main(args: Array<String>) {
val a = A()
//Breakpoint!
args.size
args.size()
}
class A {