Tests: references to private/internal primary val of inline class
This commit is contained in:
Vendored
+20
@@ -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"
|
||||
}
|
||||
Vendored
+34
@@ -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"
|
||||
}
|
||||
Reference in New Issue
Block a user