Fix mapping of nullable generic underlying types of inline classes

#KT-32162 Fixed
This commit is contained in:
Ilmir Usmanov
2022-02-22 00:15:32 +01:00
committed by teamcity
parent 981f8b1871
commit 8811f62300
77 changed files with 3400 additions and 131 deletions
@@ -0,0 +1,24 @@
// WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses, +GenericInlineClassParameter
OPTIONAL_JVM_INLINE_ANNOTATION
value class NullableInt<T: Any>(private val holder: T?) {
val intValue: Int get() = holder as Int
}
val prop: ArrayList<NullableInt<Any>> = arrayListOf(NullableInt(0))
fun box(): String {
val a = prop[0].intValue
if (a != 0) return "Error 1: $a"
val local = mutableListOf(NullableInt(1))
val b = local[0].intValue
if (b != 1) return "Error 2: $b"
prop[0] = NullableInt(2)
if (prop[0].intValue != 2) return "Error 3: ${prop[0].intValue}"
return "OK"
}