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 3cdd492e98e..71d0d0b5ee2 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 @@ -249,6 +249,11 @@ public class ParcelBoxTestGenerated extends AbstractParcelBoxTest { runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/primitiveTypes.kt"); } + @TestMetadata("sealedClass.kt") + public void testSealedClass() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/sealedClass.kt"); + } + @TestMetadata("simple.kt") public void testSimple() throws Exception { runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/simple.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 bc3e274353a..262891aeca4 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 @@ -249,6 +249,11 @@ public class ParcelIrBoxTestGenerated extends AbstractParcelIrBoxTest { runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/primitiveTypes.kt"); } + @TestMetadata("sealedClass.kt") + public void testSealedClass() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/sealedClass.kt"); + } + @TestMetadata("simple.kt") public void testSimple() throws Exception { runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/simple.kt"); diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/box/sealedClass.kt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/box/sealedClass.kt new file mode 100644 index 00000000000..710f51cde7a --- /dev/null +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/box/sealedClass.kt @@ -0,0 +1,33 @@ +// WITH_RUNTIME + +@file:JvmName("TestKt") +package test + +import kotlinx.android.parcel.* +import android.os.Parcel +import android.os.Parcelable + +sealed class Foo : Parcelable { + @Parcelize + data class A(val x: Int) : Foo() + + @Parcelize + data class B (val x: String) : Foo() +} + +@Parcelize +data class Bar(val a: Foo) : Parcelable + +fun box() = parcelTest { parcel -> + val first = Bar(Foo.B("OK")) + + first.writeToParcel(parcel, 0) + + val bytes = parcel.marshall() + parcel.unmarshall(bytes, 0, bytes.size) + parcel.setDataPosition(0) + + val second = readFromParcel(parcel) + + assert(first == second) +}