Parcelize: Add an intrinsic to access Parcelable CREATOR fields
Fixes KT-19853. The CREATOR field is a static field on a Parcelable class which is not visible from Kotlin since the necessary metadata would have to be in a Companion object which may not exist. This commit adds a [parcelableCreator] function to kotlinx.parcelize, which is optimized to a direct field access whenever possible.
This commit is contained in:
committed by
Alexander Udalov
parent
897c09bf8d
commit
fc013c6b9f
@@ -36,7 +36,7 @@ fun box() = parcelTest { parcel ->
|
||||
parcel.unmarshall(bytes, 0, bytes.size)
|
||||
parcel.setDataPosition(0)
|
||||
|
||||
val test2 = readFromParcel<Ints>(parcel)
|
||||
val test2 = parcelableCreator<Ints>().createFromParcel(parcel)
|
||||
|
||||
assert(test2.a == -test.a)
|
||||
assert(test2.b == -test.b)
|
||||
|
||||
Reference in New Issue
Block a user