diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/IBinderIInterface.ir.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/IBinderIInterface.ir.txt new file mode 100644 index 00000000000..6c8d7c9c817 --- /dev/null +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/IBinderIInterface.ir.txt @@ -0,0 +1,89 @@ +public final class User$Creator : java/lang/Object, android/os/Parcelable$Creator { + public void () + + public final User createFromParcel(android.os.Parcel parcel) { + LABEL (L0) + ALOAD (1) + LDC (parcel) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) + NEW + DUP + ALOAD (1) + INVOKEVIRTUAL (android/os/Parcel, readStrongBinder, ()Landroid/os/IBinder;) + ALOAD (1) + INVOKEVIRTUAL (android/os/Parcel, createBinderArray, ()[Landroid/os/IBinder;) + ALOAD (1) + INVOKEVIRTUAL (android/os/Parcel, createBinderArrayList, ()Ljava/util/ArrayList;) + CHECKCAST + ALOAD (1) + INVOKEVIRTUAL (android/os/Parcel, createBinderArrayList, ()Ljava/util/ArrayList;) + INVOKESPECIAL (User, , (Landroid/os/IBinder;[Landroid/os/IBinder;Ljava/util/List;Ljava/util/ArrayList;)V) + ARETURN + LABEL (L1) + } + + public java.lang.Object createFromParcel(android.os.Parcel source) { + LABEL (L0) + ALOAD (0) + ALOAD (1) + INVOKEVIRTUAL (User$Creator, createFromParcel, (Landroid/os/Parcel;)LUser;) + ARETURN + LABEL (L1) + } + + public final User[] newArray(int size) + + public java.lang.Object[] newArray(int size) +} + +public final class User : java/lang/Object, android/os/Parcelable { + public final static android.os.Parcelable$Creator CREATOR + + private final android.os.IBinder binder + + private final android.os.IBinder[] binderArray + + private final java.util.ArrayList binderArrayList + + private final java.util.List binderList + + static void () + + public void (android.os.IBinder binder, android.os.IBinder[] binderArray, java.util.List binderList, java.util.ArrayList binderArrayList) + + public int describeContents() + + public final android.os.IBinder getBinder() + + public final android.os.IBinder[] getBinderArray() + + public final java.util.ArrayList getBinderArrayList() + + public final java.util.List getBinderList() + + public void writeToParcel(android.os.Parcel out, int flags) { + LABEL (L0) + ALOAD (1) + LDC (out) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) + ALOAD (1) + ALOAD (0) + GETFIELD (binder, Landroid/os/IBinder;) + INVOKEVIRTUAL (android/os/Parcel, writeStrongBinder, (Landroid/os/IBinder;)V) + ALOAD (1) + ALOAD (0) + GETFIELD (binderArray, [Landroid/os/IBinder;) + INVOKEVIRTUAL (android/os/Parcel, writeBinderArray, ([Landroid/os/IBinder;)V) + ALOAD (1) + ALOAD (0) + GETFIELD (binderList, Ljava/util/List;) + INVOKEVIRTUAL (android/os/Parcel, writeBinderList, (Ljava/util/List;)V) + ALOAD (1) + ALOAD (0) + GETFIELD (binderArrayList, Ljava/util/ArrayList;) + CHECKCAST + INVOKEVIRTUAL (android/os/Parcel, writeBinderList, (Ljava/util/List;)V) + RETURN + LABEL (L1) + } +} diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/IBinderIInterface.kt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/IBinderIInterface.kt index 116c5c8d43d..bcac3d62495 100644 --- a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/IBinderIInterface.kt +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/IBinderIInterface.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR // CURIOUS_ABOUT writeToParcel, createFromParcel // WITH_RUNTIME @@ -12,6 +11,7 @@ class User( val binder: IBinder, val binderArray: Array, val binderList: List, - val binderArrayList: ArrayList, // should be serialized using our strategy, not using Parcel.writeBinderList() - val intf: IInterface? + val binderArrayList: ArrayList // should be serialized using our strategy, not using Parcel.writeBinderList() + // There is no readStrongInterface method in Parcel. + // val intf: IInterface? ) : Parcelable \ No newline at end of file diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/IBinderIInterface.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/IBinderIInterface.txt index fcedae1ffc5..f22ffc03ea0 100644 --- a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/IBinderIInterface.txt +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/IBinderIInterface.txt @@ -39,9 +39,7 @@ public final class User$Creator : java/lang/Object, android/os/Parcelable$Creato LABEL (L3) SWAP POP - ALOAD (1) - INVOKEVIRTUAL (android/os/Parcel, readStrongInterface, ()Landroid/os/IInterface;) - INVOKESPECIAL (User, , (Landroid/os/IBinder;[Landroid/os/IBinder;Ljava/util/List;Ljava/util/ArrayList;Landroid/os/IInterface;)V) + INVOKESPECIAL (User, , (Landroid/os/IBinder;[Landroid/os/IBinder;Ljava/util/List;Ljava/util/ArrayList;)V) ARETURN LABEL (L4) } @@ -60,11 +58,9 @@ public final class User : java/lang/Object, android/os/Parcelable { private final java.util.List binderList - private final android.os.IInterface intf - static void () - public void (android.os.IBinder binder, android.os.IBinder[] binderArray, java.util.List binderList, java.util.ArrayList binderArrayList, android.os.IInterface intf) + public void (android.os.IBinder binder, android.os.IBinder[] binderArray, java.util.List binderList, java.util.ArrayList binderArrayList) public int describeContents() @@ -76,8 +72,6 @@ public final class User : java/lang/Object, android/os/Parcelable { public final java.util.List getBinderList() - public final android.os.IInterface getIntf() - public void writeToParcel(android.os.Parcel parcel, int flags) { LABEL (L0) ALOAD (1) @@ -115,10 +109,6 @@ public final class User : java/lang/Object, android/os/Parcelable { GOTO (L1) LABEL (L2) POP - ALOAD (1) - ALOAD (0) - GETFIELD (intf, Landroid/os/IInterface;) - INVOKEVIRTUAL (android/os/Parcel, writeStrongInterface, (Landroid/os/IInterface;)V) RETURN LABEL (L3) }