Tests: references to private/internal primary val of inline class

This commit is contained in:
Dmitry Petrov
2018-10-17 12:26:10 +03:00
parent 5032c106af
commit 0af2a0dc19
7 changed files with 104 additions and 0 deletions
@@ -0,0 +1,20 @@
// !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME
import kotlin.test.assertEquals
inline class Z(internal val x: Int)
inline class L(internal val x: Long)
inline class S(internal val x: String)
fun box(): String {
assertEquals(42, Z::x.get(Z(42)))
assertEquals(1234L, L::x.get(L(1234L)))
assertEquals("abc", S::x.get(S("abc")))
assertEquals(42, Z::x.invoke(Z(42)))
assertEquals(1234L, L::x.invoke(L(1234L)))
assertEquals("abc", S::x.invoke(S("abc")))
return "OK"
}
@@ -0,0 +1,34 @@
// !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME
import kotlin.test.assertEquals
inline class Z(private val x: Int) {
companion object {
val xref = Z::x
}
}
inline class L(private val x: Long) {
companion object {
val xref = L::x
}
}
inline class S(private val x: String) {
companion object {
val xref = S::x
}
}
fun box(): String {
assertEquals(42, Z.xref.get(Z(42)))
assertEquals(1234L, L.xref.get(L(1234L)))
assertEquals("abc", S.xref.get(S("abc")))
assertEquals(42, Z.xref.invoke(Z(42)))
assertEquals(1234L, L.xref.invoke(L(1234L)))
assertEquals("abc", S.xref.invoke(S("abc")))
return "OK"
}