Move debugger test data to the new location

This commit is contained in:
Yan Zhulanow
2019-09-27 00:13:53 +09:00
parent b4cc5703de
commit d8d81c51d7
1423 changed files with 0 additions and 0 deletions
@@ -0,0 +1,24 @@
package asyncFunctions
suspend fun main() {
val a = 5
val b = 7
none()
foo()
}
suspend fun foo() {
val x = "foo"
none()
bar()
}
suspend fun bar() {
var y = "zoo"
none()
val z = "bar"
//Breakpoint!
val a = 5
}
suspend fun none() {}
@@ -0,0 +1,15 @@
LineBreakpoint created at asyncFunctions.kt:21
Run Java
Connected to the target VM
asyncFunctions.kt:21
Async stack trace:
asyncFunctions.AsyncFunctionsKt:18
y = "zoo"
asyncFunctions.AsyncFunctionsKt:13
x = "foo"
asyncFunctions.AsyncFunctionsKt:7
a = 5
b = 7
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,20 @@
package asyncLambdas
suspend fun main() {
foo()
}
val foo: suspend () -> Unit = {
val a = 5
bar()
}
val bar: suspend () -> Unit = {
val b = 3
baz()
}
val baz: suspend () -> Unit = {
//Breakpoint!
val a = 5
}
@@ -0,0 +1,12 @@
LineBreakpoint created at asyncLambdas.kt:19
Run Java
Connected to the target VM
asyncLambdas.kt:19
Async stack trace:
asyncLambdas.AsyncLambdasKt$bar$1:14
b = 3
asyncLambdas.AsyncLambdasKt$foo$1:9
a = 5
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,10 @@
package asyncSimple
suspend fun main() {
val a = 5
foo()
//Breakpoint!
val b = a
}
suspend fun foo() {}
@@ -0,0 +1,10 @@
LineBreakpoint created at asyncSimple.kt:7
Run Java
Connected to the target VM
asyncSimple.kt:7
Async stack trace:
asyncSimple.AsyncSimpleKt:5
a = 5
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,39 @@
// Should stop on primary constructor invocation
class Foo1(val a: Int) /// M
class Foo2( /// M
val a: Int, /// F
val b: String /// F
)
class Foo3(val a: Int) { /// M
constructor(a: String) : this(a.toInt()) /// M
}
// Initializers are not currently recognized as functions
class Foo4 { /// M
init { /// L
println() /// L
} /// L
}
class Foo5 {
constructor(a: String) {} /// M
constructor(a: Int) {} /// M
}
interface Intf
annotation class Anno
enum class Enum1 { /// M
FOO
}
enum class Enum2(val a: Int) { /// M
FOO(1)
}
object Obj1
object Obj2 {}
@@ -0,0 +1,44 @@
// Simple one-liners should have only method breakpoint
// Simple = no lambdas on a line
fun foo1() = println() /// M
fun foo2() {} /// M
// Lambdas should be available if present
fun foo3() = run { println() } /// *, L, M, λ
// Code blocks {} are not considered as expressions
fun foo4() { /// M
println() /// L
} /// L
// And parenthesis as well
fun foo5() = ( /// M
println() /// L
)
// For expression-body functions, a line breakpoint should be available
// if there is an expression on the first line
fun foo6() = when (2 + 3) { /// M, L
5 -> {} /// L
else -> {} /// L
}
// Line breakpoint should not be displayed for lambda literal results
fun foo7() = { println() } /// M, λ
fun foo8() = (3 + 5).run { /// M, L
println() /// L
} /// L
// Expressions in default parameter values should be recognized
fun foo9(a: String = readLine()!!) = a /// M, L
// Lambdas in default parameter values also should be recognized
fun foo10(a: () -> Unit = { println() }) { /// *, L, M, λ
a() /// L
} /// L
// If a default parameter value is not just a lambda, but a function call with a lambda argument,
// there should be a line breakpoint as well
fun foo11(a: String = run { "foo" }) = a /// *, L, M, λ
@@ -0,0 +1,53 @@
fun foo() {
require(true) { "foo" } /// *, L, λ
require(true) { val a = 5 } /// *, L, λ
require(true) { /// L
val a = 5 /// L
} /// L
block { val a = 5 } /// *, L, λ
block { /// L
val a = 5 /// L
} /// L
inlineBlock { val a = 5} /// *, L, λ
inlineBlock { /// L
val a = 5 /// L
} /// L
inlineOnlyBlock { val a = 5 } /// *, L, λ
inlineOnlyBlock { /// L
val a = 5 /// L
} /// L
inlineOnlyBlock2 { val a = 5 } /// *, L, λ
inlineOnlyBlock2 { /// L
val a = 5 /// L
} /// L
} /// L
private fun block(block: () -> Unit) { /// M
block() /// L
} /// L
private inline fun inlineBlock(block: () -> Unit) { /// M
block() /// L
} /// L
@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
@kotlin.internal.InlineOnly
private inline fun inlineOnlyBlock(block: () -> Unit) {
block()
}
@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
@kotlin.internal.InlineOnly
private inline fun inlineOnlyBlock2(noinline block: () -> Unit) {
block()
}
@@ -0,0 +1,22 @@
fun foo1() {
// We don't support function breakpoints for local functions yet
fun local() { /// L
println() /// L
} /// L
} /// L
fun foo2() { /// M
val local = fun() { /// L
println() /// L
} /// L
} /// L
fun foo3() { /// M
val local = { /// L
println() /// L
} /// L
} /// L
fun foo4() { /// M
fun local(block: () -> Unit = { println() }) {} /// *, L, λ
} /// L
@@ -0,0 +1,9 @@
class Foo1 {
val x: String /// F, L
get() = "foo" /// M
}
class Foo2 { /// M
val x: String = "foo" /// F, L
get() = field + "x" /// M
}
@@ -0,0 +1,10 @@
package simple
fun main() { /// M
val a = 5 /// L
foo(a) /// L
} /// L
fun foo(a: Int) { /// M
val b = 6 /// L
} /// L
@@ -0,0 +1,185 @@
package clearCache
import java.util.ArrayList
import java.util.HashSet
fun primitiveTypes() {
if (true) {
val a: Any = if (1 == 1) 0 else "abc"
// 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 'a'..'b') {
// EXPRESSION: i
// RESULT: 97: C
// EXPRESSION: i
// RESULT: 98: C
//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 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
}
}
internal val obj = object: BaseObject() { }
open class BaseObject {
fun test() = 1
}
fun main(args: Array<String>) {
primitiveTypes()
subType()
subTypePlatform()
innerClass()
objects()
}
@@ -0,0 +1,58 @@
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:123
LineBreakpoint created at clearCache.kt:131
LineBreakpoint created at clearCache.kt:149
LineBreakpoint created at clearCache.kt:154
LineBreakpoint created at clearCache.kt:161
LineBreakpoint created at clearCache.kt:169
Run Java
Connected to the target VM
clearCache.kt:12
Compile bytecode for a
clearCache.kt:20
Compile bytecode for a
clearCache.kt:31
Compile bytecode for i
clearCache.kt:31
clearCache.kt:42
Compile bytecode for i
clearCache.kt:42
clearCache.kt:52
Compile bytecode for o.test()
clearCache.kt:60
Compile bytecode for o.test()
clearCache.kt:78
Compile bytecode for c.size
clearCache.kt:86
Compile bytecode for c.size
clearCache.kt:95
Compile bytecode for c.size
clearCache.kt:105
Compile bytecode for c.size
clearCache.kt:113
Compile bytecode for c.size
clearCache.kt:123
Compile bytecode for o.test()
clearCache.kt:131
Compile bytecode for o.test()
clearCache.kt:149
Compile bytecode for obj.test()
clearCache.kt:154
Compile bytecode for obj.test()
clearCache.kt:161
Compile bytecode for o.test()
clearCache.kt:169
Compile bytecode for o.test()
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,85 @@
package constructors
class Derived2(): Base(1) {
// constructor with body
// EXPRESSION: p
// RESULT: 1: I
//FunctionBreakpoint!
constructor(p: Int): this() {
// EXPRESSION: p + 1
// RESULT: 2: I
//Breakpoint!
val a = 1
}
// constructor without body
// EXPRESSION: p1 + p2
// RESULT: 2: I
//FunctionBreakpoint!
constructor(p1: Int, p2: Int): this()
}
// EXPRESSION: i1
// RESULT: 1: I
class Derived1(
i1: Int
//Breakpoint!
): Base(i1)
open class Base(i: Int)
fun main(args: Array<String>) {
Derived2(1)
Derived2(1, 1)
Derived1(1)
A()
AA()
B()
C(1)
D()
E(1)
F("foo")
}
// EXPRESSION: 1 + 1
// RESULT: 2: I
//FunctionBreakpoint!
class A
// EXPRESSION: 1 + 3
// RESULT: 4: I
//FunctionBreakpoint!
class AA {
}
// EXPRESSION: 1 + 2
// RESULT: 3: I
//FunctionBreakpoint!
class B()
// EXPRESSION: a
// RESULT: 1: I
//FunctionBreakpoint!
class C(val a: Int)
class D {
// EXPRESSION: 1 + 3
// RESULT: 4: I
//FunctionBreakpoint!
constructor()
}
class E {
// EXPRESSION: i
// RESULT: 1: I
//FunctionBreakpoint!
constructor(i: Int)
}
// EXPRESSION: a
// RESULT: "foo": Ljava/lang/String;
//FunctionBreakpoint!
class F(val a: String)
@@ -0,0 +1,38 @@
FunctionBreakpoint created at constructors.kt:9
LineBreakpoint created at constructors.kt:13
FunctionBreakpoint created at constructors.kt:20
LineBreakpoint created at constructors.kt:28
FunctionBreakpoint created at constructors.kt:50
FunctionBreakpoint created at constructors.kt:55
FunctionBreakpoint created at constructors.kt:62
FunctionBreakpoint created at constructors.kt:67
FunctionBreakpoint created at constructors.kt:73
FunctionBreakpoint created at constructors.kt:79
FunctionBreakpoint created at constructors.kt:85
Run Java
Connected to the target VM
constructors.kt:9
Compile bytecode for p
constructors.kt:13
Compile bytecode for p + 1
constructors.kt:20
Compile bytecode for p1 + p2
constructors.kt:28
Compile bytecode for i1
constructors.kt:50
Compile bytecode for 1 + 1
constructors.kt:55
Compile bytecode for 1 + 3
constructors.kt:62
Compile bytecode for 1 + 2
constructors.kt:67
Compile bytecode for a
constructors.kt:73
Compile bytecode for 1 + 3
constructors.kt:79
Compile bytecode for i
constructors.kt:85
Compile bytecode for a
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,65 @@
package exceptions
import java.util.ArrayList
fun throwException() {
// EXPRESSION: fail()
// RESULT: Method threw 'java.lang.UnsupportedOperationException' exception.
//Breakpoint!
val a = 1
// EXPRESSION: fail()
// RESULT: Method threw 'java.lang.UnsupportedOperationException' exception.
//Breakpoint!
val b = 1
}
fun fail() {
throw UnsupportedOperationException()
}
fun classCast() {
val o = Base()
// EXPRESSION: o as Derived
// RESULT: java.lang.ClassCastException : exceptions.Base cannot be cast to exceptions.Derived
//Breakpoint!
val a = 1
// EXPRESSION: o as Derived
// RESULT: java.lang.ClassCastException : exceptions.Base cannot be cast to exceptions.Derived
//Breakpoint!
val b = 1
}
fun genericClassCast() {
if (true) {
val c = ArrayList<Int>()
c.add(1)
// EXPRESSION: c.get(0)
// RESULT: instance of java.lang.Integer(id=ID): Ljava/lang/Integer;
//Breakpoint!
val b = 1
}
if (true) {
val c = ArrayList<Int>()
(c as? ArrayList<String>)?.add("a")
// EXPRESSION: c.get(0) + 1
// RESULT: java.lang.ClassCastException : java.lang.String cannot be cast to java.lang.Number
//Breakpoint!
val b = 1
}
}
open class Base {
private fun test(): Int = 1
}
class Derived: Base()
fun main(args: Array<String>) {
throwException()
classCast()
genericClassCast()
}
@@ -0,0 +1,23 @@
LineBreakpoint created at exceptions.kt:9
LineBreakpoint created at exceptions.kt:14
LineBreakpoint created at exceptions.kt:26
LineBreakpoint created at exceptions.kt:31
LineBreakpoint created at exceptions.kt:42
LineBreakpoint created at exceptions.kt:51
Run Java
Connected to the target VM
exceptions.kt:9
Compile bytecode for fail()
exceptions.kt:14
Compile bytecode for fail()
exceptions.kt:26
Compile bytecode for o as Derived
exceptions.kt:31
Compile bytecode for o as Derived
exceptions.kt:42
Compile bytecode for c.get(0)
exceptions.kt:51
Compile bytecode for c.get(0) + 1
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,120 @@
package extensionMemberFunction
fun main(args: Array<String>) {
MemberClass().testMember(ExtClass())
MemberClass.testCompanion(ExtClass())
}
class MemberClass {
fun testMember(extClass: ExtClass) {
// EXPRESSION: extClass.testPublic()
// RESULT: 1: I
//Breakpoint!
extClass.testPublic()
with(extClass) {
// EXPRESSION: testPublic()
// RESULT: 1: I
//Breakpoint!
testPublic()
}
// EXPRESSION: extClass.testPrivate()
// RESULT: 1: I
//Breakpoint!
extClass.testPrivate()
with(extClass) {
// EXPRESSION: testPrivate()
// RESULT: 1: I
//Breakpoint!
testPrivate()
}
extClass.testExtMember()
}
fun ExtClass.testExtMember() {
// EXPRESSION: testPublic()
// RESULT: 1: I
//Breakpoint!
testPublic()
// EXPRESSION: this.testPublic()
// RESULT: 1: I
//Breakpoint!
this.testPublic()
// EXPRESSION: testPrivate()
// RESULT: 1: I
//Breakpoint!
testPrivate()
// EXPRESSION: this.testPrivate()
// RESULT: 1: I
//Breakpoint!
this.testPrivate()
}
public fun ExtClass.testPublic() = a
private fun ExtClass.testPrivate() = a
companion object {
public fun ExtClass.testCompPublic() = a
private fun ExtClass.testCompPrivate() = a
fun testCompanion(extClass: ExtClass) {
// EXPRESSION: extClass.testCompPublic()
// RESULT: 1: I
//Breakpoint!
extClass.testCompPublic()
with(extClass) {
// EXPRESSION: testCompPublic()
// RESULT: 1: I
//Breakpoint!
testCompPublic()
}
// EXPRESSION: extClass.testCompPrivate()
// RESULT: 1: I
//Breakpoint!
extClass.testCompPrivate()
with(extClass) {
// EXPRESSION: testCompPrivate()
// RESULT: 1: I
//Breakpoint!
testCompPrivate()
}
extClass.testExtCompanion()
}
fun ExtClass.testExtCompanion() {
// EXPRESSION: testCompPublic()
// RESULT: 1: I
//Breakpoint!
testCompPublic()
// EXPRESSION: this.testCompPublic()
// RESULT: 1: I
//Breakpoint!
this.testCompPublic()
// EXPRESSION: testCompPrivate()
// RESULT: 1: I
//Breakpoint!
testCompPrivate()
// EXPRESSION: this.testCompPrivate()
// RESULT: 1: I
//Breakpoint!
this.testCompPrivate()
}
}
}
class ExtClass {
val a = 1
}
@@ -0,0 +1,53 @@
LineBreakpoint created at extensionMemberFunction.kt:13
LineBreakpoint created at extensionMemberFunction.kt:19
LineBreakpoint created at extensionMemberFunction.kt:25
LineBreakpoint created at extensionMemberFunction.kt:31
LineBreakpoint created at extensionMemberFunction.kt:41
LineBreakpoint created at extensionMemberFunction.kt:46
LineBreakpoint created at extensionMemberFunction.kt:51
LineBreakpoint created at extensionMemberFunction.kt:56
LineBreakpoint created at extensionMemberFunction.kt:70
LineBreakpoint created at extensionMemberFunction.kt:76
LineBreakpoint created at extensionMemberFunction.kt:82
LineBreakpoint created at extensionMemberFunction.kt:88
LineBreakpoint created at extensionMemberFunction.kt:98
LineBreakpoint created at extensionMemberFunction.kt:103
LineBreakpoint created at extensionMemberFunction.kt:108
LineBreakpoint created at extensionMemberFunction.kt:113
Run Java
Connected to the target VM
extensionMemberFunction.kt:13
Compile bytecode for extClass.testPublic()
extensionMemberFunction.kt:19
Compile bytecode for testPublic()
extensionMemberFunction.kt:25
Compile bytecode for extClass.testPrivate()
extensionMemberFunction.kt:31
Compile bytecode for testPrivate()
extensionMemberFunction.kt:41
Compile bytecode for testPublic()
extensionMemberFunction.kt:46
Compile bytecode for this.testPublic()
extensionMemberFunction.kt:51
Compile bytecode for testPrivate()
extensionMemberFunction.kt:56
Compile bytecode for this.testPrivate()
extensionMemberFunction.kt:70
Compile bytecode for extClass.testCompPublic()
extensionMemberFunction.kt:76
Compile bytecode for testCompPublic()
extensionMemberFunction.kt:82
Compile bytecode for extClass.testCompPrivate()
extensionMemberFunction.kt:88
Compile bytecode for testCompPrivate()
extensionMemberFunction.kt:98
Compile bytecode for testCompPublic()
extensionMemberFunction.kt:103
Compile bytecode for this.testCompPublic()
extensionMemberFunction.kt:108
Compile bytecode for testCompPrivate()
extensionMemberFunction.kt:113
Compile bytecode for this.testCompPrivate()
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,27 @@
package extensionMemberFunctionInObject
// KT-14822
fun main(args: Array<String>) {
Foo.bar()
}
object Foo {
fun bar() {
// EXPRESSION: "OK".baz()
// RESULT: 1: I
//Breakpoint!
"OK".baz()
with("OK") {
// EXPRESSION: baz()
// RESULT: 1: I
//Breakpoint!
baz()
}
}
fun String.baz(): Int {
return 1
}
}
@@ -0,0 +1,11 @@
LineBreakpoint created at extensionMemberFunctionInObject.kt:14
LineBreakpoint created at extensionMemberFunctionInObject.kt:20
Run Java
Connected to the target VM
extensionMemberFunctionInObject.kt:14
Compile bytecode for "OK".baz()
extensionMemberFunctionInObject.kt:20
Compile bytecode for baz()
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,124 @@
package extensionMemberProperty
fun main(args: Array<String>) {
MemberClass().testMember(ExtClass())
MemberClass.testCompanion(ExtClass())
}
class MemberClass {
fun testMember(extClass: ExtClass) {
// EXPRESSION: extClass.testPublic
// RESULT: 1: I
//Breakpoint!
extClass.testPublic
with(extClass) {
// EXPRESSION: testPublic
// RESULT: 1: I
//Breakpoint!
testPublic
}
// EXPRESSION: extClass.testPrivate
// RESULT: 1: I
//Breakpoint!
extClass.testPrivate
with(extClass) {
// EXPRESSION: testPrivate
// RESULT: 1: I
//Breakpoint!
testPrivate
}
extClass.testExtMember()
}
fun ExtClass.testExtMember() {
// EXPRESSION: testPublic
// RESULT: 1: I
//Breakpoint!
testPublic
// EXPRESSION: this.testPublic
// RESULT: 1: I
//Breakpoint!
this.testPublic
// EXPRESSION: testPrivate
// RESULT: 1: I
//Breakpoint!
testPrivate
// EXPRESSION: this.testPrivate
// RESULT: 1: I
//Breakpoint!
this.testPrivate
}
public val ExtClass.testPublic: Int
get() = a
private val ExtClass.testPrivate: Int
get() = a
companion object {
public val ExtClass.testCompPublic: Int
get() = a
private val ExtClass.testCompPrivate: Int
get() = a
fun testCompanion(extClass: ExtClass) {
// EXPRESSION: extClass.testCompPublic
// RESULT: 1: I
//Breakpoint!
extClass.testCompPublic
with(extClass) {
// EXPRESSION: testCompPublic
// RESULT: 1: I
//Breakpoint!
testCompPublic
}
// EXPRESSION: extClass.testCompPrivate
// RESULT: 1: I
//Breakpoint!
extClass.testCompPrivate
with(extClass) {
// EXPRESSION: testCompPrivate
// RESULT: 1: I
//Breakpoint!
testCompPrivate
}
extClass.testExtCompanion()
}
fun ExtClass.testExtCompanion() {
// EXPRESSION: testCompPublic
// RESULT: 1: I
//Breakpoint!
testCompPublic
// EXPRESSION: this.testCompPublic
// RESULT: 1: I
//Breakpoint!
this.testCompPublic
// EXPRESSION: testCompPrivate
// RESULT: 1: I
//Breakpoint!
testCompPrivate
// EXPRESSION: this.testCompPrivate
// RESULT: 1: I
//Breakpoint!
this.testCompPrivate
}
}
}
class ExtClass {
val a = 1
}
@@ -0,0 +1,53 @@
LineBreakpoint created at extensionMemberProperty.kt:13
LineBreakpoint created at extensionMemberProperty.kt:19
LineBreakpoint created at extensionMemberProperty.kt:25
LineBreakpoint created at extensionMemberProperty.kt:31
LineBreakpoint created at extensionMemberProperty.kt:41
LineBreakpoint created at extensionMemberProperty.kt:46
LineBreakpoint created at extensionMemberProperty.kt:51
LineBreakpoint created at extensionMemberProperty.kt:56
LineBreakpoint created at extensionMemberProperty.kt:74
LineBreakpoint created at extensionMemberProperty.kt:80
LineBreakpoint created at extensionMemberProperty.kt:86
LineBreakpoint created at extensionMemberProperty.kt:92
LineBreakpoint created at extensionMemberProperty.kt:102
LineBreakpoint created at extensionMemberProperty.kt:107
LineBreakpoint created at extensionMemberProperty.kt:112
LineBreakpoint created at extensionMemberProperty.kt:117
Run Java
Connected to the target VM
extensionMemberProperty.kt:13
Compile bytecode for extClass.testPublic
extensionMemberProperty.kt:19
Compile bytecode for testPublic
extensionMemberProperty.kt:25
Compile bytecode for extClass.testPrivate
extensionMemberProperty.kt:31
Compile bytecode for testPrivate
extensionMemberProperty.kt:41
Compile bytecode for testPublic
extensionMemberProperty.kt:46
Compile bytecode for this.testPublic
extensionMemberProperty.kt:51
Compile bytecode for testPrivate
extensionMemberProperty.kt:56
Compile bytecode for this.testPrivate
extensionMemberProperty.kt:74
Compile bytecode for extClass.testCompPublic
extensionMemberProperty.kt:80
Compile bytecode for testCompPublic
extensionMemberProperty.kt:86
Compile bytecode for extClass.testCompPrivate
extensionMemberProperty.kt:92
Compile bytecode for testCompPrivate
extensionMemberProperty.kt:102
Compile bytecode for testCompPublic
extensionMemberProperty.kt:107
Compile bytecode for this.testCompPublic
extensionMemberProperty.kt:112
Compile bytecode for testCompPrivate
extensionMemberProperty.kt:117
Compile bytecode for this.testCompPrivate
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,27 @@
package fieldVariable
class Foo {
val a: String? = "field"
get() {
//Breakpoint!
val a = 5
return "not a " + field
}
val b: String?
get() {
//Breakpoint!
return "b"
}
}
fun main() {
Foo().a
Foo().b
}
// EXPRESSION: field
// RESULT: "field": Ljava/lang/String;
// EXPRESSION: field
// RESULT: Cannot find the backing field 'b'
@@ -0,0 +1,11 @@
LineBreakpoint created at fieldVariable.kt:7
LineBreakpoint created at fieldVariable.kt:14
Run Java
Connected to the target VM
fieldVariable.kt:7
Compile bytecode for field
fieldVariable.kt:14
Compile bytecode for field
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,42 @@
package funFromOuterClassInLamdba
fun main(args: Array<String>) {
Outer().Inner().test()
}
class Outer {
fun foo() = 1
inner class Inner {
fun innerFun() = 1
fun test() {
fun f() = 1
// outer is captured in lambda
lambda {
// EXPRESSION: foo() + 1
// RESULT: 2: I
//Breakpoint!
val a = foo()
}
// outer isn't captured in lambda
lambda {
// EXPRESSION: foo() + 2
// RESULT: 'this@Outer' is not captured
//Breakpoint!
val a = 1
}
// inner is captured in lambda
lambda {
// EXPRESSION: foo() + 3
// RESULT: 4: I
//Breakpoint!
val a = innerFun()
}
}
}
}
fun lambda(f: () -> Unit) = f()
@@ -0,0 +1,14 @@
LineBreakpoint created at funFromOuterClassInLamdba.kt:20
LineBreakpoint created at funFromOuterClassInLamdba.kt:28
LineBreakpoint created at funFromOuterClassInLamdba.kt:36
Run Java
Connected to the target VM
funFromOuterClassInLamdba.kt:20
Compile bytecode for foo() + 1
funFromOuterClassInLamdba.kt:28
Compile bytecode for foo() + 2
funFromOuterClassInLamdba.kt:36
Compile bytecode for foo() + 3
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,20 @@
package initializer
fun main(args: Array<String>) {
A(1)
}
class A(val prop: Int) {
init {
// EXPRESSION: prop
// RESULT: 1: I
//Breakpoint!
val a = 1
val list = listOf(1)
// EXPRESSION: it
// RESULT: Unresolved reference: it
//Breakpoint! (lambdaOrdinal = -1)
list.map { it * 2 }
}
}
@@ -0,0 +1,10 @@
LineBreakpoint created at initializer.kt:12
LineBreakpoint created at initializer.kt:18 lambdaOrdinal = -1
Run Java
Connected to the target VM
initializer.kt:12
Compile bytecode for prop
initializer.kt:18
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,18 @@
package invisibleDeclarations
fun main(args: Array<String>) {
A()
}
class A() {
private companion object {
val test = 5
}
init {
// EXPRESSION: test
// RESULT: 5: I
//Breakpoint!
val a = 1
}
}
@@ -0,0 +1,8 @@
LineBreakpoint created at invisibleDeclarations.kt:16
Run Java
Connected to the target VM
invisibleDeclarations.kt:16
Compile bytecode for test
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,75 @@
package isInsideInlineLambda
fun main(args: Array<String>) {
val a = A()
// EXPRESSION: it + 1
// RESULT: 2: I
//Breakpoint! (lambdaOrdinal = 1)
a.foo(1) { 1 }
// inside other lambda
a.foo(1) {
// EXPRESSION: it + 2
// RESULT: 3: I
//Breakpoint! (lambdaOrdinal = 1)
a.foo(1) { 1 }
1
}
// inside variable declaration
// EXPRESSION: it + 3
// RESULT: 4: I
//Breakpoint! (lambdaOrdinal = 1)
val x = a.foo(1) { 1 }
// inside object declaration
val y = object {
fun foo() {
// EXPRESSION: it + 4
// RESULT: 5: I
//Breakpoint! (lambdaOrdinal = 1)
a.foo(1) { 1 }
}
}
y.foo()
// inside local function
fun local() {
// EXPRESSION: it + 5
// RESULT: 6: I
//Breakpoint! (lambdaOrdinal = 1)
a.foo(1) { 1 }
}
local()
isInsideInlineLambdaInLibrary.test()
}
class A {
inline fun foo(i: Int, f: (i: Int) -> Int): A {
f(i)
return this
}
}
// ADDITIONAL_BREAKPOINT: isInsideInlineLambdaInLibrary.kt:Breakpoint1:(1)
// EXPRESSION: it + 11
// RESULT: 12: I
// ADDITIONAL_BREAKPOINT: isInsideInlineLambdaInLibrary.kt:Breakpoint2:(1)
// EXPRESSION: it + 12
// RESULT: 14: I
// ADDITIONAL_BREAKPOINT: isInsideInlineLambdaInLibrary.kt:Breakpoint3:(1)
// EXPRESSION: it + 13
// RESULT: 16: I
// ADDITIONAL_BREAKPOINT: isInsideInlineLambdaInLibrary.kt:Breakpoint4:(1)
// EXPRESSION: it + 14
// RESULT: 18: I
// ADDITIONAL_BREAKPOINT: isInsideInlineLambdaInLibrary.kt:Breakpoint5:(1)
// EXPRESSION: it + 15
// RESULT: 20: I
@@ -0,0 +1,35 @@
LineBreakpoint created at isInsideInlineLambdaInLibrary.kt:6 lambdaOrdinal = 1
LineBreakpoint created at isInsideInlineLambdaInLibrary.kt:11 lambdaOrdinal = 1
LineBreakpoint created at isInsideInlineLambdaInLibrary.kt:17 lambdaOrdinal = 1
LineBreakpoint created at isInsideInlineLambdaInLibrary.kt:23 lambdaOrdinal = 1
LineBreakpoint created at isInsideInlineLambdaInLibrary.kt:31 lambdaOrdinal = 1
LineBreakpoint created at isInsideInlineLambda.kt:9 lambdaOrdinal = 1
LineBreakpoint created at isInsideInlineLambda.kt:17 lambdaOrdinal = 1
LineBreakpoint created at isInsideInlineLambda.kt:25 lambdaOrdinal = 1
LineBreakpoint created at isInsideInlineLambda.kt:33 lambdaOrdinal = 1
LineBreakpoint created at isInsideInlineLambda.kt:43 lambdaOrdinal = 1
Run Java
Connected to the target VM
isInsideInlineLambda.kt:9
Compile bytecode for it + 1
isInsideInlineLambda.kt:17
Compile bytecode for it + 2
isInsideInlineLambda.kt:25
Compile bytecode for it + 3
isInsideInlineLambda.kt:33
Compile bytecode for it + 4
isInsideInlineLambda.kt:43
Compile bytecode for it + 5
isInsideInlineLambdaInLibrary.kt:6
Compile bytecode for it + 11
isInsideInlineLambdaInLibrary.kt:11
Compile bytecode for it + 12
isInsideInlineLambdaInLibrary.kt:17
Compile bytecode for it + 13
isInsideInlineLambdaInLibrary.kt:23
Compile bytecode for it + 14
isInsideInlineLambdaInLibrary.kt:31
Compile bytecode for it + 15
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,22 @@
package lambdaParameters
fun fun1(p: String, f: (String) -> Int) {
//Breakpoint!
f(p)
}
inline fun fun2(p: String, crossinline f: (String) -> Int) {
//Breakpoint!
f(p)
}
fun main(args: Array<String>) {
fun1("abc", { x -> x.length })
fun2("abc", { x -> x.length })
}
// EXPRESSION: f("abc")
// RESULT: 3: I
// EXPRESSION: f("abc")
// RESULT: Evaluation of 'crossinline' lambdas is not supported
@@ -0,0 +1,10 @@
LineBreakpoint created at lambdaParameters.kt:5
LineBreakpoint created at lambdaParameters.kt:10
Run Java
Connected to the target VM
lambdaParameters.kt:5
Compile bytecode for f("abc")
lambdaParameters.kt:10
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,29 @@
package customLibClassName
fun main(args: Array<String>) {
customLib.oneFunSameClassName.oneFunSameFileNameFun()
customLib.twoFunDifferentSignature.twoFunDifferentSignatureFun()
customLib.property.foo
customLib.breakpointOnLocalProperty.breakpointOnLocalPropertyFun()
customLib.simpleLibFile.foo()
}
// ADDITIONAL_BREAKPOINT: 1.kt:public fun oneFunSameFileNameFun(): Int {
// EXPRESSION: 1 + 1
// RESULT: 2: I
// ADDITIONAL_BREAKPOINT: 1.kt:public fun twoFunDifferentSignatureFun(): Int {
// EXPRESSION: 1 + 2
// RESULT: 3: I
// ADDITIONAL_BREAKPOINT: 1.kt:public val foo: Int =
// EXPRESSION: 1 + 3
// RESULT: 4: I
// ADDITIONAL_BREAKPOINT: 1.kt:public fun breakpointOnLocalPropertyFun(): Int {
// EXPRESSION: 1 + 4
// RESULT: 5: I
// ADDITIONAL_BREAKPOINT: simpleLibFile.kt:public fun foo() {
// EXPRESSION: 1 + 5
// RESULT: 6: I
@@ -0,0 +1,20 @@
LineBreakpoint created at a1.kt:6
LineBreakpoint created at a1.kt:6
LineBreakpoint created at a1.kt:6
LineBreakpoint created at a1.kt:6
LineBreakpoint created at simpleLibFile.kt:4
Run Java
Connected to the target VM
a1.kt:6
Compile bytecode for 1 + 1
a1.kt:6
Compile bytecode for 1 + 2
a1.kt:6
Compile bytecode for 1 + 3
a1.kt:6
Compile bytecode for 1 + 4
simpleLibFile.kt:4
Compile bytecode for 1 + 5
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,9 @@
package localFunInLibrary
fun main(args: Array<String>) {
customLib.localFunInLibraryCustomLib.localFunInLibraryCustomLibMainFun()
}
// ADDITIONAL_BREAKPOINT: localFunCustomLib.kt:localFunInLibraryCustomLibProperty
// EXPRESSION: localFun()
// RESULT: 1: I
@@ -0,0 +1,8 @@
LineBreakpoint created at localFunCustomLib.kt:6
Run Java
Connected to the target VM
localFunCustomLib.kt:6
Compile bytecode for localFun()
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,72 @@
package localFun
fun main(args: Array<String>) {
fun myLocalFun1() = 1
// EXPRESSION: myLocalFun1()
// RESULT: 1: I
//Breakpoint!
myLocalFun1()
fun myLocalFun2() = 2
// EXPRESSION: myLocalFun2()
// RESULT: 2: I
//Breakpoint!
myLocalFun2()
fun myLocalFun3() {
// EXPRESSION: myLocalFun1() + 1
// RESULT: Cannot find local variable 'myLocalFun1' with type kotlin.jvm.functions.Function0
//Breakpoint!
myLocalFun1() + 1
}
myLocalFun3()
fun myLocalFun4(): Int {
return 1
}
// EXPRESSION: myLocalFun4()
// RESULT: 1: I
//Breakpoint!
myLocalFun4()
fun myLocalFun5(i: Int): Int {
return i
}
// EXPRESSION: myLocalFun5(2)
// RESULT: 2: I
//Breakpoint!
myLocalFun5(2)
var i = 1
fun myLocalFun6(): Int {
i++
return i
}
// EXPRESSION: myLocalFun6()
// RESULT: 2: I
//Breakpoint!
myLocalFun6()
i = 1
fun myLocalFun7() {
// EXPRESSION: myLocalFun6() + 1
// RESULT: Cannot find local variable 'myLocalFun6' with type kotlin.jvm.functions.Function0
//Breakpoint!
myLocalFun6() + 1
}
myLocalFun7()
fun <T> myLocalFun8(): T = 1 as T
// EXPRESSION: myLocalFun8<Int>()
// RESULT: 1: I
//Breakpoint!
myLocalFun8<Int>()
}
@@ -0,0 +1,29 @@
LineBreakpoint created at localFun.kt:9
LineBreakpoint created at localFun.kt:15
LineBreakpoint created at localFun.kt:21
LineBreakpoint created at localFun.kt:34
LineBreakpoint created at localFun.kt:43
LineBreakpoint created at localFun.kt:54
LineBreakpoint created at localFun.kt:61
LineBreakpoint created at localFun.kt:71
Run Java
Connected to the target VM
localFun.kt:9
Compile bytecode for myLocalFun1()
localFun.kt:15
Compile bytecode for myLocalFun2()
localFun.kt:21
Compile bytecode for myLocalFun1() + 1
localFun.kt:34
Compile bytecode for myLocalFun4()
localFun.kt:43
Compile bytecode for myLocalFun5(2)
localFun.kt:54
Compile bytecode for myLocalFun6()
localFun.kt:61
Compile bytecode for myLocalFun6() + 1
localFun.kt:71
Compile bytecode for myLocalFun8<Int>()
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,76 @@
package multipleBreakpointsAtLine
fun main(args: Array<String>) {
val a = A()
// EXPRESSION: it + 1
// RESULT: Unresolved reference: it
//Breakpoint! (lambdaOrdinal = -1)
a.foo(1) { 1 }.foo(2) { 1 }
// EXPRESSION: it + 2
// RESULT: 3: I
//Breakpoint! (lambdaOrdinal = 1)
a.foo(1) { 1 }.foo(2) { 1 }
// EXPRESSION: it + 3
// RESULT: 5: I
//Breakpoint! (lambdaOrdinal = 2)
a.foo(1) { 1 }.foo(2) { 1 }
// EXPRESSION: it + 4
// RESULT: Unresolved reference: it
// EXPRESSION: it + 5
// RESULT: 6: I
// EXPRESSION: it + 6
// RESULT: 8: I
//Breakpoint!
a.foo(1) { 1 }.foo(2) { 1 }
// EXPRESSION: it + 8
// RESULT: Unresolved reference: it
//Breakpoint! (lambdaOrdinal = -1)
a.bar(1) { 1 }.bar(2) { 1 }
// EXPRESSION: it + 9
// RESULT: 10: I
//Breakpoint! (lambdaOrdinal = 1)
a.bar(1) { 1 }.bar(2) { 1 }
// EXPRESSION: it + 10
// RESULT: 12: I
//Breakpoint! (lambdaOrdinal = 2)
a.bar(1) { 1 }.bar(2) { 1 }
// EXPRESSION: it + 11
// RESULT: Unresolved reference: it
// EXPRESSION: it + 12
// RESULT: 13: I
// EXPRESSION: it + 14
// RESULT: 16: I
//Breakpoint!
a.bar(1) { 1 }.bar(2) { 1 }
// EXPRESSION: it + 15
// RESULT: 17: I
//Breakpoint! (lambdaOrdinal = 2)
a.bar(1) { 1 }.bar(2) { 1 + 1
1 + 1
}
}
class A {
fun foo(i: Int, f: (i: Int) -> Int): A {
f(i)
return this
}
inline fun bar(i: Int, f: (i: Int) -> Int): A {
f(i)
return this
}
}
@@ -0,0 +1,36 @@
LineBreakpoint created at multipleBreakpointsAtLine.kt:9 lambdaOrdinal = -1
LineBreakpoint created at multipleBreakpointsAtLine.kt:14 lambdaOrdinal = 1
LineBreakpoint created at multipleBreakpointsAtLine.kt:19 lambdaOrdinal = 2
LineBreakpoint created at multipleBreakpointsAtLine.kt:30
LineBreakpoint created at multipleBreakpointsAtLine.kt:35 lambdaOrdinal = -1
LineBreakpoint created at multipleBreakpointsAtLine.kt:40 lambdaOrdinal = 1
LineBreakpoint created at multipleBreakpointsAtLine.kt:45 lambdaOrdinal = 2
LineBreakpoint created at multipleBreakpointsAtLine.kt:56
LineBreakpoint created at multipleBreakpointsAtLine.kt:61 lambdaOrdinal = 2
Run Java
Connected to the target VM
multipleBreakpointsAtLine.kt:9
multipleBreakpointsAtLine.kt:14
Compile bytecode for it + 2
multipleBreakpointsAtLine.kt:19
Compile bytecode for it + 3
multipleBreakpointsAtLine.kt:30
multipleBreakpointsAtLine.kt:30
Compile bytecode for it + 5
multipleBreakpointsAtLine.kt:30
Compile bytecode for it + 6
multipleBreakpointsAtLine.kt:35
multipleBreakpointsAtLine.kt:40
Compile bytecode for it + 9
multipleBreakpointsAtLine.kt:45
Compile bytecode for it + 10
multipleBreakpointsAtLine.kt:56
multipleBreakpointsAtLine.kt:56
Compile bytecode for it + 12
multipleBreakpointsAtLine.kt:56
Compile bytecode for it + 14
multipleBreakpointsAtLine.kt:61
Compile bytecode for it + 15
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,24 @@
package mutations
fun main() {
var a = 5
val b = 3
//Breakpoint!
val x = 0
//Breakpoint!
val y = 0
//Breakpoint!
val z = 0
}
// EXPRESSION: a = 100
// RESULT: VOID_VALUE
// EXPRESSION: b = 200
// RESULT: VOID_VALUE
// EXPRESSION: a + b
// RESULT: 300: I
@@ -0,0 +1,14 @@
LineBreakpoint created at mutations.kt:8
LineBreakpoint created at mutations.kt:11
LineBreakpoint created at mutations.kt:14
Run Java
Connected to the target VM
mutations.kt:8
Compile bytecode for a = 100
mutations.kt:11
Compile bytecode for b = 200
mutations.kt:14
Compile bytecode for a + b
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,79 @@
package nonCapturedVariables
fun main() {
val a = 5
inlineBlock {
//Breakpoint!
val b = 6
inlineBlock {
//Breakpoint!
val c = 7
block {
//Breakpoint!
val d = 8
inlineBlock {
//Breakpoint!
val e = 9
block {
//Breakpoint!
val f = 10
block {
//Breakpoint!
val g = 11
//Breakpoint!
val g2 = 12
//Breakpoint!
val g3 = 13
//Breakpoint!
val g4 = 14
}
}
}
}
}
}
}
private fun block(block: () -> Unit) {
block()
}
private inline fun inlineBlock(block: () -> Unit) {
block()
}
// EXPRESSION: a
// RESULT: 5: I
// EXPRESSION: b
// RESULT: 6: I
// EXPRESSION: c
// RESULT: 'c' is not captured
// EXPRESSION: d
// RESULT: 8: I
// EXPRESSION: e
// RESULT: 'e' is not captured
// EXPRESSION: f
// RESULT: 'f' is not captured
// EXPRESSION: e
// RESULT: 'e' is not captured
// EXPRESSION: d
// RESULT: 'd' is not captured
// EXPRESSION: c
// RESULT: 'c' is not captured
@@ -0,0 +1,32 @@
LineBreakpoint created at nonCapturedVariables.kt:8
LineBreakpoint created at nonCapturedVariables.kt:12
LineBreakpoint created at nonCapturedVariables.kt:16
LineBreakpoint created at nonCapturedVariables.kt:20
LineBreakpoint created at nonCapturedVariables.kt:24
LineBreakpoint created at nonCapturedVariables.kt:28
LineBreakpoint created at nonCapturedVariables.kt:31
LineBreakpoint created at nonCapturedVariables.kt:34
LineBreakpoint created at nonCapturedVariables.kt:37
Run Java
Connected to the target VM
nonCapturedVariables.kt:8
Compile bytecode for a
nonCapturedVariables.kt:12
Compile bytecode for b
nonCapturedVariables.kt:16
Compile bytecode for c
nonCapturedVariables.kt:20
Compile bytecode for d
nonCapturedVariables.kt:24
Compile bytecode for e
nonCapturedVariables.kt:28
Compile bytecode for f
nonCapturedVariables.kt:31
Compile bytecode for e
nonCapturedVariables.kt:34
Compile bytecode for d
nonCapturedVariables.kt:37
Compile bytecode for c
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,46 @@
package privateMembersPriority
fun main(args: Array<String>) {
Receiver2().test1()
test2()
test3()
}
class Receiver1 {
private fun privateFun() = 1
}
class Receiver2 {
fun privateFun() = 2
fun test1() {
with(Receiver1()) {
// EXPRESSION: privateFun()
// RESULT: 2: I
//Breakpoint!
privateFun()
}
}
}
// In debuggerContext there are two properties size in ArrayList (java field + kotlin property)
fun test2() {
val javaClass = arrayListOf(1)
// EXPRESSION: javaClass.size
// RESULT: 1: I
//Breakpoint!
javaClass.size
}
fun test3() {
// EXPRESSION: TwoPrivateFun().foo(1)
// RESULT: 1: I
//Breakpoint!
val a = 1
}
class TwoPrivateFun {
private fun foo(i: Int) = 1
private fun foo(i: Double) = 2
}
@@ -0,0 +1,14 @@
LineBreakpoint created at privateMembersPriority.kt:21
LineBreakpoint created at privateMembersPriority.kt:33
LineBreakpoint created at privateMembersPriority.kt:40
Run Java
Connected to the target VM
privateMembersPriority.kt:21
Compile bytecode for privateFun()
privateMembersPriority.kt:33
Compile bytecode for javaClass.size
privateMembersPriority.kt:40
Compile bytecode for TwoPrivateFun().foo(1)
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,19 @@
package remappedParameterInInline
inline fun watch(p: String, f: (String) -> Int) {
f(p)
}
inline fun inlineDefault(p: Int = 1, f: (Int) -> Unit) {
// EXPRESSION: p
// RESULT: 1: I
//Breakpoint!
f(p)
}
fun main(args: Array<String>) {
val local = "mno"
watch(local) { it.length }
inlineDefault { it }
}
@@ -0,0 +1,8 @@
LineBreakpoint created at remappedParameterInInline.kt:11
Run Java
Connected to the target VM
remappedParameterInInline.kt:11
Compile bytecode for p
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,35 @@
package smartcasts
fun main(args: Array<String>) {
test1(Derived())
test1(Base())
test2(Derived())
test2(null)
}
// EXPRESSION: derived.prop
// RESULT: 1: I
// EXPRESSION: derived.prop
// RESULT: java.lang.ClassCastException : smartcasts.Base cannot be cast to smartcasts.Derived
fun test1(derived: Base) =
derived is Derived &&
//Breakpoint!
derived.prop == 1
// EXPRESSION: nullable.prop
// RESULT: 1: I
// EXPRESSION: nullable.prop
// RESULT: java.lang.NullPointerException
fun test2(nullable: Derived?) =
nullable != null &&
//Breakpoint!
nullable.prop == 1
class Derived : Base() {
val prop = 1
}
open class Base
@@ -0,0 +1,13 @@
LineBreakpoint created at smartcasts.kt:19
LineBreakpoint created at smartcasts.kt:29
Run Java
Connected to the target VM
smartcasts.kt:19
Compile bytecode for derived.prop
smartcasts.kt:19
smartcasts.kt:29
Compile bytecode for nullable.prop
smartcasts.kt:29
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,31 @@
package thisLabels
fun main() {
block(1) a@ {
//Breakpoint!
inlineBlock(2) b@ {
//Breakpoint!
block(3) c@ {
//Breakpoint!
val a = this@a + this@b + this@c
}
}
}
}
fun <T> block(t: T, block: T.() -> Unit) {
t.block()
}
fun <T> T.inlineBlock(t: T, block: T.() -> Unit) {
t.block()
}
// EXPRESSION: this
// RESULT: 1: I
// EXPRESSION: this
// RESULT: 2: I
// EXPRESSION: this + this@a + this@b + this@c
// RESULT: 9: I
@@ -0,0 +1,14 @@
LineBreakpoint created at thisLabels.kt:6
LineBreakpoint created at thisLabels.kt:8
LineBreakpoint created at thisLabels.kt:10
Run Java
Connected to the target VM
thisLabels.kt:6
Compile bytecode for this
thisLabels.kt:8
Compile bytecode for this
thisLabels.kt:10
Compile bytecode for this + this@a + this@b + this@c
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,31 @@
package whenEntry
fun main(args: Array<String>) {
val a = 1
// EXPRESSION: a
// RESULT: 1: I
val b = when {
//Breakpoint!
a == 1 -> 1 + 1
else -> 1 + 2
}
// EXPRESSION: a
// RESULT: 1: I
val c = when {
//Breakpoint!
a == 1 -> { 1 + 1 }
else -> 1 + 2
}
// EXPRESSION: a
// RESULT: 1: I
val d = when {
//Breakpoint!
a == 1 -> {
1 + 1
}
else -> 1 + 2
}
}
@@ -0,0 +1,14 @@
LineBreakpoint created at whenEntry.kt:10
LineBreakpoint created at whenEntry.kt:18
LineBreakpoint created at whenEntry.kt:26
Run Java
Connected to the target VM
whenEntry.kt:10
Compile bytecode for a
whenEntry.kt:18
Compile bytecode for a
whenEntry.kt:26
Compile bytecode for a
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,57 @@
package withoutBodyFunctions
import kotlin.properties.Delegates
// EXPRESSION: 1 + 1
// RESULT: 2: I
val aGet: Int
//FunctionBreakpoint!
get() = 1
// EXPRESSION: 1 + 2
// RESULT: 3: I
val aGet2: Int
//FunctionBreakpoint!
get() { return 1 }
fun fooWithBody(i: Int): Int {
// EXPRESSION: i
// RESULT: 2: I
//Breakpoint!
return i
}
// EXPRESSION: i
// RESULT: 2: I
//FunctionBreakpoint!
fun foo(i: Int) = i
// EXPRESSION: i
// RESULT: 2: I
//FunctionBreakpoint!
fun fooOneLine(i: Int): Int { return 1 }
// EXPRESSION: i
// RESULT: 2: I
//FunctionBreakpoint!
fun fooEmpty(i: Int) {}
object A {
// EXPRESSION: test2()
// RESULT: 2: I
//FunctionBreakpoint!
@JvmStatic fun fooWithoutBodyInsideObject() = test2()
fun test2() = 2
}
fun main(args: Array<String>) {
aGet
aGet2
fooWithBody(2)
foo(2)
fooOneLine(2)
fooEmpty(2)
A.fooWithoutBodyInsideObject()
}
@@ -0,0 +1,26 @@
FunctionBreakpoint created at withoutBodyFunctions.kt:9
FunctionBreakpoint created at withoutBodyFunctions.kt:15
LineBreakpoint created at withoutBodyFunctions.kt:21
FunctionBreakpoint created at withoutBodyFunctions.kt:27
FunctionBreakpoint created at withoutBodyFunctions.kt:32
FunctionBreakpoint created at withoutBodyFunctions.kt:37
FunctionBreakpoint created at withoutBodyFunctions.kt:43
Run Java
Connected to the target VM
withoutBodyFunctions.kt:9
Compile bytecode for 1 + 1
withoutBodyFunctions.kt:15
Compile bytecode for 1 + 2
withoutBodyFunctions.kt:21
Compile bytecode for i
withoutBodyFunctions.kt:27
Compile bytecode for i
withoutBodyFunctions.kt:32
Compile bytecode for i
withoutBodyFunctions.kt:37
Compile bytecode for i
withoutBodyFunctions.kt:43
Compile bytecode for test2()
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,42 @@
package withoutBodyProperties
import kotlin.properties.Delegates
// EXPRESSION: 1 + 1
// RESULT: 2: I
//FieldWatchpoint! (a)
val a = 1
// EXPRESSION: 1 + 3
// RESULT: 4: I
//FieldWatchpoint! (aLambda)
val aLambda = { 1 + 1 }
class A {
init {
// EXPRESSION: i
// RESULT: 1: I
for (i in 1..1) {
//Breakpoint!
val a = 1
}
}
// EXPRESSION: 1 + 6
// RESULT: 7: I
//FieldWatchpoint! (prop)
val prop = 1
fun test()= prop
}
fun main(args: Array<String>) {
a
aLambda
A().test()
}
// WATCH_FIELD_INITIALISATION: true
// WATCH_FIELD_ACCESS: false
// WATCH_FIELD_MODIFICATION: false
@@ -0,0 +1,17 @@
KotlinFieldBreakpoint created at withoutBodyProperties.kt:8
KotlinFieldBreakpoint created at withoutBodyProperties.kt:13
LineBreakpoint created at withoutBodyProperties.kt:21
KotlinFieldBreakpoint created at withoutBodyProperties.kt:28
Run Java
Connected to the target VM
withoutBodyProperties.kt:8
Compile bytecode for 1 + 1
withoutBodyProperties.kt:13
Compile bytecode for 1 + 3
withoutBodyProperties.kt:21
Compile bytecode for i
withoutBodyProperties.kt:28
Compile bytecode for 1 + 6
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,21 @@
package withoutBodyProperties2
import kotlin.properties.Delegates
// EXPRESSION: 1 + 4
// RESULT: 5: I
//FieldWatchpoint! (aWoBody)
val aWoBody: Int get() = 1
// EXPRESSION: 1 + 5
// RESULT: 6: I
//FieldWatchpoint! (aWoBody2)
val aWoBody2: Int get() { return 1 }
fun main(args: Array<String>) {
aWoBody
aWoBody2
}
// WATCH_FIELD_ACCESS: true
// WATCH_FIELD_MODIFICATION: false
@@ -0,0 +1,11 @@
KotlinFieldBreakpoint created at withoutBodyProperties2.kt:8
KotlinFieldBreakpoint created at withoutBodyProperties2.kt:13
Run Java
Connected to the target VM
withoutBodyProperties2.kt:8
Compile bytecode for 1 + 4
withoutBodyProperties2.kt:13
Compile bytecode for 1 + 5
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,14 @@
package withoutBodyTypeParameters
import kotlin.properties.Delegates
// EXPRESSION: i
// RESULT: instance of java.lang.Integer(id=ID): Ljava/lang/Integer;
//FunctionBreakpoint!
fun <T> foo(i: T) = i
fun run(i: () -> Int) = 1
fun main(args: Array<String>) {
foo(2)
}
@@ -0,0 +1,8 @@
FunctionBreakpoint created at withoutBodyTypeParameters.kt:8
Run Java
Connected to the target VM
withoutBodyTypeParameters.kt:8
Compile bytecode for i
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,14 @@
// Test evaluate expression for default package
fun main(args: Array<String>) {
//Breakpoint!
args.size
}
class Test(val a: Int)
// EXPRESSION: 1 + 1
// RESULT: 2: I
// EXPRESSION: Test(1).a
// RESULT: 1: I
@@ -0,0 +1,9 @@
LineBreakpoint created at .kt.kt:5
Run Java
Connected to the target VM
.kt.kt:5
Compile bytecode for 1 + 1
Compile bytecode for Test(1).a
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,9 @@
package abstractFunCall
fun main(args: Array<String>) {
//Breakpoint!
args.size
}
// EXPRESSION: (1 as java.lang.Number).intValue()
// RESULT: 1: I
@@ -0,0 +1,8 @@
LineBreakpoint created at abstractFunCall.kt:5
Run Java
Connected to the target VM
abstractFunCall.kt:5
Compile bytecode for (1 as java.lang.Number).intValue()
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,16 @@
package accessToOverridenPropertyWithBackingField
open class B1 {
val prop = "OK"
}
class D1: B1()
fun main(args: Array<String>) {
val d = D1()
//Breakpoint!
d.prop // <-- breakpoint here
}
// EXPRESSION: d.prop
// RESULT: "OK": Ljava/lang/String;
@@ -0,0 +1,8 @@
LineBreakpoint created at accessToOverridenPropertyWithBackingField.kt:12
Run Java
Connected to the target VM
accessToOverridenPropertyWithBackingField.kt:12
Compile bytecode for d.prop
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,15 @@
package annotationValue
annotation class Anno(val value: String)
@Anno("abc")
class SomeClass
fun main(args: Array<String>) {
//Breakpoint!
val a = 5
}
// EXPRESSION: (SomeClass::class.java.annotations[0] as Anno).value
// RESULT: "abc": Ljava/lang/String;
@@ -0,0 +1,8 @@
LineBreakpoint created at annotationValue.kt:10
Run Java
Connected to the target VM
annotationValue.kt:10
Compile bytecode for (SomeClass::class.java.annotations[0] as Anno).value
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,19 @@
package anonymousObjects
fun main(args: Array<String>) {
val a = object: AbstractClass(1) {}
a.test(1)
}
abstract class AbstractClass(val i: Int) {
fun test(i: Int): Int {
//Breakpoint!
return i
}
}
// EXPRESSION: test(2)
// RESULT: 2: I
// EXPRESSION: i
// RESULT: 1: I
@@ -0,0 +1,9 @@
LineBreakpoint created at anonymousObjects.kt:11
Run Java
Connected to the target VM
anonymousObjects.kt:11
Compile bytecode for test(2)
Compile bytecode for i
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,15 @@
package arrayMethods
fun main(args: Array<String>) {
//Breakpoint!
val a = 5
}
// EXPRESSION: args.toString().length > 0
// RESULT: 1: Z
// EXPRESSION: args.hashCode() and 0
// RESULT: 0: I
// EXPRESSION: args.clone()
// RESULT: instance of java.lang.String[0] (id=ID): [Ljava/lang/String;
@@ -0,0 +1,10 @@
LineBreakpoint created at arrayMethods.kt:5
Run Java
Connected to the target VM
arrayMethods.kt:5
Compile bytecode for args.toString().length > 0
Compile bytecode for args.hashCode() and 0
Compile bytecode for args.clone()
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,33 @@
package arrays
fun main(args: Array<String>) {
//Breakpoint!
args.size
}
// EXPRESSION: arrayOf(1, 2).map { it.toString() }
// RESULT: instance of java.util.ArrayList(id=ID): Ljava/util/ArrayList;
// EXPRESSION: arrayOf(1, 2, 101, 102).filter { it > 100 }
// RESULT: instance of java.util.ArrayList(id=ID): Ljava/util/ArrayList;
// EXPRESSION: arrayOf(1, 2).none()
// RESULT: 0: Z
// EXPRESSION: arrayOf(1, 2).count()
// RESULT: 2: I
// EXPRESSION: arrayOf(1, 2).size
// RESULT: 2: I
// EXPRESSION: arrayOf(1, 2).first()
// RESULT: 1: I
// EXPRESSION: arrayOf(1, 2).last()
// RESULT: 2: I
// EXPRESSION: intArrayOf(1, 2).max()
// RESULT: instance of java.lang.Integer(id=ID): Ljava/lang/Integer;
// EXPRESSION: arrayOf(1, 2).max()
// RESULT: instance of java.lang.Integer(id=ID): Ljava/lang/Integer;
@@ -0,0 +1,16 @@
LineBreakpoint created at arrays.kt:5
Run Java
Connected to the target VM
arrays.kt:5
Compile bytecode for arrayOf(1, 2).map { it.toString() }
Compile bytecode for arrayOf(1, 2, 101, 102).filter { it > 100 }
Compile bytecode for arrayOf(1, 2).none()
Compile bytecode for arrayOf(1, 2).count()
Compile bytecode for arrayOf(1, 2).size
Compile bytecode for arrayOf(1, 2).first()
Compile bytecode for arrayOf(1, 2).last()
Compile bytecode for intArrayOf(1, 2).max()
Compile bytecode for arrayOf(1, 2).max()
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,14 @@
package boxParam
fun main(args: Array<String>) {
val nullableInt: Int? = 1
val nullableByte: Byte? = 1
// EXPRESSION: nullableInt?.plus(1)
// RESULT: instance of java.lang.Integer(id=ID): Ljava/lang/Integer;
// EXPRESSION: nullableByte?.plus(1)
// RESULT: instance of java.lang.Integer(id=ID): Ljava/lang/Integer;
//Breakpoint!
val i = 1
}
@@ -0,0 +1,9 @@
LineBreakpoint created at boxParam.kt:13
Run Java
Connected to the target VM
boxParam.kt:13
Compile bytecode for nullableInt?.plus(1)
Compile bytecode for nullableByte?.plus(1)
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,12 @@
package boxReturnValue
inline fun <X: Any> useInline(x: X) {
// EXPRESSION: x
// RESULT: instance of java.lang.Integer(id=ID): Ljava/lang/Integer;
//Breakpoint!
val a = 1
}
fun main(args: Array<String>) {
useInline(1)
}
@@ -0,0 +1,8 @@
LineBreakpoint created at boxReturnValue.kt:7
Run Java
Connected to the target VM
boxReturnValue.kt:7
Compile bytecode for x
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,12 @@
package breakpointInInlineFun
import customLib.inlineFunInLibrary.*
fun main(args: Array<String>) {
inlineFun { }
}
// RESUME: 2
// ADDITIONAL_BREAKPOINT: inlineFunInLibrary.kt:public inline fun inlineFun
// ADDITIONAL_BREAKPOINT: inlineFunInLibrary.kt: Breakpoint 2
@@ -0,0 +1,9 @@
LineBreakpoint created at inlineFunInLibrary.kt:4
LineBreakpoint created at inlineFunInLibrary.kt:12
Run Java
Connected to the target VM
inlineFunInLibrary.kt:4
inlineFunInLibrary.kt:12
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,15 @@
package callableBug
fun main(args: Array<String>) {
val callable = 1
arrayOf(1, 2).map {
it + 1
//Breakpoint! (lambdaOrdinal = 1)
}.forEach { it + 2 }
}
// EXPRESSION: callable
// RESULT: 1: I
// EXPRESSION: it
// RESULT: 2: I
@@ -0,0 +1,10 @@
LineBreakpoint created at callableBug.kt:8 lambdaOrdinal = 1
Run Java
Connected to the target VM
callableBug.kt:8
Compile bytecode for callable
Compile bytecode for it
callableBug.kt:8
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,14 @@
package classFromAnotherPackage
import forTests.MyJavaClass
fun main(args: Array<String>) {
//Breakpoint!
args.size
}
// EXPRESSION: MyJavaClass()
// RESULT: instance of forTests.MyJavaClass(id=ID): LforTests/MyJavaClass;
// EXPRESSION: forTests.MyJavaClass()
// RESULT: instance of forTests.MyJavaClass(id=ID): LforTests/MyJavaClass;
@@ -0,0 +1,9 @@
LineBreakpoint created at classFromAnotherPackage.kt:7
Run Java
Connected to the target VM
classFromAnotherPackage.kt:7
Compile bytecode for MyJavaClass()
Compile bytecode for forTests.MyJavaClass()
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,22 @@
package classObjectVal
fun main(args: Array<String>) {
MyClass().test()
}
class MyClass {
fun test() {
//Breakpoint!
val a = 1
}
companion object {
val coProp = 1
}
}
// EXPRESSION: coProp
// RESULT: 1: I
// EXPRESSION: MyClass.coProp
// RESULT: 1: I
@@ -0,0 +1,9 @@
LineBreakpoint created at classObjectVal.kt:10
Run Java
Connected to the target VM
classObjectVal.kt:10
Compile bytecode for coProp
Compile bytecode for MyClass.coProp
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,25 @@
package collections
fun main(args: Array<String>) {
val ar = intArrayOf(1, 2, 100, 200)
//Breakpoint!
args.size
}
// EXPRESSION: arrayListOf(1, 2).map { it.toString() }
// RESULT: instance of java.util.ArrayList(id=ID): Ljava/util/ArrayList;
// EXPRESSION: arrayListOf(1, 2, 101, 102).filter { it > 100 }
// RESULT: instance of java.util.ArrayList(id=ID): Ljava/util/ArrayList;
// EXPRESSION: arrayListOf(1, 2).max()
// RESULT: instance of java.lang.Integer(id=ID): Ljava/lang/Integer;
// EXPRESSION: arrayListOf(1, 2).count()
// RESULT: 2: I
// EXPRESSION: arrayListOf(1, 2).size
// RESULT: 2: I
// EXPRESSION: arrayListOf(1, 2, 3).drop(1)
// RESULT: instance of java.util.ArrayList(id=ID): Ljava/util/ArrayList;
@@ -0,0 +1,5 @@
ar.map { if (it > 50) "big" else "small" }
.filter { it == "small" }
.size
// RESULT: 2: I
@@ -0,0 +1,18 @@
LineBreakpoint created at collections.kt:6
Run Java
Connected to the target VM
collections.kt:6
Compile bytecode for arrayListOf(1, 2).map { it.toString() }
Compile bytecode for arrayListOf(1, 2, 101, 102).filter { it > 100 }
Compile bytecode for arrayListOf(1, 2).max()
Compile bytecode for arrayListOf(1, 2).count()
Compile bytecode for arrayListOf(1, 2).size
Compile bytecode for arrayListOf(1, 2, 3).drop(1)
Compile bytecode for ar.map { if (it > 50) "big" else "small" }
.filter { it == "small" }
.size
// RESULT: 2: I
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,48 @@
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.CeAnonymousObjectKt$publicTopLevelObject$1(id=ID): LceAnonymousObject/CeAnonymousObjectKt$publicTopLevelObject$1;
// -EXPRESSION: privateTopLevelObject
// -RESULT: 1
// -EXPRESSION: privateTopLevelObject.test()
// -RESULT: 1: I
// 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
@@ -0,0 +1,12 @@
LineBreakpoint created at ceAnonymousObject.kt:18
Run Java
Connected to the target VM
ceAnonymousObject.kt:18
Compile bytecode for publicTopLevelObject
Compile bytecode for publicObject
Compile bytecode for protectedObject
Compile bytecode for localObject
Compile bytecode for localObject.test()
Disconnected from the target VM
Process finished with exit code 0
@@ -0,0 +1,16 @@
package ceAnonymousObjectCapturedInClosure
fun main(args: Array<String>) {
val localObject = object { fun test() = 1 }
var localObjectVar = object { fun test() = 1 }
//Breakpoint! (lambdaOrdinal = -1)
lambda { localObjectVar.test() }
}
fun lambda(f: () -> Int) = f()
// EXPRESSION: lambda { localObject.test() }
// RESULT: 1: I
// EXPRESSION: lambda { localObjectVar.test() }
// RESULT: 1: I
@@ -0,0 +1,9 @@
LineBreakpoint created at ceAnonymousObjectCapturedInClosure.kt:7 lambdaOrdinal = -1
Run Java
Connected to the target VM
ceAnonymousObjectCapturedInClosure.kt:7
Compile bytecode for lambda { localObject.test() }
Compile bytecode for lambda { localObjectVar.test() }
Disconnected from the target VM
Process finished with exit code 0
@@ -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

Some files were not shown because too many files have changed in this diff Show More