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
@@ -19,7 +19,7 @@ fun box() = parcelTest { parcel ->
|
||||
parcel.unmarshall(bytes, 0, bytes.size)
|
||||
parcel.setDataPosition(0)
|
||||
|
||||
val test2 = readFromParcel<User>(parcel)
|
||||
val test2 = parcelableCreator<User>().createFromParcel(parcel)
|
||||
|
||||
assert(compareSparseBooleanArrays(test.a, test2.a))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user