Cache bytecodes for JetCodeFragment in Evaluate Expression
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
LineBreakpoint created at clearCache.kt:12
|
||||
LineBreakpoint created at clearCache.kt:20
|
||||
LineBreakpoint created at clearCache.kt:31
|
||||
LineBreakpoint created at clearCache.kt:42
|
||||
LineBreakpoint created at clearCache.kt:52
|
||||
LineBreakpoint created at clearCache.kt:60
|
||||
LineBreakpoint created at clearCache.kt:78
|
||||
LineBreakpoint created at clearCache.kt:86
|
||||
LineBreakpoint created at clearCache.kt:95
|
||||
LineBreakpoint created at clearCache.kt:105
|
||||
LineBreakpoint created at clearCache.kt:113
|
||||
LineBreakpoint created at clearCache.kt:124
|
||||
LineBreakpoint created at clearCache.kt:133
|
||||
LineBreakpoint created at clearCache.kt:143
|
||||
LineBreakpoint created at clearCache.kt:151
|
||||
LineBreakpoint created at clearCache.kt:169
|
||||
LineBreakpoint created at clearCache.kt:174
|
||||
LineBreakpoint created at clearCache.kt:181
|
||||
LineBreakpoint created at clearCache.kt:189
|
||||
!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!;!RT_JAR! clearCache.ClearCachePackage
|
||||
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
|
||||
clearCache.kt:11
|
||||
clearCache.kt:19
|
||||
clearCache.kt:30
|
||||
clearCache.kt:30
|
||||
clearCache.kt:41
|
||||
clearCache.kt:41
|
||||
clearCache.kt:51
|
||||
clearCache.kt:59
|
||||
clearCache.kt:77
|
||||
clearCache.kt:85
|
||||
clearCache.kt:94
|
||||
clearCache.kt:104
|
||||
clearCache.kt:112
|
||||
clearCache.kt:123
|
||||
clearCache.kt:132
|
||||
clearCache.kt:142
|
||||
clearCache.kt:150
|
||||
clearCache.kt:168
|
||||
clearCache.kt:173
|
||||
clearCache.kt:180
|
||||
clearCache.kt:188
|
||||
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
|
||||
|
||||
Process finished with exit code 0
|
||||
@@ -0,0 +1,206 @@
|
||||
package clearCache
|
||||
|
||||
import java.util.ArrayList
|
||||
import java.util.HashSet
|
||||
|
||||
fun primitiveTypes() {
|
||||
if (true) {
|
||||
val a: Any = 0
|
||||
// EXPRESSION: a
|
||||
// RESULT: instance of java.lang.Integer(id=ID): Ljava/lang/Integer;
|
||||
//Breakpoint!
|
||||
val b = 1
|
||||
}
|
||||
|
||||
if (true) {
|
||||
val a = 1
|
||||
// EXPRESSION: a
|
||||
// RESULT: 1: I
|
||||
//Breakpoint!
|
||||
val b = 1
|
||||
}
|
||||
|
||||
for (i in 1..2) {
|
||||
// EXPRESSION: i
|
||||
// RESULT: 1: I
|
||||
|
||||
// EXPRESSION: i
|
||||
// RESULT: 2: I
|
||||
|
||||
//Breakpoint!
|
||||
val b = 1
|
||||
}
|
||||
|
||||
for (i in 5.0..6.0) {
|
||||
// EXPRESSION: i
|
||||
// RESULT: 5.0: D
|
||||
|
||||
// EXPRESSION: i
|
||||
// RESULT: 6.0: D
|
||||
|
||||
//Breakpoint!
|
||||
val b = 1
|
||||
}
|
||||
}
|
||||
|
||||
fun subType() {
|
||||
if (true) {
|
||||
val o = Base()
|
||||
// EXPRESSION: o.test()
|
||||
// RESULT: 100: I
|
||||
//Breakpoint!
|
||||
val b = 1
|
||||
}
|
||||
|
||||
if (true) {
|
||||
val o = Derived()
|
||||
// EXPRESSION: o.test()
|
||||
// RESULT: 200: I
|
||||
//Breakpoint!
|
||||
val b = 1
|
||||
}
|
||||
}
|
||||
|
||||
open class Base {
|
||||
open fun test() = 100
|
||||
}
|
||||
|
||||
class Derived: Base() {
|
||||
override fun test() = 200
|
||||
}
|
||||
|
||||
fun subTypePlatform() {
|
||||
if (true) {
|
||||
val c: MutableList<String> = ArrayList<String>()
|
||||
// EXPRESSION: c.size()
|
||||
// RESULT: 0: I
|
||||
//Breakpoint!
|
||||
val b = 1
|
||||
}
|
||||
|
||||
if (true) {
|
||||
val c: List<String> = ArrayList<String>()
|
||||
// EXPRESSION: c.size()
|
||||
// RESULT: 0: I
|
||||
//Breakpoint!
|
||||
val b = 1
|
||||
}
|
||||
|
||||
if (true) {
|
||||
val c = ArrayList<String>()
|
||||
c.add("a")
|
||||
// EXPRESSION: c.size()
|
||||
// RESULT: 1: I
|
||||
//Breakpoint!
|
||||
val b = 1
|
||||
}
|
||||
|
||||
if (true) {
|
||||
val c = ArrayList<Int>()
|
||||
c.add(1)
|
||||
c.add(2)
|
||||
// EXPRESSION: c.size()
|
||||
// RESULT: 2: I
|
||||
//Breakpoint!
|
||||
val b = 1
|
||||
}
|
||||
|
||||
if (true) {
|
||||
val c = HashSet<Int>()
|
||||
// EXPRESSION: c.size()
|
||||
// RESULT: 0: I
|
||||
//Breakpoint!
|
||||
val b = 1
|
||||
}
|
||||
}
|
||||
|
||||
fun genericRerun() {
|
||||
if (true) {
|
||||
val c = ArrayList<Int>()
|
||||
c.add(1)
|
||||
// EXPRESSION: c.get(0)
|
||||
// RESULT: 1: I
|
||||
//Breakpoint!
|
||||
val b = 1
|
||||
}
|
||||
|
||||
if (true) {
|
||||
val c = ArrayList<String>()
|
||||
c.add("a")
|
||||
// EXPRESSION: c.get(0)
|
||||
// RESULT: "a": Ljava/lang/String;
|
||||
//Breakpoint!
|
||||
val b = 1
|
||||
}
|
||||
}
|
||||
|
||||
fun innerClass() {
|
||||
if (true) {
|
||||
val o = TestInnerClasses.Base()
|
||||
// EXPRESSION: o.test()
|
||||
// RESULT: 100: I
|
||||
//Breakpoint!
|
||||
val b = 1
|
||||
}
|
||||
|
||||
if (true) {
|
||||
val o = TestInnerClasses.Derived()
|
||||
// EXPRESSION: o.test()
|
||||
// RESULT: 200: I
|
||||
//Breakpoint!
|
||||
val b = 1
|
||||
}
|
||||
}
|
||||
|
||||
class TestInnerClasses {
|
||||
open class Base {
|
||||
open fun test() = 100
|
||||
}
|
||||
|
||||
class Derived: Base() {
|
||||
override fun test() = 200
|
||||
}
|
||||
}
|
||||
|
||||
fun objects() {
|
||||
// EXPRESSION: obj.test()
|
||||
// RESULT: 1: I
|
||||
//Breakpoint!
|
||||
val a1 = 1
|
||||
|
||||
// EXPRESSION: obj.test()
|
||||
// RESULT: 1: I
|
||||
//Breakpoint!
|
||||
val a2 = 1
|
||||
|
||||
if (true) {
|
||||
val o: BaseObject = obj
|
||||
// EXPRESSION: o.test()
|
||||
// RESULT: 1: I
|
||||
//Breakpoint!
|
||||
val b = 1
|
||||
}
|
||||
|
||||
if (true) {
|
||||
val o = obj
|
||||
// EXPRESSION: o.test()
|
||||
// RESULT: 1: I
|
||||
//Breakpoint!
|
||||
val b = 1
|
||||
}
|
||||
}
|
||||
|
||||
val obj = object: BaseObject() { }
|
||||
|
||||
open class BaseObject {
|
||||
fun test() = 1
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
primitiveTypes()
|
||||
subType()
|
||||
subTypePlatform()
|
||||
genericRerun()
|
||||
innerClass()
|
||||
objects()
|
||||
}
|
||||
Reference in New Issue
Block a user