diff --git a/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt b/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt index 141bfe1ebbf..364b75b0d15 100644 --- a/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt +++ b/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt @@ -14,19 +14,21 @@ import org.jetbrains.kotlin.android.synthetic.test.AbstractAndroidBoxTest import org.jetbrains.kotlin.android.synthetic.test.AbstractAndroidBytecodeShapeTest import org.jetbrains.kotlin.android.synthetic.test.AbstractAndroidIrBoxTest import org.jetbrains.kotlin.android.synthetic.test.AbstractAndroidSyntheticPropertyDescriptorTest -import org.jetbrains.kotlin.assignment.plugin.AbstractIrBlackBoxCodegenTestAssignmentPlugin import org.jetbrains.kotlin.assignment.plugin.AbstractAssignmentPluginDiagnosticTest import org.jetbrains.kotlin.assignment.plugin.AbstractFirLightTreeBlackBoxCodegenTestForAssignmentPlugin import org.jetbrains.kotlin.assignment.plugin.AbstractFirPsiAssignmentPluginDiagnosticTest +import org.jetbrains.kotlin.assignment.plugin.AbstractIrBlackBoxCodegenTestAssignmentPlugin import org.jetbrains.kotlin.fir.plugin.runners.AbstractFirLightTreePluginBlackBoxCodegenTest import org.jetbrains.kotlin.fir.plugin.runners.AbstractFirPsiPluginDiagnosticTest import org.jetbrains.kotlin.generators.generateTestGroupSuiteWithJUnit5 import org.jetbrains.kotlin.generators.impl.generateTestGroupSuite import org.jetbrains.kotlin.generators.model.annotation -import org.jetbrains.kotlin.generators.tests.IncrementalTestsGeneratorUtil.Companion.IcTestTypes.* +import org.jetbrains.kotlin.generators.tests.IncrementalTestsGeneratorUtil.Companion.IcTestTypes.PURE_KOTLIN import org.jetbrains.kotlin.generators.tests.IncrementalTestsGeneratorUtil.Companion.incrementalJvmTestData import org.jetbrains.kotlin.incremental.* -import org.jetbrains.kotlin.jvm.abi.* +import org.jetbrains.kotlin.jvm.abi.AbstractCompareJvmAbiTest +import org.jetbrains.kotlin.jvm.abi.AbstractCompileAgainstJvmAbiTest +import org.jetbrains.kotlin.jvm.abi.AbstractJvmAbiContentTest import org.jetbrains.kotlin.kapt.cli.test.AbstractArgumentParsingTest import org.jetbrains.kotlin.kapt.cli.test.AbstractKaptToolIntegrationTest import org.jetbrains.kotlin.kapt3.test.runners.AbstractClassFileToSourceStubConverterTest @@ -200,10 +202,6 @@ fun main(args: Array) { val excludedFirTestdataPattern = "^(.+)\\.fir\\.kts?\$" testGroup("plugins/parcelize/parcelize-compiler/tests-gen", "plugins/parcelize/parcelize-compiler/testData") { - testClass { - model("box") - } - testClass { model("box") } @@ -212,10 +210,6 @@ fun main(args: Array) { model("box") } - testClass { - model("codegen") - } - testClass { model("codegen") } diff --git a/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ir/AndroidIrBuilder.kt b/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/AndroidIrBuilder.kt similarity index 98% rename from plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ir/AndroidIrBuilder.kt rename to plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/AndroidIrBuilder.kt index 3c92ad5bf7b..8a288c8cbfc 100644 --- a/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ir/AndroidIrBuilder.kt +++ b/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/AndroidIrBuilder.kt @@ -2,7 +2,8 @@ * Copyright 2010-2022 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.parcelize.ir + +package org.jetbrains.kotlin.parcelize import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET import org.jetbrains.kotlin.ir.builders.* diff --git a/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ir/AndroidSymbols.kt b/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/AndroidSymbols.kt similarity index 99% rename from plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ir/AndroidSymbols.kt rename to plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/AndroidSymbols.kt index 7799e6e96d7..d2a03cdbec8 100644 --- a/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ir/AndroidSymbols.kt +++ b/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/AndroidSymbols.kt @@ -2,7 +2,8 @@ * Copyright 2010-2022 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.parcelize.ir + +package org.jetbrains.kotlin.parcelize import org.jetbrains.kotlin.backend.common.ir.addExtensionReceiver import org.jetbrains.kotlin.descriptors.ClassKind diff --git a/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ir/IrParcelSerializerFactory.kt b/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/IrParcelSerializerFactory.kt similarity index 99% rename from plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ir/IrParcelSerializerFactory.kt rename to plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/IrParcelSerializerFactory.kt index 04cebff0625..1035a7bc3c3 100644 --- a/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ir/IrParcelSerializerFactory.kt +++ b/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/IrParcelSerializerFactory.kt @@ -3,7 +3,7 @@ * 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.parcelize.ir +package org.jetbrains.kotlin.parcelize import org.jetbrains.kotlin.backend.jvm.ir.erasedUpperBound import org.jetbrains.kotlin.backend.jvm.ir.psiElement diff --git a/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ir/IrParcelSerializers.kt b/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/IrParcelSerializers.kt similarity index 99% rename from plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ir/IrParcelSerializers.kt rename to plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/IrParcelSerializers.kt index ef4498a37e2..8a51199e870 100644 --- a/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ir/IrParcelSerializers.kt +++ b/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/IrParcelSerializers.kt @@ -3,7 +3,7 @@ * 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.parcelize.ir +package org.jetbrains.kotlin.parcelize import org.jetbrains.kotlin.backend.jvm.ir.erasedUpperBound import org.jetbrains.kotlin.backend.jvm.ir.isJvmInterface diff --git a/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ir/IrParcelerScope.kt b/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/IrParcelerScope.kt similarity index 98% rename from plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ir/IrParcelerScope.kt rename to plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/IrParcelerScope.kt index cda6cefcb32..a2a71908611 100644 --- a/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ir/IrParcelerScope.kt +++ b/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/IrParcelerScope.kt @@ -3,7 +3,7 @@ * 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.parcelize.ir +package org.jetbrains.kotlin.parcelize import org.jetbrains.kotlin.ir.declarations.IrAnnotationContainer import org.jetbrains.kotlin.ir.declarations.IrClass diff --git a/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ParcelizeClinitClassBuilderInterceptorExtension.kt b/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ParcelizeClinitClassBuilderInterceptorExtension.kt deleted file mode 100644 index 73dc48611a1..00000000000 --- a/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ParcelizeClinitClassBuilderInterceptorExtension.kt +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Copyright 2010-2022 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.parcelize - -import com.intellij.psi.PsiElement -import org.jetbrains.kotlin.codegen.AbstractClassBuilder -import org.jetbrains.kotlin.codegen.ClassBuilder -import org.jetbrains.kotlin.codegen.ClassBuilderFactory -import org.jetbrains.kotlin.codegen.DelegatingClassBuilder -import org.jetbrains.kotlin.codegen.extensions.ClassBuilderInterceptorExtension -import org.jetbrains.kotlin.diagnostics.DiagnosticSink -import org.jetbrains.kotlin.psi.KtClassOrObject -import org.jetbrains.kotlin.resolve.BindingContext -import org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOrigin -import org.jetbrains.org.objectweb.asm.MethodVisitor -import org.jetbrains.org.objectweb.asm.Opcodes -import org.jetbrains.org.objectweb.asm.RecordComponentVisitor -import org.jetbrains.org.objectweb.asm.Type -import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter - -class ParcelizeClinitClassBuilderInterceptorExtension : ClassBuilderInterceptorExtension { - override fun interceptClassBuilderFactory( - interceptedFactory: ClassBuilderFactory, - bindingContext: BindingContext, - diagnostics: DiagnosticSink - ): ClassBuilderFactory { - return ParcelableClinitClassBuilderFactory(interceptedFactory, bindingContext) - } - - private inner class ParcelableClinitClassBuilderFactory( - private val delegateFactory: ClassBuilderFactory, - val bindingContext: BindingContext - ) : ClassBuilderFactory { - - override fun newClassBuilder(origin: JvmDeclarationOrigin): ClassBuilder { - return AndroidOnDestroyCollectorClassBuilder(origin, delegateFactory.newClassBuilder(origin), bindingContext) - } - - override fun getClassBuilderMode() = delegateFactory.classBuilderMode - - override fun asText(builder: ClassBuilder?): String? { - return delegateFactory.asText((builder as AndroidOnDestroyCollectorClassBuilder).delegateClassBuilder) - } - - override fun asBytes(builder: ClassBuilder?): ByteArray? { - return delegateFactory.asBytes((builder as AndroidOnDestroyCollectorClassBuilder).delegateClassBuilder) - } - - override fun close() { - delegateFactory.close() - } - } - - private class AndroidOnDestroyCollectorClassBuilder( - val declarationOrigin: JvmDeclarationOrigin, - val delegateClassBuilder: ClassBuilder, - val bindingContext: BindingContext - ) : DelegatingClassBuilder() { - private var currentClass: KtClassOrObject? = null - private var currentClassName: String? = null - private var isClinitGenerated = false - - override fun getDelegate() = delegateClassBuilder - - override fun defineClass( - origin: PsiElement?, - version: Int, - access: Int, - name: String, - signature: String?, - superName: String, - interfaces: Array - ) { - currentClass = origin as? KtClassOrObject - currentClassName = name - isClinitGenerated = false - - super.defineClass(origin, version, access, name, signature, superName, interfaces) - } - - override fun done(generateSmapCopyToAnnotation: Boolean) { - if (!isClinitGenerated && currentClass != null && currentClassName != null) { - val descriptor = bindingContext[BindingContext.CLASS, currentClass] - if (descriptor != null && declarationOrigin.descriptor == descriptor && descriptor.isParcelize) { - val baseVisitor = super.newMethod(JvmDeclarationOrigin.NO_ORIGIN, Opcodes.ACC_STATIC, "", "()V", null, null) - val visitor = ClinitAwareMethodVisitor(currentClassName!!, baseVisitor) - - visitor.visitCode() - visitor.visitInsn(Opcodes.RETURN) - visitor.visitEnd() - } - } - - super.done(generateSmapCopyToAnnotation) - } - - override fun newMethod( - origin: JvmDeclarationOrigin, - access: Int, - name: String, - desc: String, - signature: String?, - exceptions: Array? - ): MethodVisitor { - if (name == "" && currentClass != null && currentClassName != null) { - isClinitGenerated = true - - val descriptor = bindingContext[BindingContext.CLASS, currentClass] - if (descriptor != null && declarationOrigin.descriptor == descriptor && descriptor.isParcelize) { - return ClinitAwareMethodVisitor( - currentClassName!!, - super.newMethod(origin, access, name, desc, signature, exceptions) - ) - } - } - - return super.newMethod(origin, access, name, desc, signature, exceptions) - } - - override fun newRecordComponent(name: String, desc: String, signature: String?): RecordComponentVisitor { - return AbstractClassBuilder.EMPTY_RECORD_VISITOR - } - } - - private class ClinitAwareMethodVisitor(val parcelableName: String, mv: MethodVisitor) : MethodVisitor(Opcodes.API_VERSION, mv) { - override fun visitInsn(opcode: Int) { - if (opcode == Opcodes.RETURN) { - val iv = InstructionAdapter(this) - val creatorName = "$parcelableName\$Creator" - val creatorType = Type.getObjectType(creatorName) - - iv.anew(creatorType) - iv.dup() - iv.invokespecial(creatorName, "", "()V", false) - iv.putstatic(parcelableName, "CREATOR", "Landroid/os/Parcelable\$Creator;") - } - - super.visitInsn(opcode) - } - } -} diff --git a/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ParcelizeCodegenExtension.kt b/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ParcelizeCodegenExtension.kt deleted file mode 100644 index cbd653ae49e..00000000000 --- a/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ParcelizeCodegenExtension.kt +++ /dev/null @@ -1,426 +0,0 @@ -/* - * Copyright 2010-2022 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.parcelize - -import com.intellij.psi.PsiElement -import org.jetbrains.kotlin.builtins.KotlinBuiltIns -import org.jetbrains.kotlin.codegen.* -import org.jetbrains.kotlin.codegen.FunctionGenerationStrategy.CodegenBased -import org.jetbrains.kotlin.codegen.context.ClassContext -import org.jetbrains.kotlin.codegen.extensions.ExpressionCodegenExtension -import org.jetbrains.kotlin.descriptors.* -import org.jetbrains.kotlin.descriptors.impl.ClassDescriptorImpl -import org.jetbrains.kotlin.incremental.components.NoLookupLocation -import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.parcelize.ParcelizeNames.NEW_ARRAY_NAME -import org.jetbrains.kotlin.parcelize.ParcelizeResolveExtension.Companion.createMethod -import org.jetbrains.kotlin.parcelize.ParcelizeSyntheticComponent.ComponentKind.* -import org.jetbrains.kotlin.parcelize.serializers.* -import org.jetbrains.kotlin.parcelize.serializers.ParcelizeExtensionBase.Companion.FILE_DESCRIPTOR_FQNAME -import org.jetbrains.kotlin.resolve.BindingContext -import org.jetbrains.kotlin.resolve.DescriptorFactory -import org.jetbrains.kotlin.resolve.descriptorUtil.builtIns -import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe -import org.jetbrains.kotlin.resolve.descriptorUtil.module -import org.jetbrains.kotlin.resolve.inline.InlineUtil -import org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOrigin -import org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOriginKind -import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature -import org.jetbrains.kotlin.resolve.scopes.MemberScope -import org.jetbrains.kotlin.storage.LockBasedStorageManager -import org.jetbrains.kotlin.types.KotlinType -import org.jetbrains.kotlin.types.TypeUtils -import org.jetbrains.kotlin.types.Variance -import org.jetbrains.kotlin.types.typeUtil.replaceArgumentsWithStarProjections -import org.jetbrains.org.objectweb.asm.Opcodes.* -import org.jetbrains.org.objectweb.asm.Type - -open class ParcelizeCodegenExtension : ParcelizeExtensionBase, ExpressionCodegenExtension { - open fun isAvailable(element: PsiElement): Boolean { - return true - } - - override val shouldGenerateClassSyntheticPartsInLightClassesMode: Boolean - get() = true - - override fun generateClassSyntheticParts(codegen: ImplementationBodyCodegen) { - val declaration = codegen.myClass as? PsiElement ?: return - if (!isAvailable(declaration)) { - return - } - - val parcelableClass = codegen.descriptor - if (!parcelableClass.isParcelizeClassDescriptor) { - return - } - - val propertiesToSerialize = getPropertiesToSerialize(codegen, parcelableClass) - - val parcelerObject = parcelableClass.companionObjectDescriptor?.takeIf { - TypeUtils.getAllSupertypes(it.defaultType).any { supertype -> supertype.isParceler } - } - - with(parcelableClass) { - if (hasSyntheticDescribeContents()) { - writeDescribeContentsFunction(codegen, propertiesToSerialize) - } - - if (hasSyntheticWriteToParcel()) { - writeWriteToParcel(codegen, propertiesToSerialize, PARCEL_TYPE, parcelerObject) - } - - if (!hasCreatorField()) { - writeCreatorAccessField(codegen, parcelableClass) - } - } - - if (codegen.state.classBuilderMode != ClassBuilderMode.LIGHT_CLASSES) { - val parcelClassType = ParcelizeResolveExtension.resolveParcelClassType(parcelableClass.module) - ?: error("Can't resolve 'android.os.Parcel' class") - - val parcelableCreatorClassType = ParcelizeResolveExtension.resolveParcelableCreatorClassType(parcelableClass.module) - ?: error("Can't resolve 'android.os.Parcelable.Creator' class") - - writeCreatorClass( - codegen, - parcelableClass, parcelClassType, parcelableCreatorClassType, - PARCEL_TYPE, parcelerObject, propertiesToSerialize - ) - } - } - - private fun getCompanionClassType(containerAsmType: Type, parcelerObject: ClassDescriptor): Pair { - val shortName = parcelerObject.name - return Pair(Type.getObjectType(containerAsmType.internalName + "\$$shortName"), shortName.asString()) - } - - private fun ClassDescriptor.writeWriteToParcel( - codegen: ImplementationBodyCodegen, - properties: List, - parcelAsmType: Type, - parcelerObject: ClassDescriptor? - ): Unit? { - val containerAsmType = codegen.typeMapper.mapType(this.defaultType) - - return findFunction(WRITE_TO_PARCEL)?.write(codegen) { - if (parcelerObject != null) { - val (companionAsmType, companionFieldName) = getCompanionClassType(containerAsmType, parcelerObject) - - v.getstatic(containerAsmType.internalName, companionFieldName, companionAsmType.descriptor) - v.load(0, containerAsmType) - v.load(1, PARCEL_TYPE) - v.load(2, Type.INT_TYPE) - v.invokevirtual( - companionAsmType.internalName, "write", - "(${containerAsmType.descriptor}${PARCEL_TYPE.descriptor}I)V", false - ) - } else { - val frameMap = FrameMap().apply { - enterTemp(containerAsmType) - enterTemp(PARCEL_TYPE) - enterTemp(Type.INT_TYPE) - } - - val globalContext = ParcelSerializer.ParcelSerializerContext(codegen.typeMapper, containerAsmType, emptyList(), frameMap) - - if (properties.isEmpty()) { - val entityType = this@writeWriteToParcel.defaultType - val asmType = codegen.state.typeMapper.mapType(entityType) - val serializer = if (this@writeWriteToParcel.kind == ClassKind.CLASS) { - NullAwareParcelSerializerWrapper(ZeroParameterClassSerializer(asmType, entityType)) - } else { - ParcelSerializer.get(entityType, asmType, globalContext, strict = true) - } - - v.load(1, parcelAsmType) - v.load(0, containerAsmType) - serializer.writeValue(v) - } else { - for ((fieldName, type, parcelers) in properties) { - val asmType = codegen.typeMapper.mapType(type) - - v.load(1, parcelAsmType) - v.load(0, containerAsmType) - v.getfield(containerAsmType.internalName, fieldName, asmType.descriptor) - - val serializer = ParcelSerializer.get(type, asmType, globalContext.copy(typeParcelers = parcelers)) - serializer.writeValue(v) - } - - } - } - - v.areturn(Type.VOID_TYPE) - } - } - - private fun ClassDescriptor.writeDescribeContentsFunction( - codegen: ImplementationBodyCodegen, - propertiesToSerialize: List - ): Unit? { - val hasFileDescriptorAnywhere = propertiesToSerialize.any { it.type.containsFileDescriptor() } - - return findFunction(DESCRIBE_CONTENTS)?.write(codegen) { - v.aconst(if (hasFileDescriptorAnywhere) 1 /* CONTENTS_FILE_DESCRIPTOR */ else 0) - v.areturn(Type.INT_TYPE) - } - } - - private fun KotlinType.containsFileDescriptor(): Boolean { - val declarationDescriptor = this.constructor.declarationDescriptor - if (declarationDescriptor != null) { - if (declarationDescriptor.fqNameSafe == FILE_DESCRIPTOR_FQNAME) { - return true - } - } - - return this.arguments.any { it.type.containsFileDescriptor() } - } - - data class PropertyToSerialize(val name: String, val type: KotlinType, val parcelers: List) - - private fun getPropertiesToSerialize( - codegen: ImplementationBodyCodegen, - parcelableClass: ClassDescriptor - ): List { - if (parcelableClass.kind != ClassKind.CLASS) { - return emptyList() - } - - val constructor = parcelableClass.constructors.firstOrNull { it.isPrimary } ?: return emptyList() - - val propertiesToSerialize = constructor.valueParameters.mapNotNull { param -> - codegen.bindingContext[BindingContext.VALUE_PARAMETER_AS_PROPERTY, param] - } - - val classParcelers = getTypeParcelers(parcelableClass.annotations) - - return propertiesToSerialize.map { - PropertyToSerialize(it.name.asString(), it.type, classParcelers + getTypeParcelers(it.annotations)) - } - } - - private fun writeCreateFromParcel( - codegen: ImplementationBodyCodegen, - parcelableClass: ClassDescriptor, - parcelableCreatorClassType: KotlinType, - creatorClass: ClassDescriptorImpl, - parcelClassType: KotlinType, - parcelAsmType: Type, - parcelerObject: ClassDescriptor?, - properties: List - ) { - val containerAsmType = codegen.typeMapper.mapType(parcelableClass) - val creatorAsmType = codegen.typeMapper.mapType(creatorClass) - - val overriddenFunction = parcelableCreatorClassType.findFunction(CREATE_FROM_PARCEL) - ?: error("Can't resolve 'android.os.Parcelable.Creator.${CREATE_FROM_PARCEL.methodName}' method") - - createMethod( - creatorClass, CREATE_FROM_PARCEL, Modality.FINAL, - parcelableClass.defaultType.replaceArgumentsWithStarProjections(), "in" to parcelClassType - ).write(codegen, overriddenFunction) { - if (parcelerObject != null) { - val (companionAsmType, companionFieldName) = getCompanionClassType(containerAsmType, parcelerObject) - - v.getstatic(containerAsmType.internalName, companionFieldName, companionAsmType.descriptor) - v.load(1, PARCEL_TYPE) - v.invokevirtual(companionAsmType.internalName, "create", "(${PARCEL_TYPE.descriptor})$containerAsmType", false) - } else { - v.anew(containerAsmType) - v.dup() - - val asmConstructorParameters = StringBuilder() - val frameMap = FrameMap().apply { - enterTemp(creatorAsmType) - enterTemp(PARCEL_TYPE) - } - - val globalContext = ParcelSerializer.ParcelSerializerContext(codegen.typeMapper, containerAsmType, emptyList(), frameMap) - - if (properties.isEmpty()) { - val entityType = parcelableClass.defaultType - val asmType = codegen.state.typeMapper.mapType(entityType) - val serializer = if (parcelableClass.kind == ClassKind.CLASS) { - NullAwareParcelSerializerWrapper(ZeroParameterClassSerializer(asmType, entityType)) - } else { - ParcelSerializer.get(entityType, asmType, globalContext, strict = true) - } - v.load(1, parcelAsmType) - serializer.readValue(v) - } else { - for ((_, type, parcelers) in properties) { - val asmType = codegen.typeMapper.mapType(type) - asmConstructorParameters.append(asmType.descriptor) - - val serializer = ParcelSerializer.get(type, asmType, globalContext.copy(typeParcelers = parcelers)) - v.load(1, parcelAsmType) - serializer.readValue(v) - } - - v.invokespecial(containerAsmType.internalName, "", "($asmConstructorParameters)V", false) - } - } - - v.areturn(containerAsmType) - } - } - - private fun writeCreatorAccessField(codegen: ImplementationBodyCodegen, parcelableClass: ClassDescriptor) { - val creatorType = Type.getObjectType("android/os/Parcelable\$Creator") - val parcelableType = codegen.typeMapper.mapType(parcelableClass) - val fieldSignature = "L${creatorType.internalName}<${parcelableType.descriptor}>;" - - codegen.v.newField( - JvmDeclarationOrigin.NO_ORIGIN, - ACC_STATIC or ACC_PUBLIC or ACC_FINAL, - "CREATOR", - creatorType.descriptor, - fieldSignature, - null - ) - } - - private fun writeCreatorClass( - codegen: ImplementationBodyCodegen, - parcelableClass: ClassDescriptor, - parcelClassType: KotlinType, - parcelableCreatorClassType: KotlinType, - parcelAsmType: Type, - parcelerObject: ClassDescriptor?, - properties: List - ) { - val containerAsmType = codegen.typeMapper.mapType(parcelableClass.defaultType) - val creatorAsmType = Type.getObjectType(containerAsmType.internalName + "\$Creator") - - val creatorClass = ClassDescriptorImpl( - parcelableClass, Name.identifier("Creator"), Modality.FINAL, ClassKind.CLASS, listOf(parcelableCreatorClassType), - parcelableClass.source, false, LockBasedStorageManager.NO_LOCKS - ) - - creatorClass.initialize( - MemberScope.Empty, emptySet(), - DescriptorFactory.createPrimaryConstructorForObject(creatorClass, creatorClass.source) - ) - - val classBuilderForCreator = codegen.state.factory.newVisitor( - JvmDeclarationOrigin(JvmDeclarationOriginKind.OTHER, null, creatorClass), - Type.getObjectType(creatorAsmType.internalName), - codegen.myClass.containingKtFile - ) - - val classContextForCreator = ClassContext( - codegen.typeMapper, creatorClass, OwnerKind.IMPLEMENTATION, codegen.context.parentContext, null - ) - val codegenForCreator = ImplementationBodyCodegen( - codegen.myClass, classContextForCreator, classBuilderForCreator, codegen.state, codegen.parentCodegen, false - ) - - val classSignature = "Ljava/lang/Object;Landroid/os/Parcelable\$Creator<${containerAsmType.descriptor}>;" - classBuilderForCreator.defineClass( - null, V1_6, ACC_PUBLIC or ACC_FINAL or ACC_SUPER, - creatorAsmType.internalName, classSignature, "java/lang/Object", - arrayOf("android/os/Parcelable\$Creator") - ) - - codegen.v.visitInnerClass(creatorAsmType.internalName, containerAsmType.internalName, "Creator", ACC_PUBLIC or ACC_STATIC) - codegenForCreator.v.visitInnerClass(creatorAsmType.internalName, containerAsmType.internalName, "Creator", ACC_PUBLIC or ACC_STATIC) - - writeSyntheticClassMetadata(classBuilderForCreator, codegen.state, InlineUtil.isInPublicInlineScope(parcelableClass)) - - writeCreatorConstructor(codegenForCreator, creatorClass, creatorAsmType) - writeNewArrayMethod(codegenForCreator, parcelableClass, parcelableCreatorClassType, creatorClass, parcelerObject) - - writeCreateFromParcel( - codegenForCreator, - parcelableClass, parcelableCreatorClassType, creatorClass, parcelClassType, - parcelAsmType, parcelerObject, properties - ) - - classBuilderForCreator.done(codegen.state.generateSmapCopyToAnnotation) - } - - private fun writeCreatorConstructor(codegen: ImplementationBodyCodegen, creatorClass: ClassDescriptor, creatorAsmType: Type) { - DescriptorFactory.createPrimaryConstructorForObject(creatorClass, creatorClass.source) - .apply { - returnType = creatorClass.defaultType - }.write(codegen) { - v.load(0, creatorAsmType) - v.invokespecial("java/lang/Object", "", "()V", false) - v.areturn(Type.VOID_TYPE) - } - } - - private fun writeNewArrayMethod( - codegen: ImplementationBodyCodegen, - parcelableClass: ClassDescriptor, - parcelableCreatorClassType: KotlinType, - creatorClass: ClassDescriptorImpl, - parcelerObject: ClassDescriptor? - ) { - val builtIns = parcelableClass.builtIns - val parcelableAsmType = codegen.typeMapper.mapType(parcelableClass) - - val overriddenFunction = parcelableCreatorClassType.findFunction(NEW_ARRAY) - ?: error("Can't resolve 'android.os.Parcelable.Creator.${NEW_ARRAY.methodName}' method") - - createMethod( - creatorClass, NEW_ARRAY, Modality.FINAL, - builtIns.getArrayType(Variance.INVARIANT, parcelableClass.defaultType.replaceArgumentsWithStarProjections()), - "size" to builtIns.intType - ).write(codegen, overriddenFunction) { - if (parcelerObject != null) { - val newArrayMethod = parcelerObject.unsubstitutedMemberScope - .getContributedFunctions(NEW_ARRAY_NAME, NoLookupLocation.WHEN_GET_ALL_DESCRIPTORS) - .firstOrNull { - it.typeParameters.isEmpty() - && it.kind == CallableMemberDescriptor.Kind.DECLARATION - && (it.valueParameters.size == 1 && KotlinBuiltIns.isInt(it.valueParameters[0].type)) - && !((it.containingDeclaration as? ClassDescriptor)?.defaultType?.isParceler ?: true) - } - - if (newArrayMethod != null) { - val containerAsmType = codegen.typeMapper.mapType(parcelableClass.defaultType) - val (companionAsmType, companionFieldName) = getCompanionClassType(containerAsmType, parcelerObject) - - v.getstatic(containerAsmType.internalName, companionFieldName, companionAsmType.descriptor) - v.load(1, Type.INT_TYPE) - v.invokevirtual(companionAsmType.internalName, "newArray", "(I)[$parcelableAsmType", false) - v.areturn(Type.getType("[$parcelableAsmType")) - - return@write - } - } - - v.load(1, Type.INT_TYPE) - v.newarray(parcelableAsmType) - v.areturn(Type.getType("[$parcelableAsmType")) - } - } - - private fun FunctionDescriptor.write( - codegen: ImplementationBodyCodegen, - overriddenDescriptor: FunctionDescriptor? = null, - code: ExpressionCodegen.() -> Unit - ) { - val declarationOrigin = JvmDeclarationOrigin(JvmDeclarationOriginKind.OTHER, null, this) - if (overriddenDescriptor != null) { - this.overriddenDescriptors = listOf(overriddenDescriptor) - } - - codegen.functionCodegen.generateMethod(declarationOrigin, this, object : CodegenBased(codegen.state) { - override fun doGenerateBody(e: ExpressionCodegen, signature: JvmMethodSignature) = with(e) { - e.code() - } - }) - } - - private fun KotlinType.findFunction(componentKind: ParcelizeSyntheticComponent.ComponentKind): SimpleFunctionDescriptor? { - return memberScope - .getContributedFunctions(Name.identifier(componentKind.methodName), NoLookupLocation.WHEN_GET_ALL_DESCRIPTORS) - .firstOrNull() - } -} diff --git a/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ParcelizeFirIrGeneratorExtension.kt b/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ParcelizeFirIrGeneratorExtension.kt index 4582fcacb73..02f11e6a33b 100644 --- a/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ParcelizeFirIrGeneratorExtension.kt +++ b/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ParcelizeFirIrGeneratorExtension.kt @@ -8,8 +8,6 @@ package org.jetbrains.kotlin.parcelize import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext import org.jetbrains.kotlin.ir.declarations.IrModuleFragment -import org.jetbrains.kotlin.parcelize.ir.AndroidSymbols -import org.jetbrains.kotlin.parcelize.ir.ParcelizeFirIrTransformer class ParcelizeFirIrGeneratorExtension : IrGenerationExtension { override fun generate(moduleFragment: IrModuleFragment, pluginContext: IrPluginContext) { diff --git a/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ir/ParcelizeFirIrTransformer.kt b/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ParcelizeFirIrTransformer.kt similarity index 97% rename from plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ir/ParcelizeFirIrTransformer.kt rename to plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ParcelizeFirIrTransformer.kt index a0157e0835f..082c842a2a0 100644 --- a/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ir/ParcelizeFirIrTransformer.kt +++ b/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ParcelizeFirIrTransformer.kt @@ -3,7 +3,7 @@ * 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.parcelize.ir +package org.jetbrains.kotlin.parcelize import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext import org.jetbrains.kotlin.descriptors.Modality @@ -15,7 +15,6 @@ import org.jetbrains.kotlin.ir.util.companionObject import org.jetbrains.kotlin.ir.util.functions import org.jetbrains.kotlin.ir.util.render import org.jetbrains.kotlin.parcelize.ParcelizeNames.PARCELER_FQN -import org.jetbrains.kotlin.parcelize.ParcelizeSyntheticComponent import org.jetbrains.kotlin.parcelize.fir.ParcelizePluginKey class ParcelizeFirIrTransformer( diff --git a/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ParcelizeIrGeneratorExtension.kt b/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ParcelizeIrGeneratorExtension.kt index 3cd1d417988..fda849cbbb9 100644 --- a/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ParcelizeIrGeneratorExtension.kt +++ b/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ParcelizeIrGeneratorExtension.kt @@ -8,8 +8,6 @@ package org.jetbrains.kotlin.parcelize import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext import org.jetbrains.kotlin.ir.declarations.IrModuleFragment -import org.jetbrains.kotlin.parcelize.ir.AndroidSymbols -import org.jetbrains.kotlin.parcelize.ir.ParcelizeIrTransformer class ParcelizeIrGeneratorExtension : IrGenerationExtension { override fun generate(moduleFragment: IrModuleFragment, pluginContext: IrPluginContext) { @@ -17,4 +15,3 @@ class ParcelizeIrGeneratorExtension : IrGenerationExtension { ParcelizeIrTransformer(pluginContext, androidSymbols).transform(moduleFragment) } } - diff --git a/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ir/ParcelizeIrTransformer.kt b/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ParcelizeIrTransformer.kt similarity index 98% rename from plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ir/ParcelizeIrTransformer.kt rename to plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ParcelizeIrTransformer.kt index 675d475d4a1..fbc9c027916 100644 --- a/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ir/ParcelizeIrTransformer.kt +++ b/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ParcelizeIrTransformer.kt @@ -3,7 +3,7 @@ * 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.parcelize.ir +package org.jetbrains.kotlin.parcelize import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext import org.jetbrains.kotlin.descriptors.Modality @@ -35,7 +35,6 @@ import org.jetbrains.kotlin.parcelize.ParcelizeNames.FLAGS_NAME import org.jetbrains.kotlin.parcelize.ParcelizeNames.PARCELABLE_FQN import org.jetbrains.kotlin.parcelize.ParcelizeNames.PARCELER_FQN import org.jetbrains.kotlin.parcelize.ParcelizeNames.WRITE_TO_PARCEL_NAME -import org.jetbrains.kotlin.parcelize.ParcelizeSyntheticComponent @OptIn(ObsoleteDescriptorBasedAPI::class) class ParcelizeIrTransformer( diff --git a/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ir/ParcelizeIrTransformerBase.kt b/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ParcelizeIrTransformerBase.kt similarity index 99% rename from plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ir/ParcelizeIrTransformerBase.kt rename to plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ParcelizeIrTransformerBase.kt index 41d4e1a4b1c..10de5abe405 100644 --- a/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ir/ParcelizeIrTransformerBase.kt +++ b/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ParcelizeIrTransformerBase.kt @@ -3,7 +3,7 @@ * 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.parcelize.ir +package org.jetbrains.kotlin.parcelize import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext import org.jetbrains.kotlin.backend.common.lower.DeclarationIrBuilder diff --git a/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ir/irUtils.kt b/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/irUtils.kt similarity index 99% rename from plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ir/irUtils.kt rename to plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/irUtils.kt index 14bb251a62d..847ad47a9fd 100644 --- a/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/ir/irUtils.kt +++ b/plugins/parcelize/parcelize-compiler/parcelize.backend/src/org/jetbrains/kotlin/parcelize/irUtils.kt @@ -3,7 +3,7 @@ * 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.parcelize.ir +package org.jetbrains.kotlin.parcelize import org.jetbrains.kotlin.backend.jvm.ir.erasedUpperBound import org.jetbrains.kotlin.descriptors.DescriptorVisibilities diff --git a/plugins/parcelize/parcelize-compiler/parcelize.cli/src/org/jetbrains/kotlin/parcelize/ParcelizeComponentRegistrar.kt b/plugins/parcelize/parcelize-compiler/parcelize.cli/src/org/jetbrains/kotlin/parcelize/ParcelizeComponentRegistrar.kt index 026c9b8e9cb..95d34be02d7 100644 --- a/plugins/parcelize/parcelize-compiler/parcelize.cli/src/org/jetbrains/kotlin/parcelize/ParcelizeComponentRegistrar.kt +++ b/plugins/parcelize/parcelize-compiler/parcelize.cli/src/org/jetbrains/kotlin/parcelize/ParcelizeComponentRegistrar.kt @@ -6,8 +6,6 @@ package org.jetbrains.kotlin.parcelize import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension -import org.jetbrains.kotlin.codegen.extensions.ClassBuilderInterceptorExtension -import org.jetbrains.kotlin.codegen.extensions.ExpressionCodegenExtension import org.jetbrains.kotlin.compiler.plugin.CompilerPluginRegistrar import org.jetbrains.kotlin.config.CommonConfigurationKeys import org.jetbrains.kotlin.config.CompilerConfiguration @@ -24,14 +22,12 @@ import org.jetbrains.kotlin.resolve.extensions.SyntheticResolveExtension class ParcelizeComponentRegistrar : CompilerPluginRegistrar() { companion object { fun registerParcelizeComponents(extensionStorage: ExtensionStorage, useFir: Boolean) = with(extensionStorage) { - ExpressionCodegenExtension.registerExtension(ParcelizeCodegenExtension()) if (useFir) { IrGenerationExtension.registerExtension(ParcelizeFirIrGeneratorExtension()) } else { IrGenerationExtension.registerExtension(ParcelizeIrGeneratorExtension()) } SyntheticResolveExtension.registerExtension(ParcelizeResolveExtension()) - ClassBuilderInterceptorExtension.registerExtension(ParcelizeClinitClassBuilderInterceptorExtension()) StorageComponentContainerContributor.registerExtension(ParcelizeDeclarationCheckerComponentContainerContributor()) FirExtensionRegistrarAdapter.registerExtension(FirParcelizeExtensionRegistrar()) } diff --git a/plugins/parcelize/parcelize-compiler/parcelize.k1/src/org/jetbrains/kotlin/parcelize/ParcelizeResolveExtension.kt b/plugins/parcelize/parcelize-compiler/parcelize.k1/src/org/jetbrains/kotlin/parcelize/ParcelizeResolveExtension.kt index 6f99367f7a3..1baf0ff9144 100644 --- a/plugins/parcelize/parcelize-compiler/parcelize.k1/src/org/jetbrains/kotlin/parcelize/ParcelizeResolveExtension.kt +++ b/plugins/parcelize/parcelize-compiler/parcelize.k1/src/org/jetbrains/kotlin/parcelize/ParcelizeResolveExtension.kt @@ -27,7 +27,6 @@ import org.jetbrains.kotlin.descriptors.impl.ValueParameterDescriptorImpl import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.parcelize.ParcelizeNames.CREATE_FROM_PARCEL_NAME -import org.jetbrains.kotlin.parcelize.ParcelizeNames.CREATOR_ID import org.jetbrains.kotlin.parcelize.ParcelizeNames.DESCRIBE_CONTENTS_NAME import org.jetbrains.kotlin.parcelize.ParcelizeNames.NEW_ARRAY_NAME import org.jetbrains.kotlin.parcelize.ParcelizeNames.PARCELER_FQN @@ -42,10 +41,10 @@ import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.descriptorUtil.* import org.jetbrains.kotlin.resolve.extensions.SyntheticResolveExtension import org.jetbrains.kotlin.resolve.source.PsiSourceElement -import org.jetbrains.kotlin.types.error.ErrorTypeKind -import org.jetbrains.kotlin.types.error.ErrorUtils import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.SimpleType +import org.jetbrains.kotlin.types.error.ErrorTypeKind +import org.jetbrains.kotlin.types.error.ErrorUtils open class ParcelizeResolveExtension : SyntheticResolveExtension { companion object { @@ -53,11 +52,6 @@ open class ParcelizeResolveExtension : SyntheticResolveExtension { return module.findClassAcrossModuleDependencies(PARCEL_ID)?.defaultType } - fun resolveParcelableCreatorClassType(module: ModuleDescriptor): SimpleType? { - val creatorClassId = CREATOR_ID - return module.findClassAcrossModuleDependencies(creatorClassId)?.defaultType - } - fun createMethod( classDescriptor: ClassDescriptor, componentKind: ParcelizeSyntheticComponent.ComponentKind, diff --git a/plugins/parcelize/parcelize-compiler/tests-gen/org/jetbrains/kotlin/parcelize/test/runners/ParcelizeBoxTestGenerated.java b/plugins/parcelize/parcelize-compiler/tests-gen/org/jetbrains/kotlin/parcelize/test/runners/ParcelizeBoxTestGenerated.java deleted file mode 100644 index 117cbabc073..00000000000 --- a/plugins/parcelize/parcelize-compiler/tests-gen/org/jetbrains/kotlin/parcelize/test/runners/ParcelizeBoxTestGenerated.java +++ /dev/null @@ -1,507 +0,0 @@ -/* - * Copyright 2010-2023 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.parcelize.test.runners; - -import com.intellij.testFramework.TestDataPath; -import org.jetbrains.kotlin.test.util.KtTestUtil; -import org.jetbrains.kotlin.test.TargetBackend; -import org.jetbrains.kotlin.test.TestMetadata; -import org.junit.jupiter.api.Nested; -import org.junit.jupiter.api.Test; - -import java.io.File; -import java.util.regex.Pattern; - -/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.GenerateTestsKt}. DO NOT MODIFY MANUALLY */ -@SuppressWarnings("all") -@TestMetadata("plugins/parcelize/parcelize-compiler/testData/box") -@TestDataPath("$PROJECT_ROOT") -public class ParcelizeBoxTestGenerated extends AbstractParcelizeBoxTest { - @Test - public void testAllFilesPresentInBox() throws Exception { - KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/parcelize/parcelize-compiler/testData/box"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true); - } - - @Test - @TestMetadata("allPrimitiveTypes.kt") - public void testAllPrimitiveTypes() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/allPrimitiveTypes.kt"); - } - - @Test - @TestMetadata("allUnsignedTypes.kt") - public void testAllUnsignedTypes() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/allUnsignedTypes.kt"); - } - - @Test - @TestMetadata("arraySimple.kt") - public void testArraySimple() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/arraySimple.kt"); - } - - @Test - @TestMetadata("arrays.kt") - public void testArrays() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/arrays.kt"); - } - - @Test - @TestMetadata("binder.kt") - public void testBinder() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/binder.kt"); - } - - @Test - @TestMetadata("boxedTypes.kt") - public void testBoxedTypes() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/boxedTypes.kt"); - } - - @Test - @TestMetadata("bundle.kt") - public void testBundle() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/bundle.kt"); - } - - @Test - @TestMetadata("charSequence.kt") - public void testCharSequence() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/charSequence.kt"); - } - - @Test - @TestMetadata("constructorWithoutValOrVar.kt") - public void testConstructorWithoutValOrVar() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/constructorWithoutValOrVar.kt"); - } - - @Test - @TestMetadata("customNewArray.kt") - public void testCustomNewArray() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/customNewArray.kt"); - } - - @Test - @TestMetadata("customParcelable.kt") - public void testCustomParcelable() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/customParcelable.kt"); - } - - @Test - @TestMetadata("customParcelerChecks.kt") - public void testCustomParcelerChecks() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/customParcelerChecks.kt"); - } - - @Test - @TestMetadata("customParcelerScoping.kt") - public void testCustomParcelerScoping() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/customParcelerScoping.kt"); - } - - @Test - @TestMetadata("customSerializerBoxing.kt") - public void testCustomSerializerBoxing() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/customSerializerBoxing.kt"); - } - - @Test - @TestMetadata("customSerializerSimple.kt") - public void testCustomSerializerSimple() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/customSerializerSimple.kt"); - } - - @Test - @TestMetadata("customSerializerWriteWith.kt") - public void testCustomSerializerWriteWith() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/customSerializerWriteWith.kt"); - } - - @Test - @TestMetadata("customSimple.kt") - public void testCustomSimple() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/customSimple.kt"); - } - - @Test - @TestMetadata("enumObject.kt") - public void testEnumObject() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/enumObject.kt"); - } - - @Test - @TestMetadata("enums.kt") - public void testEnums() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/enums.kt"); - } - - @Test - @TestMetadata("exceptions.kt") - public void testExceptions() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/exceptions.kt"); - } - - @Test - @TestMetadata("functions.kt") - public void testFunctions() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/functions.kt"); - } - - @Test - @TestMetadata("genericParcelable.kt") - public void testGenericParcelable() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/genericParcelable.kt"); - } - - @Test - @TestMetadata("generics.kt") - public void testGenerics() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/generics.kt"); - } - - @Test - @TestMetadata("ignoredOnParcel.kt") - public void testIgnoredOnParcel() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/ignoredOnParcel.kt"); - } - - @Test - @TestMetadata("intArray.kt") - public void testIntArray() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/intArray.kt"); - } - - @Test - @TestMetadata("javaInterop.kt") - public void testJavaInterop() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/javaInterop.kt"); - } - - @Test - @TestMetadata("kt19747.kt") - public void testKt19747() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/kt19747.kt"); - } - - @Test - @TestMetadata("kt19747Deprecated.kt") - public void testKt19747Deprecated() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/kt19747Deprecated.kt"); - } - - @Test - @TestMetadata("kt19747_2.kt") - public void testKt19747_2() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/kt19747_2.kt"); - } - - @Test - @TestMetadata("kt19749.kt") - public void testKt19749() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/kt19749.kt"); - } - - @Test - @TestMetadata("kt19853.kt") - public void testKt19853() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/kt19853.kt"); - } - - @Test - @TestMetadata("kt20002.kt") - public void testKt20002() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/kt20002.kt"); - } - - @Test - @TestMetadata("kt20021.kt") - public void testKt20021() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/kt20021.kt"); - } - - @Test - @TestMetadata("kt20717.kt") - public void testKt20717() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/kt20717.kt"); - } - - @Test - @TestMetadata("kt25839.kt") - public void testKt25839() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/kt25839.kt"); - } - - @Test - @TestMetadata("kt26221.kt") - public void testKt26221() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/kt26221.kt"); - } - - @Test - @TestMetadata("kt36658.kt") - public void testKt36658() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/kt36658.kt"); - } - - @Test - @TestMetadata("kt39981.kt") - public void testKt39981() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/kt39981.kt"); - } - - @Test - @TestMetadata("kt41553.kt") - public void testKt41553() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/kt41553.kt"); - } - - @Test - @TestMetadata("kt41553_2.kt") - public void testKt41553_2() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/kt41553_2.kt"); - } - - @Test - @TestMetadata("kt46567.kt") - public void testKt46567() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/kt46567.kt"); - } - - @Test - @TestMetadata("listKinds.kt") - public void testListKinds() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/listKinds.kt"); - } - - @Test - @TestMetadata("listSimple.kt") - public void testListSimple() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/listSimple.kt"); - } - - @Test - @TestMetadata("lists.kt") - public void testLists() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/lists.kt"); - } - - @Test - @TestMetadata("mapKinds.kt") - public void testMapKinds() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/mapKinds.kt"); - } - - @Test - @TestMetadata("mapSimple.kt") - public void testMapSimple() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/mapSimple.kt"); - } - - @Test - @TestMetadata("maps.kt") - public void testMaps() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/maps.kt"); - } - - @Test - @TestMetadata("nestedArrays.kt") - public void testNestedArrays() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/nestedArrays.kt"); - } - - @Test - @TestMetadata("nestedLists.kt") - public void testNestedLists() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/nestedLists.kt"); - } - - @Test - @TestMetadata("nestedMaps.kt") - public void testNestedMaps() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/nestedMaps.kt"); - } - - @Test - @TestMetadata("nestedParcelable.kt") - public void testNestedParcelable() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/nestedParcelable.kt"); - } - - @Test - @TestMetadata("nestedSparseArrays.kt") - public void testNestedSparseArrays() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/nestedSparseArrays.kt"); - } - - @Test - @TestMetadata("nestedSparseArrays2.kt") - public void testNestedSparseArrays2() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/nestedSparseArrays2.kt"); - } - - @Test - @TestMetadata("newArray.kt") - public void testNewArray() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/newArray.kt"); - } - - @Test - @TestMetadata("newArrayParceler.kt") - public void testNewArrayParceler() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/newArrayParceler.kt"); - } - - @Test - @TestMetadata("nullableSparseArrays.kt") - public void testNullableSparseArrays() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/nullableSparseArrays.kt"); - } - - @Test - @TestMetadata("nullableTypes.kt") - public void testNullableTypes() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/nullableTypes.kt"); - } - - @Test - @TestMetadata("nullableTypesSimple.kt") - public void testNullableTypesSimple() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/nullableTypesSimple.kt"); - } - - @Test - @TestMetadata("objectWriteParcelable.kt") - public void testObjectWriteParcelable() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/objectWriteParcelable.kt"); - } - - @Test - @TestMetadata("objects.kt") - public void testObjects() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/objects.kt"); - } - - @Test - @TestMetadata("openParcelize.kt") - public void testOpenParcelize() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/openParcelize.kt"); - } - - @Test - @TestMetadata("overriddenDescribeContents.kt") - public void testOverriddenDescribeContents() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/overriddenDescribeContents.kt"); - } - - @Test - @TestMetadata("parcelableValueClass.kt") - public void testParcelableValueClass() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/parcelableValueClass.kt"); - } - - @Test - @TestMetadata("parcelizeCustomValueClass.kt") - public void testParcelizeCustomValueClass() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/parcelizeCustomValueClass.kt"); - } - - @Test - @TestMetadata("persistableBundle.kt") - public void testPersistableBundle() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/persistableBundle.kt"); - } - - @Test - @TestMetadata("primitiveTypes.kt") - public void testPrimitiveTypes() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/primitiveTypes.kt"); - } - - @Test - @TestMetadata("privateConstructor.kt") - public void testPrivateConstructor() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/privateConstructor.kt"); - } - - @Test - @TestMetadata("recursiveGenerics.kt") - public void testRecursiveGenerics() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/recursiveGenerics.kt"); - } - - @Test - @TestMetadata("sealedClass.kt") - public void testSealedClass() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/sealedClass.kt"); - } - - @Test - @TestMetadata("sealedClass2.kt") - public void testSealedClass2() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/sealedClass2.kt"); - } - - @Test - @TestMetadata("sealedInterface.kt") - public void testSealedInterface() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/sealedInterface.kt"); - } - - @Test - @TestMetadata("shortArray.kt") - public void testShortArray() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/shortArray.kt"); - } - - @Test - @TestMetadata("simple.kt") - public void testSimple() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/simple.kt"); - } - - @Test - @TestMetadata("simpleDeprecated.kt") - public void testSimpleDeprecated() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/simpleDeprecated.kt"); - } - - @Test - @TestMetadata("sparseArrays.kt") - public void testSparseArrays() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/sparseArrays.kt"); - } - - @Test - @TestMetadata("sparseBooleanArray.kt") - public void testSparseBooleanArray() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/sparseBooleanArray.kt"); - } - - @Test - @TestMetadata("typeParameters.kt") - public void testTypeParameters() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/typeParameters.kt"); - } - - @Test - @TestMetadata("unsignedArrays.kt") - public void testUnsignedArrays() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/unsignedArrays.kt"); - } - - @Test - @TestMetadata("valueClassWrapper.kt") - public void testValueClassWrapper() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/valueClassWrapper.kt"); - } - - @Test - @TestMetadata("valueClasses.kt") - public void testValueClasses() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/box/valueClasses.kt"); - } -} diff --git a/plugins/parcelize/parcelize-compiler/tests-gen/org/jetbrains/kotlin/parcelize/test/runners/ParcelizeBytecodeListingTestGenerated.java b/plugins/parcelize/parcelize-compiler/tests-gen/org/jetbrains/kotlin/parcelize/test/runners/ParcelizeBytecodeListingTestGenerated.java deleted file mode 100644 index ea8889c32b8..00000000000 --- a/plugins/parcelize/parcelize-compiler/tests-gen/org/jetbrains/kotlin/parcelize/test/runners/ParcelizeBytecodeListingTestGenerated.java +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Copyright 2010-2023 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.parcelize.test.runners; - -import com.intellij.testFramework.TestDataPath; -import org.jetbrains.kotlin.test.util.KtTestUtil; -import org.jetbrains.kotlin.test.TargetBackend; -import org.jetbrains.kotlin.test.TestMetadata; -import org.junit.jupiter.api.Nested; -import org.junit.jupiter.api.Test; - -import java.io.File; -import java.util.regex.Pattern; - -/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.GenerateTestsKt}. DO NOT MODIFY MANUALLY */ -@SuppressWarnings("all") -@TestMetadata("plugins/parcelize/parcelize-compiler/testData/codegen") -@TestDataPath("$PROJECT_ROOT") -public class ParcelizeBytecodeListingTestGenerated extends AbstractParcelizeBytecodeListingTest { - @Test - public void testAllFilesPresentInCodegen() throws Exception { - KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/parcelize/parcelize-compiler/testData/codegen"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true); - } - - @Test - @TestMetadata("classLoaderValues.kt") - public void testClassLoaderValues() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/codegen/classLoaderValues.kt"); - } - - @Test - @TestMetadata("customDescribeContents.kt") - public void testCustomDescribeContents() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/codegen/customDescribeContents.kt"); - } - - @Test - @TestMetadata("customParcelablesDifferentModule.kt") - public void testCustomParcelablesDifferentModule() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/codegen/customParcelablesDifferentModule.kt"); - } - - @Test - @TestMetadata("customParcelablesSameModule.kt") - public void testCustomParcelablesSameModule() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/codegen/customParcelablesSameModule.kt"); - } - - @Test - @TestMetadata("customSimple.kt") - public void testCustomSimple() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/codegen/customSimple.kt"); - } - - @Test - @TestMetadata("customSimpleWithNewArray.kt") - public void testCustomSimpleWithNewArray() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/codegen/customSimpleWithNewArray.kt"); - } - - @Test - @TestMetadata("describeContentsFromSuperType.kt") - public void testDescribeContentsFromSuperType() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/codegen/describeContentsFromSuperType.kt"); - } - - @Test - @TestMetadata("duplicatingClinit.kt") - public void testDuplicatingClinit() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/codegen/duplicatingClinit.kt"); - } - - @Test - @TestMetadata("efficientParcelable.kt") - public void testEfficientParcelable() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/codegen/efficientParcelable.kt"); - } - - @Test - @TestMetadata("generics.kt") - public void testGenerics() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/codegen/generics.kt"); - } - - @Test - @TestMetadata("IBinderIInterface.kt") - public void testIBinderIInterface() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/codegen/IBinderIInterface.kt"); - } - - @Test - @TestMetadata("kt25839.kt") - public void testKt25839() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/codegen/kt25839.kt"); - } - - @Test - @TestMetadata("listInsideList.kt") - public void testListInsideList() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/codegen/listInsideList.kt"); - } - - @Test - @TestMetadata("nullableNotNullSize.kt") - public void testNullableNotNullSize() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/codegen/nullableNotNullSize.kt"); - } - - @Test - @TestMetadata("parcelable.kt") - public void testParcelable() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/codegen/parcelable.kt"); - } - - @Test - @TestMetadata("parcelableCreator.kt") - public void testParcelableCreator() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/codegen/parcelableCreator.kt"); - } - - @Test - @TestMetadata("serializable.kt") - public void testSerializable() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/codegen/serializable.kt"); - } - - @Test - @TestMetadata("serializeValue.kt") - public void testSerializeValue() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/codegen/serializeValue.kt"); - } - - @Test - @TestMetadata("simple.kt") - public void testSimple() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/codegen/simple.kt"); - } - - @Test - @TestMetadata("simpleList.kt") - public void testSimpleList() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/codegen/simpleList.kt"); - } - - @Test - @TestMetadata("size.kt") - public void testSize() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/codegen/size.kt"); - } - - @Test - @TestMetadata("unsignedPrimitiveArrays.kt") - public void testUnsignedPrimitiveArrays() throws Exception { - runTest("plugins/parcelize/parcelize-compiler/testData/codegen/unsignedPrimitiveArrays.kt"); - } -} diff --git a/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/runners/AbstractParcelizeBoxTest.kt b/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/runners/AbstractParcelizeBoxTest.kt index 23592528234..24845565a46 100644 --- a/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/runners/AbstractParcelizeBoxTest.kt +++ b/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/runners/AbstractParcelizeBoxTest.kt @@ -90,20 +90,6 @@ abstract class AbstractParcelizeBoxTestBase( - FrontendKinds.ClassicFrontend, - TargetBackend.JVM -) { - override val frontendFacade: Constructor> - get() = ::ClassicFrontendFacade - - override val frontendToBackendConverter: Constructor> - get() = ::ClassicFrontend2ClassicBackendConverter - - override val backendFacade: Constructor> - get() = ::ClassicJvmBackendFacade -} - open class AbstractParcelizeIrBoxTest : AbstractParcelizeBoxTestBase( FrontendKinds.ClassicFrontend, TargetBackend.JVM_IR diff --git a/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/runners/AbstractParcelizeBytecodeListingTest.kt b/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/runners/AbstractParcelizeBytecodeListingTest.kt index b643405209f..088dd3f077b 100644 --- a/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/runners/AbstractParcelizeBytecodeListingTest.kt +++ b/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/runners/AbstractParcelizeBytecodeListingTest.kt @@ -8,16 +8,8 @@ package org.jetbrains.kotlin.parcelize.test.runners import org.jetbrains.kotlin.parcelize.test.services.ParcelizeEnvironmentConfigurator import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder import org.jetbrains.kotlin.test.directives.AsmLikeInstructionListingDirectives.IR_DIFFERENCE -import org.jetbrains.kotlin.test.runners.codegen.AbstractAsmLikeInstructionListingTest import org.jetbrains.kotlin.test.runners.codegen.AbstractIrAsmLikeInstructionListingTest -open class AbstractParcelizeBytecodeListingTest : AbstractAsmLikeInstructionListingTest() { - override fun configure(builder: TestConfigurationBuilder) { - super.configure(builder) - builder.configureParcelizeSpecific() - } -} - open class AbstractParcelizeIrBytecodeListingTest : AbstractIrAsmLikeInstructionListingTest() { override fun configure(builder: TestConfigurationBuilder) { super.configure(builder) diff --git a/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/runners/ParcelizeBoxTestWithSerializableLikeExtension.kt b/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/runners/ParcelizeBoxTestWithSerializableLikeExtension.kt deleted file mode 100644 index ede27aec6d9..00000000000 --- a/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/runners/ParcelizeBoxTestWithSerializableLikeExtension.kt +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright 2010-2021 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.parcelize.test.runners - -import com.intellij.testFramework.TestDataPath -import org.jetbrains.kotlin.parcelize.test.services.SerializableLikeExtensionProvider -import org.jetbrains.kotlin.test.TestMetadata -import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder -import org.junit.jupiter.api.Test - -@TestMetadata("plugins/parcelize/parcelize-compiler/testData/box") -@TestDataPath("\$PROJECT_ROOT") -class ParcelizeBoxTestWithSerializableLikeExtension : AbstractParcelizeBoxTest() { - @Test - @TestMetadata("simple.kt") - fun testSimple() { - runTest("plugins/parcelize/parcelize-compiler/testData/box/simple.kt") - } - - override fun configure(builder: TestConfigurationBuilder) { - super.configure(builder) - builder.useConfigurators(::SerializableLikeExtensionProvider) - } -}