Files
kotlin-fork/compiler/testData/codegen/boxInline/annotations/annotationInstanceInlining.kt
T
Leonid Startsev 1932546a90 Support instantiation of annotations in JS
#KT-47700 Fixed
2021-09-01 11:13:55 +00:00

46 lines
811 B
Kotlin
Vendored

// IGNORE_BACKEND_FIR: JVM_IR
// IGNORE_BACKEND: JVM
// IGNORE_BACKEND: NATIVE
// IGNORE_BACKEND: WASM
// IGNORE_BACKEND_MULTI_MODULE: JVM, JVM_MULTI_MODULE_IR_AGAINST_OLD
// (supported: JVM_IR, JS_IR(_E6))
// WITH_RUNTIME
// !LANGUAGE: +InstantiationOfAnnotationClasses
// IGNORE_DEXING
// TODO: D8 fails with AssertionError and does not print reason, need further investigation
// FILE: 1.kt
package a
annotation class A(val i: Int)
inline fun foo(i: Int): A = A(i)
inline fun bar(f: () -> Int): A = A(f())
// FILE: 2.kt
import a.*
import kotlin.test.assertTrue as assert
class C {
fun one(): A {
return foo(1)
}
}
fun two(): A {
return bar { 2 }
}
fun box(): String {
val one = C().one()
assert(one.i == 1)
val two = two()
assert(two.i == 2)
return "OK"
}