diff --git a/build.gradle.kts b/build.gradle.kts index 7544b23f471..ff807b6dd60 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -169,7 +169,7 @@ extra["versions.kotlinx-coroutines-jdk8"] = coroutinesVersion extra["versions.json"] = "20160807" extra["versions.native-platform"] = "0.14" extra["versions.ant-launcher"] = "1.8.0" -extra["versions.robolectric"] = "3.1" +extra["versions.robolectric"] = "4.0" extra["versions.org.springframework"] = "4.2.0.RELEASE" extra["versions.jflex"] = "1.7.0" extra["versions.markdown"] = "0.1.25" diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/CodegenTestCase.java b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/CodegenTestCase.java index d5ba883d77a..aaabb5303d6 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/CodegenTestCase.java +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/CodegenTestCase.java @@ -722,12 +722,15 @@ public abstract class CodegenTestCase extends KotlinBaseTest javaClasspath) {} + @NotNull protected static List extractJavacOptions(@NotNull List files) { List javacOptions = new ArrayList<>(0); diff --git a/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt b/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt index 9d725529e1e..8ff1a909bb6 100644 --- a/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt +++ b/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt @@ -9,7 +9,10 @@ import org.jetbrains.kotlin.AbstractDataFlowValueRenderingTest import org.jetbrains.kotlin.addImport.AbstractAddImportTest import org.jetbrains.kotlin.addImportAlias.AbstractAddImportAliasTest import org.jetbrains.kotlin.allopen.AbstractBytecodeListingTestForAllOpen +import org.jetbrains.kotlin.android.parcel.AbstractParcelBoxTest import org.jetbrains.kotlin.android.parcel.AbstractParcelBytecodeListingTest +import org.jetbrains.kotlin.android.parcel.AbstractParcelIrBoxTest +import org.jetbrains.kotlin.android.parcel.AbstractParcelIrBytecodeListingTest import org.jetbrains.kotlin.android.synthetic.test.AbstractAndroidBoxTest import org.jetbrains.kotlin.android.synthetic.test.AbstractAndroidBytecodeShapeTest import org.jetbrains.kotlin.android.synthetic.test.AbstractAndroidIrBoxTest @@ -57,14 +60,16 @@ import org.jetbrains.kotlin.idea.conversion.copy.AbstractLiteralKotlinToKotlinCo import org.jetbrains.kotlin.idea.conversion.copy.AbstractLiteralTextToKotlinCopyPasteTest import org.jetbrains.kotlin.idea.conversion.copy.AbstractTextJavaToKotlinCopyPasteConversionTest import org.jetbrains.kotlin.idea.coverage.AbstractKotlinCoverageOutputFilesTest -import org.jetbrains.kotlin.idea.debugger.evaluate.* -import org.jetbrains.kotlin.idea.debugger.test.sequence.exec.AbstractSequenceTraceTestCase +import org.jetbrains.kotlin.idea.debugger.evaluate.AbstractCodeFragmentAutoImportTest +import org.jetbrains.kotlin.idea.debugger.evaluate.AbstractCodeFragmentCompletionHandlerTest +import org.jetbrains.kotlin.idea.debugger.evaluate.AbstractCodeFragmentCompletionTest +import org.jetbrains.kotlin.idea.debugger.evaluate.AbstractCodeFragmentHighlightingTest import org.jetbrains.kotlin.idea.debugger.test.* -import org.jetbrains.kotlin.idea.debugger.test.AbstractFileRankingTest +import org.jetbrains.kotlin.idea.debugger.test.sequence.exec.AbstractSequenceTraceTestCase +import org.jetbrains.kotlin.idea.decompiler.navigation.AbstractNavigateJavaToLibrarySourceTest import org.jetbrains.kotlin.idea.decompiler.navigation.AbstractNavigateToDecompiledLibraryTest import org.jetbrains.kotlin.idea.decompiler.navigation.AbstractNavigateToLibrarySourceTest import org.jetbrains.kotlin.idea.decompiler.navigation.AbstractNavigateToLibrarySourceTestWithJS -import org.jetbrains.kotlin.idea.decompiler.navigation.AbstractNavigateJavaToLibrarySourceTest import org.jetbrains.kotlin.idea.decompiler.stubBuilder.AbstractClsStubBuilderTest import org.jetbrains.kotlin.idea.decompiler.stubBuilder.AbstractLoadJavaClsStubTest import org.jetbrains.kotlin.idea.decompiler.textBuilder.AbstractCommonDecompiledTextFromJsMetadataTest @@ -166,11 +171,11 @@ import org.jetbrains.kotlin.shortenRefs.AbstractShortenRefsTest import org.jetbrains.kotlin.test.TargetBackend import org.jetbrains.kotlin.tools.projectWizard.cli.AbstractProjectTemplateBuildFileGenerationTest import org.jetbrains.kotlin.tools.projectWizard.cli.AbstractYamlBuildFileGenerationTest +import org.jetbrains.kotlin.tools.projectWizard.wizard.AbstractProjectTemplateNewWizardProjectImportTest +import org.jetbrains.kotlin.tools.projectWizard.wizard.AbstractYamlNewWizardProjectImportTest import org.jetbrains.kotlinx.serialization.AbstractSerializationIrBytecodeListingTest import org.jetbrains.kotlinx.serialization.AbstractSerializationPluginBytecodeListingTest import org.jetbrains.kotlinx.serialization.AbstractSerializationPluginDiagnosticTest -import org.jetbrains.kotlin.tools.projectWizard.wizard.AbstractProjectTemplateNewWizardProjectImportTest -import org.jetbrains.kotlin.tools.projectWizard.wizard.AbstractYamlNewWizardProjectImportTest fun main(args: Array) { System.setProperty("java.awt.headless", "true") @@ -1340,8 +1345,20 @@ fun main(args: Array) { model("codegen/bytecodeShape", recursive = false, extension = null) } + testClass { + model("parcel/box", targetBackend = TargetBackend.JVM) + } + + testClass { + model("parcel/box", targetBackend = TargetBackend.JVM_IR) + } + testClass { - model("parcel/codegen") + model("parcel/codegen", targetBackend = TargetBackend.JVM) + } + + testClass { + model("parcel/codegen", targetBackend = TargetBackend.JVM_IR) } } diff --git a/plugins/android-extensions/android-extensions-compiler/build.gradle.kts b/plugins/android-extensions/android-extensions-compiler/build.gradle.kts index 74e9da7e26b..0c8ac46e02b 100644 --- a/plugins/android-extensions/android-extensions-compiler/build.gradle.kts +++ b/plugins/android-extensions/android-extensions-compiler/build.gradle.kts @@ -10,7 +10,7 @@ val robolectricClasspath by configurations.creating val androidExtensionsRuntimeForTests by configurations.creating dependencies { - testCompileOnly(intellijCoreDep()) { includeJars("intellij-core") } + testCompile(intellijCoreDep()) { includeJars("intellij-core") } compileOnly(project(":compiler:util")) compileOnly(project(":compiler:plugin-api")) @@ -64,7 +64,7 @@ projectTest { useAndroidJar() doFirst { systemProperty("androidExtensionsRuntime.classpath", androidExtensionsRuntimeForTests.asPath) - val androidPluginPath = File(intellijRootDir(), "plugins/android").canonicalPath + val androidPluginPath = File(intellijRootDir(), "plugins/android/lib").canonicalPath systemProperty("ideaSdk.androidPlugin.path", androidPluginPath) systemProperty("robolectric.classpath", robolectricClasspath.asPath) } diff --git a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/AbstractParcelBoxTest.kt b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/AbstractParcelBoxTest.kt index 0fd8bf4d17f..a6c81561072 100644 --- a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/AbstractParcelBoxTest.kt +++ b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/AbstractParcelBoxTest.kt @@ -25,9 +25,16 @@ import java.nio.file.Files import java.util.concurrent.TimeUnit abstract class AbstractParcelBoxTest : CodegenTestCase() { - protected companion object { - const val BASE_DIR = "plugins/android-extensions/android-extensions-compiler/testData/parcel/box" - val LIBRARY_KT = File(File(BASE_DIR).parentFile, "boxLib.kt") + companion object { + val LIBRARY_KT = File("plugins/android-extensions/android-extensions-compiler/testData/parcel/boxLib.kt") + + private val androidPluginPath: String by lazy { + System.getProperty("ideaSdk.androidPlugin.path")?.takeIf { File(it).isDirectory } + ?: throw RuntimeException("Unable to get a valid path from 'ideaSdk.androidPlugin.path' property, please point it to the Idea android plugin location") + } + + val layoutlibJar: File by lazy { File(androidPluginPath, "layoutlib-26.5.0.2.jar") } + val layoutlibApiJar: File by lazy { File(androidPluginPath, "layoutlib-api-26.5.0.jar") } private val JUNIT_GENERATED_TEST_CLASS_BYTES by lazy { constructSyntheticTestClass() } private const val JUNIT_GENERATED_TEST_CLASS_FQNAME = "test.JunitTest" @@ -43,7 +50,7 @@ abstract class AbstractParcelBoxTest : CodegenTestCase() { } with(visitAnnotation("Lorg/robolectric/annotation/Config;", true)) { - visit("sdk", intArrayOf(19)) + visit("sdk", intArrayOf(21)) visit("manifest", "--none") visitEnd() } @@ -92,10 +99,6 @@ abstract class AbstractParcelBoxTest : CodegenTestCase() { } } - override fun doTest(filePath: String) { - super.doTest(File(BASE_DIR, "$filePath.kt").absolutePath) - } - private val androidPluginPath: String by lazy { System.getProperty("ideaSdk.androidPlugin.path")?.takeIf { File(it).isDirectory } ?: throw RuntimeException("Unable to get a valid path from 'ideaSdk.androidPlugin.path' property, please point it to the Idea android plugin location") @@ -103,7 +106,6 @@ abstract class AbstractParcelBoxTest : CodegenTestCase() { private fun getClasspathForTest(): List { val kotlinRuntimeJar = PathUtil.kotlinPathsForIdeaPlugin.stdlibPath - val layoutLibJars = listOf(File(androidPluginPath, "layoutlib.jar"), File(androidPluginPath, "layoutlib-api.jar")) val robolectricClasspath = System.getProperty("robolectric.classpath") ?: throw RuntimeException("Unable to get a valid classpath from 'robolectric.classpath' property, please set it accordingly") @@ -112,12 +114,13 @@ abstract class AbstractParcelBoxTest : CodegenTestCase() { .sortedBy { it.nameWithoutExtension } val junitCoreResourceName = JUnitCore::class.java.name.replace('.', '/') + ".class" - val junitJar = File(JUnitCore::class.java.classLoader.getResource(junitCoreResourceName).file.substringBeforeLast('!')) + val junitJar = + File(JUnitCore::class.java.classLoader.getResource(junitCoreResourceName).file.substringAfter("file:").substringBeforeLast('!')) val androidExtensionsRuntimeJars = System.getProperty("androidExtensionsRuntime.classpath")?.split(File.pathSeparator)?.map(::File) ?: error("Unable to get a valid classpath from 'androidExtensionsRuntime.classpath' property") - return listOf(kotlinRuntimeJar) + layoutLibJars + robolectricJars + junitJar + androidExtensionsRuntimeJars + return listOf(kotlinRuntimeJar, layoutlibJar, layoutlibApiJar) + robolectricJars + junitJar + androidExtensionsRuntimeJars } override fun doMultiFileTest(wholeFile: File, files: List) { @@ -138,6 +141,7 @@ abstract class AbstractParcelBoxTest : CodegenTestCase() { try { writeClass(JUNIT_GENERATED_TEST_CLASS_FQNAME, JUNIT_GENERATED_TEST_CLASS_BYTES) classFileFactory.getClassFiles().forEach { writeClass(it.relativePath, it.asByteArray()) } + javaClassesOutputDirectory?.listFiles()?.forEach { writeClass(it.name, it.readBytes()) } val process = ProcessBuilder( javaExe.absolutePath, @@ -146,9 +150,10 @@ abstract class AbstractParcelBoxTest : CodegenTestCase() { (libraryClasspath + dirForTestClasses).joinToString(File.pathSeparator), JUnitCore::class.java.name, JUNIT_GENERATED_TEST_CLASS_FQNAME - ).inheritIO().start() + ).start() process.waitFor(3, TimeUnit.MINUTES) + println(process.inputStream.bufferedReader().lineSequence().joinToString("\n")) if (process.exitValue() != 0) { throw AssertionError("Process exited with exit code ${process.exitValue()} \n" + classFileFactory.createText()) } @@ -162,6 +167,10 @@ abstract class AbstractParcelBoxTest : CodegenTestCase() { override fun setupEnvironment(environment: KotlinCoreEnvironment) { AndroidComponentRegistrar.registerParcelExtensions(environment.project) addAndroidExtensionsRuntimeLibrary(environment) - environment.updateClasspath(listOf(JvmClasspathRoot(File(androidPluginPath, "layoutlib.jar")))) + environment.updateClasspath(listOf(JvmClasspathRoot(layoutlibJar))) + } + + override fun updateJavaClasspath(javaClasspath: MutableList) { + javaClasspath += layoutlibJar.path } } diff --git a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/AbstractParcelBytecodeListingTest.kt b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/AbstractParcelBytecodeListingTest.kt index 3e1ee27c8c2..0806d5df32b 100644 --- a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/AbstractParcelBytecodeListingTest.kt +++ b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/AbstractParcelBytecodeListingTest.kt @@ -16,10 +16,6 @@ abstract class AbstractParcelBytecodeListingTest : AbstractAsmLikeInstructionLis override fun setupEnvironment(environment: KotlinCoreEnvironment) { AndroidComponentRegistrar.registerParcelExtensions(environment.project) addAndroidExtensionsRuntimeLibrary(environment) - val androidPluginPath = System.getProperty("ideaSdk.androidPlugin.path")?.takeIf { File(it).isDirectory } - ?: throw RuntimeException( - "Unable to get a valid path from 'ideaSdk.androidPlugin.path' property, please point it to the Idea android plugin location" - ) - environment.updateClasspath(listOf(JvmClasspathRoot(File(androidPluginPath, "layoutlib.jar")))) + environment.updateClasspath(listOf(JvmClasspathRoot(AbstractParcelBoxTest.layoutlibJar))) } } diff --git a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/AbstractParcelIrBoxTest.kt b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/AbstractParcelIrBoxTest.kt new file mode 100644 index 00000000000..3e19858f4f1 --- /dev/null +++ b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/AbstractParcelIrBoxTest.kt @@ -0,0 +1,12 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * 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 + +import org.jetbrains.kotlin.test.TargetBackend + +abstract class AbstractParcelIrBoxTest : AbstractParcelBoxTest() { + override fun getBackend() = TargetBackend.JVM_IR +} diff --git a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/AbstractParcelIrBytecodeListingTest.kt b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/AbstractParcelIrBytecodeListingTest.kt new file mode 100644 index 00000000000..5c42e326da5 --- /dev/null +++ b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/AbstractParcelIrBytecodeListingTest.kt @@ -0,0 +1,17 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * 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 + +import org.jetbrains.kotlin.test.TargetBackend +import java.io.File + +abstract class AbstractParcelIrBytecodeListingTest : AbstractParcelBytecodeListingTest() { + override fun getBackend() = TargetBackend.JVM_IR + + override fun getExpectedTextFileName(wholeFile: File): String { + return wholeFile.nameWithoutExtension + ".ir.txt" + } +} diff --git a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelBoxTest.kt b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelBoxTest.kt deleted file mode 100644 index 1c4545ad89e..00000000000 --- a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelBoxTest.kt +++ /dev/null @@ -1,84 +0,0 @@ -/* - * 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. - */ - -package org.jetbrains.kotlin.android.parcel - -import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment -import org.jetbrains.kotlin.descriptors.ClassDescriptor -import org.jetbrains.kotlin.descriptors.ClassKind -import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.resolve.extensions.SyntheticResolveExtension -import org.jetbrains.kotlin.test.JUnit3RunnerWithInners -import org.junit.runner.RunWith - -@RunWith(JUnit3RunnerWithInners::class) -class ParcelBoxTest : AbstractParcelBoxTest() { - fun testSimple() = doTest("simple") - fun testPrimitiveTypes() = doTest("primitiveTypes") - fun testBoxedTypes() = doTest("boxedTypes") - fun testNullableTypesSimple() = doTest("nullableTypesSimple") - fun testNullableTypes() = doTest("nullableTypes") - fun testListSimple() = doTest("listSimple") - fun testLists() = doTest("lists") - fun testListKinds() = doTest("listKinds") - fun testArraySimple() = doTest("arraySimple") - fun testArrays() = doTest("arrays") - fun testMapSimple() = doTest("mapSimple") - fun testMaps() = doTest("maps") - fun testMapKinds() = doTest("mapKinds") - fun testSparseBooleanArray() = doTest("sparseBooleanArray") - fun testBundle() = doTest("bundle") - fun testSparseArrays() = doTest("sparseArrays") - fun testCustomSimple() = doTest("customSimple") - fun testCharSequence() = doTest("charSequence") - fun testEnums() = doTest("enums") - fun testObjects() = doTest("objects") - fun testNestedParcelable() = doTest("nestedParcelable") - fun testKt19749() = doTest("kt19749") - fun testKt19747() = doTest("kt19747") - fun testKt19747_2() = doTest("kt19747_2") - fun test20002() = doTest("kt20002") - fun test20021() = doTest("kt20021") - fun testCustomSerializerSimple() = doTest("customSerializerSimple") - fun testCustomSerializerWriteWith() = doTest("customSerializerWriteWith") - fun testCustomSerializerBoxing() = doTest("customSerializerBoxing") - fun testKt20717() = doTest("kt20717") - fun testEnumObject() = doTest("enumObject") - fun testIntArray() = doTest("intArray") - fun testOpenParcelize() = doTest("openParcelize") - fun testKt25839() = doTest("kt25839") -} - -class ParcelBoxTestWithSerializableLikeExtension : AbstractParcelBoxTest() { - fun testSimple() = doTest("simple") - - override fun setupEnvironment(environment: KotlinCoreEnvironment) { - super.setupEnvironment(environment) - SyntheticResolveExtension.registerExtension(environment.project, SerializableLike()) - } - - private class SerializableLike : SyntheticResolveExtension { - override fun getSyntheticCompanionObjectNameIfNeeded(thisDescriptor: ClassDescriptor): Name? { - fun ClassDescriptor.isSerializableLike() = annotations.hasAnnotation(FqName("test.SerializableLike")) - - return when { - thisDescriptor.kind == ClassKind.CLASS && thisDescriptor.isSerializableLike() -> Name.identifier("Companion") - else -> return null - } - } - } -} \ No newline at end of file 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 new file mode 100644 index 00000000000..497aed55a3b --- /dev/null +++ b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelBoxTestGenerated.java @@ -0,0 +1,201 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * 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; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.JUnit3RunnerWithInners; +import org.jetbrains.kotlin.test.KotlinTestUtils; +import org.jetbrains.kotlin.test.TargetBackend; +import org.jetbrains.kotlin.test.TestMetadata; +import org.junit.runner.RunWith; + +import java.io.File; +import java.util.regex.Pattern; + +/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("plugins/android-extensions/android-extensions-compiler/testData/parcel/box") +@TestDataPath("$PROJECT_ROOT") +@RunWith(JUnit3RunnerWithInners.class) +public class ParcelBoxTestGenerated extends AbstractParcelBoxTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM, testDataFilePath); + } + + public void testAllFilesPresentInBox() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/android-extensions/android-extensions-compiler/testData/parcel/box"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true); + } + + @TestMetadata("arraySimple.kt") + public void testArraySimple() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/arraySimple.kt"); + } + + @TestMetadata("arrays.kt") + public void testArrays() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/arrays.kt"); + } + + @TestMetadata("boxedTypes.kt") + public void testBoxedTypes() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/boxedTypes.kt"); + } + + @TestMetadata("bundle.kt") + public void testBundle() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/bundle.kt"); + } + + @TestMetadata("charSequence.kt") + public void testCharSequence() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/charSequence.kt"); + } + + @TestMetadata("customSerializerBoxing.kt") + public void testCustomSerializerBoxing() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/customSerializerBoxing.kt"); + } + + @TestMetadata("customSerializerSimple.kt") + public void testCustomSerializerSimple() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/customSerializerSimple.kt"); + } + + @TestMetadata("customSerializerWriteWith.kt") + public void testCustomSerializerWriteWith() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/customSerializerWriteWith.kt"); + } + + @TestMetadata("customSimple.kt") + public void testCustomSimple() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/customSimple.kt"); + } + + @TestMetadata("enumObject.kt") + public void testEnumObject() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/enumObject.kt"); + } + + @TestMetadata("enums.kt") + public void testEnums() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/enums.kt"); + } + + @TestMetadata("intArray.kt") + public void testIntArray() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/intArray.kt"); + } + + @TestMetadata("kt19747.kt") + public void testKt19747() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/kt19747.kt"); + } + + @TestMetadata("kt19747_2.kt") + public void testKt19747_2() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/kt19747_2.kt"); + } + + @TestMetadata("kt19749.kt") + public void testKt19749() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/kt19749.kt"); + } + + @TestMetadata("kt20002.kt") + public void testKt20002() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/kt20002.kt"); + } + + @TestMetadata("kt20021.kt") + public void testKt20021() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/kt20021.kt"); + } + + @TestMetadata("kt20717.kt") + public void testKt20717() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/kt20717.kt"); + } + + @TestMetadata("kt25839.kt") + public void testKt25839() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/kt25839.kt"); + } + + @TestMetadata("listKinds.kt") + public void testListKinds() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/listKinds.kt"); + } + + @TestMetadata("listSimple.kt") + public void testListSimple() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/listSimple.kt"); + } + + @TestMetadata("lists.kt") + public void testLists() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/lists.kt"); + } + + @TestMetadata("mapKinds.kt") + public void testMapKinds() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/mapKinds.kt"); + } + + @TestMetadata("mapSimple.kt") + public void testMapSimple() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/mapSimple.kt"); + } + + @TestMetadata("maps.kt") + public void testMaps() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/maps.kt"); + } + + @TestMetadata("nestedParcelable.kt") + public void testNestedParcelable() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/nestedParcelable.kt"); + } + + @TestMetadata("nullableTypes.kt") + public void testNullableTypes() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/nullableTypes.kt"); + } + + @TestMetadata("nullableTypesSimple.kt") + public void testNullableTypesSimple() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/nullableTypesSimple.kt"); + } + + @TestMetadata("objects.kt") + public void testObjects() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/objects.kt"); + } + + @TestMetadata("openParcelize.kt") + public void testOpenParcelize() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/openParcelize.kt"); + } + + @TestMetadata("primitiveTypes.kt") + public void testPrimitiveTypes() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/primitiveTypes.kt"); + } + + @TestMetadata("simple.kt") + public void testSimple() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/simple.kt"); + } + + @TestMetadata("sparseArrays.kt") + public void testSparseArrays() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/sparseArrays.kt"); + } + + @TestMetadata("sparseBooleanArray.kt") + public void testSparseBooleanArray() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/sparseBooleanArray.kt"); + } +} diff --git a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelBoxTestWithSerializableLikeExtension.kt b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelBoxTestWithSerializableLikeExtension.kt new file mode 100644 index 00000000000..c6f566ca973 --- /dev/null +++ b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelBoxTestWithSerializableLikeExtension.kt @@ -0,0 +1,44 @@ +/* + * 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. + */ + +package org.jetbrains.kotlin.android.parcel + +import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment +import org.jetbrains.kotlin.descriptors.ClassDescriptor +import org.jetbrains.kotlin.descriptors.ClassKind +import org.jetbrains.kotlin.name.FqName +import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlin.resolve.extensions.SyntheticResolveExtension + +class ParcelBoxTestWithSerializableLikeExtension : AbstractParcelBoxTest() { + fun testSimple() = doTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/simple.kt") + + override fun setupEnvironment(environment: KotlinCoreEnvironment) { + super.setupEnvironment(environment) + SyntheticResolveExtension.registerExtension(environment.project, SerializableLike()) + } + + private class SerializableLike : SyntheticResolveExtension { + override fun getSyntheticCompanionObjectNameIfNeeded(thisDescriptor: ClassDescriptor): Name? { + fun ClassDescriptor.isSerializableLike() = annotations.hasAnnotation(FqName("test.SerializableLike")) + + return when { + thisDescriptor.kind == ClassKind.CLASS && thisDescriptor.isSerializableLike() -> Name.identifier("Companion") + else -> return null + } + } + } +} diff --git a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelBytecodeListingTestGenerated.java b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelBytecodeListingTestGenerated.java index ac5e2cc6bf8..5fa345f31d2 100644 --- a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelBytecodeListingTestGenerated.java +++ b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelBytecodeListingTestGenerated.java @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.android.parcel; import com.intellij.testFramework.TestDataPath; import org.jetbrains.kotlin.test.JUnit3RunnerWithInners; import org.jetbrains.kotlin.test.KotlinTestUtils; +import org.jetbrains.kotlin.test.TargetBackend; import org.jetbrains.kotlin.test.TestMetadata; import org.junit.runner.RunWith; @@ -21,11 +22,11 @@ import java.util.regex.Pattern; @RunWith(JUnit3RunnerWithInners.class) public class ParcelBytecodeListingTestGenerated extends AbstractParcelBytecodeListingTest { private void runTest(String testDataFilePath) throws Exception { - KotlinTestUtils.runTest(this::doTest, this, testDataFilePath); + KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM, testDataFilePath); } public void testAllFilesPresentInCodegen() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen"), Pattern.compile("^(.+)\\.kt$"), null, true); + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true); } @TestMetadata("customDescribeContents.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 new file mode 100644 index 00000000000..0560dbab406 --- /dev/null +++ b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelIrBoxTestGenerated.java @@ -0,0 +1,201 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * 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; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.JUnit3RunnerWithInners; +import org.jetbrains.kotlin.test.KotlinTestUtils; +import org.jetbrains.kotlin.test.TargetBackend; +import org.jetbrains.kotlin.test.TestMetadata; +import org.junit.runner.RunWith; + +import java.io.File; +import java.util.regex.Pattern; + +/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("plugins/android-extensions/android-extensions-compiler/testData/parcel/box") +@TestDataPath("$PROJECT_ROOT") +@RunWith(JUnit3RunnerWithInners.class) +public class ParcelIrBoxTestGenerated extends AbstractParcelIrBoxTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM_IR, testDataFilePath); + } + + public void testAllFilesPresentInBox() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/android-extensions/android-extensions-compiler/testData/parcel/box"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); + } + + @TestMetadata("arraySimple.kt") + public void testArraySimple() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/arraySimple.kt"); + } + + @TestMetadata("arrays.kt") + public void testArrays() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/arrays.kt"); + } + + @TestMetadata("boxedTypes.kt") + public void testBoxedTypes() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/boxedTypes.kt"); + } + + @TestMetadata("bundle.kt") + public void testBundle() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/bundle.kt"); + } + + @TestMetadata("charSequence.kt") + public void testCharSequence() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/charSequence.kt"); + } + + @TestMetadata("customSerializerBoxing.kt") + public void testCustomSerializerBoxing() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/customSerializerBoxing.kt"); + } + + @TestMetadata("customSerializerSimple.kt") + public void testCustomSerializerSimple() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/customSerializerSimple.kt"); + } + + @TestMetadata("customSerializerWriteWith.kt") + public void testCustomSerializerWriteWith() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/customSerializerWriteWith.kt"); + } + + @TestMetadata("customSimple.kt") + public void testCustomSimple() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/customSimple.kt"); + } + + @TestMetadata("enumObject.kt") + public void testEnumObject() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/enumObject.kt"); + } + + @TestMetadata("enums.kt") + public void testEnums() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/enums.kt"); + } + + @TestMetadata("intArray.kt") + public void testIntArray() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/intArray.kt"); + } + + @TestMetadata("kt19747.kt") + public void testKt19747() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/kt19747.kt"); + } + + @TestMetadata("kt19747_2.kt") + public void testKt19747_2() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/kt19747_2.kt"); + } + + @TestMetadata("kt19749.kt") + public void testKt19749() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/kt19749.kt"); + } + + @TestMetadata("kt20002.kt") + public void testKt20002() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/kt20002.kt"); + } + + @TestMetadata("kt20021.kt") + public void testKt20021() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/kt20021.kt"); + } + + @TestMetadata("kt20717.kt") + public void testKt20717() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/kt20717.kt"); + } + + @TestMetadata("kt25839.kt") + public void testKt25839() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/kt25839.kt"); + } + + @TestMetadata("listKinds.kt") + public void testListKinds() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/listKinds.kt"); + } + + @TestMetadata("listSimple.kt") + public void testListSimple() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/listSimple.kt"); + } + + @TestMetadata("lists.kt") + public void testLists() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/lists.kt"); + } + + @TestMetadata("mapKinds.kt") + public void testMapKinds() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/mapKinds.kt"); + } + + @TestMetadata("mapSimple.kt") + public void testMapSimple() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/mapSimple.kt"); + } + + @TestMetadata("maps.kt") + public void testMaps() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/maps.kt"); + } + + @TestMetadata("nestedParcelable.kt") + public void testNestedParcelable() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/nestedParcelable.kt"); + } + + @TestMetadata("nullableTypes.kt") + public void testNullableTypes() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/nullableTypes.kt"); + } + + @TestMetadata("nullableTypesSimple.kt") + public void testNullableTypesSimple() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/nullableTypesSimple.kt"); + } + + @TestMetadata("objects.kt") + public void testObjects() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/objects.kt"); + } + + @TestMetadata("openParcelize.kt") + public void testOpenParcelize() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/openParcelize.kt"); + } + + @TestMetadata("primitiveTypes.kt") + public void testPrimitiveTypes() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/primitiveTypes.kt"); + } + + @TestMetadata("simple.kt") + public void testSimple() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/simple.kt"); + } + + @TestMetadata("sparseArrays.kt") + public void testSparseArrays() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/sparseArrays.kt"); + } + + @TestMetadata("sparseBooleanArray.kt") + public void testSparseBooleanArray() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/sparseBooleanArray.kt"); + } +} diff --git a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelIrBoxTestWithSerializableLikeExtension.kt b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelIrBoxTestWithSerializableLikeExtension.kt new file mode 100644 index 00000000000..f6d585e1afb --- /dev/null +++ b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelIrBoxTestWithSerializableLikeExtension.kt @@ -0,0 +1,36 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * 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 + +import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment +import org.jetbrains.kotlin.descriptors.ClassDescriptor +import org.jetbrains.kotlin.descriptors.ClassKind +import org.jetbrains.kotlin.name.FqName +import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlin.resolve.extensions.SyntheticResolveExtension +import org.jetbrains.kotlin.test.JUnit3RunnerWithInners +import org.jetbrains.kotlin.test.TargetBackend +import org.junit.runner.RunWith + +class ParcelIrBoxTestWithSerializableLikeExtension : AbstractParcelIrBoxTest() { + fun testSimple() = doTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/box/simple.kt") + + override fun setupEnvironment(environment: KotlinCoreEnvironment) { + super.setupEnvironment(environment) + SyntheticResolveExtension.registerExtension(environment.project, SerializableLike()) + } + + private class SerializableLike : SyntheticResolveExtension { + override fun getSyntheticCompanionObjectNameIfNeeded(thisDescriptor: ClassDescriptor): Name? { + fun ClassDescriptor.isSerializableLike() = annotations.hasAnnotation(FqName("test.SerializableLike")) + + return when { + thisDescriptor.kind == ClassKind.CLASS && thisDescriptor.isSerializableLike() -> Name.identifier("Companion") + else -> return null + } + } + } +} diff --git a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelIrBytecodeListingTestGenerated.java b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelIrBytecodeListingTestGenerated.java new file mode 100644 index 00000000000..b898a24db02 --- /dev/null +++ b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelIrBytecodeListingTestGenerated.java @@ -0,0 +1,111 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * 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; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.JUnit3RunnerWithInners; +import org.jetbrains.kotlin.test.KotlinTestUtils; +import org.jetbrains.kotlin.test.TargetBackend; +import org.jetbrains.kotlin.test.TestMetadata; +import org.junit.runner.RunWith; + +import java.io.File; +import java.util.regex.Pattern; + +/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen") +@TestDataPath("$PROJECT_ROOT") +@RunWith(JUnit3RunnerWithInners.class) +public class ParcelIrBytecodeListingTestGenerated extends AbstractParcelIrBytecodeListingTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM_IR, testDataFilePath); + } + + public void testAllFilesPresentInCodegen() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); + } + + @TestMetadata("customDescribeContents.kt") + public void testCustomDescribeContents() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customDescribeContents.kt"); + } + + @TestMetadata("customParcelablesDifferentModule.kt") + public void testCustomParcelablesDifferentModule() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customParcelablesDifferentModule.kt"); + } + + @TestMetadata("customParcelablesSameModule.kt") + public void testCustomParcelablesSameModule() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customParcelablesSameModule.kt"); + } + + @TestMetadata("customSimple.kt") + public void testCustomSimple() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customSimple.kt"); + } + + @TestMetadata("customSimpleWithNewArray.kt") + public void testCustomSimpleWithNewArray() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customSimpleWithNewArray.kt"); + } + + @TestMetadata("describeContentsFromSuperType.kt") + public void testDescribeContentsFromSuperType() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/describeContentsFromSuperType.kt"); + } + + @TestMetadata("duplicatingClinit.kt") + public void testDuplicatingClinit() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/duplicatingClinit.kt"); + } + + @TestMetadata("IBinderIInterface.kt") + public void testIBinderIInterface() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/IBinderIInterface.kt"); + } + + @TestMetadata("kt25839.kt") + public void testKt25839() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/kt25839.kt"); + } + + @TestMetadata("listInsideList.kt") + public void testListInsideList() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/listInsideList.kt"); + } + + @TestMetadata("nullableNotNullSize.kt") + public void testNullableNotNullSize() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/nullableNotNullSize.kt"); + } + + @TestMetadata("parcelable.kt") + public void testParcelable() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/parcelable.kt"); + } + + @TestMetadata("serializable.kt") + public void testSerializable() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/serializable.kt"); + } + + @TestMetadata("simple.kt") + public void testSimple() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/simple.kt"); + } + + @TestMetadata("simpleList.kt") + public void testSimpleList() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/simpleList.kt"); + } + + @TestMetadata("size.kt") + public void testSize() throws Exception { + runTest("plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/size.kt"); + } +} diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/box/customSerializerWriteWith.kt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/box/customSerializerWriteWith.kt index 5c3662079ac..8d079a14308 100644 --- a/plugins/android-extensions/android-extensions-compiler/testData/parcel/box/customSerializerWriteWith.kt +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/box/customSerializerWriteWith.kt @@ -1,3 +1,6 @@ +// IGNORE_BACKEND: JVM +// See KT-38107 +// The JVM backend is missing support for custom parcelers in List // WITH_RUNTIME @file:JvmName("TestKt") @@ -46,6 +49,6 @@ fun box() = parcelTest { parcel -> } with (test2) { - assert(a == "Abc" && b == "3" && c == listOf("A", "bc") && d == listOf("A,bc") && e == listOf("A,bc")) + assert(a == "Abc" && b == "3" && c == listOf("1", "2") && d == listOf("A,bc") && e == listOf("A,bc")) } -} \ No newline at end of file +} diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/box/customSimple.kt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/box/customSimple.kt index c5310546588..94ead6a637a 100644 --- a/plugins/android-extensions/android-extensions-compiler/testData/parcel/box/customSimple.kt +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/box/customSimple.kt @@ -1,3 +1,6 @@ +// IGNORE_BACKEND: JVM +// See KT-38105 +// Throws IllegalAccessError, since the code tries to access the private companion field directly from the generated User$Creator class. // WITH_RUNTIME @file:JvmName("TestKt") @@ -31,4 +34,4 @@ fun box() = parcelTest { parcel -> assert(user.firstName == user2.firstName) assert(user.secondName == user2.secondName) assert(user2.age == 0) -} \ No newline at end of file +} diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/box/kt20021.kt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/box/kt20021.kt index a4261cdf96f..aaadd4ec9f5 100644 --- a/plugins/android-extensions/android-extensions-compiler/testData/parcel/box/kt20021.kt +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/box/kt20021.kt @@ -1,3 +1,6 @@ +// IGNORE_BACKEND: JVM +// See KT-38106 +// This feature regressed with the fix for KT-22576 // WITH_RUNTIME @file:JvmName("TestKt") @@ -42,4 +45,4 @@ fun box() = parcelTest { parcel -> assert(first.parcelableEnum == ParcelableEnum.THREE) assert(first2.parcelableEnum == ParcelableEnum.ONE) assert(first != first2) -} \ No newline at end of file +} 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 119fdea6bc9..116c5c8d43d 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,3 +1,4 @@ +// IGNORE_BACKEND: JVM_IR // CURIOUS_ABOUT writeToParcel, createFromParcel // WITH_RUNTIME 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 838c9abc144..fcedae1ffc5 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 @@ -5,7 +5,7 @@ public final class User$Creator : java/lang/Object, android/os/Parcelable$Creato LABEL (L0) ALOAD (1) LDC (in) - INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) LABEL (L1) NEW DUP @@ -82,7 +82,7 @@ public final class User : java/lang/Object, android/os/Parcelable { LABEL (L0) ALOAD (1) LDC (parcel) - INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) ALOAD (1) ALOAD (0) GETFIELD (binder, Landroid/os/IBinder;) diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customDescribeContents.ir.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customDescribeContents.ir.txt new file mode 100644 index 00000000000..73d3d5804bc --- /dev/null +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customDescribeContents.ir.txt @@ -0,0 +1,45 @@ +public final class User$Creator : java/lang/Object, android/os/Parcelable$Creator { + public void () + + public final User createFromParcel(android.os.Parcel parcel) + + public java.lang.Object createFromParcel(android.os.Parcel source) + + 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 int age + + private final java.lang.String firstName + + private final boolean isProUser + + private final java.lang.String lastName + + static void () + + public void (java.lang.String firstName, java.lang.String lastName, int age, boolean isProUser) + + public int describeContents() { + LABEL (L0) + LINENUMBER (9) + BIPUSH (100) + IRETURN + LABEL (L1) + } + + public final int getAge() + + public final java.lang.String getFirstName() + + public final java.lang.String getLastName() + + public final boolean isProUser() + + public void writeToParcel(android.os.Parcel out, int flags) +} diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customParcelablesDifferentModule.ir.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customParcelablesDifferentModule.ir.txt new file mode 100644 index 00000000000..b3bb6281748 --- /dev/null +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customParcelablesDifferentModule.ir.txt @@ -0,0 +1,69 @@ +public final class test/Foo$Creator : java/lang/Object, android/os/Parcelable$Creator { + public void () + + public final test.Foo 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) + LDC (Ltest/Foo;) + INVOKEVIRTUAL (java/lang/Class, getClassLoader, ()Ljava/lang/ClassLoader;) + INVOKEVIRTUAL (android/os/Parcel, readParcelable, (Ljava/lang/ClassLoader;)Landroid/os/Parcelable;) + CHECKCAST + INVOKESPECIAL (test/Foo, , (Landroid/accounts/Account;)V) + ARETURN + LABEL (L1) + } + + public java.lang.Object createFromParcel(android.os.Parcel source) { + LABEL (L0) + ALOAD (0) + ALOAD (1) + INVOKEVIRTUAL (test/Foo$Creator, createFromParcel, (Landroid/os/Parcel;)Ltest/Foo;) + ARETURN + LABEL (L1) + } + + public final test.Foo[] newArray(int size) + + public java.lang.Object[] newArray(int size) +} + +public final class test/Foo : java/lang/Object, android/os/Parcelable { + public final static android.os.Parcelable$Creator CREATOR + + private final android.accounts.Account kp + + static void () { + NEW + DUP + INVOKESPECIAL (test/Foo$Creator, , ()V) + CHECKCAST + PUTSTATIC (CREATOR, Landroid/os/Parcelable$Creator;) + RETURN + } + + public void (android.accounts.Account kp) + + public int describeContents() + + public final android.accounts.Account getKp() + + 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 (kp, Landroid/accounts/Account;) + CHECKCAST + ILOAD (2) + INVOKEVIRTUAL (android/os/Parcel, writeParcelable, (Landroid/os/Parcelable;I)V) + RETURN + LABEL (L1) + } +} 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 359709ace77..7a11f891695 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 @@ -5,7 +5,7 @@ public final class test/Foo$Creator : java/lang/Object, android/os/Parcelable$Cr LABEL (L0) ALOAD (1) LDC (in) - INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) NEW DUP ALOAD (1) @@ -44,7 +44,7 @@ public final class test/Foo : java/lang/Object, android/os/Parcelable { LABEL (L0) ALOAD (1) LDC (parcel) - INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) ALOAD (1) ALOAD (0) GETFIELD (kp, Landroid/accounts/Account;) diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customParcelablesSameModule.ir.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customParcelablesSameModule.ir.txt new file mode 100644 index 00000000000..10d9662e5b7 --- /dev/null +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customParcelablesSameModule.ir.txt @@ -0,0 +1,172 @@ +public final class k/KotlinParcelable$Companion : java/lang/Object { + private void () + + 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 source) { + LABEL (L0) + ALOAD (1) + LDC (source) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) + LABEL (L1) + LINENUMBER (23) + ALOAD (1) + INVOKEVIRTUAL (android/os/Parcel, readInt, ()I) + ISTORE (2) + LABEL (L2) + NEW + DUP + LABEL (L3) + LINENUMBER (24) + ILOAD (2) + INVOKESPECIAL (k/KotlinParcelable, , (I)V) + ARETURN + LABEL (L4) + } + + public java.lang.Object createFromParcel(android.os.Parcel p0) { + LABEL (L0) + ALOAD (0) + ALOAD (1) + INVOKEVIRTUAL (k/KotlinParcelable$Creator, createFromParcel, (Landroid/os/Parcel;)Lk/KotlinParcelable;) + ARETURN + LABEL (L1) + } + + public k.KotlinParcelable[] newArray(int size) + + public java.lang.Object[] newArray(int p0) +} + +public final class k/KotlinParcelable : java/lang/Object, android/os/Parcelable { + public final static k.KotlinParcelable$Creator CREATOR + + public final static k.KotlinParcelable$Companion Companion + + private int data + + static void () { + NEW + DUP + ACONST_NULL + INVOKESPECIAL (k/KotlinParcelable$Companion, , (Lkotlin/jvm/internal/DefaultConstructorMarker;)V) + PUTSTATIC (Companion, Lk/KotlinParcelable$Companion;) + LABEL (L0) + LINENUMBER (18) + NEW + DUP + INVOKESPECIAL (k/KotlinParcelable$Creator, , ()V) + PUTSTATIC (CREATOR, Lk/KotlinParcelable$Creator;) + RETURN + } + + public void (int data) + + public final int component1() + + public final k.KotlinParcelable copy(int data) + + public static k.KotlinParcelable copy$default(k.KotlinParcelable p0, int p1, int p2, java.lang.Object p3) + + public int describeContents() + + public boolean equals(java.lang.Object other) + + public final int getData() + + public int hashCode() + + public final void setData(int ) + + public java.lang.String toString() + + public void writeToParcel(android.os.Parcel dest, int flags) { + LABEL (L0) + ALOAD (1) + LDC (dest) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) + LABEL (L1) + LINENUMBER (13) + ALOAD (1) + ALOAD (0) + GETFIELD (data, I) + INVOKEVIRTUAL (android/os/Parcel, writeInt, (I)V) + LABEL (L2) + LINENUMBER (14) + RETURN + LABEL (L3) + } +} + +public final class test/Foo$Creator : java/lang/Object, android/os/Parcelable$Creator { + public void () + + public final test.Foo 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 + GETSTATIC (Companion, Lk/KotlinParcelable$Companion;) + POP + GETSTATIC (CREATOR, Lk/KotlinParcelable$Creator;) + ALOAD (1) + INVOKEVIRTUAL (k/KotlinParcelable$Creator, createFromParcel, (Landroid/os/Parcel;)Lk/KotlinParcelable;) + INVOKESPECIAL (test/Foo, , (Lk/KotlinParcelable;)V) + ARETURN + LABEL (L1) + } + + public java.lang.Object createFromParcel(android.os.Parcel source) { + LABEL (L0) + ALOAD (0) + ALOAD (1) + INVOKEVIRTUAL (test/Foo$Creator, createFromParcel, (Landroid/os/Parcel;)Ltest/Foo;) + ARETURN + LABEL (L1) + } + + public final test.Foo[] newArray(int size) + + public java.lang.Object[] newArray(int size) +} + +public final class test/Foo : java/lang/Object, android/os/Parcelable { + public final static android.os.Parcelable$Creator CREATOR + + private final k.KotlinParcelable kp + + static void () { + NEW + DUP + INVOKESPECIAL (test/Foo$Creator, , ()V) + CHECKCAST + PUTSTATIC (CREATOR, Landroid/os/Parcelable$Creator;) + RETURN + } + + public void (k.KotlinParcelable kp) + + public int describeContents() + + public final k.KotlinParcelable getKp() + + 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 (0) + GETFIELD (kp, Lk/KotlinParcelable;) + ALOAD (1) + ILOAD (2) + INVOKEVIRTUAL (k/KotlinParcelable, writeToParcel, (Landroid/os/Parcel;I)V) + RETURN + LABEL (L1) + } +} 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 2544d8f1b59..128b16c653e 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 @@ -7,11 +7,11 @@ public final class k/KotlinParcelable$Companion : java/lang/Object { public final class k/KotlinParcelable$Creator : java/lang/Object, android/os/Parcelable$Creator { public void () - public k.KotlinParcelable createFromParcel(android.os.Parcel this) { + public k.KotlinParcelable createFromParcel(android.os.Parcel source) { LABEL (L0) ALOAD (1) LDC (source) - INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) LABEL (L1) LINENUMBER (23) ALOAD (1) @@ -87,7 +87,7 @@ public final class k/KotlinParcelable : java/lang/Object, android/os/Parcelable LABEL (L0) ALOAD (1) LDC (dest) - INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) LABEL (L1) LINENUMBER (13) ALOAD (1) @@ -108,13 +108,13 @@ public final class test/Foo$Creator : java/lang/Object, android/os/Parcelable$Cr LABEL (L0) ALOAD (1) LDC (in) - INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) NEW DUP ALOAD (1) - GETSTATIC (CREATOR, Landroid/os/Parcelable$Creator;) - SWAP - INVOKEINTERFACE (android/os/Parcelable$Creator, createFromParcel, (Landroid/os/Parcel;)Ljava/lang/Object;) + LDC (Ltest/Foo;) + INVOKEVIRTUAL (java/lang/Class, getClassLoader, ()Ljava/lang/ClassLoader;) + INVOKEVIRTUAL (android/os/Parcel, readParcelable, (Ljava/lang/ClassLoader;)Landroid/os/Parcelable;) CHECKCAST INVOKESPECIAL (test/Foo, , (Lk/KotlinParcelable;)V) ARETURN @@ -147,13 +147,12 @@ public final class test/Foo : java/lang/Object, android/os/Parcelable { LABEL (L0) ALOAD (1) LDC (parcel) - INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) ALOAD (1) ALOAD (0) GETFIELD (kp, Lk/KotlinParcelable;) - SWAP - LDC (0) - INVOKEINTERFACE (android/os/Parcelable, writeToParcel, (Landroid/os/Parcel;I)V) + ILOAD (2) + INVOKEVIRTUAL (android/os/Parcel, writeParcelable, (Landroid/os/Parcelable;I)V) RETURN LABEL (L1) } diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customSimple.ir.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customSimple.ir.txt new file mode 100644 index 00000000000..5e71c2bc918 --- /dev/null +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customSimple.ir.txt @@ -0,0 +1,114 @@ +final class User$Companion : java/lang/Object, kotlinx/android/parcel/Parceler { + private void () + + public void (kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker) + + public User create(android.os.Parcel parcel) + + public java.lang.Object create(android.os.Parcel parcel) + + public User[] newArray(int size) { + LABEL (L0) + ALOAD (0) + ILOAD (1) + INVOKESTATIC (kotlinx/android/parcel/Parceler$DefaultImpls, newArray, (Lkotlinx/android/parcel/Parceler;I)[Ljava/lang/Object;) + CHECKCAST + ARETURN + LABEL (L1) + } + + public java.lang.Object[] newArray(int size) { + LABEL (L0) + ALOAD (0) + ILOAD (1) + INVOKEVIRTUAL (User$Companion, newArray, (I)[LUser;) + ARETURN + LABEL (L1) + } + + public void write(User $this$write, android.os.Parcel parcel, int flags) + + public void write(java.lang.Object $this$write, android.os.Parcel parcel, int flags) +} + +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) + INVOKESTATIC (User, access$getCompanion$p$s2645995, ()LUser$Companion;) + ALOAD (1) + INVOKEVIRTUAL (User$Companion, create, (Landroid/os/Parcel;)LUser;) + 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) { + LABEL (L0) + ILOAD (1) + ANEWARRAY + ARETURN + LABEL (L1) + } + + public java.lang.Object[] newArray(int size) { + LABEL (L0) + ALOAD (0) + ILOAD (1) + INVOKEVIRTUAL (User$Creator, newArray, (I)[LUser;) + ARETURN + LABEL (L1) + } +} + +public final class User : java/lang/Object, android/os/Parcelable { + public final static android.os.Parcelable$Creator CREATOR + + private final static User$Companion Companion + + private final int age + + private final java.lang.String firstName + + private final java.lang.String lastName + + static void () + + public void (java.lang.String firstName, java.lang.String lastName, int age) + + public final static User$Companion access$getCompanion$p$s2645995() + + public int describeContents() + + public final int getAge() + + public final java.lang.String getFirstName() + + public final java.lang.String getLastName() + + 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) + GETSTATIC (Companion, LUser$Companion;) + ALOAD (0) + ALOAD (1) + ILOAD (2) + INVOKEVIRTUAL (User$Companion, write, (LUser;Landroid/os/Parcel;I)V) + RETURN + LABEL (L1) + } +} 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 d8ee53ca81e..782611c82ec 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 @@ -27,7 +27,7 @@ final class User$Companion : java/lang/Object, kotlinx/android/parcel/Parceler { ARETURN } - public void write(User this@write, android.os.Parcel parcel, int flags) + 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) } @@ -39,7 +39,7 @@ public final class User$Creator : java/lang/Object, android/os/Parcelable$Creato LABEL (L0) ALOAD (1) LDC (in) - INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) GETSTATIC (Companion, LUser$Companion;) ALOAD (1) INVOKEVIRTUAL (User$Companion, create, (Landroid/os/Parcel;)Ljava/lang/Object;) @@ -59,7 +59,7 @@ public final class User$Creator : java/lang/Object, android/os/Parcelable$Creato public final class User : java/lang/Object, android/os/Parcelable { public final static android.os.Parcelable$Creator CREATOR - public final static User$Companion Companion + private final static User$Companion Companion private final int age @@ -83,7 +83,7 @@ public final class User : java/lang/Object, android/os/Parcelable { LABEL (L0) ALOAD (1) LDC (parcel) - INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) GETSTATIC (Companion, LUser$Companion;) ALOAD (0) ALOAD (1) diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customSimpleWithNewArray.ir.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customSimpleWithNewArray.ir.txt new file mode 100644 index 00000000000..47a8672806f --- /dev/null +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/customSimpleWithNewArray.ir.txt @@ -0,0 +1,85 @@ +final class User$Companion : java/lang/Object, kotlinx/android/parcel/Parceler { + private void () + + public void (kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker) + + public User create(android.os.Parcel parcel) + + public java.lang.Object create(android.os.Parcel parcel) + + public User[] newArray(int size) { + LABEL (L0) + LINENUMBER (19) + ILOAD (1) + ANEWARRAY + ARETURN + LABEL (L1) + } + + public java.lang.Object[] newArray(int size) { + LABEL (L0) + ALOAD (0) + ILOAD (1) + INVOKEVIRTUAL (User$Companion, newArray, (I)[LUser;) + ARETURN + LABEL (L1) + } + + public void write(User $this$write, android.os.Parcel parcel, int flags) + + public void write(java.lang.Object $this$write, android.os.Parcel parcel, int flags) +} + +public final class User$Creator : java/lang/Object, android/os/Parcelable$Creator { + public void () + + public final User createFromParcel(android.os.Parcel parcel) + + public java.lang.Object createFromParcel(android.os.Parcel source) + + public final User[] newArray(int size) { + LABEL (L0) + INVOKESTATIC (User, access$getCompanion$p$s2645995, ()LUser$Companion;) + ILOAD (1) + INVOKEVIRTUAL (User$Companion, newArray, (I)[LUser;) + ARETURN + LABEL (L1) + } + + public java.lang.Object[] newArray(int size) { + LABEL (L0) + ALOAD (0) + ILOAD (1) + INVOKEVIRTUAL (User$Creator, newArray, (I)[LUser;) + ARETURN + LABEL (L1) + } +} + +public final class User : java/lang/Object, android/os/Parcelable { + public final static android.os.Parcelable$Creator CREATOR + + private final static User$Companion Companion + + private final int age + + private final java.lang.String firstName + + private final java.lang.String lastName + + static void () + + public void (java.lang.String firstName, java.lang.String lastName, int age) + + public final static User$Companion access$getCompanion$p$s2645995() + + public int describeContents() + + public final int getAge() + + public final java.lang.String getFirstName() + + public final java.lang.String getLastName() + + public void writeToParcel(android.os.Parcel out, int flags) +} 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 d3c2daf9f36..9acf544cc53 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 @@ -25,7 +25,7 @@ final class User$Companion : java/lang/Object, kotlinx/android/parcel/Parceler { ARETURN } - public void write(User this@write, android.os.Parcel parcel, int flags) + 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) } @@ -48,7 +48,7 @@ public final class User$Creator : java/lang/Object, android/os/Parcelable$Creato public final class User : java/lang/Object, android/os/Parcelable { public final static android.os.Parcelable$Creator CREATOR - public final static User$Companion Companion + private final static User$Companion Companion private final int age diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/describeContentsFromSuperType.ir.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/describeContentsFromSuperType.ir.txt new file mode 100644 index 00000000000..ec98d0d7a0a --- /dev/null +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/describeContentsFromSuperType.ir.txt @@ -0,0 +1,49 @@ +public abstract class AbstractUser : java/lang/Object, android/os/Parcelable { + public void () + + public int describeContents() { + LABEL (L0) + LINENUMBER (8) + BIPUSH (100) + IRETURN + LABEL (L1) + } +} + +public final class User$Creator : java/lang/Object, android/os/Parcelable$Creator { + public void () + + public final User createFromParcel(android.os.Parcel parcel) + + public java.lang.Object createFromParcel(android.os.Parcel source) + + public final User[] newArray(int size) + + public java.lang.Object[] newArray(int size) +} + +public final class User : AbstractUser { + public final static android.os.Parcelable$Creator CREATOR + + private final int age + + private final java.lang.String firstName + + private final boolean isProUser + + private final java.lang.String lastName + + static void () + + public void (java.lang.String firstName, java.lang.String lastName, int age, boolean isProUser) + + public final int getAge() + + public final java.lang.String getFirstName() + + public final java.lang.String getLastName() + + public final boolean isProUser() + + public void writeToParcel(android.os.Parcel out, int flags) +} diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/duplicatingClinit.ir.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/duplicatingClinit.ir.txt new file mode 100644 index 00000000000..bf76f8386b0 --- /dev/null +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/duplicatingClinit.ir.txt @@ -0,0 +1,57 @@ +public final class User$Companion : java/lang/Object { + private void () + + public void (kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker) + + private static void getTest$annotations() +} + +public final class User$Creator : java/lang/Object, android/os/Parcelable$Creator { + public void () + + public final User createFromParcel(android.os.Parcel parcel) + + public java.lang.Object createFromParcel(android.os.Parcel source) + + 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 + + public final static User$Companion Companion + + private final java.lang.String firstName + + private final static java.lang.StringBuilder test + + static void () { + NEW + DUP + ACONST_NULL + INVOKESPECIAL (User$Companion, , (Lkotlin/jvm/internal/DefaultConstructorMarker;)V) + PUTSTATIC (Companion, LUser$Companion;) + NEW + DUP + INVOKESPECIAL (User$Creator, , ()V) + CHECKCAST + PUTSTATIC (CREATOR, Landroid/os/Parcelable$Creator;) + LABEL (L0) + LINENUMBER (12) + NEW + DUP + INVOKESPECIAL (java/lang/StringBuilder, , ()V) + PUTSTATIC (test, Ljava/lang/StringBuilder;) + RETURN + } + + public void (java.lang.String firstName) + + public int describeContents() + + public final java.lang.String getFirstName() + + public void writeToParcel(android.os.Parcel out, 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 81ed76b336e..da23b47c022 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 @@ -3,7 +3,7 @@ public final class User$Companion : java/lang/Object { public void (kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker) - private static void test$annotations() + private static void getTest$annotations() } public final class User$Creator : java/lang/Object, android/os/Parcelable$Creator { diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/kt25839.ir.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/kt25839.ir.txt new file mode 100644 index 00000000000..5daa1c2f1e7 --- /dev/null +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/kt25839.ir.txt @@ -0,0 +1,53 @@ +public final class test/SomeClass$Creator : java/lang/Object, android/os/Parcelable$Creator { + public void () + + public final test.SomeClass createFromParcel(android.os.Parcel parcel) { + LABEL (L0) + ALOAD (1) + LDC (parcel) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) + ALOAD (1) + INVOKEVIRTUAL (android/os/Parcel, readInt, ()I) + POP + NEW + DUP + INVOKESPECIAL (test/SomeClass, , ()V) + ARETURN + LABEL (L1) + } + + public java.lang.Object createFromParcel(android.os.Parcel source) { + LABEL (L0) + ALOAD (0) + ALOAD (1) + INVOKEVIRTUAL (test/SomeClass$Creator, createFromParcel, (Landroid/os/Parcel;)Ltest/SomeClass;) + ARETURN + LABEL (L1) + } + + public final test.SomeClass[] newArray(int size) + + public java.lang.Object[] newArray(int size) +} + +public final class test/SomeClass : java/lang/Object, android/os/Parcelable { + public final static android.os.Parcelable$Creator CREATOR + + static void () + + public void () + + public int describeContents() + + 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) + ICONST_1 + INVOKEVIRTUAL (android/os/Parcel, writeInt, (I)V) + RETURN + LABEL (L1) + } +} 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 79ce6e5a04d..1ed171e1d14 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 @@ -5,7 +5,7 @@ public final class test/SomeClass$Creator : java/lang/Object, android/os/Parcela LABEL (L0) ALOAD (1) LDC (in) - INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) LABEL (L1) NEW DUP @@ -39,7 +39,7 @@ public final class test/SomeClass : java/lang/Object, android/os/Parcelable { LABEL (L0) ALOAD (1) LDC (parcel) - INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) ALOAD (1) ALOAD (0) DUP diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/listInsideList.ir.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/listInsideList.ir.txt new file mode 100644 index 00000000000..91bd24c2a11 --- /dev/null +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/listInsideList.ir.txt @@ -0,0 +1,71 @@ +public final class Test$Creator : java/lang/Object, android/os/Parcelable$Creator { + public void () + + public final Test createFromParcel(android.os.Parcel parcel) + + public java.lang.Object createFromParcel(android.os.Parcel source) + + public final Test[] newArray(int size) + + public java.lang.Object[] newArray(int size) +} + +public final class Test : java/lang/Object { + public final static android.os.Parcelable$Creator CREATOR + + private final java.util.List names + + static void () + + public void (java.util.List names) + + public int describeContents() + + public final java.util.List getNames() + + 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 (0) + GETFIELD (names, Ljava/util/List;) + ASTORE (3) + ALOAD (1) + ALOAD (3) + INVOKEINTERFACE (java/util/List, size, ()I) + INVOKEVIRTUAL (android/os/Parcel, writeInt, (I)V) + ALOAD (3) + INVOKEINTERFACE (java/util/List, iterator, ()Ljava/util/Iterator;) + ASTORE (4) + LABEL (L1) + ALOAD (4) + INVOKEINTERFACE (java/util/Iterator, hasNext, ()Z) + IFEQ (L2) + ALOAD (4) + INVOKEINTERFACE (java/util/Iterator, next, ()Ljava/lang/Object;) + ASTORE (5) + ALOAD (1) + ALOAD (5) + CHECKCAST + INVOKEINTERFACE (java/util/List, size, ()I) + INVOKEVIRTUAL (android/os/Parcel, writeInt, (I)V) + ALOAD (5) + CHECKCAST + INVOKEINTERFACE (java/util/List, iterator, ()Ljava/util/Iterator;) + ASTORE (6) + LABEL (L3) + ALOAD (6) + INVOKEINTERFACE (java/util/Iterator, hasNext, ()Z) + IFEQ (L1) + ALOAD (1) + ALOAD (6) + INVOKEINTERFACE (java/util/Iterator, next, ()Ljava/lang/Object;) + CHECKCAST + INVOKEVIRTUAL (android/os/Parcel, writeStringList, (Ljava/util/List;)V) + GOTO (L3) + LABEL (L2) + RETURN + LABEL (L4) + } +} 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 2b627bdce2a..2034b4a8b57 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 @@ -23,7 +23,7 @@ public final class Test : java/lang/Object { LABEL (L0) ALOAD (1) LDC (parcel) - INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) ALOAD (1) ALOAD (0) GETFIELD (names, Ljava/util/List;) diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/nullableNotNullSize.ir.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/nullableNotNullSize.ir.txt new file mode 100644 index 00000000000..3ec1af12ad1 --- /dev/null +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/nullableNotNullSize.ir.txt @@ -0,0 +1,90 @@ +public final class TestNotNull$Creator : java/lang/Object, android/os/Parcelable$Creator { + public void () + + public final TestNotNull createFromParcel(android.os.Parcel parcel) + + public java.lang.Object createFromParcel(android.os.Parcel source) + + public final TestNotNull[] newArray(int size) + + public java.lang.Object[] newArray(int size) +} + +public final class TestNotNull : java/lang/Object { + public final static android.os.Parcelable$Creator CREATOR + + private final android.util.Size a + + static void () + + public void (android.util.Size a) + + public int describeContents() + + public final android.util.Size getA() + + 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 (a, Landroid/util/Size;) + INVOKEVIRTUAL (android/os/Parcel, writeSize, (Landroid/util/Size;)V) + RETURN + LABEL (L1) + } +} + +public final class TestNullable$Creator : java/lang/Object, android/os/Parcelable$Creator { + public void () + + public final TestNullable createFromParcel(android.os.Parcel parcel) + + public java.lang.Object createFromParcel(android.os.Parcel source) + + public final TestNullable[] newArray(int size) + + public java.lang.Object[] newArray(int size) +} + +public final class TestNullable : java/lang/Object { + public final static android.os.Parcelable$Creator CREATOR + + private final android.util.Size a + + static void () + + public void (android.util.Size a) + + public int describeContents() + + public final android.util.Size getA() + + 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 (0) + GETFIELD (a, Landroid/util/Size;) + ASTORE (3) + ALOAD (3) + IFNONNULL (L1) + ALOAD (1) + ICONST_0 + INVOKEVIRTUAL (android/os/Parcel, writeInt, (I)V) + GOTO (L2) + LABEL (L1) + ALOAD (1) + ICONST_1 + INVOKEVIRTUAL (android/os/Parcel, writeInt, (I)V) + ALOAD (1) + ALOAD (3) + INVOKEVIRTUAL (android/os/Parcel, writeSize, (Landroid/util/Size;)V) + LABEL (L2) + RETURN + LABEL (L3) + } +} 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 8093ff99650..a39cab99be0 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 @@ -23,7 +23,7 @@ public final class TestNotNull : java/lang/Object { LABEL (L0) ALOAD (1) LDC (parcel) - INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) ALOAD (1) ALOAD (0) GETFIELD (a, Landroid/util/Size;) @@ -58,7 +58,7 @@ public final class TestNullable : java/lang/Object { LABEL (L0) ALOAD (1) LDC (parcel) - INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) ALOAD (1) ALOAD (0) GETFIELD (a, Landroid/util/Size;) diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/parcelable.ir.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/parcelable.ir.txt new file mode 100644 index 00000000000..ce68ef87551 --- /dev/null +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/parcelable.ir.txt @@ -0,0 +1,67 @@ +public final class test/Foo$Creator : java/lang/Object, android/os/Parcelable$Creator { + public void () + + public final test.Foo 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) + LDC (Ltest/Foo;) + INVOKEVIRTUAL (java/lang/Class, getClassLoader, ()Ljava/lang/ClassLoader;) + INVOKEVIRTUAL (android/os/Parcel, readParcelable, (Ljava/lang/ClassLoader;)Landroid/os/Parcelable;) + INVOKESPECIAL (test/Foo, , (Landroid/os/Parcelable;)V) + ARETURN + LABEL (L1) + } + + public java.lang.Object createFromParcel(android.os.Parcel source) { + LABEL (L0) + ALOAD (0) + ALOAD (1) + INVOKEVIRTUAL (test/Foo$Creator, createFromParcel, (Landroid/os/Parcel;)Ltest/Foo;) + ARETURN + LABEL (L1) + } + + public final test.Foo[] newArray(int size) + + public java.lang.Object[] newArray(int size) +} + +public final class test/Foo : java/lang/Object, android/os/Parcelable { + public final static android.os.Parcelable$Creator CREATOR + + private final android.os.Parcelable parcelable + + static void () { + NEW + DUP + INVOKESPECIAL (test/Foo$Creator, , ()V) + CHECKCAST + PUTSTATIC (CREATOR, Landroid/os/Parcelable$Creator;) + RETURN + } + + public void (android.os.Parcelable parcelable) + + public int describeContents() + + public final android.os.Parcelable getParcelable() + + 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 (parcelable, Landroid/os/Parcelable;) + ILOAD (2) + INVOKEVIRTUAL (android/os/Parcel, writeParcelable, (Landroid/os/Parcelable;I)V) + RETURN + LABEL (L1) + } +} 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 92acd26572b..2430f24c8cc 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 @@ -5,7 +5,7 @@ public final class test/Foo$Creator : java/lang/Object, android/os/Parcelable$Cr LABEL (L0) ALOAD (1) LDC (in) - INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) NEW DUP ALOAD (1) @@ -43,7 +43,7 @@ public final class test/Foo : java/lang/Object, android/os/Parcelable { LABEL (L0) ALOAD (1) LDC (parcel) - INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) ALOAD (1) ALOAD (0) GETFIELD (parcelable, Landroid/os/Parcelable;) diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/serializable.ir.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/serializable.ir.txt new file mode 100644 index 00000000000..8377570df67 --- /dev/null +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/serializable.ir.txt @@ -0,0 +1,90 @@ +public final class SerializableSimple : java/lang/Object, java/io/Serializable { + private final java.lang.String a + + private final java.lang.String b + + public void (java.lang.String a, java.lang.String b) + + public final java.lang.String getA() + + public final java.lang.String getB() +} + +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, readSerializable, ()Ljava/io/Serializable;) + CHECKCAST + ALOAD (1) + INVOKEVIRTUAL (android/os/Parcel, readSerializable, ()Ljava/io/Serializable;) + CHECKCAST + INVOKESPECIAL (User, , (LSerializableSimple;LSerializableSimple;)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 SerializableSimple notNull + + private final SerializableSimple nullable + + static void () { + NEW + DUP + INVOKESPECIAL (User$Creator, , ()V) + CHECKCAST + PUTSTATIC (CREATOR, Landroid/os/Parcelable$Creator;) + RETURN + } + + public void (SerializableSimple notNull, SerializableSimple nullable) + + public int describeContents() + + public final SerializableSimple getNotNull() + + public final SerializableSimple getNullable() + + 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 (notNull, LSerializableSimple;) + CHECKCAST + INVOKEVIRTUAL (android/os/Parcel, writeSerializable, (Ljava/io/Serializable;)V) + ALOAD (1) + ALOAD (0) + GETFIELD (nullable, LSerializableSimple;) + CHECKCAST + INVOKEVIRTUAL (android/os/Parcel, writeSerializable, (Ljava/io/Serializable;)V) + RETURN + LABEL (L1) + } +} 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 83b4692814a..49dc1c3a27b 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 @@ -17,7 +17,7 @@ public final class User$Creator : java/lang/Object, android/os/Parcelable$Creato LABEL (L0) ALOAD (1) LDC (in) - INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) NEW DUP ALOAD (1) @@ -61,7 +61,7 @@ public final class User : java/lang/Object, android/os/Parcelable { LABEL (L0) ALOAD (1) LDC (parcel) - INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) ALOAD (1) ALOAD (0) GETFIELD (notNull, LSerializableSimple;) diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/simple.ir.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/simple.ir.txt new file mode 100644 index 00000000000..55fbbfbcbfb --- /dev/null +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/simple.ir.txt @@ -0,0 +1,152 @@ +public final class User$Creator : java/lang/Object, android/os/Parcelable$Creator { + public void () { + Local variables: + 0 this: LUser$Creator; + } + + public final User createFromParcel(android.os.Parcel parcel) { + Local variables: + 0 this: LUser$Creator; + 1 parcel: Landroid/os/Parcel; + + LABEL (L0) + ALOAD (1) + LDC (parcel) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) + LABEL (L1) + NEW + DUP + ALOAD (1) + INVOKEVIRTUAL (android/os/Parcel, readString, ()Ljava/lang/String;) + ALOAD (1) + INVOKEVIRTUAL (android/os/Parcel, readString, ()Ljava/lang/String;) + ALOAD (1) + INVOKEVIRTUAL (android/os/Parcel, readInt, ()I) + ALOAD (1) + INVOKEVIRTUAL (android/os/Parcel, readInt, ()I) + IFEQ (L2) + ICONST_1 + GOTO (L3) + LABEL (L2) + ICONST_0 + LABEL (L3) + INVOKESPECIAL (User, , (Ljava/lang/String;Ljava/lang/String;IZ)V) + ARETURN + LABEL (L4) + } + + public java.lang.Object createFromParcel(android.os.Parcel source) { + Local variables: + 0 this: LUser$Creator; + 1 source: Landroid/os/Parcel; + + LABEL (L0) + ALOAD (0) + ALOAD (1) + INVOKEVIRTUAL (User$Creator, createFromParcel, (Landroid/os/Parcel;)LUser;) + ARETURN + LABEL (L1) + } + + public final User[] newArray(int size) { + Local variables: + 0 this: LUser$Creator; + 1 size: I + } + + public 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 { + public final static android.os.Parcelable$Creator CREATOR + + private final int age + + private final java.lang.String firstName + + private final boolean isProUser + + private final java.lang.String lastName + + static void () { + NEW + DUP + INVOKESPECIAL (User$Creator, , ()V) + CHECKCAST + PUTSTATIC (CREATOR, Landroid/os/Parcelable$Creator;) + RETURN + } + + 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) + ICONST_0 + IRETURN + LABEL (L1) + } + + public final int getAge() { + Local variables: + 0 this: LUser; + } + + public final java.lang.String getFirstName() { + Local variables: + 0 this: LUser; + } + + public final java.lang.String getLastName() { + Local variables: + 0 this: LUser; + } + + public final boolean isProUser() { + Local variables: + 0 this: LUser; + } + + public void writeToParcel(android.os.Parcel out, int flags) { + Local variables: + 0 this: LUser; + 1 out: Landroid/os/Parcel; + 2 flags: I + + LABEL (L0) + ALOAD (1) + LDC (out) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) + ALOAD (1) + ALOAD (0) + GETFIELD (firstName, Ljava/lang/String;) + INVOKEVIRTUAL (android/os/Parcel, writeString, (Ljava/lang/String;)V) + ALOAD (1) + ALOAD (0) + GETFIELD (lastName, Ljava/lang/String;) + INVOKEVIRTUAL (android/os/Parcel, writeString, (Ljava/lang/String;)V) + ALOAD (1) + ALOAD (0) + GETFIELD (age, I) + INVOKEVIRTUAL (android/os/Parcel, writeInt, (I)V) + ALOAD (1) + ALOAD (0) + GETFIELD (isProUser, Z) + INVOKEVIRTUAL (android/os/Parcel, writeInt, (I)V) + RETURN + LABEL (L1) + } +} 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 9ce260738b1..fb68c752131 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 @@ -12,7 +12,7 @@ public final class User$Creator : java/lang/Object, android/os/Parcelable$Creato LABEL (L0) ALOAD (1) LDC (in) - INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) LABEL (L1) NEW DUP @@ -73,6 +73,7 @@ public final class User : java/lang/Object, android/os/Parcelable { public int describeContents() { Local variables: 0 this: LUser; + LABEL (L0) LDC (0) IRETURN @@ -108,7 +109,7 @@ public final class User : java/lang/Object, android/os/Parcelable { LABEL (L0) ALOAD (1) LDC (parcel) - INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) ALOAD (1) ALOAD (0) GETFIELD (firstName, Ljava/lang/String;) diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/simpleList.ir.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/simpleList.ir.txt new file mode 100644 index 00000000000..df0aced59a4 --- /dev/null +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/simpleList.ir.txt @@ -0,0 +1,38 @@ +public final class Test$Creator : java/lang/Object, android/os/Parcelable$Creator { + public void () + + public final Test createFromParcel(android.os.Parcel parcel) + + public java.lang.Object createFromParcel(android.os.Parcel source) + + public final Test[] newArray(int size) + + public java.lang.Object[] newArray(int size) +} + +public final class Test : java/lang/Object { + public final static android.os.Parcelable$Creator CREATOR + + private final java.util.List names + + static void () + + public void (java.util.List names) + + public int describeContents() + + public final java.util.List getNames() + + 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 (names, Ljava/util/List;) + INVOKEVIRTUAL (android/os/Parcel, writeStringList, (Ljava/util/List;)V) + RETURN + LABEL (L1) + } +} 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 21e46167d87..6055779c293 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 @@ -23,7 +23,7 @@ public final class Test : java/lang/Object { LABEL (L0) ALOAD (1) LDC (parcel) - INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) ALOAD (1) ALOAD (0) GETFIELD (names, Ljava/util/List;) diff --git a/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/size.ir.txt b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/size.ir.txt new file mode 100644 index 00000000000..4f579d00755 --- /dev/null +++ b/plugins/android-extensions/android-extensions-compiler/testData/parcel/codegen/size.ir.txt @@ -0,0 +1,207 @@ +public final class Test$Creator : java/lang/Object, android/os/Parcelable$Creator { + public void () + + public final Test createFromParcel(android.os.Parcel parcel) { + LABEL (L0) + ALOAD (1) + LDC (parcel) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) + LABEL (L1) + NEW + DUP + ALOAD (1) + INVOKEVIRTUAL (android/os/Parcel, readSize, ()Landroid/util/Size;) + ALOAD (1) + INVOKEVIRTUAL (android/os/Parcel, readInt, ()I) + IFNE (L2) + ACONST_NULL + CHECKCAST + GOTO (L3) + LABEL (L2) + ALOAD (1) + INVOKEVIRTUAL (android/os/Parcel, readSize, ()Landroid/util/Size;) + LABEL (L3) + INVOKESPECIAL (Test, , (Landroid/util/Size;Landroid/util/Size;)V) + ARETURN + LABEL (L4) + } + + public java.lang.Object createFromParcel(android.os.Parcel source) { + LABEL (L0) + ALOAD (0) + ALOAD (1) + INVOKEVIRTUAL (Test$Creator, createFromParcel, (Landroid/os/Parcel;)LTest;) + ARETURN + LABEL (L1) + } + + public final Test[] newArray(int size) + + public java.lang.Object[] newArray(int size) +} + +public final class Test : java/lang/Object, android/os/Parcelable { + public final static android.os.Parcelable$Creator CREATOR + + private final android.util.Size nullable + + private final android.util.Size size + + static void () + + 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 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) + + public int describeContents() + + public boolean equals(java.lang.Object other) + + public final android.util.Size getNullable() + + public final android.util.Size getSize() + + public int hashCode() + + public java.lang.String toString() + + 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 (size, Landroid/util/Size;) + INVOKEVIRTUAL (android/os/Parcel, writeSize, (Landroid/util/Size;)V) + ALOAD (0) + GETFIELD (nullable, Landroid/util/Size;) + ASTORE (3) + ALOAD (3) + IFNONNULL (L1) + ALOAD (1) + ICONST_0 + INVOKEVIRTUAL (android/os/Parcel, writeInt, (I)V) + GOTO (L2) + LABEL (L1) + ALOAD (1) + ICONST_1 + INVOKEVIRTUAL (android/os/Parcel, writeInt, (I)V) + ALOAD (1) + ALOAD (3) + INVOKEVIRTUAL (android/os/Parcel, writeSize, (Landroid/util/Size;)V) + LABEL (L2) + RETURN + LABEL (L3) + } +} + +public final class TestF$Creator : java/lang/Object, android/os/Parcelable$Creator { + public void () + + public final TestF createFromParcel(android.os.Parcel parcel) { + LABEL (L0) + ALOAD (1) + LDC (parcel) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) + LABEL (L1) + NEW + DUP + ALOAD (1) + INVOKEVIRTUAL (android/os/Parcel, readSizeF, ()Landroid/util/SizeF;) + ALOAD (1) + INVOKEVIRTUAL (android/os/Parcel, readInt, ()I) + IFNE (L2) + ACONST_NULL + CHECKCAST + GOTO (L3) + LABEL (L2) + ALOAD (1) + INVOKEVIRTUAL (android/os/Parcel, readSizeF, ()Landroid/util/SizeF;) + LABEL (L3) + INVOKESPECIAL (TestF, , (Landroid/util/SizeF;Landroid/util/SizeF;)V) + ARETURN + LABEL (L4) + } + + public java.lang.Object createFromParcel(android.os.Parcel source) { + LABEL (L0) + ALOAD (0) + ALOAD (1) + INVOKEVIRTUAL (TestF$Creator, createFromParcel, (Landroid/os/Parcel;)LTestF;) + ARETURN + LABEL (L1) + } + + public final TestF[] newArray(int size) + + public java.lang.Object[] newArray(int size) +} + +public final class TestF : java/lang/Object, android/os/Parcelable { + public final static android.os.Parcelable$Creator CREATOR + + private final android.util.SizeF nullable + + private final android.util.SizeF size + + static void () + + 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 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) + + public int describeContents() + + public boolean equals(java.lang.Object other) + + public final android.util.SizeF getNullable() + + public final android.util.SizeF getSize() + + public int hashCode() + + public java.lang.String toString() + + 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 (size, Landroid/util/SizeF;) + INVOKEVIRTUAL (android/os/Parcel, writeSizeF, (Landroid/util/SizeF;)V) + ALOAD (0) + GETFIELD (nullable, Landroid/util/SizeF;) + ASTORE (3) + ALOAD (3) + IFNONNULL (L1) + ALOAD (1) + ICONST_0 + INVOKEVIRTUAL (android/os/Parcel, writeInt, (I)V) + GOTO (L2) + LABEL (L1) + ALOAD (1) + ICONST_1 + INVOKEVIRTUAL (android/os/Parcel, writeInt, (I)V) + ALOAD (1) + ALOAD (3) + INVOKEVIRTUAL (android/os/Parcel, writeSizeF, (Landroid/util/SizeF;)V) + LABEL (L2) + RETURN + LABEL (L3) + } +} 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 72ecc70ddd8..63ef9d7d4d9 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 @@ -5,7 +5,7 @@ public final class Test$Creator : java/lang/Object, android/os/Parcelable$Creato LABEL (L0) ALOAD (1) LDC (in) - INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) LABEL (L1) NEW DUP @@ -63,7 +63,7 @@ public final class Test : java/lang/Object, android/os/Parcelable { LABEL (L0) ALOAD (1) LDC (parcel) - INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) ALOAD (1) ALOAD (0) GETFIELD (size, Landroid/util/Size;) @@ -95,7 +95,7 @@ public final class TestF$Creator : java/lang/Object, android/os/Parcelable$Creat LABEL (L0) ALOAD (1) LDC (in) - INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) LABEL (L1) NEW DUP @@ -153,7 +153,7 @@ public final class TestF : java/lang/Object, android/os/Parcelable { LABEL (L0) ALOAD (1) LDC (parcel) - INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V) + INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkNotNullParameter, (Ljava/lang/Object;Ljava/lang/String;)V) ALOAD (1) ALOAD (0) GETFIELD (size, Landroid/util/SizeF;)