Files
kotlin-fork/compiler/testData/debug/stepping/assertion.kt
T

56 lines
1.2 KiB
Kotlin
Vendored

// FILE: test.kt
public val MASSERTIONS_ENABLED: Boolean = true
public inline fun massert(value: Boolean, lazyMessage: () -> String) {
if (MASSERTIONS_ENABLED) {
if (!value) {
val message = lazyMessage()
throw AssertionError(message)
}
}
}
public inline fun massert(value: Boolean, message: Any = "Assertion failed") {
if (MASSERTIONS_ENABLED) {
if (!value) {
throw AssertionError(message)
}
}
}
fun box(): String {
massert(true)
massert(true) {
"test"
}
return "OK"
}
// JVM_IR steps on line 15 both on the way in and on the way out
// of the massert method. This is consistent with what would
// happen if massert was not inline and we used force-step-into
// to step through the $default method. JVM only hits line 15 on
// the way in.
// LINENUMBERS
// test.kt:24 box
// test.kt:15 box
// test.kt:16 box
// test.kt:3 getMASSERTIONS_ENABLED
// test.kt:16 box
// test.kt:17 box
// test.kt:21 box
// LINENUMBERS JVM_IR
// test.kt:15 box
// LINENUMBERS
// test.kt:25 box
// test.kt:6 box
// test.kt:3 getMASSERTIONS_ENABLED
// test.kt:6 box
// test.kt:7 box
// test.kt:12 box
// test.kt:29 box