diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/DefaultParameterValueSubstitutor.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/DefaultParameterValueSubstitutor.kt index 1826631226e..a25cd00ac69 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/DefaultParameterValueSubstitutor.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/DefaultParameterValueSubstitutor.kt @@ -37,9 +37,9 @@ import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter * parameter values substituted. */ class DefaultParameterValueSubstitutor(val state: GenerationState) { - private companion object { + companion object { // rename -> JvmOverloads - private val ANNOTATION_TYPE_DESCRIPTOR_FOR_JVM_OVERLOADS_GENERATED_METHODS: String = + val ANNOTATION_TYPE_DESCRIPTOR_FOR_JVM_OVERLOADS_GENERATED_METHODS: String = Type.getObjectType("synthetic/kotlin/jvm/GeneratedByJvmOverloads").descriptor } diff --git a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/android/parcel/AbstractAsmLikeInstructionListingTest.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractAsmLikeInstructionListingTest.kt similarity index 71% rename from plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/android/parcel/AbstractAsmLikeInstructionListingTest.kt rename to compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractAsmLikeInstructionListingTest.kt index f9d1caac46f..a52a37244b4 100644 --- a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/android/parcel/AbstractAsmLikeInstructionListingTest.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractAsmLikeInstructionListingTest.kt @@ -1,26 +1,14 @@ /* - * Copyright 2010-2017 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.android.parcel +package org.jetbrains.kotlin.codegen -import org.jetbrains.kotlin.codegen.CodegenTestCase -import org.jetbrains.kotlin.codegen.getClassFiles import org.jetbrains.kotlin.test.KotlinTestUtils import org.jetbrains.org.objectweb.asm.ClassReader import org.jetbrains.org.objectweb.asm.Label +import org.jetbrains.org.objectweb.asm.Opcodes import org.jetbrains.org.objectweb.asm.Opcodes.* import org.jetbrains.org.objectweb.asm.Type import org.jetbrains.org.objectweb.asm.tree.* @@ -32,7 +20,7 @@ private val LINE_SEPARATOR = System.getProperty("line.separator") abstract class AbstractAsmLikeInstructionListingTest : CodegenTestCase() { private companion object { val CURIOUS_ABOUT_DIRECTIVE = "// CURIOUS_ABOUT " - val LOCAL_VARIABLES_TABLE_DIRECTIVE = "// LOCAL_VARIABLES_TABLE" + val LOCAL_VARIABLE_TABLE_DIRECTIVE = "// LOCAL_VARIABLE_TABLE" } override fun doMultiFileTest(wholeFile: File, files: List, javaFilesDir: File?) { @@ -51,14 +39,14 @@ abstract class AbstractAsmLikeInstructionListingTest : CodegenTestCase() { .map { it.substring(CURIOUS_ABOUT_DIRECTIVE.length) } .flatMap { it.split(',').map { it.trim() } } - val showLocalVariables = testFileLines.any { it.trim() == LOCAL_VARIABLES_TABLE_DIRECTIVE } + val showLocalVariables = testFileLines.any { it.trim() == LOCAL_VARIABLE_TABLE_DIRECTIVE } KotlinTestUtils.assertEqualsToFile(txtFile, classes.joinToString(LINE_SEPARATOR.repeat(2)) { renderClassNode(it, printBytecodeForTheseMethods, showLocalVariables) }) } - private fun renderClassNode(clazz: ClassNode, printBytecodeForTheseMethods: List, showLocalVariables: Boolean): String { + private fun renderClassNode(clazz: ClassNode, showBytecodeForTheseMethods: List, showLocalVariables: Boolean): String { val fields = (clazz.fields ?: emptyList()).sortedBy { it.name } val methods = (clazz.methods ?: emptyList()).sortedBy { it.name } @@ -83,8 +71,8 @@ abstract class AbstractAsmLikeInstructionListingTest : CodegenTestCase() { } methods.joinTo(this, LINE_SEPARATOR.repeat(2)) { - val printBytecode = printBytecodeForTheseMethods.contains(it.name) - renderMethod(it, printBytecode, showLocalVariables).withMargin() + val showBytecode = showBytecodeForTheseMethods.contains(it.name) + renderMethod(it, showBytecode, showLocalVariables).withMargin() } appendln().append("}") @@ -98,36 +86,60 @@ abstract class AbstractAsmLikeInstructionListingTest : CodegenTestCase() { append(field.name) } - private fun renderMethod(method: MethodNode, printBytecode: Boolean, showLocalVariables: Boolean) = buildString { + private fun renderMethod(method: MethodNode, showBytecode: Boolean, showLocalVariables: Boolean) = buildString { renderVisibilityModifiers(method.access) renderModalityModifiers(method.access) val (returnType, parameterTypes) = with(Type.getMethodType(method.desc)) { returnType to argumentTypes } append(returnType.className).append(' ') append(method.name) - parameterTypes.mapIndexed { index, type -> "${type.className} p$index" }.joinTo(this, prefix = "(", postfix = ")") - if (printBytecode && (method.access and ACC_ABSTRACT) == 0) { + parameterTypes.mapIndexed { index, type -> + val name = getParameterName(index, method) + "${type.className} $name" + }.joinTo(this, prefix = "(", postfix = ")") + + val actualShowBytecode = showBytecode && (method.access and ACC_ABSTRACT) == 0 + val actualShowLocalVariables = showLocalVariables && method.localVariables?.takeIf { it.isNotEmpty() } != null + + if (actualShowBytecode || actualShowLocalVariables) { appendln(" {") - append(renderBytecodeInstructions(method.instructions).trimEnd().withMargin()) - if (showLocalVariables) { + if (actualShowLocalVariables) { val localVariableTable = buildLocalVariableTable(method) if (localVariableTable.isNotEmpty()) { - appendln().appendln() append(localVariableTable.withMargin()) } } + if (actualShowBytecode) { + if (actualShowLocalVariables) { + appendln().appendln() + } + append(renderBytecodeInstructions(method.instructions).trimEnd().withMargin()) + } + appendln().append("}") } } + private fun getParameterName(index: Int, method: MethodNode): String { + val localVariableIndexOffset = when { + (method.access and Opcodes.ACC_STATIC) != 0 -> 0 + method.isJvmOverloadsGenerated() -> 0 + else -> 1 + } + + val actualIndex = index + localVariableIndexOffset + val localVariables = method.localVariables?.takeIf { it.size > actualIndex } ?: return "p$index" + return localVariables[actualIndex].name + } + private fun buildLocalVariableTable(method: MethodNode): String { val localVariables = method.localVariables?.takeIf { it.isNotEmpty() } ?: return "" return buildString { append("Local variables:") for (variable in localVariables) { - appendln().append((variable.name + ": " + variable.desc).withMargin()) + appendln().append((variable.index.toString() + " " + variable.name + ": " + variable.desc).withMargin()) } } } @@ -194,4 +206,12 @@ abstract class AbstractAsmLikeInstructionListingTest : CodegenTestCase() { return mappings.getOrPut(hashCode) { currentIndex++ } } } +} + +private fun MethodNode.isJvmOverloadsGenerated(): Boolean { + fun AnnotationNode.isJvmOverloadsGenerated() = + this.desc == DefaultParameterValueSubstitutor.ANNOTATION_TYPE_DESCRIPTOR_FOR_JVM_OVERLOADS_GENERATED_METHODS + + return (visibleAnnotations?.any { it.isJvmOverloadsGenerated() } ?: false) + || (invisibleAnnotations?.any { it.isJvmOverloadsGenerated() } ?: false) } \ No newline at end of file diff --git a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/android/parcel/AbstractParcelBytecodeListingTest.kt b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/android/parcel/AbstractParcelBytecodeListingTest.kt index e5538b6e4d7..cd531ab46cc 100644 --- a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/android/parcel/AbstractParcelBytecodeListingTest.kt +++ b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/android/parcel/AbstractParcelBytecodeListingTest.kt @@ -20,7 +20,7 @@ import org.jetbrains.kotlin.android.synthetic.AndroidComponentRegistrar import org.jetbrains.kotlin.android.synthetic.test.addAndroidExtensionsRuntimeLibrary import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment import org.jetbrains.kotlin.cli.jvm.config.JvmClasspathRoot -import org.jetbrains.kotlin.codegen.extensions.ExpressionCodegenExtension +import org.jetbrains.kotlin.codegen.AbstractAsmLikeInstructionListingTest import java.io.File abstract class AbstractParcelBytecodeListingTest : AbstractAsmLikeInstructionListingTest() { 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 6213b27977e..838c9abc144 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 @@ -1,7 +1,7 @@ public final class User$Creator : java/lang/Object, android/os/Parcelable$Creator { public void () - public final java.lang.Object createFromParcel(android.os.Parcel p0) { + public final java.lang.Object createFromParcel(android.os.Parcel in) { LABEL (L0) ALOAD (1) LDC (in) @@ -46,7 +46,7 @@ public final class User$Creator : java/lang/Object, android/os/Parcelable$Creato LABEL (L4) } - public final java.lang.Object[] newArray(int p0) + public final java.lang.Object[] newArray(int size) } public final class User : java/lang/Object, android/os/Parcelable { @@ -64,7 +64,7 @@ public final class User : java/lang/Object, android/os/Parcelable { static void () - public void (android.os.IBinder p0, android.os.IBinder[] p1, java.util.List p2, java.util.ArrayList p3, android.os.IInterface p4) + public void (android.os.IBinder binder, android.os.IBinder[] binderArray, java.util.List binderList, java.util.ArrayList binderArrayList, android.os.IInterface intf) public int describeContents() @@ -78,7 +78,7 @@ public final class User : java/lang/Object, android/os/Parcelable { public final android.os.IInterface getIntf() - public void writeToParcel(android.os.Parcel p0, int p1) { + public void writeToParcel(android.os.Parcel parcel, int flags) { LABEL (L0) ALOAD (1) LDC (parcel) diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customDescribeContents.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customDescribeContents.txt index a5036e0f5bd..c6be0381b5e 100644 --- a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customDescribeContents.txt +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customDescribeContents.txt @@ -1,9 +1,9 @@ public final class User$Creator : java/lang/Object, android/os/Parcelable$Creator { public void () - public final java.lang.Object createFromParcel(android.os.Parcel p0) + public final java.lang.Object createFromParcel(android.os.Parcel in) - public final java.lang.Object[] newArray(int p0) + public final java.lang.Object[] newArray(int size) } public final class User : java/lang/Object, android/os/Parcelable { @@ -19,7 +19,7 @@ public final class User : java/lang/Object, android/os/Parcelable { static void () - public void (java.lang.String p0, java.lang.String p1, int p2, boolean p3) + public void (java.lang.String firstName, java.lang.String lastName, int age, boolean isProUser) public int describeContents() { LABEL (L0) @@ -37,5 +37,5 @@ public final class User : java/lang/Object, android/os/Parcelable { public final boolean isProUser() - public void writeToParcel(android.os.Parcel p0, int p1) + public void writeToParcel(android.os.Parcel parcel, int flags) } diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customParcelablesDifferentModule.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customParcelablesDifferentModule.txt index fd2d77d94bd..359709ace77 100644 --- a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customParcelablesDifferentModule.txt +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customParcelablesDifferentModule.txt @@ -1,7 +1,7 @@ public final class test/Foo$Creator : java/lang/Object, android/os/Parcelable$Creator { public void () - public final java.lang.Object createFromParcel(android.os.Parcel p0) { + public final java.lang.Object createFromParcel(android.os.Parcel in) { LABEL (L0) ALOAD (1) LDC (in) @@ -18,7 +18,7 @@ public final class test/Foo$Creator : java/lang/Object, android/os/Parcelable$Cr LABEL (L1) } - public final java.lang.Object[] newArray(int p0) + public final java.lang.Object[] newArray(int size) } public final class test/Foo : java/lang/Object, android/os/Parcelable { @@ -34,13 +34,13 @@ public final class test/Foo : java/lang/Object, android/os/Parcelable { RETURN } - public void (android.accounts.Account p0) + public void (android.accounts.Account kp) public int describeContents() public final android.accounts.Account getKp() - public void writeToParcel(android.os.Parcel p0, int p1) { + public void writeToParcel(android.os.Parcel parcel, int flags) { LABEL (L0) ALOAD (1) LDC (parcel) diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customParcelablesSameModule.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customParcelablesSameModule.txt index fa4fa5e1640..2544d8f1b59 100644 --- a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customParcelablesSameModule.txt +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customParcelablesSameModule.txt @@ -1,13 +1,13 @@ public final class k/KotlinParcelable$Companion : java/lang/Object { private void () - public void (kotlin.jvm.internal.DefaultConstructorMarker p0) + public void (kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker) } public final class k/KotlinParcelable$Creator : java/lang/Object, android/os/Parcelable$Creator { public void () - public k.KotlinParcelable createFromParcel(android.os.Parcel p0) { + public k.KotlinParcelable createFromParcel(android.os.Parcel this) { LABEL (L0) ALOAD (1) LDC (source) @@ -36,7 +36,7 @@ public final class k/KotlinParcelable$Creator : java/lang/Object, android/os/Par ARETURN } - public k.KotlinParcelable[] newArray(int p0) + public k.KotlinParcelable[] newArray(int size) public java.lang.Object[] newArray(int p0) } @@ -63,11 +63,11 @@ public final class k/KotlinParcelable : java/lang/Object, android/os/Parcelable RETURN } - public void (int p0) + public void (int data) public final int component1() - public final k.KotlinParcelable copy(int p0) + public final k.KotlinParcelable copy(int data) public static k.KotlinParcelable copy$default(k.KotlinParcelable p0, int p1, int p2, java.lang.Object p3) @@ -79,11 +79,11 @@ public final class k/KotlinParcelable : java/lang/Object, android/os/Parcelable public int hashCode() - public final void setData(int p0) + public final void setData(int ) public java.lang.String toString() - public void writeToParcel(android.os.Parcel p0, int p1) { + public void writeToParcel(android.os.Parcel dest, int flags) { LABEL (L0) ALOAD (1) LDC (dest) @@ -104,7 +104,7 @@ public final class k/KotlinParcelable : java/lang/Object, android/os/Parcelable public final class test/Foo$Creator : java/lang/Object, android/os/Parcelable$Creator { public void () - public final java.lang.Object createFromParcel(android.os.Parcel p0) { + public final java.lang.Object createFromParcel(android.os.Parcel in) { LABEL (L0) ALOAD (1) LDC (in) @@ -121,7 +121,7 @@ public final class test/Foo$Creator : java/lang/Object, android/os/Parcelable$Cr LABEL (L1) } - public final java.lang.Object[] newArray(int p0) + public final java.lang.Object[] newArray(int size) } public final class test/Foo : java/lang/Object, android/os/Parcelable { @@ -137,13 +137,13 @@ public final class test/Foo : java/lang/Object, android/os/Parcelable { RETURN } - public void (k.KotlinParcelable p0) + public void (k.KotlinParcelable kp) public int describeContents() public final k.KotlinParcelable getKp() - public void writeToParcel(android.os.Parcel p0, int p1) { + public void writeToParcel(android.os.Parcel parcel, int flags) { LABEL (L0) ALOAD (1) LDC (parcel) diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customSimple.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customSimple.txt index d7addbce59f..d8ee53ca81e 100644 --- a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customSimple.txt +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customSimple.txt @@ -1,13 +1,13 @@ final class User$Companion : java/lang/Object, kotlinx/android/parcel/Parceler { private void () - public void (kotlin.jvm.internal.DefaultConstructorMarker p0) + public void (kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker) - public User create(android.os.Parcel p0) + public User create(android.os.Parcel parcel) public java.lang.Object create(android.os.Parcel p0) - public User[] newArray(int p0) { + public User[] newArray(int size) { LABEL (L0) LINENUMBER (10) ALOAD (0) @@ -27,7 +27,7 @@ final class User$Companion : java/lang/Object, kotlinx/android/parcel/Parceler { ARETURN } - public void write(User p0, android.os.Parcel p1, int p2) + public void write(User this@write, android.os.Parcel parcel, int flags) public void write(java.lang.Object p0, android.os.Parcel p1, int p2) } @@ -35,7 +35,7 @@ final class User$Companion : java/lang/Object, kotlinx/android/parcel/Parceler { public final class User$Creator : java/lang/Object, android/os/Parcelable$Creator { public void () - public final java.lang.Object createFromParcel(android.os.Parcel p0) { + public final java.lang.Object createFromParcel(android.os.Parcel in) { LABEL (L0) ALOAD (1) LDC (in) @@ -47,7 +47,7 @@ public final class User$Creator : java/lang/Object, android/os/Parcelable$Creato LABEL (L1) } - public final java.lang.Object[] newArray(int p0) { + public final java.lang.Object[] newArray(int size) { LABEL (L0) ILOAD (1) ANEWARRAY @@ -69,7 +69,7 @@ public final class User : java/lang/Object, android/os/Parcelable { static void () - public void (java.lang.String p0, java.lang.String p1, int p2) + public void (java.lang.String firstName, java.lang.String lastName, int age) public int describeContents() @@ -79,7 +79,7 @@ public final class User : java/lang/Object, android/os/Parcelable { public final java.lang.String getLastName() - public void writeToParcel(android.os.Parcel p0, int p1) { + public void writeToParcel(android.os.Parcel parcel, int flags) { LABEL (L0) ALOAD (1) LDC (parcel) diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customSimpleWithNewArray.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customSimpleWithNewArray.txt index 9041b956733..d3c2daf9f36 100644 --- a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customSimpleWithNewArray.txt +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customSimpleWithNewArray.txt @@ -1,13 +1,13 @@ final class User$Companion : java/lang/Object, kotlinx/android/parcel/Parceler { private void () - public void (kotlin.jvm.internal.DefaultConstructorMarker p0) + public void (kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker) - public User create(android.os.Parcel p0) + public User create(android.os.Parcel parcel) public java.lang.Object create(android.os.Parcel p0) - public User[] newArray(int p0) { + public User[] newArray(int size) { LABEL (L0) LINENUMBER (19) ILOAD (1) @@ -25,7 +25,7 @@ final class User$Companion : java/lang/Object, kotlinx/android/parcel/Parceler { ARETURN } - public void write(User p0, android.os.Parcel p1, int p2) + public void write(User this@write, android.os.Parcel parcel, int flags) public void write(java.lang.Object p0, android.os.Parcel p1, int p2) } @@ -33,9 +33,9 @@ final class User$Companion : java/lang/Object, kotlinx/android/parcel/Parceler { public final class User$Creator : java/lang/Object, android/os/Parcelable$Creator { public void () - public final java.lang.Object createFromParcel(android.os.Parcel p0) + public final java.lang.Object createFromParcel(android.os.Parcel in) - public final java.lang.Object[] newArray(int p0) { + public final java.lang.Object[] newArray(int size) { LABEL (L0) GETSTATIC (Companion, LUser$Companion;) ILOAD (1) @@ -58,7 +58,7 @@ public final class User : java/lang/Object, android/os/Parcelable { static void () - public void (java.lang.String p0, java.lang.String p1, int p2) + public void (java.lang.String firstName, java.lang.String lastName, int age) public int describeContents() @@ -68,5 +68,5 @@ public final class User : java/lang/Object, android/os/Parcelable { public final java.lang.String getLastName() - public void writeToParcel(android.os.Parcel p0, int p1) + public void writeToParcel(android.os.Parcel parcel, int flags) } diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/describeContentsFromSuperType.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/describeContentsFromSuperType.txt index ef6d3061be2..c327c526c49 100644 --- a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/describeContentsFromSuperType.txt +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/describeContentsFromSuperType.txt @@ -13,9 +13,9 @@ public abstract class AbstractUser : java/lang/Object, android/os/Parcelable { public final class User$Creator : java/lang/Object, android/os/Parcelable$Creator { public void () - public final java.lang.Object createFromParcel(android.os.Parcel p0) + public final java.lang.Object createFromParcel(android.os.Parcel in) - public final java.lang.Object[] newArray(int p0) + public final java.lang.Object[] newArray(int size) } public final class User : AbstractUser { @@ -31,7 +31,7 @@ public final class User : AbstractUser { static void () - public void (java.lang.String p0, java.lang.String p1, int p2, boolean p3) + public void (java.lang.String firstName, java.lang.String lastName, int age, boolean isProUser) public final int getAge() @@ -41,5 +41,5 @@ public final class User : AbstractUser { public final boolean isProUser() - public void writeToParcel(android.os.Parcel p0, int p1) + public void writeToParcel(android.os.Parcel parcel, int flags) } diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/duplicatingClinit.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/duplicatingClinit.txt index c4fbf322e91..81ed76b336e 100644 --- a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/duplicatingClinit.txt +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/duplicatingClinit.txt @@ -1,7 +1,7 @@ public final class User$Companion : java/lang/Object { private void () - public void (kotlin.jvm.internal.DefaultConstructorMarker p0) + public void (kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker) private static void test$annotations() } @@ -9,9 +9,9 @@ public final class User$Companion : java/lang/Object { public final class User$Creator : java/lang/Object, android/os/Parcelable$Creator { public void () - public final java.lang.Object createFromParcel(android.os.Parcel p0) + public final java.lang.Object createFromParcel(android.os.Parcel in) - public final java.lang.Object[] newArray(int p0) + public final java.lang.Object[] newArray(int size) } public final class User : java/lang/Object, android/os/Parcelable { @@ -42,11 +42,11 @@ public final class User : java/lang/Object, android/os/Parcelable { RETURN } - public void (java.lang.String p0) + public void (java.lang.String firstName) public int describeContents() public final java.lang.String getFirstName() - public void writeToParcel(android.os.Parcel p0, int p1) + public void writeToParcel(android.os.Parcel parcel, int flags) } diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/kt25839.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/kt25839.txt index 73baf54d41b..79ce6e5a04d 100644 --- a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/kt25839.txt +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/kt25839.txt @@ -1,7 +1,7 @@ public final class test/SomeClass$Creator : java/lang/Object, android/os/Parcelable$Creator { public void () - public final java.lang.Object createFromParcel(android.os.Parcel p0) { + public final java.lang.Object createFromParcel(android.os.Parcel in) { LABEL (L0) ALOAD (1) LDC (in) @@ -23,7 +23,7 @@ public final class test/SomeClass$Creator : java/lang/Object, android/os/Parcela LABEL (L4) } - public final java.lang.Object[] newArray(int p0) + public final java.lang.Object[] newArray(int size) } public final class test/SomeClass : java/lang/Object, android/os/Parcelable { @@ -35,7 +35,7 @@ public final class test/SomeClass : java/lang/Object, android/os/Parcelable { public int describeContents() - public void writeToParcel(android.os.Parcel p0, int p1) { + public void writeToParcel(android.os.Parcel parcel, int flags) { LABEL (L0) ALOAD (1) LDC (parcel) diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/listInsideList.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/listInsideList.txt index 30bc05817e9..2b627bdce2a 100644 --- a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/listInsideList.txt +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/listInsideList.txt @@ -1,9 +1,9 @@ public final class Test$Creator : java/lang/Object, android/os/Parcelable$Creator { public void () - public final java.lang.Object createFromParcel(android.os.Parcel p0) + public final java.lang.Object createFromParcel(android.os.Parcel in) - public final java.lang.Object[] newArray(int p0) + public final java.lang.Object[] newArray(int size) } public final class Test : java/lang/Object { @@ -13,13 +13,13 @@ public final class Test : java/lang/Object { static void () - public void (java.util.List p0) + public void (java.util.List names) public int describeContents() public final java.util.List getNames() - public void writeToParcel(android.os.Parcel p0, int p1) { + public void writeToParcel(android.os.Parcel parcel, int flags) { LABEL (L0) ALOAD (1) LDC (parcel) diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/nullableNotNullSize.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/nullableNotNullSize.txt index 9f653338895..8093ff99650 100644 --- a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/nullableNotNullSize.txt +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/nullableNotNullSize.txt @@ -1,9 +1,9 @@ public final class TestNotNull$Creator : java/lang/Object, android/os/Parcelable$Creator { public void () - public final java.lang.Object createFromParcel(android.os.Parcel p0) + public final java.lang.Object createFromParcel(android.os.Parcel in) - public final java.lang.Object[] newArray(int p0) + public final java.lang.Object[] newArray(int size) } public final class TestNotNull : java/lang/Object { @@ -13,13 +13,13 @@ public final class TestNotNull : java/lang/Object { static void () - public void (android.util.Size p0) + public void (android.util.Size a) public int describeContents() public final android.util.Size getA() - public void writeToParcel(android.os.Parcel p0, int p1) { + public void writeToParcel(android.os.Parcel parcel, int flags) { LABEL (L0) ALOAD (1) LDC (parcel) @@ -36,9 +36,9 @@ public final class TestNotNull : java/lang/Object { public final class TestNullable$Creator : java/lang/Object, android/os/Parcelable$Creator { public void () - public final java.lang.Object createFromParcel(android.os.Parcel p0) + public final java.lang.Object createFromParcel(android.os.Parcel in) - public final java.lang.Object[] newArray(int p0) + public final java.lang.Object[] newArray(int size) } public final class TestNullable : java/lang/Object { @@ -48,13 +48,13 @@ public final class TestNullable : java/lang/Object { static void () - public void (android.util.Size p0) + public void (android.util.Size a) public int describeContents() public final android.util.Size getA() - public void writeToParcel(android.os.Parcel p0, int p1) { + public void writeToParcel(android.os.Parcel parcel, int flags) { LABEL (L0) ALOAD (1) LDC (parcel) diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/parcelable.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/parcelable.txt index d06c2babbac..92acd26572b 100644 --- a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/parcelable.txt +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/parcelable.txt @@ -1,7 +1,7 @@ public final class test/Foo$Creator : java/lang/Object, android/os/Parcelable$Creator { public void () - public final java.lang.Object createFromParcel(android.os.Parcel p0) { + public final java.lang.Object createFromParcel(android.os.Parcel in) { LABEL (L0) ALOAD (1) LDC (in) @@ -17,7 +17,7 @@ public final class test/Foo$Creator : java/lang/Object, android/os/Parcelable$Cr LABEL (L1) } - public final java.lang.Object[] newArray(int p0) + public final java.lang.Object[] newArray(int size) } public final class test/Foo : java/lang/Object, android/os/Parcelable { @@ -33,13 +33,13 @@ public final class test/Foo : java/lang/Object, android/os/Parcelable { RETURN } - public void (android.os.Parcelable p0) + public void (android.os.Parcelable parcelable) public int describeContents() public final android.os.Parcelable getParcelable() - public void writeToParcel(android.os.Parcel p0, int p1) { + public void writeToParcel(android.os.Parcel parcel, int flags) { LABEL (L0) ALOAD (1) LDC (parcel) diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/serializable.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/serializable.txt index ddbd4f0cd85..83b4692814a 100644 --- a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/serializable.txt +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/serializable.txt @@ -3,7 +3,7 @@ public final class SerializableSimple : java/lang/Object, java/io/Serializable { private final java.lang.String b - public void (java.lang.String p0, java.lang.String p1) + public void (java.lang.String a, java.lang.String b) public final java.lang.String getA() @@ -13,7 +13,7 @@ public final class SerializableSimple : java/lang/Object, java/io/Serializable { public final class User$Creator : java/lang/Object, android/os/Parcelable$Creator { public void () - public final java.lang.Object createFromParcel(android.os.Parcel p0) { + public final java.lang.Object createFromParcel(android.os.Parcel in) { LABEL (L0) ALOAD (1) LDC (in) @@ -31,7 +31,7 @@ public final class User$Creator : java/lang/Object, android/os/Parcelable$Creato LABEL (L1) } - public final java.lang.Object[] newArray(int p0) + public final java.lang.Object[] newArray(int size) } public final class User : java/lang/Object, android/os/Parcelable { @@ -49,7 +49,7 @@ public final class User : java/lang/Object, android/os/Parcelable { RETURN } - public void (SerializableSimple p0, SerializableSimple p1) + public void (SerializableSimple notNull, SerializableSimple nullable) public int describeContents() @@ -57,7 +57,7 @@ public final class User : java/lang/Object, android/os/Parcelable { public final SerializableSimple getNullable() - public void writeToParcel(android.os.Parcel p0, int p1) { + public void writeToParcel(android.os.Parcel parcel, int flags) { LABEL (L0) ALOAD (1) LDC (parcel) diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/simple.kt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/simple.kt index e71af0cd570..7e99d07e901 100644 --- a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/simple.kt +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/simple.kt @@ -1,6 +1,6 @@ // CURIOUS_ABOUT writeToParcel, createFromParcel, , describeContents // WITH_RUNTIME -// LOCAL_VARIABLES_TABLE +// LOCAL_VARIABLE_TABLE import kotlinx.android.parcel.* import android.os.Parcelable diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/simple.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/simple.txt index eb768f434e1..9ce260738b1 100644 --- a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/simple.txt +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/simple.txt @@ -1,7 +1,14 @@ public final class User$Creator : java/lang/Object, android/os/Parcelable$Creator { - public void () + public void () { + Local variables: + 0 this: LUser$Creator; + } + + public final java.lang.Object createFromParcel(android.os.Parcel in) { + Local variables: + 0 this: LUser$Creator; + 1 in: Landroid/os/Parcel; - public final java.lang.Object createFromParcel(android.os.Parcel p0) { LABEL (L0) ALOAD (1) LDC (in) @@ -26,13 +33,13 @@ public final class User$Creator : java/lang/Object, android/os/Parcelable$Creato INVOKESPECIAL (User, , (Ljava/lang/String;Ljava/lang/String;IZ)V) ARETURN LABEL (L4) - - Local variables: - this: LUser$Creator; - in: Landroid/os/Parcel; } - public final java.lang.Object[] newArray(int p0) + public final java.lang.Object[] newArray(int size) { + Local variables: + 0 this: LUser$Creator; + 1 size: I + } } public final class User : java/lang/Object, android/os/Parcelable { @@ -54,27 +61,50 @@ public final class User : java/lang/Object, android/os/Parcelable { RETURN } - public void (java.lang.String p0, java.lang.String p1, int p2, boolean p3) + public void (java.lang.String firstName, java.lang.String lastName, int age, boolean isProUser) { + Local variables: + 0 this: LUser; + 1 firstName: Ljava/lang/String; + 2 lastName: Ljava/lang/String; + 3 age: I + 4 isProUser: Z + } public int describeContents() { + Local variables: + 0 this: LUser; LABEL (L0) LDC (0) IRETURN LABEL (L1) - - Local variables: - this: LUser; } - public final int getAge() + public final int getAge() { + Local variables: + 0 this: LUser; + } - public final java.lang.String getFirstName() + public final java.lang.String getFirstName() { + Local variables: + 0 this: LUser; + } - public final java.lang.String getLastName() + public final java.lang.String getLastName() { + Local variables: + 0 this: LUser; + } - public final boolean isProUser() + public final boolean isProUser() { + Local variables: + 0 this: LUser; + } + + public void writeToParcel(android.os.Parcel parcel, int flags) { + Local variables: + 0 this: LUser; + 1 parcel: Landroid/os/Parcel; + 2 flags: I - public void writeToParcel(android.os.Parcel p0, int p1) { LABEL (L0) ALOAD (1) LDC (parcel) @@ -97,10 +127,5 @@ public final class User : java/lang/Object, android/os/Parcelable { INVOKEVIRTUAL (android/os/Parcel, writeInt, (I)V) RETURN LABEL (L1) - - Local variables: - this: LUser; - parcel: Landroid/os/Parcel; - flags: I } } diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/simpleList.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/simpleList.txt index 98e40bcb999..21e46167d87 100644 --- a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/simpleList.txt +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/simpleList.txt @@ -1,9 +1,9 @@ public final class Test$Creator : java/lang/Object, android/os/Parcelable$Creator { public void () - public final java.lang.Object createFromParcel(android.os.Parcel p0) + public final java.lang.Object createFromParcel(android.os.Parcel in) - public final java.lang.Object[] newArray(int p0) + public final java.lang.Object[] newArray(int size) } public final class Test : java/lang/Object { @@ -13,13 +13,13 @@ public final class Test : java/lang/Object { static void () - public void (java.util.List p0) + public void (java.util.List names) public int describeContents() public final java.util.List getNames() - public void writeToParcel(android.os.Parcel p0, int p1) { + public void writeToParcel(android.os.Parcel parcel, int flags) { LABEL (L0) ALOAD (1) LDC (parcel) diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/size.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/size.txt index c863d0e4a2e..72ecc70ddd8 100644 --- a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/size.txt +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/size.txt @@ -1,7 +1,7 @@ public final class Test$Creator : java/lang/Object, android/os/Parcelable$Creator { public void () - public final java.lang.Object createFromParcel(android.os.Parcel p0) { + public final java.lang.Object createFromParcel(android.os.Parcel in) { LABEL (L0) ALOAD (1) LDC (in) @@ -25,7 +25,7 @@ public final class Test$Creator : java/lang/Object, android/os/Parcelable$Creato LABEL (L4) } - public final java.lang.Object[] newArray(int p0) + public final java.lang.Object[] newArray(int size) } public final class Test : java/lang/Object, android/os/Parcelable { @@ -37,13 +37,13 @@ public final class Test : java/lang/Object, android/os/Parcelable { static void () - public void (android.util.Size p0, android.util.Size p1) + public void (android.util.Size size, android.util.Size nullable) public final android.util.Size component1() public final android.util.Size component2() - public final Test copy(android.util.Size p0, android.util.Size p1) + public final Test copy(android.util.Size size, android.util.Size nullable) public static Test copy$default(Test p0, android.util.Size p1, android.util.Size p2, int p3, java.lang.Object p4) @@ -59,7 +59,7 @@ public final class Test : java/lang/Object, android/os/Parcelable { public java.lang.String toString() - public void writeToParcel(android.os.Parcel p0, int p1) { + public void writeToParcel(android.os.Parcel parcel, int flags) { LABEL (L0) ALOAD (1) LDC (parcel) @@ -91,7 +91,7 @@ public final class Test : java/lang/Object, android/os/Parcelable { public final class TestF$Creator : java/lang/Object, android/os/Parcelable$Creator { public void () - public final java.lang.Object createFromParcel(android.os.Parcel p0) { + public final java.lang.Object createFromParcel(android.os.Parcel in) { LABEL (L0) ALOAD (1) LDC (in) @@ -115,7 +115,7 @@ public final class TestF$Creator : java/lang/Object, android/os/Parcelable$Creat LABEL (L4) } - public final java.lang.Object[] newArray(int p0) + public final java.lang.Object[] newArray(int size) } public final class TestF : java/lang/Object, android/os/Parcelable { @@ -127,13 +127,13 @@ public final class TestF : java/lang/Object, android/os/Parcelable { static void () - public void (android.util.SizeF p0, android.util.SizeF p1) + public void (android.util.SizeF size, android.util.SizeF nullable) public final android.util.SizeF component1() public final android.util.SizeF component2() - public final TestF copy(android.util.SizeF p0, android.util.SizeF p1) + public final TestF copy(android.util.SizeF size, android.util.SizeF nullable) public static TestF copy$default(TestF p0, android.util.SizeF p1, android.util.SizeF p2, int p3, java.lang.Object p4) @@ -149,7 +149,7 @@ public final class TestF : java/lang/Object, android/os/Parcelable { public java.lang.String toString() - public void writeToParcel(android.os.Parcel p0, int p1) { + public void writeToParcel(android.os.Parcel parcel, int flags) { LABEL (L0) ALOAD (1) LDC (parcel)