diff --git a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelBoxTestGenerated.java b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelBoxTestGenerated.java index 0e5c9d3e2ff..83b14c3952d 100644 --- a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelBoxTestGenerated.java +++ b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelBoxTestGenerated.java @@ -64,6 +64,11 @@ public class ParcelBoxTestGenerated extends AbstractParcelBoxTest { runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/charSequence.kt"); } + @TestMetadata("customParcelerScoping.kt") + public void testCustomParcelerScoping() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/customParcelerScoping.kt"); + } + @TestMetadata("customSerializerBoxing.kt") public void testCustomSerializerBoxing() throws Exception { runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/customSerializerBoxing.kt"); diff --git a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelIrBoxTestGenerated.java b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelIrBoxTestGenerated.java index b0505645166..8ef1c49aa51 100644 --- a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelIrBoxTestGenerated.java +++ b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelIrBoxTestGenerated.java @@ -64,6 +64,11 @@ public class ParcelIrBoxTestGenerated extends AbstractParcelIrBoxTest { runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/charSequence.kt"); } + @TestMetadata("customParcelerScoping.kt") + public void testCustomParcelerScoping() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/customParcelerScoping.kt"); + } + @TestMetadata("customSerializerBoxing.kt") public void testCustomSerializerBoxing() throws Exception { runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/customSerializerBoxing.kt"); diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/box/customParcelerScoping.kt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/box/customParcelerScoping.kt new file mode 100644 index 00000000000..bcca343c9dc --- /dev/null +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/box/customParcelerScoping.kt @@ -0,0 +1,43 @@ +// WITH_RUNTIME + +@file:JvmName("TestKt") +package test + +import kotlinx.android.parcel.* +import android.os.Parcel +import android.os.Parcelable +import android.util.SparseBooleanArray + +object Parceler1 : Parceler { + override fun create(parcel: Parcel) = -parcel.readInt() + + override fun Int.write(parcel: Parcel, flags: Int) { + parcel.writeInt(this) + } +} + +object Parceler2 : Parceler { + override fun create(parcel: Parcel) = parcel.readString().length + + override fun Int.write(parcel: Parcel, flags: Int) { + parcel.writeString("Abc") + } +} + +@Parcelize +@TypeParceler +data class Ints(val a: Int, @TypeParceler val b: Int, val c: @WriteWith Int) : Parcelable + +fun box() = parcelTest { parcel -> + val test = Ints(1, 1, 1) + test.writeToParcel(parcel, 0) + + val bytes = parcel.marshall() + parcel.unmarshall(bytes, 0, bytes.size) + + val test2 = readFromParcel(parcel) + + assert(test2.a == -test.a) + assert(test2.b == -test.b) + assert(test2.c == 3) +}