mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-08 15:53:19 +00:00
The generated code is more inline with java, and we avoid the error of accessing package-private field outside of the package. However, this changes semantics a bit. Now, a user should set assertion status of inline-site's package, instead of inline function's one. #KT-28317: Fixed
22 lines
625 B
Kotlin
Vendored
22 lines
625 B
Kotlin
Vendored
// IGNORE_BACKEND: JVM_IR
|
|
// KOTLIN_CONFIGURATION_FLAGS: ASSERTIONS_MODE=jvm
|
|
|
|
inline fun inlineMe(crossinline c : () -> Unit) = {
|
|
assert(true)
|
|
c()
|
|
}
|
|
|
|
class A {
|
|
fun inlineSite() {
|
|
inlineMe { }
|
|
}
|
|
}
|
|
|
|
// inlineSite:
|
|
// 1 GETSTATIC A\$inlineSite\$\$inlined\$inlineMe\$1.\$assertionsDisabled
|
|
// A.<clinit>:
|
|
// 1 LDC LA\$inlineSite\$\$inlined\$inlineMe\$1;.class\s*INVOKEVIRTUAL java/lang/Class.desiredAssertionStatus \(\)Z
|
|
// 1 PUTSTATIC A\$inlineSite\$\$inlined\$inlineMe\$1.\$assertionsDisabled : Z
|
|
// in declaration site and in inline site
|
|
// 2 INVOKEVIRTUAL java/lang/Class.desiredAssertionStatus \(\)Z
|