Parcelize: Add the Parcelize compiler plugin with sources extracted from Android Extensions plugin (KT-40030)

This commit is contained in:
Yan Zhulanow
2020-07-07 19:30:23 +09:00
parent c9bca165bc
commit b7796d63d8
152 changed files with 11872 additions and 0 deletions
@@ -0,0 +1,40 @@
// CURIOUS_ABOUT writeToParcel, createFromParcel, <clinit>
// WITH_RUNTIME
// FILE: KotlinParcelable.kt
package k
import android.os.*
data class KotlinParcelable(var data: Int): Parcelable {
override fun describeContents() = 1
override fun writeToParcel(dest: Parcel, flags: Int) {
dest.writeInt(data)
}
companion object {
@JvmField
val CREATOR = Creator()
}
class Creator : Parcelable.Creator<KotlinParcelable> {
override fun createFromParcel(source: Parcel): KotlinParcelable {
val data = source.readInt()
return KotlinParcelable(data)
}
override fun newArray(size: Int) = arrayOfNulls<KotlinParcelable>(size)
}
}
// FILE: test.kt
package test
import kotlinx.parcelize.*
import android.os.*
import k.*
@Parcelize
class Foo(val kp: KotlinParcelable): Parcelable