From 129de76288fe31c0eafb71888077bd0250062ab0 Mon Sep 17 00:00:00 2001 From: Ilmir Usmanov Date: Thu, 19 Nov 2020 22:00:27 +0100 Subject: [PATCH] Value classes: Generate @JvmInline annotation for inline classes but not for value classes. Since inline classes and value classes share the same flag, we use presence of the annotation to distinguish them. --- .../codegen/ErasedInlineClassBodyCodegen.kt | 8 + ...enConstructorWithInlineClassParameters.txt | 3 +- ...dApiAnnotationOnInlineClassCosntructor.txt | 3 +- .../kotlin/backend/jvm/JvmSymbols.kt | 9 + .../jvm/lower/JvmInlineClassLowering.kt | 16 +- .../serialization/DescriptorSerializer.kt | 4 +- ...PropertyWithInlineClassTypeInSignature.txt | 1 + .../annotationsOnHiddenConstructor.txt | 1 + .../companionObjectInsideInlineClass.txt | 1 + .../computablePropertiesInsideInlineClass.txt | 1 + .../inlineClasses/constructor.txt | 8 + ...constructorsWithDefaultParameterValues.txt | 1 + .../defaultInterfaceMethodsInInlineClass.txt | 1 + .../inlineClasses/inlineCharSequence.txt | 1 + .../inlineClasses/inlineCharSequence_ir.txt | 1 + .../inlineClassMembersVisibility.txt | 1 + ...inlineClassTypeParametersInConstructor.txt | 1 + ...lineClassWithInlineClassUnderlyingType.txt | 2 + .../inlineClassWithManyKindsOfMembers.txt | 1 + .../inlineCollection/UIntArrayWithFullJdk.txt | 2 + .../UIntArrayWithFullJdk_ir.txt | 2 + .../javaDefaultInterfaceMember.txt | 3 + .../bytecodeListing/inlineClasses/jvmName.txt | 1 + ...LevelFunctionReturningInlineClassValue.txt | 1 + .../inlineClasses/memberExtensionProperty.txt | 3 + ...oArgConstructorForInlineClassParameter.txt | 1 + .../noBridgesForErasedInlineClass.txt | 1 + .../inlineClasses/nullabilityInExpansion.txt | 14 + .../nullableAndNotNullPrimitive.txt | 1 + ...ericMethodWithInlineClassParameterType.txt | 2 + ...GenericMethodWithInlineClassReturnType.txt | 1 + .../primaryValsWithDifferentVisibilities.txt | 4 + ...dApiAnnotationOnInlineClassConstructor.txt | 1 + .../shapeOfInlineClassWithPrimitive.txt | 1 + .../stdlibManglingIn1430/new.txt | 1 + .../stdlibManglingIn1430/old.txt | 1 + .../codegen/bytecodeListing/kt42879.txt | 1 + .../InlineIntOverridesObject.txt | 2 +- .../basicValueClassDeclaration.fir.kt | 2 +- .../basicValueClassDeclaration.kt | 2 +- .../basicValueClassDeclaration.txt | 91 +++--- .../basicValueClassDeclarationDisabled.fir.kt | 2 +- .../basicValueClassDeclarationDisabled.kt | 2 +- .../basicValueClassDeclarationDisabled.txt | 93 +++--- .../constructorsJvmSignaturesClash.fir.kt | 2 +- .../constructorsJvmSignaturesClash.kt | 2 +- .../constructorsJvmSignaturesClash.txt | 95 +++--- .../delegatedPropertyInValueClass.fir.kt | 2 +- .../delegatedPropertyInValueClass.kt | 2 +- .../delegatedPropertyInValueClass.txt | 95 +++--- .../functionsJvmSignaturesClash.fir.kt | 2 +- .../functionsJvmSignaturesClash.kt | 2 +- .../functionsJvmSignaturesClash.txt | 133 ++++---- ...tionsJvmSignaturesConflictOnInheritance.kt | 2 +- ...ionsJvmSignaturesConflictOnInheritance.txt | 79 ++--- .../identityComparisonWithValueClasses.fir.kt | 2 +- .../identityComparisonWithValueClasses.kt | 2 +- .../identityComparisonWithValueClasses.txt | 43 +-- .../jvmInlineApplicability.fir.kt | 2 +- .../valueClasses/jvmInlineApplicability.kt | 2 +- .../valueClasses/jvmInlineApplicability.txt | 93 +++--- .../valueClasses/lateinitValueClasses.fir.kt | 2 +- .../valueClasses/lateinitValueClasses.kt | 2 +- .../valueClasses/lateinitValueClasses.txt | 31 +- ...senceOfInitializerBlockInsideValueClass.kt | 2 +- ...enceOfInitializerBlockInsideValueClass.txt | 27 +- ...OfPublicPrimaryConstructorForValueClass.kt | 2 +- ...fPublicPrimaryConstructorForValueClass.txt | 83 ++--- ...esWithBackingFieldsInsideValueClass.fir.kt | 2 +- ...ertiesWithBackingFieldsInsideValueClass.kt | 2 +- ...rtiesWithBackingFieldsInsideValueClass.txt | 65 ++-- .../valueClasses/recursiveValueClasses.fir.kt | 2 +- .../valueClasses/recursiveValueClasses.kt | 2 +- .../valueClasses/recursiveValueClasses.txt | 181 +++++------ ...embersAndConstructsInsideValueClass.fir.kt | 2 +- ...vedMembersAndConstructsInsideValueClass.kt | 2 +- ...edMembersAndConstructsInsideValueClass.txt | 125 ++++---- ...alueClassCanOnlyImplementInterfaces.fir.kt | 2 +- .../valueClassCanOnlyImplementInterfaces.kt | 2 +- .../valueClassCanOnlyImplementInterfaces.txt | 89 +++--- ...annotImplementInterfaceByDelegation.fir.kt | 2 +- ...assCannotImplementInterfaceByDelegation.kt | 2 +- ...ssCannotImplementInterfaceByDelegation.txt | 63 ++-- ...assConstructorParameterWithDefaultValue.kt | 2 +- ...ssConstructorParameterWithDefaultValue.txt | 27 +- .../valueClassDeclarationCheck.fir.kt | 2 +- .../valueClassDeclarationCheck.kt | 2 +- .../valueClassDeclarationCheck.txt | 287 +++++++++--------- .../valueClassImplementsCollection.kt | 2 +- .../valueClassImplementsCollection.txt | 51 ++-- ...lueClassWithForbiddenUnderlyingType.fir.kt | 2 +- .../valueClassWithForbiddenUnderlyingType.kt | 2 +- .../valueClassWithForbiddenUnderlyingType.txt | 153 +++++----- .../valueClassesInsideAnnotations.fir.kt | 2 +- .../valueClassesInsideAnnotations.kt | 2 +- .../valueClassesInsideAnnotations.txt | 97 +++--- ...varargsOnParametersOfValueClassType.fir.kt | 2 +- .../varargsOnParametersOfValueClassType.kt | 2 +- .../varargsOnParametersOfValueClassType.txt | 75 ++--- ...enConstructorWithInlineClassParameters.txt | 2 +- ...tationOnInlineClassCosntructor.runtime.txt | 2 +- ...dApiAnnotationOnInlineClassCosntructor.txt | 2 +- .../kotlin/resolve/inlineClassesUtils.kt | 2 +- 103 files changed, 1213 insertions(+), 1056 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/ErasedInlineClassBodyCodegen.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/ErasedInlineClassBodyCodegen.kt index c006510716f..bad25a8b3de 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/ErasedInlineClassBodyCodegen.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/ErasedInlineClassBodyCodegen.kt @@ -13,6 +13,7 @@ import org.jetbrains.kotlin.descriptors.FunctionDescriptor import org.jetbrains.kotlin.psi.KtClass import org.jetbrains.kotlin.psi.KtClassOrObject import org.jetbrains.kotlin.resolve.InlineClassDescriptorResolver +import org.jetbrains.kotlin.resolve.JVM_INLINE_ANNOTATION_FQ_NAME import org.jetbrains.kotlin.resolve.descriptorUtil.secondaryConstructors import org.jetbrains.kotlin.resolve.jvm.AsmTypes import org.jetbrains.kotlin.resolve.jvm.diagnostics.Synthetic @@ -55,6 +56,13 @@ class ErasedInlineClassBodyCodegen( generateUnboxMethod() generateFunctionsFromAny() generateSpecializedEqualsStub() + generateJvmInlineAnnotation() + } + + private fun generateJvmInlineAnnotation() { + if (descriptor.isInline) { + v.newAnnotation(JVM_INLINE_ANNOTATION_FQ_NAME.topLevelClassAsmType().descriptor, true).visitEnd() + } } private fun generateFunctionsFromAny() { diff --git a/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/classMembers/HiddenConstructorWithInlineClassParameters.txt b/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/classMembers/HiddenConstructorWithInlineClassParameters.txt index 25e45af2ad6..0abf465764c 100644 --- a/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/classMembers/HiddenConstructorWithInlineClassParameters.txt +++ b/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/classMembers/HiddenConstructorWithInlineClassParameters.txt @@ -28,7 +28,7 @@ public final class Test : R|kotlin/Any| { } -public final inline class Z : R|kotlin/Any| { +@R|kotlin/jvm/JvmInline|() public final inline class Z : R|kotlin/Any| { public open operator fun equals(other: R|kotlin/Any?|): R|kotlin/Boolean| public open fun hashCode(): R|kotlin/Int| @@ -41,3 +41,4 @@ public final inline class Z : R|kotlin/Any| { public constructor(x: R|kotlin/Int|): R|test/Z| } + diff --git a/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/classMembers/PublishedApiAnnotationOnInlineClassCosntructor.txt b/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/classMembers/PublishedApiAnnotationOnInlineClassCosntructor.txt index 01998465158..7d5c07fbbe9 100644 --- a/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/classMembers/PublishedApiAnnotationOnInlineClassCosntructor.txt +++ b/compiler/fir/analysis-tests/testData/loadCompiledKotlin/annotations/classMembers/PublishedApiAnnotationOnInlineClassCosntructor.txt @@ -1,4 +1,4 @@ -public final inline class Z : R|kotlin/Any| { +@R|kotlin/jvm/JvmInline|() public final inline class Z : R|kotlin/Any| { public open operator fun equals(other: R|kotlin/Any?|): R|kotlin/Boolean| public open fun hashCode(): R|kotlin/Int| @@ -11,3 +11,4 @@ public final inline class Z : R|kotlin/Any| { @R|kotlin/PublishedApi|() internal constructor(value: R|kotlin/Int|): R|test/Z| } + diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmSymbols.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmSymbols.kt index 9124cc6d687..2e1c2c6131b 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmSymbols.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmSymbols.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.backend.jvm import org.jetbrains.kotlin.backend.common.ir.Symbols +import org.jetbrains.kotlin.backend.common.ir.addChild import org.jetbrains.kotlin.backend.common.ir.createImplicitParameterDeclarationWithWrappedDescriptor import org.jetbrains.kotlin.backend.jvm.intrinsics.IrIntrinsicMethods import org.jetbrains.kotlin.builtins.StandardNames @@ -29,6 +30,7 @@ import org.jetbrains.kotlin.ir.types.* import org.jetbrains.kotlin.ir.util.* import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlin.resolve.JVM_INLINE_ANNOTATION_FQ_NAME import org.jetbrains.kotlin.resolve.jvm.JvmClassName import org.jetbrains.kotlin.storage.LockBasedStorageManager import org.jetbrains.kotlin.types.Variance @@ -73,6 +75,7 @@ class JvmSymbols( "kotlin.coroutines.jvm.internal" -> kotlinCoroutinesJvmInternalPackage "kotlin.jvm.internal" -> kotlinJvmInternalPackage "kotlin.jvm.functions" -> kotlinJvmFunctionsPackage + "kotlin.jvm" -> kotlinJvmPackage "kotlin.reflect" -> kotlinReflectPackage "java.lang" -> javaLangPackage else -> error("Other packages are not supported yet: $fqName") @@ -392,6 +395,12 @@ class JvmSymbols( } } + val jvmInlineAnnotation: IrClassSymbol = createClass(JVM_INLINE_ANNOTATION_FQ_NAME, ClassKind.ANNOTATION_CLASS).apply { + owner.addConstructor { + isPrimary = true + } + } + private data class PropertyReferenceKey( val mutable: Boolean, val parameterCount: Int, diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmInlineClassLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmInlineClassLowering.kt index 4e95b29f535..d7ce8143340 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmInlineClassLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmInlineClassLowering.kt @@ -28,10 +28,7 @@ import org.jetbrains.kotlin.ir.builders.declarations.addConstructor import org.jetbrains.kotlin.ir.builders.declarations.buildFun import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.expressions.* -import org.jetbrains.kotlin.ir.expressions.impl.IrCallImpl -import org.jetbrains.kotlin.ir.expressions.impl.IrFunctionReferenceImpl -import org.jetbrains.kotlin.ir.expressions.impl.IrGetValueImpl -import org.jetbrains.kotlin.ir.expressions.impl.IrSetValueImpl +import org.jetbrains.kotlin.ir.expressions.impl.* import org.jetbrains.kotlin.ir.symbols.IrValueSymbol import org.jetbrains.kotlin.ir.transformStatement import org.jetbrains.kotlin.ir.types.IrType @@ -42,6 +39,7 @@ import org.jetbrains.kotlin.ir.util.* import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid import org.jetbrains.kotlin.load.java.JvmAbi import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlin.resolve.JVM_INLINE_ANNOTATION_FQ_NAME import org.jetbrains.kotlin.utils.addToStdlib.safeAs val jvmInlineClassPhase = makeIrFilePhase( @@ -98,11 +96,21 @@ private class JvmInlineClassLowering(private val context: JvmBackendContext) : F buildBoxFunction(declaration) buildUnboxFunction(declaration) buildSpecializedEqualsMethod(declaration) + addJvmInlineAnnotation(declaration) } return declaration } + private fun addJvmInlineAnnotation(declaration: IrClass) { + if (declaration.hasAnnotation(JVM_INLINE_ANNOTATION_FQ_NAME)) return + val constructor = context.ir.symbols.jvmInlineAnnotation.constructors.first() + declaration.annotations = declaration.annotations + IrConstructorCallImpl.fromSymbolOwner( + constructor.owner.returnType, + constructor + ) + } + private fun transformFunctionFlat(function: IrFunction): List? { if (function.isPrimaryInlineClassConstructor) return null diff --git a/compiler/serialization/src/org/jetbrains/kotlin/serialization/DescriptorSerializer.kt b/compiler/serialization/src/org/jetbrains/kotlin/serialization/DescriptorSerializer.kt index 6ead2068679..f6f0b075351 100644 --- a/compiler/serialization/src/org/jetbrains/kotlin/serialization/DescriptorSerializer.kt +++ b/compiler/serialization/src/org/jetbrains/kotlin/serialization/DescriptorSerializer.kt @@ -66,7 +66,9 @@ class DescriptorSerializer private constructor( val builder = ProtoBuf.Class.newBuilder() val flags = Flags.getClassFlags( - hasAnnotations(classDescriptor), + // Since 1.4.30 isInline & isValue are the same flag. To distinguish them we generate @JvmInline annotation. + // See ClassDescriptor.isInlineClass() function. + hasAnnotations(classDescriptor) || classDescriptor.isInline, ProtoEnumFlags.descriptorVisibility(normalizeVisibility(classDescriptor)), ProtoEnumFlags.modality(classDescriptor.modality), ProtoEnumFlags.classKind(classDescriptor.kind, classDescriptor.isCompanionObject), diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/annotatedPropertyWithInlineClassTypeInSignature.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/annotatedPropertyWithInlineClassTypeInSignature.txt index bd90808cf29..cb52f309e1e 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/annotatedPropertyWithInlineClassTypeInSignature.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/annotatedPropertyWithInlineClassTypeInSignature.txt @@ -25,6 +25,7 @@ public final class C { public final method getReturnType-a_XrcN0(): int } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class Z { // source: 'annotatedPropertyWithInlineClassTypeInSignature.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/annotationsOnHiddenConstructor.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/annotationsOnHiddenConstructor.txt index 2bc0fd2dd0a..13e92ea3dc9 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/annotationsOnHiddenConstructor.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/annotationsOnHiddenConstructor.txt @@ -58,6 +58,7 @@ public final class Test { public final inner class Test$Inner } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class Z { // source: 'annotationsOnHiddenConstructor.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/companionObjectInsideInlineClass.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/companionObjectInsideInlineClass.txt index ad5903e1bdd..2dba80fe2ba 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/companionObjectInsideInlineClass.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/companionObjectInsideInlineClass.txt @@ -7,6 +7,7 @@ public final class Foo$Companion { public final inner class Foo$Companion } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class Foo { // source: 'companionObjectInsideInlineClass.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/computablePropertiesInsideInlineClass.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/computablePropertiesInsideInlineClass.txt index b87a0dac6d7..082cd496bb8 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/computablePropertiesInsideInlineClass.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/computablePropertiesInsideInlineClass.txt @@ -1,3 +1,4 @@ +@kotlin.jvm.JvmInline @kotlin.Metadata public final class Foo { // source: 'computablePropertiesInsideInlineClass.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/constructor.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/constructor.txt index ee562d2bb17..c52416d106a 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/constructor.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/constructor.txt @@ -1,3 +1,4 @@ +@kotlin.jvm.JvmInline @kotlin.Metadata public final class IC1 { // source: 'constructor.kt' @@ -16,6 +17,7 @@ public final class IC1 { public synthetic final method unbox-impl(): int } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class IC11 { // source: 'constructor.kt' @@ -34,6 +36,7 @@ public final class IC11 { public synthetic final method unbox-impl(): int } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class IC2 { // source: 'constructor.kt' @@ -52,6 +55,7 @@ public final class IC2 { public synthetic final method unbox-impl(): int } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class IC4 { // source: 'constructor.kt' @@ -70,6 +74,7 @@ public final class IC4 { public synthetic final method unbox-impl(): int } +@kotlin.jvm.JvmInline @kotlin.Metadata final class PIC1 { // source: 'constructor.kt' @@ -88,6 +93,7 @@ final class PIC1 { public synthetic final method unbox-impl(): int } +@kotlin.jvm.JvmInline @kotlin.Metadata final class PIC11 { // source: 'constructor.kt' @@ -106,6 +112,7 @@ final class PIC11 { public synthetic final method unbox-impl(): int } +@kotlin.jvm.JvmInline @kotlin.Metadata final class PIC2 { // source: 'constructor.kt' @@ -124,6 +131,7 @@ final class PIC2 { public synthetic final method unbox-impl(): int } +@kotlin.jvm.JvmInline @kotlin.Metadata final class PIC4 { // source: 'constructor.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/constructorsWithDefaultParameterValues.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/constructorsWithDefaultParameterValues.txt index 73a96cd8ce4..497e3099495 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/constructorsWithDefaultParameterValues.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/constructorsWithDefaultParameterValues.txt @@ -1,3 +1,4 @@ +@kotlin.jvm.JvmInline @kotlin.Metadata public final class Test { // source: 'constructorsWithDefaultParameterValues.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/defaultInterfaceMethodsInInlineClass.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/defaultInterfaceMethodsInInlineClass.txt index 3f64b2996c7..3b22c446f02 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/defaultInterfaceMethodsInInlineClass.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/defaultInterfaceMethodsInInlineClass.txt @@ -17,6 +17,7 @@ public interface IFoo { public final inner class IFoo$DefaultImpls } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class L { // source: 'defaultInterfaceMethodsInInlineClass.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineCharSequence.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineCharSequence.txt index e0177b96e6a..085c033d024 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineCharSequence.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineCharSequence.txt @@ -1,3 +1,4 @@ +@kotlin.jvm.JvmInline @kotlin.Metadata public final class InlineCharSequence { // source: 'inlineCharSequence.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineCharSequence_ir.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineCharSequence_ir.txt index ddfc96d48ae..1f3d6f5832a 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineCharSequence_ir.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineCharSequence_ir.txt @@ -1,3 +1,4 @@ +@kotlin.jvm.JvmInline @kotlin.Metadata public final class InlineCharSequence { // source: 'inlineCharSequence.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineClassMembersVisibility.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineClassMembersVisibility.txt index f67ce92cb03..bce676386de 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineClassMembersVisibility.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineClassMembersVisibility.txt @@ -1,3 +1,4 @@ +@kotlin.jvm.JvmInline @kotlin.Metadata public final class Z { // source: 'inlineClassMembersVisibility.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineClassTypeParametersInConstructor.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineClassTypeParametersInConstructor.txt index 672f27ceb0d..1ece1222078 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineClassTypeParametersInConstructor.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineClassTypeParametersInConstructor.txt @@ -76,6 +76,7 @@ public abstract class TestSealed { public final inner class TestSealed$Case } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class Z { // source: 'inlineClassTypeParametersInConstructor.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineClassWithInlineClassUnderlyingType.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineClassWithInlineClassUnderlyingType.txt index 069448e26da..0f0f69f1b49 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineClassWithInlineClassUnderlyingType.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineClassWithInlineClassUnderlyingType.txt @@ -1,3 +1,4 @@ +@kotlin.jvm.JvmInline @kotlin.Metadata public final class Z1 { // source: 'inlineClassWithInlineClassUnderlyingType.kt' @@ -16,6 +17,7 @@ public final class Z1 { public synthetic final method unbox-impl(): int } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class Z2 { // source: 'inlineClassWithInlineClassUnderlyingType.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineClassWithManyKindsOfMembers.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineClassWithManyKindsOfMembers.txt index f1240acc98a..cd375cb50d3 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineClassWithManyKindsOfMembers.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineClassWithManyKindsOfMembers.txt @@ -56,6 +56,7 @@ public interface IFoo { public abstract method setOverridingVar(p0: int): void } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class Z { // source: 'inlineClassWithManyKindsOfMembers.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineCollection/UIntArrayWithFullJdk.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineCollection/UIntArrayWithFullJdk.txt index 891268caf28..61073eaa7e0 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineCollection/UIntArrayWithFullJdk.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineCollection/UIntArrayWithFullJdk.txt @@ -1,3 +1,4 @@ +@kotlin.jvm.JvmInline @kotlin.Metadata public final class UInt { // source: 'UIntArrayWithFullJdk.kt' @@ -16,6 +17,7 @@ public final class UInt { public synthetic final method unbox-impl(): int } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class UIntArray { // source: 'UIntArrayWithFullJdk.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineCollection/UIntArrayWithFullJdk_ir.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineCollection/UIntArrayWithFullJdk_ir.txt index a455a1ff4a5..8f0a0a75320 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineCollection/UIntArrayWithFullJdk_ir.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineCollection/UIntArrayWithFullJdk_ir.txt @@ -1,3 +1,4 @@ +@kotlin.jvm.JvmInline @kotlin.Metadata public final class UInt { // source: 'UIntArrayWithFullJdk.kt' @@ -16,6 +17,7 @@ public final class UInt { public synthetic final method unbox-impl(): int } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class UIntArray { // source: 'UIntArrayWithFullJdk.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/javaDefaultInterfaceMember.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/javaDefaultInterfaceMember.txt index daacfa6762a..2d69cc08b7b 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/javaDefaultInterfaceMember.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/javaDefaultInterfaceMember.txt @@ -23,6 +23,7 @@ public interface KFooUnrelated { public abstract method foo(): void } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class Test1 { // source: 'javaDefaultInterfaceMember.kt' @@ -41,6 +42,7 @@ public final class Test1 { public synthetic final method unbox-impl(): int } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class Test2 { // source: 'javaDefaultInterfaceMember.kt' @@ -59,6 +61,7 @@ public final class Test2 { public synthetic final method unbox-impl(): int } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class Test3 { // source: 'javaDefaultInterfaceMember.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/jvmName.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/jvmName.txt index 6f47578950e..f1fe0d53a8a 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/jvmName.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/jvmName.txt @@ -6,6 +6,7 @@ public final class C { public final @kotlin.jvm.JvmName @org.jetbrains.annotations.NotNull method test(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class Foo { // source: 'jvmName.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/jvmOverloadsOnTopLevelFunctionReturningInlineClassValue.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/jvmOverloadsOnTopLevelFunctionReturningInlineClassValue.txt index 9807d43a4c1..d6c34afc662 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/jvmOverloadsOnTopLevelFunctionReturningInlineClassValue.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/jvmOverloadsOnTopLevelFunctionReturningInlineClassValue.txt @@ -6,6 +6,7 @@ public final class JvmOverloadsOnTopLevelFunctionReturningInlineClassValueKt { public final static @kotlin.jvm.JvmOverloads method testTopLevelFunction(p0: int): int } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class Z { // source: 'jvmOverloadsOnTopLevelFunctionReturningInlineClassValue.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/memberExtensionProperty.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/memberExtensionProperty.txt index 586ae04b510..7b880bae9a0 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/memberExtensionProperty.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/memberExtensionProperty.txt @@ -4,6 +4,7 @@ public interface StrS { public abstract method getS(@org.jetbrains.annotations.NotNull p0: java.lang.String): int } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class Z1 { // source: 'memberExtensionProperty.kt' @@ -23,6 +24,7 @@ public final class Z1 { public synthetic final method unbox-impl(): int } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class Z2 { // source: 'memberExtensionProperty.kt' @@ -42,6 +44,7 @@ public final class Z2 { public synthetic final method unbox-impl(): int } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class Z3 { // source: 'memberExtensionProperty.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/noArgConstructorForInlineClassParameter.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/noArgConstructorForInlineClassParameter.txt index acfba7c79ca..28bec796647 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/noArgConstructorForInlineClassParameter.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/noArgConstructorForInlineClassParameter.txt @@ -8,6 +8,7 @@ public final class Test { public final method getZ-a_XrcN0(): int } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class Z { // source: 'noArgConstructorForInlineClassParameter.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/noBridgesForErasedInlineClass.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/noBridgesForErasedInlineClass.txt index 384d88d7cc8..fe82203478c 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/noBridgesForErasedInlineClass.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/noBridgesForErasedInlineClass.txt @@ -4,6 +4,7 @@ public interface A { public abstract method foo(p0: java.lang.Object): void } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class Foo { // source: 'noBridgesForErasedInlineClass.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/nullabilityInExpansion.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/nullabilityInExpansion.txt index 2126870e9e3..ea3daa9de5e 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/nullabilityInExpansion.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/nullabilityInExpansion.txt @@ -19,6 +19,7 @@ public final class NullabilityInExpansionKt { public final static @org.jetbrains.annotations.NotNull method zwrapNbox(p0: int): Z1 } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class Q1 { // source: 'nullabilityInExpansion.kt' @@ -37,6 +38,7 @@ public final class Q1 { public synthetic final method unbox-impl(): java.lang.Integer } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class Q2 { // source: 'nullabilityInExpansion.kt' @@ -55,6 +57,7 @@ public final class Q2 { public synthetic final method unbox-impl(): java.lang.Integer } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class QN { // source: 'nullabilityInExpansion.kt' @@ -73,6 +76,7 @@ public final class QN { public synthetic final method unbox-impl(): Q1 } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class S1 { // source: 'nullabilityInExpansion.kt' @@ -91,6 +95,7 @@ public final class S1 { public synthetic final method unbox-impl(): java.lang.String } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class S2 { // source: 'nullabilityInExpansion.kt' @@ -109,6 +114,7 @@ public final class S2 { public synthetic final method unbox-impl(): java.lang.String } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class SN { // source: 'nullabilityInExpansion.kt' @@ -127,6 +133,7 @@ public final class SN { public synthetic final method unbox-impl(): java.lang.String } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class SN2 { // source: 'nullabilityInExpansion.kt' @@ -145,6 +152,7 @@ public final class SN2 { public synthetic final method unbox-impl(): java.lang.String } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class W1 { // source: 'nullabilityInExpansion.kt' @@ -163,6 +171,7 @@ public final class W1 { public synthetic final method unbox-impl(): java.lang.String } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class W2 { // source: 'nullabilityInExpansion.kt' @@ -181,6 +190,7 @@ public final class W2 { public synthetic final method unbox-impl(): java.lang.String } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class WN { // source: 'nullabilityInExpansion.kt' @@ -199,6 +209,7 @@ public final class WN { public synthetic final method unbox-impl(): W1 } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class Z1 { // source: 'nullabilityInExpansion.kt' @@ -217,6 +228,7 @@ public final class Z1 { public synthetic final method unbox-impl(): int } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class Z2 { // source: 'nullabilityInExpansion.kt' @@ -235,6 +247,7 @@ public final class Z2 { public synthetic final method unbox-impl(): int } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class ZN { // source: 'nullabilityInExpansion.kt' @@ -253,6 +266,7 @@ public final class ZN { public synthetic final method unbox-impl(): Z1 } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class ZN2 { // source: 'nullabilityInExpansion.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/nullableAndNotNullPrimitive.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/nullableAndNotNullPrimitive.txt index e05a34f7f14..58548bfb929 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/nullableAndNotNullPrimitive.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/nullableAndNotNullPrimitive.txt @@ -1,3 +1,4 @@ +@kotlin.jvm.JvmInline @kotlin.Metadata public final class IC { // source: 'nullableAndNotNullPrimitive.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/overridingGenericMethodWithInlineClassParameterType.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/overridingGenericMethodWithInlineClassParameterType.txt index 2070532a182..8d1c3a10a71 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/overridingGenericMethodWithInlineClassParameterType.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/overridingGenericMethodWithInlineClassParameterType.txt @@ -1,3 +1,4 @@ +@kotlin.jvm.JvmInline @kotlin.Metadata public final class CFoo { // source: 'overridingGenericMethodWithInlineClassParameterType.kt' @@ -25,6 +26,7 @@ public interface IFoo { public abstract method foo(p0: java.lang.Object): void } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class Z { // source: 'overridingGenericMethodWithInlineClassParameterType.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/overridingGenericMethodWithInlineClassReturnType.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/overridingGenericMethodWithInlineClassReturnType.txt index 1b67705af80..bc7b2b2c4ae 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/overridingGenericMethodWithInlineClassReturnType.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/overridingGenericMethodWithInlineClassReturnType.txt @@ -4,6 +4,7 @@ public interface A { public abstract method foo(): java.lang.Object } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class Foo { // source: 'overridingGenericMethodWithInlineClassReturnType.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/primaryValsWithDifferentVisibilities.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/primaryValsWithDifferentVisibilities.txt index 091dc3b61bf..4de64667772 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/primaryValsWithDifferentVisibilities.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/primaryValsWithDifferentVisibilities.txt @@ -4,6 +4,7 @@ public interface IValue { public abstract method getValue(): int } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class TestInternal { // source: 'primaryValsWithDifferentVisibilities.kt' @@ -21,6 +22,7 @@ public final class TestInternal { public synthetic final method unbox-impl(): int } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class TestOverriding { // source: 'primaryValsWithDifferentVisibilities.kt' @@ -39,6 +41,7 @@ public final class TestOverriding { public synthetic final method unbox-impl(): int } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class TestPrivate { // source: 'primaryValsWithDifferentVisibilities.kt' @@ -56,6 +59,7 @@ public final class TestPrivate { public synthetic final method unbox-impl(): int } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class TestPublic { // source: 'primaryValsWithDifferentVisibilities.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/publishedApiAnnotationOnInlineClassConstructor.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/publishedApiAnnotationOnInlineClassConstructor.txt index 27f95bd7816..b3dfa39d8ae 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/publishedApiAnnotationOnInlineClassConstructor.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/publishedApiAnnotationOnInlineClassConstructor.txt @@ -1,3 +1,4 @@ +@kotlin.jvm.JvmInline @kotlin.Metadata public final class Z { // source: 'publishedApiAnnotationOnInlineClassConstructor.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/shapeOfInlineClassWithPrimitive.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/shapeOfInlineClassWithPrimitive.txt index 5898396bb93..8360c4dfd52 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/shapeOfInlineClassWithPrimitive.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/shapeOfInlineClassWithPrimitive.txt @@ -1,3 +1,4 @@ +@kotlin.jvm.JvmInline @kotlin.Metadata public final class Foo { // source: 'shapeOfInlineClassWithPrimitive.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/stdlibManglingIn1430/new.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/stdlibManglingIn1430/new.txt index cdb5f8ffbcf..bb54a217227 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/stdlibManglingIn1430/new.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/stdlibManglingIn1430/new.txt @@ -1,3 +1,4 @@ +@kotlin.jvm.JvmInline @kotlin.Metadata public final class test/IC { // source: 'new.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/stdlibManglingIn1430/old.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/stdlibManglingIn1430/old.txt index 51401bcadfe..086ba103a35 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/stdlibManglingIn1430/old.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/stdlibManglingIn1430/old.txt @@ -4,6 +4,7 @@ public final class kotlin/_2Kt { public final static method foo-wfSZ3cc(p0: int, p1: int): void } +@kotlin.jvm.JvmInline @kotlin.Metadata public final class test/IC { // source: '1.kt' diff --git a/compiler/testData/codegen/bytecodeListing/kt42879.txt b/compiler/testData/codegen/bytecodeListing/kt42879.txt index 4516c2dac3a..9d9d38194b9 100644 --- a/compiler/testData/codegen/bytecodeListing/kt42879.txt +++ b/compiler/testData/codegen/bytecodeListing/kt42879.txt @@ -1,3 +1,4 @@ +@kotlin.jvm.JvmInline @kotlin.Metadata public final class A { // source: 'kt42879.kt' diff --git a/compiler/testData/compileJavaAgainstKotlin/method/primitiveOverrideWithInlineClass/InlineIntOverridesObject.txt b/compiler/testData/compileJavaAgainstKotlin/method/primitiveOverrideWithInlineClass/InlineIntOverridesObject.txt index e030987629f..999b1a75885 100644 --- a/compiler/testData/compileJavaAgainstKotlin/method/primitiveOverrideWithInlineClass/InlineIntOverridesObject.txt +++ b/compiler/testData/compileJavaAgainstKotlin/method/primitiveOverrideWithInlineClass/InlineIntOverridesObject.txt @@ -14,7 +14,7 @@ public open class KFooZ : test.IFoo { public open fun foo(): test.Z } -public final value class Z { +@kotlin.jvm.JvmInline public final value class Z { public constructor Z(/*0*/ kotlin.Int) public final val value: kotlin.Int } diff --git a/compiler/testData/diagnostics/tests/valueClasses/basicValueClassDeclaration.fir.kt b/compiler/testData/diagnostics/tests/valueClasses/basicValueClassDeclaration.fir.kt index 2dee1eb7ee7..bf36fea2102 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/basicValueClassDeclaration.fir.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/basicValueClassDeclaration.fir.kt @@ -1,6 +1,6 @@ // !LANGUAGE: +InlineClasses -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/basicValueClassDeclaration.kt b/compiler/testData/diagnostics/tests/valueClasses/basicValueClassDeclaration.kt index 95e721c23ae..b27c46ca10e 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/basicValueClassDeclaration.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/basicValueClassDeclaration.kt @@ -1,6 +1,6 @@ // !LANGUAGE: +InlineClasses -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/basicValueClassDeclaration.txt b/compiler/testData/diagnostics/tests/valueClasses/basicValueClassDeclaration.txt index e73947de324..a7a6cefa46d 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/basicValueClassDeclaration.txt +++ b/compiler/testData/diagnostics/tests/valueClasses/basicValueClassDeclaration.txt @@ -2,55 +2,58 @@ package package kotlin { - @kotlin.JvmInline public final value class Foo { - public constructor Foo(/*0*/ x: kotlin.Int) - public final val x: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + package kotlin.jvm { - public final value annotation class InlineAnn : kotlin.Annotation { - public constructor InlineAnn() - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class Foo { + public constructor Foo(/*0*/ x: kotlin.Int) + public final val x: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - public final value enum class InlineEnum : kotlin.Enum { - private constructor InlineEnum() - public final override /*1*/ /*fake_override*/ val name: kotlin.String - public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int - protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any - public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: kotlin.InlineEnum): kotlin.Int - public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - protected/*protected and package*/ final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit - public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class! - public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + public final value annotation class InlineAnn : kotlin.Annotation { + public constructor InlineAnn() + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - // Static members - public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): kotlin.InlineEnum - public final /*synthesized*/ fun values(): kotlin.Array - } + public final value enum class InlineEnum : kotlin.Enum { + private constructor InlineEnum() + public final override /*1*/ /*fake_override*/ val name: kotlin.String + public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int + protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any + public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: kotlin.jvm.InlineEnum): kotlin.Int + public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + protected/*protected and package*/ final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit + public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class! + public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - public value interface InlineInterface { - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + // Static members + public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): kotlin.jvm.InlineEnum + public final /*synthesized*/ fun values(): kotlin.Array + } - public value object InlineObject { - private constructor InlineObject() - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + public value interface InlineInterface { + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - public final annotation class JvmInline : kotlin.Annotation { - public constructor JvmInline() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + public value object InlineObject { + private constructor InlineObject() + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } + + public final annotation class JvmInline : kotlin.Annotation { + public constructor JvmInline() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } } } diff --git a/compiler/testData/diagnostics/tests/valueClasses/basicValueClassDeclarationDisabled.fir.kt b/compiler/testData/diagnostics/tests/valueClasses/basicValueClassDeclarationDisabled.fir.kt index 161e5275090..cdb987b0673 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/basicValueClassDeclarationDisabled.fir.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/basicValueClassDeclarationDisabled.fir.kt @@ -1,7 +1,7 @@ // !LANGUAGE: -InlineClasses // !DIAGNOSTICS: -UNUSED_PARAMETER -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/basicValueClassDeclarationDisabled.kt b/compiler/testData/diagnostics/tests/valueClasses/basicValueClassDeclarationDisabled.kt index 5411729d17f..129eec441aa 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/basicValueClassDeclarationDisabled.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/basicValueClassDeclarationDisabled.kt @@ -1,7 +1,7 @@ // !LANGUAGE: -InlineClasses // !DIAGNOSTICS: -UNUSED_PARAMETER -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/basicValueClassDeclarationDisabled.txt b/compiler/testData/diagnostics/tests/valueClasses/basicValueClassDeclarationDisabled.txt index 4d045c56d64..9471b847505 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/basicValueClassDeclarationDisabled.txt +++ b/compiler/testData/diagnostics/tests/valueClasses/basicValueClassDeclarationDisabled.txt @@ -2,56 +2,59 @@ package package kotlin { - public final value class Foo { - public constructor Foo(/*0*/ x: kotlin.Int) - public final val x: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + package kotlin.jvm { - public final value annotation class InlineAnn : kotlin.Annotation { - public constructor InlineAnn() - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + public final value class Foo { + public constructor Foo(/*0*/ x: kotlin.Int) + public final val x: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - public final value enum class InlineEnum : kotlin.Enum { - private constructor InlineEnum() - public final override /*1*/ /*fake_override*/ val name: kotlin.String - public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int - protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any - public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: kotlin.InlineEnum): kotlin.Int - public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - protected/*protected and package*/ final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit - public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class! - public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + public final value annotation class InlineAnn : kotlin.Annotation { + public constructor InlineAnn() + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - // Static members - public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): kotlin.InlineEnum - public final /*synthesized*/ fun values(): kotlin.Array - } + public final value enum class InlineEnum : kotlin.Enum { + private constructor InlineEnum() + public final override /*1*/ /*fake_override*/ val name: kotlin.String + public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int + protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any + public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: kotlin.jvm.InlineEnum): kotlin.Int + public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + protected/*protected and package*/ final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit + public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class! + public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - public value object InlineObject { - private constructor InlineObject() - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + // Static members + public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): kotlin.jvm.InlineEnum + public final /*synthesized*/ fun values(): kotlin.Array + } - public final annotation class JvmInline : kotlin.Annotation { - public constructor JvmInline() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + public value object InlineObject { + private constructor InlineObject() + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class NotVal { - public constructor NotVal(/*0*/ x: kotlin.Int) - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + public final annotation class JvmInline : kotlin.Annotation { + public constructor JvmInline() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } + + @kotlin.jvm.JvmInline public final value class NotVal { + public constructor NotVal(/*0*/ x: kotlin.Int) + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } } } diff --git a/compiler/testData/diagnostics/tests/valueClasses/constructorsJvmSignaturesClash.fir.kt b/compiler/testData/diagnostics/tests/valueClasses/constructorsJvmSignaturesClash.fir.kt index fbef2363032..f5e19726e2a 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/constructorsJvmSignaturesClash.fir.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/constructorsJvmSignaturesClash.fir.kt @@ -1,7 +1,7 @@ // !LANGUAGE: +InlineClasses // !DIAGNOSTICS: -UNUSED_PARAMETER -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/constructorsJvmSignaturesClash.kt b/compiler/testData/diagnostics/tests/valueClasses/constructorsJvmSignaturesClash.kt index 96577da92e1..20f1bd2468d 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/constructorsJvmSignaturesClash.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/constructorsJvmSignaturesClash.kt @@ -1,7 +1,7 @@ // !LANGUAGE: +InlineClasses // !DIAGNOSTICS: -UNUSED_PARAMETER -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/constructorsJvmSignaturesClash.txt b/compiler/testData/diagnostics/tests/valueClasses/constructorsJvmSignaturesClash.txt index 6fc4c16ec8a..a5ca3b1c84f 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/constructorsJvmSignaturesClash.txt +++ b/compiler/testData/diagnostics/tests/valueClasses/constructorsJvmSignaturesClash.txt @@ -2,56 +2,59 @@ package package kotlin { - public final annotation class JvmInline : kotlin.Annotation { - public constructor JvmInline() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + package kotlin.jvm { - public final class TestErr1 { - public constructor TestErr1(/*0*/ a: kotlin.Int) - public constructor TestErr1(/*0*/ x: kotlin.X) - public final val a: kotlin.Int - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + public final annotation class JvmInline : kotlin.Annotation { + public constructor JvmInline() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - public final class TestErr2 { - public constructor TestErr2(/*0*/ a: kotlin.Int, /*1*/ b: kotlin.Int) - public constructor TestErr2(/*0*/ x: kotlin.X) - public constructor TestErr2(/*0*/ z: kotlin.Z) - public final val a: kotlin.Int - public final val b: kotlin.Int - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + public final class TestErr1 { + public constructor TestErr1(/*0*/ a: kotlin.Int) + public constructor TestErr1(/*0*/ x: kotlin.jvm.X) + public final val a: kotlin.Int + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - public final class TestOk1 { - public constructor TestOk1(/*0*/ a: kotlin.Int, /*1*/ b: kotlin.Int) - public constructor TestOk1(/*0*/ x: kotlin.X) - public final val a: kotlin.Int - public final val b: kotlin.Int - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + public final class TestErr2 { + public constructor TestErr2(/*0*/ a: kotlin.Int, /*1*/ b: kotlin.Int) + public constructor TestErr2(/*0*/ x: kotlin.jvm.X) + public constructor TestErr2(/*0*/ z: kotlin.jvm.Z) + public final val a: kotlin.Int + public final val b: kotlin.Int + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class X { - public constructor X(/*0*/ x: kotlin.Int) - public final val x: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + public final class TestOk1 { + public constructor TestOk1(/*0*/ a: kotlin.Int, /*1*/ b: kotlin.Int) + public constructor TestOk1(/*0*/ x: kotlin.jvm.X) + public final val a: kotlin.Int + public final val b: kotlin.Int + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class Z { - public constructor Z(/*0*/ x: kotlin.Int) - public final val x: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + @kotlin.jvm.JvmInline public final value class X { + public constructor X(/*0*/ x: kotlin.Int) + public final val x: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } + + @kotlin.jvm.JvmInline public final value class Z { + public constructor Z(/*0*/ x: kotlin.Int) + public final val x: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } } } diff --git a/compiler/testData/diagnostics/tests/valueClasses/delegatedPropertyInValueClass.fir.kt b/compiler/testData/diagnostics/tests/valueClasses/delegatedPropertyInValueClass.fir.kt index c1e7abba11b..78978f3ef38 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/delegatedPropertyInValueClass.fir.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/delegatedPropertyInValueClass.fir.kt @@ -1,6 +1,6 @@ // !LANGUAGE: +InlineClasses -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/delegatedPropertyInValueClass.kt b/compiler/testData/diagnostics/tests/valueClasses/delegatedPropertyInValueClass.kt index 5b9079fa89f..f000be7da44 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/delegatedPropertyInValueClass.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/delegatedPropertyInValueClass.kt @@ -1,6 +1,6 @@ // !LANGUAGE: +InlineClasses -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/delegatedPropertyInValueClass.txt b/compiler/testData/diagnostics/tests/valueClasses/delegatedPropertyInValueClass.txt index ebb31a9479f..88d564e2961 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/delegatedPropertyInValueClass.txt +++ b/compiler/testData/diagnostics/tests/valueClasses/delegatedPropertyInValueClass.txt @@ -2,56 +2,59 @@ package package kotlin { - public final annotation class JvmInline : kotlin.Annotation { - public constructor JvmInline() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + package kotlin.jvm { - public final class Val { - public constructor Val() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ kProp: kotlin.Any?): kotlin.Int - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + public final annotation class JvmInline : kotlin.Annotation { + public constructor JvmInline() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - public object ValObject { - private constructor ValObject() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ kProp: kotlin.Any?): kotlin.Int - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + public final class Val { + public constructor Val() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ kProp: kotlin.Any?): kotlin.Int + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - public final class Var { - public constructor Var() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ kProp: kotlin.Any?): kotlin.Int - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ kProp: kotlin.Any?, /*2*/ value: kotlin.Int): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + public object ValObject { + private constructor ValObject() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ kProp: kotlin.Any?): kotlin.Int + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - public object VarObject { - private constructor VarObject() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ kProp: kotlin.Any?): kotlin.Int - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ kProp: kotlin.Any?, /*2*/ value: kotlin.Int): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + public final class Var { + public constructor Var() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ kProp: kotlin.Any?): kotlin.Int + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ kProp: kotlin.Any?, /*2*/ value: kotlin.Int): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class Z { - public constructor Z(/*0*/ data: kotlin.Int) - public final val data: kotlin.Int - public final val testVal: kotlin.Int - public final val testValBySingleton: kotlin.Int - public final var testVar: kotlin.Int - public final var testVarBySingleton: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + public object VarObject { + private constructor VarObject() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ kProp: kotlin.Any?): kotlin.Int + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ kProp: kotlin.Any?, /*2*/ value: kotlin.Int): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } + + @kotlin.jvm.JvmInline public final value class Z { + public constructor Z(/*0*/ data: kotlin.Int) + public final val data: kotlin.Int + public final val testVal: kotlin.Int + public final val testValBySingleton: kotlin.Int + public final var testVar: kotlin.Int + public final var testVarBySingleton: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } } } diff --git a/compiler/testData/diagnostics/tests/valueClasses/functionsJvmSignaturesClash.fir.kt b/compiler/testData/diagnostics/tests/valueClasses/functionsJvmSignaturesClash.fir.kt index dff6941bf0d..6b778549a9a 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/functionsJvmSignaturesClash.fir.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/functionsJvmSignaturesClash.fir.kt @@ -1,7 +1,7 @@ // !LANGUAGE: +InlineClasses // !DIAGNOSTICS: -UNUSED_PARAMETER -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/functionsJvmSignaturesClash.kt b/compiler/testData/diagnostics/tests/valueClasses/functionsJvmSignaturesClash.kt index 1222ff952f8..6a1ce3eefc6 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/functionsJvmSignaturesClash.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/functionsJvmSignaturesClash.kt @@ -1,7 +1,7 @@ // !LANGUAGE: +InlineClasses // !DIAGNOSTICS: -UNUSED_PARAMETER -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/functionsJvmSignaturesClash.txt b/compiler/testData/diagnostics/tests/valueClasses/functionsJvmSignaturesClash.txt index d33a5eded5f..40dd2b88326 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/functionsJvmSignaturesClash.txt +++ b/compiler/testData/diagnostics/tests/valueClasses/functionsJvmSignaturesClash.txt @@ -1,77 +1,80 @@ package package kotlin { - public fun testFunVsExt(/*0*/ x: kotlin.X): kotlin.Unit - public fun testMixed(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.Int): kotlin.Unit - public fun testMixed(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.X): kotlin.Unit - public fun testMixed(/*0*/ x: kotlin.X, /*1*/ y: kotlin.Int): kotlin.Unit - public fun testMixed(/*0*/ x: kotlin.X, /*1*/ y: kotlin.X): kotlin.Unit - public fun testNewType(/*0*/ name: kotlin.Name): kotlin.Unit - public fun testNewType(/*0*/ s: kotlin.Str): kotlin.Unit - public fun testNonGenericVsGeneric(/*0*/ x: kotlin.X, /*1*/ y: T): kotlin.Unit - public fun testNonGenericVsGeneric(/*0*/ x: kotlin.X, /*1*/ y: kotlin.Number): kotlin.Unit - public fun testNullableVsNonNull1(/*0*/ s: kotlin.Str): kotlin.Unit - public fun testNullableVsNonNull1(/*0*/ s: kotlin.Str?): kotlin.Unit - public fun testNullableVsNonNull2(/*0*/ ns: kotlin.NStr): kotlin.Unit - public fun testNullableVsNonNull2(/*0*/ ns: kotlin.NStr?): kotlin.Unit - public fun testSimple(/*0*/ x: kotlin.X): kotlin.Unit - public fun testSimple(/*0*/ z: kotlin.Z): kotlin.Unit - public fun kotlin.X.testFunVsExt(): kotlin.Unit - public final class C { - public constructor C() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public final fun testNonGenericVsGeneric(/*0*/ x: kotlin.X, /*1*/ y: T): kotlin.Unit - public final fun testNonGenericVsGeneric(/*0*/ x: kotlin.X, /*1*/ y: TC): kotlin.Unit - public final fun testNonGenericVsGeneric(/*0*/ x: kotlin.X, /*1*/ y: kotlin.Number): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + package kotlin.jvm { + public fun testFunVsExt(/*0*/ x: kotlin.jvm.X): kotlin.Unit + public fun testMixed(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.Int): kotlin.Unit + public fun testMixed(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.jvm.X): kotlin.Unit + public fun testMixed(/*0*/ x: kotlin.jvm.X, /*1*/ y: kotlin.Int): kotlin.Unit + public fun testMixed(/*0*/ x: kotlin.jvm.X, /*1*/ y: kotlin.jvm.X): kotlin.Unit + public fun testNewType(/*0*/ name: kotlin.jvm.Name): kotlin.Unit + public fun testNewType(/*0*/ s: kotlin.jvm.Str): kotlin.Unit + public fun testNonGenericVsGeneric(/*0*/ x: kotlin.jvm.X, /*1*/ y: T): kotlin.Unit + public fun testNonGenericVsGeneric(/*0*/ x: kotlin.jvm.X, /*1*/ y: kotlin.Number): kotlin.Unit + public fun testNullableVsNonNull1(/*0*/ s: kotlin.jvm.Str): kotlin.Unit + public fun testNullableVsNonNull1(/*0*/ s: kotlin.jvm.Str?): kotlin.Unit + public fun testNullableVsNonNull2(/*0*/ ns: kotlin.jvm.NStr): kotlin.Unit + public fun testNullableVsNonNull2(/*0*/ ns: kotlin.jvm.NStr?): kotlin.Unit + public fun testSimple(/*0*/ x: kotlin.jvm.X): kotlin.Unit + public fun testSimple(/*0*/ z: kotlin.jvm.Z): kotlin.Unit + public fun kotlin.jvm.X.testFunVsExt(): kotlin.Unit - public final annotation class JvmInline : kotlin.Annotation { - public constructor JvmInline() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + public final class C { + public constructor C() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public final fun testNonGenericVsGeneric(/*0*/ x: kotlin.jvm.X, /*1*/ y: T): kotlin.Unit + public final fun testNonGenericVsGeneric(/*0*/ x: kotlin.jvm.X, /*1*/ y: TC): kotlin.Unit + public final fun testNonGenericVsGeneric(/*0*/ x: kotlin.jvm.X, /*1*/ y: kotlin.Number): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class NStr { - public constructor NStr(/*0*/ str: kotlin.String?) - public final val str: kotlin.String? - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + public final annotation class JvmInline : kotlin.Annotation { + public constructor JvmInline() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class Name { - public constructor Name(/*0*/ name: kotlin.String) - public final val name: kotlin.String - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class NStr { + public constructor NStr(/*0*/ str: kotlin.String?) + public final val str: kotlin.String? + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class Str { - public constructor Str(/*0*/ str: kotlin.String) - public final val str: kotlin.String - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class Name { + public constructor Name(/*0*/ name: kotlin.String) + public final val name: kotlin.String + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class X { - public constructor X(/*0*/ x: kotlin.Int) - public final val x: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class Str { + public constructor Str(/*0*/ str: kotlin.String) + public final val str: kotlin.String + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class Z { - public constructor Z(/*0*/ x: kotlin.Int) - public final val x: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + @kotlin.jvm.JvmInline public final value class X { + public constructor X(/*0*/ x: kotlin.Int) + public final val x: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } + + @kotlin.jvm.JvmInline public final value class Z { + public constructor Z(/*0*/ x: kotlin.Int) + public final val x: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } } } diff --git a/compiler/testData/diagnostics/tests/valueClasses/functionsJvmSignaturesConflictOnInheritance.kt b/compiler/testData/diagnostics/tests/valueClasses/functionsJvmSignaturesConflictOnInheritance.kt index d261567326b..70b0554c770 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/functionsJvmSignaturesConflictOnInheritance.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/functionsJvmSignaturesConflictOnInheritance.kt @@ -1,7 +1,7 @@ // FIR_IDENTICAL // !LANGUAGE: +InlineClasses -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/functionsJvmSignaturesConflictOnInheritance.txt b/compiler/testData/diagnostics/tests/valueClasses/functionsJvmSignaturesConflictOnInheritance.txt index cc538ec3809..bb784cc51c8 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/functionsJvmSignaturesConflictOnInheritance.txt +++ b/compiler/testData/diagnostics/tests/valueClasses/functionsJvmSignaturesConflictOnInheritance.txt @@ -2,48 +2,51 @@ package package kotlin { - public final annotation class JvmInline : kotlin.Annotation { - public constructor JvmInline() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + package kotlin.jvm { - @kotlin.JvmInline public final value class Name { - public constructor Name(/*0*/ name: kotlin.String) - public final val name: kotlin.String - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + public final annotation class JvmInline : kotlin.Annotation { + public constructor JvmInline() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - public interface NameAndPasswordVerifier : kotlin.NameVerifier, kotlin.PasswordVerifier { - public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String - public abstract override /*1*/ /*fake_override*/ fun verify(/*0*/ name: kotlin.Name): kotlin.Unit - public abstract override /*1*/ /*fake_override*/ fun verify(/*0*/ password: kotlin.Password): kotlin.Unit - } + @kotlin.jvm.JvmInline public final value class Name { + public constructor Name(/*0*/ name: kotlin.String) + public final val name: kotlin.String + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - public interface NameVerifier { - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - public abstract fun verify(/*0*/ name: kotlin.Name): kotlin.Unit - } + public interface NameAndPasswordVerifier : kotlin.jvm.NameVerifier, kotlin.jvm.PasswordVerifier { + public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String + public abstract override /*1*/ /*fake_override*/ fun verify(/*0*/ name: kotlin.jvm.Name): kotlin.Unit + public abstract override /*1*/ /*fake_override*/ fun verify(/*0*/ password: kotlin.jvm.Password): kotlin.Unit + } - @kotlin.JvmInline public final value class Password { - public constructor Password(/*0*/ password: kotlin.String) - public final val password: kotlin.String - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + public interface NameVerifier { + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + public abstract fun verify(/*0*/ name: kotlin.jvm.Name): kotlin.Unit + } - public interface PasswordVerifier { - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - public abstract fun verify(/*0*/ password: kotlin.Password): kotlin.Unit + @kotlin.jvm.JvmInline public final value class Password { + public constructor Password(/*0*/ password: kotlin.String) + public final val password: kotlin.String + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } + + public interface PasswordVerifier { + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + public abstract fun verify(/*0*/ password: kotlin.jvm.Password): kotlin.Unit + } } } diff --git a/compiler/testData/diagnostics/tests/valueClasses/identityComparisonWithValueClasses.fir.kt b/compiler/testData/diagnostics/tests/valueClasses/identityComparisonWithValueClasses.fir.kt index a5f2b180bc4..7adb195d541 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/identityComparisonWithValueClasses.fir.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/identityComparisonWithValueClasses.fir.kt @@ -1,7 +1,7 @@ // !LANGUAGE: +InlineClasses // !DIAGNOSTICS: -UNUSED_VARIABLE -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/identityComparisonWithValueClasses.kt b/compiler/testData/diagnostics/tests/valueClasses/identityComparisonWithValueClasses.kt index d9f52a94153..dff2b4db257 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/identityComparisonWithValueClasses.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/identityComparisonWithValueClasses.kt @@ -1,7 +1,7 @@ // !LANGUAGE: +InlineClasses // !DIAGNOSTICS: -UNUSED_VARIABLE -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/identityComparisonWithValueClasses.txt b/compiler/testData/diagnostics/tests/valueClasses/identityComparisonWithValueClasses.txt index 545009b9063..631ccef544e 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/identityComparisonWithValueClasses.txt +++ b/compiler/testData/diagnostics/tests/valueClasses/identityComparisonWithValueClasses.txt @@ -1,28 +1,31 @@ package package kotlin { - public fun test(/*0*/ f1: kotlin.Foo, /*1*/ f2: kotlin.Foo, /*2*/ b1: kotlin.Bar, /*3*/ fn1: kotlin.Foo?, /*4*/ fn2: kotlin.Foo?): kotlin.Unit - @kotlin.JvmInline public final value class Bar { - public constructor Bar(/*0*/ y: kotlin.String) - public final val y: kotlin.String - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + package kotlin.jvm { + public fun test(/*0*/ f1: kotlin.jvm.Foo, /*1*/ f2: kotlin.jvm.Foo, /*2*/ b1: kotlin.jvm.Bar, /*3*/ fn1: kotlin.jvm.Foo?, /*4*/ fn2: kotlin.jvm.Foo?): kotlin.Unit - @kotlin.JvmInline public final value class Foo { - public constructor Foo(/*0*/ x: kotlin.Int) - public final val x: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class Bar { + public constructor Bar(/*0*/ y: kotlin.String) + public final val y: kotlin.String + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - public final annotation class JvmInline : kotlin.Annotation { - public constructor JvmInline() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + @kotlin.jvm.JvmInline public final value class Foo { + public constructor Foo(/*0*/ x: kotlin.Int) + public final val x: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } + + public final annotation class JvmInline : kotlin.Annotation { + public constructor JvmInline() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } } } diff --git a/compiler/testData/diagnostics/tests/valueClasses/jvmInlineApplicability.fir.kt b/compiler/testData/diagnostics/tests/valueClasses/jvmInlineApplicability.fir.kt index b1083cad466..3ad84f8a131 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/jvmInlineApplicability.fir.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/jvmInlineApplicability.fir.kt @@ -1,6 +1,6 @@ // !LANGUAGE: +InlineClasses -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/jvmInlineApplicability.kt b/compiler/testData/diagnostics/tests/valueClasses/jvmInlineApplicability.kt index 820263b497b..6590b2eeb53 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/jvmInlineApplicability.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/jvmInlineApplicability.kt @@ -1,6 +1,6 @@ // !LANGUAGE: +InlineClasses -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/jvmInlineApplicability.txt b/compiler/testData/diagnostics/tests/valueClasses/jvmInlineApplicability.txt index b41121095b1..3f13039d3f1 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/jvmInlineApplicability.txt +++ b/compiler/testData/diagnostics/tests/valueClasses/jvmInlineApplicability.txt @@ -2,56 +2,59 @@ package package kotlin { - @kotlin.JvmInline public final class C { - public constructor C() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + package kotlin.jvm { - @kotlin.JvmInline public final data class DC { - public constructor DC(/*0*/ a: kotlin.Any) - public final val a: kotlin.Any - public final operator /*synthesized*/ fun component1(): kotlin.Any - public final /*synthesized*/ fun copy(/*0*/ a: kotlin.Any = ...): kotlin.DC - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final class C { + public constructor C() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public interface I { - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final data class DC { + public constructor DC(/*0*/ a: kotlin.Any) + public final val a: kotlin.Any + public final operator /*synthesized*/ fun component1(): kotlin.Any + public final /*synthesized*/ fun copy(/*0*/ a: kotlin.Any = ...): kotlin.jvm.DC + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final inline class IC { - public constructor IC(/*0*/ a: kotlin.Any) - public final val a: kotlin.Any - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public interface I { + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - public final annotation class JvmInline : kotlin.Annotation { - public constructor JvmInline() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final inline class IC { + public constructor IC(/*0*/ a: kotlin.Any) + public final val a: kotlin.Any + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public object O { - private constructor O() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + public final annotation class JvmInline : kotlin.Annotation { + public constructor JvmInline() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class VC { - public constructor VC(/*0*/ a: kotlin.Any) - public final val a: kotlin.Any - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + @kotlin.jvm.JvmInline public object O { + private constructor O() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } + + @kotlin.jvm.JvmInline public final value class VC { + public constructor VC(/*0*/ a: kotlin.Any) + public final val a: kotlin.Any + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } } } diff --git a/compiler/testData/diagnostics/tests/valueClasses/lateinitValueClasses.fir.kt b/compiler/testData/diagnostics/tests/valueClasses/lateinitValueClasses.fir.kt index 87423ad5b0c..ecd831251b1 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/lateinitValueClasses.fir.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/lateinitValueClasses.fir.kt @@ -1,7 +1,7 @@ // !LANGUAGE: +InlineClasses // !DIAGNOSTICS: -UNUSED_VARIABLE -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/lateinitValueClasses.kt b/compiler/testData/diagnostics/tests/valueClasses/lateinitValueClasses.kt index ccf4cc8d6b8..c92f98de61c 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/lateinitValueClasses.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/lateinitValueClasses.kt @@ -1,7 +1,7 @@ // !LANGUAGE: +InlineClasses // !DIAGNOSTICS: -UNUSED_VARIABLE -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/lateinitValueClasses.txt b/compiler/testData/diagnostics/tests/valueClasses/lateinitValueClasses.txt index dc071c62ae3..a7c9515670a 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/lateinitValueClasses.txt +++ b/compiler/testData/diagnostics/tests/valueClasses/lateinitValueClasses.txt @@ -1,21 +1,24 @@ package package kotlin { - public lateinit var a: kotlin.Foo - public fun foo(): kotlin.Unit - @kotlin.JvmInline public final value class Foo { - public constructor Foo(/*0*/ x: kotlin.Int) - public final val x: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + package kotlin.jvm { + public lateinit var a: kotlin.jvm.Foo + public fun foo(): kotlin.Unit - public final annotation class JvmInline : kotlin.Annotation { - public constructor JvmInline() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + @kotlin.jvm.JvmInline public final value class Foo { + public constructor Foo(/*0*/ x: kotlin.Int) + public final val x: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } + + public final annotation class JvmInline : kotlin.Annotation { + public constructor JvmInline() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } } } diff --git a/compiler/testData/diagnostics/tests/valueClasses/presenceOfInitializerBlockInsideValueClass.kt b/compiler/testData/diagnostics/tests/valueClasses/presenceOfInitializerBlockInsideValueClass.kt index f85a8c6367b..06e24914753 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/presenceOfInitializerBlockInsideValueClass.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/presenceOfInitializerBlockInsideValueClass.kt @@ -2,7 +2,7 @@ // !DIAGNOSTICS: -UNUSED_VARIABLE // FIR_IDENTICAL -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/presenceOfInitializerBlockInsideValueClass.txt b/compiler/testData/diagnostics/tests/valueClasses/presenceOfInitializerBlockInsideValueClass.txt index d8feb9201fe..51dd32c205b 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/presenceOfInitializerBlockInsideValueClass.txt +++ b/compiler/testData/diagnostics/tests/valueClasses/presenceOfInitializerBlockInsideValueClass.txt @@ -2,18 +2,21 @@ package package kotlin { - @kotlin.JvmInline public final value class Foo { - public constructor Foo(/*0*/ x: kotlin.Int) - public final val x: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + package kotlin.jvm { - public final annotation class JvmInline : kotlin.Annotation { - public constructor JvmInline() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + @kotlin.jvm.JvmInline public final value class Foo { + public constructor Foo(/*0*/ x: kotlin.Int) + public final val x: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } + + public final annotation class JvmInline : kotlin.Annotation { + public constructor JvmInline() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } } } diff --git a/compiler/testData/diagnostics/tests/valueClasses/presenceOfPublicPrimaryConstructorForValueClass.kt b/compiler/testData/diagnostics/tests/valueClasses/presenceOfPublicPrimaryConstructorForValueClass.kt index f03ff14c317..f5ffb217cda 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/presenceOfPublicPrimaryConstructorForValueClass.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/presenceOfPublicPrimaryConstructorForValueClass.kt @@ -1,7 +1,7 @@ // !LANGUAGE: +InlineClasses // FIR_IDENTICAL -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/presenceOfPublicPrimaryConstructorForValueClass.txt b/compiler/testData/diagnostics/tests/valueClasses/presenceOfPublicPrimaryConstructorForValueClass.txt index b7859ca179b..570932ed41c 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/presenceOfPublicPrimaryConstructorForValueClass.txt +++ b/compiler/testData/diagnostics/tests/valueClasses/presenceOfPublicPrimaryConstructorForValueClass.txt @@ -2,50 +2,53 @@ package package kotlin { - @kotlin.JvmInline public final value class ConstructorWithDefaultVisibility { - public constructor ConstructorWithDefaultVisibility(/*0*/ x: kotlin.Int) - public final val x: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + package kotlin.jvm { - @kotlin.JvmInline public final value class InternalConstructor { - internal constructor InternalConstructor(/*0*/ x: kotlin.Int) - public final val x: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class ConstructorWithDefaultVisibility { + public constructor ConstructorWithDefaultVisibility(/*0*/ x: kotlin.Int) + public final val x: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - public final annotation class JvmInline : kotlin.Annotation { - public constructor JvmInline() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class InternalConstructor { + internal constructor InternalConstructor(/*0*/ x: kotlin.Int) + public final val x: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class PrivateConstructor { - private constructor PrivateConstructor(/*0*/ x: kotlin.Int) - public final val x: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + public final annotation class JvmInline : kotlin.Annotation { + public constructor JvmInline() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class ProtectedConstructor { - protected constructor ProtectedConstructor(/*0*/ x: kotlin.Int) - public final val x: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class PrivateConstructor { + private constructor PrivateConstructor(/*0*/ x: kotlin.Int) + public final val x: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class PublicConstructor { - public constructor PublicConstructor(/*0*/ x: kotlin.Int) - public final val x: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + @kotlin.jvm.JvmInline public final value class ProtectedConstructor { + protected constructor ProtectedConstructor(/*0*/ x: kotlin.Int) + public final val x: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } + + @kotlin.jvm.JvmInline public final value class PublicConstructor { + public constructor PublicConstructor(/*0*/ x: kotlin.Int) + public final val x: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } } } diff --git a/compiler/testData/diagnostics/tests/valueClasses/propertiesWithBackingFieldsInsideValueClass.fir.kt b/compiler/testData/diagnostics/tests/valueClasses/propertiesWithBackingFieldsInsideValueClass.fir.kt index 8e53c287b85..600b744d3c8 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/propertiesWithBackingFieldsInsideValueClass.fir.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/propertiesWithBackingFieldsInsideValueClass.fir.kt @@ -1,7 +1,7 @@ // !LANGUAGE: +InlineClasses // !DIAGNOSTICS: -UNUSED_PARAMETER -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/propertiesWithBackingFieldsInsideValueClass.kt b/compiler/testData/diagnostics/tests/valueClasses/propertiesWithBackingFieldsInsideValueClass.kt index 721bbd69342..8267ab02d03 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/propertiesWithBackingFieldsInsideValueClass.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/propertiesWithBackingFieldsInsideValueClass.kt @@ -1,7 +1,7 @@ // !LANGUAGE: +InlineClasses // !DIAGNOSTICS: -UNUSED_PARAMETER -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/propertiesWithBackingFieldsInsideValueClass.txt b/compiler/testData/diagnostics/tests/valueClasses/propertiesWithBackingFieldsInsideValueClass.txt index 9540353f79b..bd08ecb9e5f 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/propertiesWithBackingFieldsInsideValueClass.txt +++ b/compiler/testData/diagnostics/tests/valueClasses/propertiesWithBackingFieldsInsideValueClass.txt @@ -2,39 +2,42 @@ package package kotlin { - public interface A { - public abstract val goodSize: kotlin.Int - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + package kotlin.jvm { - public interface B { - public abstract val badSize: kotlin.Int - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + public interface A { + public abstract val goodSize: kotlin.Int + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class Foo : kotlin.A, kotlin.B { - public constructor Foo(/*0*/ x: kotlin.Int) - public final val a0: kotlin.Int - public final val a1: kotlin.Int = 0 - public final var a2: kotlin.Int - public final var a3: kotlin.Int - public open override /*1*/ val badSize: kotlin.Int = 0 - public open override /*1*/ val goodSize: kotlin.Int - public final lateinit var lateinitProperty: kotlin.String - public final val x: kotlin.Int - public open override /*2*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*2*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*2*/ /*synthesized*/ fun toString(): kotlin.String - } + public interface B { + public abstract val badSize: kotlin.Int + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - public final annotation class JvmInline : kotlin.Annotation { - public constructor JvmInline() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + @kotlin.jvm.JvmInline public final value class Foo : kotlin.jvm.A, kotlin.jvm.B { + public constructor Foo(/*0*/ x: kotlin.Int) + public final val a0: kotlin.Int + public final val a1: kotlin.Int = 0 + public final var a2: kotlin.Int + public final var a3: kotlin.Int + public open override /*1*/ val badSize: kotlin.Int = 0 + public open override /*1*/ val goodSize: kotlin.Int + public final lateinit var lateinitProperty: kotlin.String + public final val x: kotlin.Int + public open override /*2*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*2*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*2*/ /*synthesized*/ fun toString(): kotlin.String + } + + public final annotation class JvmInline : kotlin.Annotation { + public constructor JvmInline() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } } } diff --git a/compiler/testData/diagnostics/tests/valueClasses/recursiveValueClasses.fir.kt b/compiler/testData/diagnostics/tests/valueClasses/recursiveValueClasses.fir.kt index c06db3a2dca..aa805071da2 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/recursiveValueClasses.fir.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/recursiveValueClasses.fir.kt @@ -1,6 +1,6 @@ // !LANGUAGE: +InlineClasses -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/recursiveValueClasses.kt b/compiler/testData/diagnostics/tests/valueClasses/recursiveValueClasses.kt index e4c385fb711..167a6b5dabc 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/recursiveValueClasses.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/recursiveValueClasses.kt @@ -1,6 +1,6 @@ // !LANGUAGE: +InlineClasses -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/recursiveValueClasses.txt b/compiler/testData/diagnostics/tests/valueClasses/recursiveValueClasses.txt index 93f9a69949d..b2d885099a9 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/recursiveValueClasses.txt +++ b/compiler/testData/diagnostics/tests/valueClasses/recursiveValueClasses.txt @@ -2,106 +2,109 @@ package package kotlin { - @kotlin.JvmInline public final value class Id { - public constructor Id(/*0*/ x: T) - public final val x: T - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + package kotlin.jvm { - public final annotation class JvmInline : kotlin.Annotation { - public constructor JvmInline() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class Id { + public constructor Id(/*0*/ x: T) + public final val x: T + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class Test1 { - public constructor Test1(/*0*/ x: kotlin.Test1) - public final val x: kotlin.Test1 - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + public final annotation class JvmInline : kotlin.Annotation { + public constructor JvmInline() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class Test2A { - public constructor Test2A(/*0*/ x: kotlin.Test2B) - public final val x: kotlin.Test2B - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class Test1 { + public constructor Test1(/*0*/ x: kotlin.jvm.Test1) + public final val x: kotlin.jvm.Test1 + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class Test2B { - public constructor Test2B(/*0*/ x: kotlin.Test2A) - public final val x: kotlin.Test2A - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class Test2A { + public constructor Test2A(/*0*/ x: kotlin.jvm.Test2B) + public final val x: kotlin.jvm.Test2B + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class Test3A { - public constructor Test3A(/*0*/ x: kotlin.Test3B) - public final val x: kotlin.Test3B - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class Test2B { + public constructor Test2B(/*0*/ x: kotlin.jvm.Test2A) + public final val x: kotlin.jvm.Test2A + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class Test3B { - public constructor Test3B(/*0*/ x: kotlin.Test3C) - public final val x: kotlin.Test3C - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class Test3A { + public constructor Test3A(/*0*/ x: kotlin.jvm.Test3B) + public final val x: kotlin.jvm.Test3B + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class Test3C { - public constructor Test3C(/*0*/ x: kotlin.Test3A) - public final val x: kotlin.Test3A - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class Test3B { + public constructor Test3B(/*0*/ x: kotlin.jvm.Test3C) + public final val x: kotlin.jvm.Test3C + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class TestNullable { - public constructor TestNullable(/*0*/ x: kotlin.TestNullable?) - public final val x: kotlin.TestNullable? - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class Test3C { + public constructor Test3C(/*0*/ x: kotlin.jvm.Test3A) + public final val x: kotlin.jvm.Test3A + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class TestRecursionInArray { - public constructor TestRecursionInArray(/*0*/ x: kotlin.Array) - public final val x: kotlin.Array - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class TestNullable { + public constructor TestNullable(/*0*/ x: kotlin.jvm.TestNullable?) + public final val x: kotlin.jvm.TestNullable? + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class TestRecursionInTypeArguments { - public constructor TestRecursionInTypeArguments(/*0*/ x: kotlin.collections.List) - public final val x: kotlin.collections.List - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class TestRecursionInArray { + public constructor TestRecursionInArray(/*0*/ x: kotlin.Array) + public final val x: kotlin.Array + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class TestRecursionInUpperBounds> { - public constructor TestRecursionInUpperBounds>(/*0*/ x: T) - public final val x: T - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class TestRecursionInTypeArguments { + public constructor TestRecursionInTypeArguments(/*0*/ x: kotlin.collections.List) + public final val x: kotlin.collections.List + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class TestRecursionThroughId { - public constructor TestRecursionThroughId(/*0*/ x: kotlin.Id) - public final val x: kotlin.Id - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + @kotlin.jvm.JvmInline public final value class TestRecursionInUpperBounds> { + public constructor TestRecursionInUpperBounds>(/*0*/ x: T) + public final val x: T + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } + + @kotlin.jvm.JvmInline public final value class TestRecursionThroughId { + public constructor TestRecursionThroughId(/*0*/ x: kotlin.jvm.Id) + public final val x: kotlin.jvm.Id + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } } } diff --git a/compiler/testData/diagnostics/tests/valueClasses/reservedMembersAndConstructsInsideValueClass.fir.kt b/compiler/testData/diagnostics/tests/valueClasses/reservedMembersAndConstructsInsideValueClass.fir.kt index c11e22f5d74..1d889336879 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/reservedMembersAndConstructsInsideValueClass.fir.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/reservedMembersAndConstructsInsideValueClass.fir.kt @@ -1,7 +1,7 @@ // !LANGUAGE: +InlineClasses // !DIAGNOSTICS: -UNUSED_PARAMETER -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/reservedMembersAndConstructsInsideValueClass.kt b/compiler/testData/diagnostics/tests/valueClasses/reservedMembersAndConstructsInsideValueClass.kt index 2ed4dabb480..06debc64d17 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/reservedMembersAndConstructsInsideValueClass.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/reservedMembersAndConstructsInsideValueClass.kt @@ -1,7 +1,7 @@ // !LANGUAGE: +InlineClasses // !DIAGNOSTICS: -UNUSED_PARAMETER -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/reservedMembersAndConstructsInsideValueClass.txt b/compiler/testData/diagnostics/tests/valueClasses/reservedMembersAndConstructsInsideValueClass.txt index 98b1db49c3e..d56ed1ad11a 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/reservedMembersAndConstructsInsideValueClass.txt +++ b/compiler/testData/diagnostics/tests/valueClasses/reservedMembersAndConstructsInsideValueClass.txt @@ -2,72 +2,75 @@ package package kotlin { - @kotlin.JvmInline public final value class IC1 { - public constructor IC1(/*0*/ x: kotlin.Any) - public final val x: kotlin.Any - public final fun box(): kotlin.Unit - public final fun box(/*0*/ x: kotlin.Any): kotlin.Unit - public open override /*1*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - public final fun unbox(): kotlin.Unit - public final fun unbox(/*0*/ x: kotlin.Any): kotlin.Unit - } + package kotlin.jvm { - @kotlin.JvmInline public final value class IC2 { - public constructor IC2(/*0*/ x: kotlin.Any) - public final val x: kotlin.Any - public final fun box(): kotlin.Any - public final fun box(/*0*/ x: kotlin.Any): kotlin.Unit - public final fun equals(/*0*/ my: kotlin.Any, /*1*/ other: kotlin.Any): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public final fun hashCode(/*0*/ a: kotlin.Any): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - public final fun unbox(): kotlin.Any - public final fun unbox(/*0*/ x: kotlin.Any): kotlin.Unit - } + @kotlin.jvm.JvmInline public final value class IC1 { + public constructor IC1(/*0*/ x: kotlin.Any) + public final val x: kotlin.Any + public final fun box(): kotlin.Unit + public final fun box(/*0*/ x: kotlin.Any): kotlin.Unit + public open override /*1*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + public final fun unbox(): kotlin.Unit + public final fun unbox(/*0*/ x: kotlin.Any): kotlin.Unit + } - @kotlin.JvmInline public final value class IC3 { - public constructor IC3(/*0*/ x: kotlin.Any) - public final val x: kotlin.Any - public final fun box(/*0*/ x: kotlin.Any): kotlin.Any - public final fun equals(): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - public final fun unbox(/*0*/ x: kotlin.Any): kotlin.Any - } + @kotlin.jvm.JvmInline public final value class IC2 { + public constructor IC2(/*0*/ x: kotlin.Any) + public final val x: kotlin.Any + public final fun box(): kotlin.Any + public final fun box(/*0*/ x: kotlin.Any): kotlin.Unit + public final fun equals(/*0*/ my: kotlin.Any, /*1*/ other: kotlin.Any): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public final fun hashCode(/*0*/ a: kotlin.Any): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + public final fun unbox(): kotlin.Any + public final fun unbox(/*0*/ x: kotlin.Any): kotlin.Unit + } - @kotlin.JvmInline public final value class IC4 : kotlin.WithBox { - public constructor IC4(/*0*/ s: kotlin.String) - public final val s: kotlin.String - public open override /*1*/ fun box(): kotlin.String - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class IC3 { + public constructor IC3(/*0*/ x: kotlin.Any) + public final val x: kotlin.Any + public final fun box(/*0*/ x: kotlin.Any): kotlin.Any + public final fun equals(): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + public final fun unbox(/*0*/ x: kotlin.Any): kotlin.Any + } - @kotlin.JvmInline public final value class IC5 { - public constructor IC5(/*0*/ i: kotlin.Int) - public constructor IC5(/*0*/ a: kotlin.String) - public final val a: kotlin.String - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class IC4 : kotlin.jvm.WithBox { + public constructor IC4(/*0*/ s: kotlin.String) + public final val s: kotlin.String + public open override /*1*/ fun box(): kotlin.String + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - public final annotation class JvmInline : kotlin.Annotation { - public constructor JvmInline() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class IC5 { + public constructor IC5(/*0*/ i: kotlin.Int) + public constructor IC5(/*0*/ a: kotlin.String) + public final val a: kotlin.String + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - public interface WithBox { - public abstract fun box(): kotlin.String - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + public final annotation class JvmInline : kotlin.Annotation { + public constructor JvmInline() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } + + public interface WithBox { + public abstract fun box(): kotlin.String + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } } } diff --git a/compiler/testData/diagnostics/tests/valueClasses/valueClassCanOnlyImplementInterfaces.fir.kt b/compiler/testData/diagnostics/tests/valueClasses/valueClassCanOnlyImplementInterfaces.fir.kt index ff6b14e35cc..25ea40e9ea2 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/valueClassCanOnlyImplementInterfaces.fir.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/valueClassCanOnlyImplementInterfaces.fir.kt @@ -1,6 +1,6 @@ // !LANGUAGE: +InlineClasses -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/valueClassCanOnlyImplementInterfaces.kt b/compiler/testData/diagnostics/tests/valueClasses/valueClassCanOnlyImplementInterfaces.kt index 13ed4fd19ef..9b2fdd735d9 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/valueClassCanOnlyImplementInterfaces.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/valueClassCanOnlyImplementInterfaces.kt @@ -1,6 +1,6 @@ // !LANGUAGE: +InlineClasses -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/valueClassCanOnlyImplementInterfaces.txt b/compiler/testData/diagnostics/tests/valueClasses/valueClassCanOnlyImplementInterfaces.txt index 3181cf577a7..044e02cf606 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/valueClassCanOnlyImplementInterfaces.txt +++ b/compiler/testData/diagnostics/tests/valueClasses/valueClassCanOnlyImplementInterfaces.txt @@ -2,54 +2,57 @@ package package kotlin { - public abstract class AbstractBaseClass { - public constructor AbstractBaseClass() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + package kotlin.jvm { - public interface BaseInterface { - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + public abstract class AbstractBaseClass { + public constructor AbstractBaseClass() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - public final annotation class JvmInline : kotlin.Annotation { - public constructor JvmInline() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + public interface BaseInterface { + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - public open class OpenBaseClass { - public constructor OpenBaseClass() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + public final annotation class JvmInline : kotlin.Annotation { + public constructor JvmInline() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class TestExtendsAbstractClass : kotlin.AbstractBaseClass { - public constructor TestExtendsAbstractClass(/*0*/ x: kotlin.Int) - public final val x: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + public open class OpenBaseClass { + public constructor OpenBaseClass() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class TestExtendsOpenClass : kotlin.OpenBaseClass { - public constructor TestExtendsOpenClass(/*0*/ x: kotlin.Int) - public final val x: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class TestExtendsAbstractClass : kotlin.jvm.AbstractBaseClass { + public constructor TestExtendsAbstractClass(/*0*/ x: kotlin.Int) + public final val x: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class TestImplementsInterface : kotlin.BaseInterface { - public constructor TestImplementsInterface(/*0*/ x: kotlin.Int) - public final val x: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + @kotlin.jvm.JvmInline public final value class TestExtendsOpenClass : kotlin.jvm.OpenBaseClass { + public constructor TestExtendsOpenClass(/*0*/ x: kotlin.Int) + public final val x: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } + + @kotlin.jvm.JvmInline public final value class TestImplementsInterface : kotlin.jvm.BaseInterface { + public constructor TestImplementsInterface(/*0*/ x: kotlin.Int) + public final val x: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } } } diff --git a/compiler/testData/diagnostics/tests/valueClasses/valueClassCannotImplementInterfaceByDelegation.fir.kt b/compiler/testData/diagnostics/tests/valueClasses/valueClassCannotImplementInterfaceByDelegation.fir.kt index d9de10fe6a5..a59356430e0 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/valueClassCannotImplementInterfaceByDelegation.fir.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/valueClassCannotImplementInterfaceByDelegation.fir.kt @@ -1,6 +1,6 @@ // !LANGUAGE: +InlineClasses -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/valueClassCannotImplementInterfaceByDelegation.kt b/compiler/testData/diagnostics/tests/valueClasses/valueClassCannotImplementInterfaceByDelegation.kt index 83112d8e629..f9dbdd81d3e 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/valueClassCannotImplementInterfaceByDelegation.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/valueClassCannotImplementInterfaceByDelegation.kt @@ -1,6 +1,6 @@ // !LANGUAGE: +InlineClasses -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/valueClassCannotImplementInterfaceByDelegation.txt b/compiler/testData/diagnostics/tests/valueClasses/valueClassCannotImplementInterfaceByDelegation.txt index 5fae056825c..2d435d46433 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/valueClassCannotImplementInterfaceByDelegation.txt +++ b/compiler/testData/diagnostics/tests/valueClasses/valueClassCannotImplementInterfaceByDelegation.txt @@ -2,39 +2,42 @@ package package kotlin { - public object FooImpl : kotlin.IFoo { - private constructor FooImpl() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + package kotlin.jvm { - public interface IFoo { - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + public object FooImpl : kotlin.jvm.IFoo { + private constructor FooImpl() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - public final annotation class JvmInline : kotlin.Annotation { - public constructor JvmInline() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + public interface IFoo { + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class Test1 : kotlin.IFoo { - public constructor Test1(/*0*/ x: kotlin.Any) - public final val x: kotlin.Any - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + public final annotation class JvmInline : kotlin.Annotation { + public constructor JvmInline() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class Test2 : kotlin.IFoo { - public constructor Test2(/*0*/ x: kotlin.IFoo) - public final val x: kotlin.IFoo - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + @kotlin.jvm.JvmInline public final value class Test1 : kotlin.jvm.IFoo { + public constructor Test1(/*0*/ x: kotlin.Any) + public final val x: kotlin.Any + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } + + @kotlin.jvm.JvmInline public final value class Test2 : kotlin.jvm.IFoo { + public constructor Test2(/*0*/ x: kotlin.jvm.IFoo) + public final val x: kotlin.jvm.IFoo + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } } } diff --git a/compiler/testData/diagnostics/tests/valueClasses/valueClassConstructorParameterWithDefaultValue.kt b/compiler/testData/diagnostics/tests/valueClasses/valueClassConstructorParameterWithDefaultValue.kt index 7e47e5845c1..393acf38100 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/valueClassConstructorParameterWithDefaultValue.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/valueClassConstructorParameterWithDefaultValue.kt @@ -1,7 +1,7 @@ // FIR_IDENTICAL // !LANGUAGE: +InlineClasses -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/valueClassConstructorParameterWithDefaultValue.txt b/compiler/testData/diagnostics/tests/valueClasses/valueClassConstructorParameterWithDefaultValue.txt index 53b09dfce5f..40b3e32d167 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/valueClassConstructorParameterWithDefaultValue.txt +++ b/compiler/testData/diagnostics/tests/valueClasses/valueClassConstructorParameterWithDefaultValue.txt @@ -2,18 +2,21 @@ package package kotlin { - public final annotation class JvmInline : kotlin.Annotation { - public constructor JvmInline() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + package kotlin.jvm { - @kotlin.JvmInline public final value class Test { - public constructor Test(/*0*/ x: kotlin.Int = ...) - public final val x: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + public final annotation class JvmInline : kotlin.Annotation { + public constructor JvmInline() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } + + @kotlin.jvm.JvmInline public final value class Test { + public constructor Test(/*0*/ x: kotlin.Int = ...) + public final val x: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } } } diff --git a/compiler/testData/diagnostics/tests/valueClasses/valueClassDeclarationCheck.fir.kt b/compiler/testData/diagnostics/tests/valueClasses/valueClassDeclarationCheck.fir.kt index b61487f664a..0ca3684d5b3 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/valueClassDeclarationCheck.fir.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/valueClassDeclarationCheck.fir.kt @@ -1,7 +1,7 @@ // !LANGUAGE: +InlineClasses // !DIAGNOSTICS: -UNUSED_PARAMETER -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/valueClassDeclarationCheck.kt b/compiler/testData/diagnostics/tests/valueClasses/valueClassDeclarationCheck.kt index 3b5c978717e..a55cfb64cb4 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/valueClassDeclarationCheck.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/valueClassDeclarationCheck.kt @@ -1,7 +1,7 @@ // !LANGUAGE: +InlineClasses // !DIAGNOSTICS: -UNUSED_PARAMETER -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/valueClassDeclarationCheck.txt b/compiler/testData/diagnostics/tests/valueClasses/valueClassDeclarationCheck.txt index 0dffe83ffd7..61739d5e67b 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/valueClassDeclarationCheck.txt +++ b/compiler/testData/diagnostics/tests/valueClasses/valueClassDeclarationCheck.txt @@ -2,175 +2,178 @@ package package kotlin { - @kotlin.JvmInline public final value class A0 { - public constructor A0(/*0*/ x: kotlin.Int) - public final val x: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + package kotlin.jvm { - @kotlin.JvmInline public final value class A1 { - public constructor A1() - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } - - @kotlin.JvmInline public final value class A2 { - public constructor A2() - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } - - @kotlin.JvmInline public final value class A3 { - public constructor A3(/*0*/ x: kotlin.Int) - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } - - @kotlin.JvmInline public final value class A4 { - public constructor A4(/*0*/ x: kotlin.Int) - public final var x: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } - - @kotlin.JvmInline public final value class A5 { - public constructor A5(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.Int) - public final val x: kotlin.Int - public final val y: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } - - @kotlin.JvmInline public final value class A6 { - public constructor A6(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.Int) - public final val y: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } - - @kotlin.JvmInline public final value class A7 { - public constructor A7(/*0*/ vararg x: kotlin.Int /*kotlin.IntArray*/) - public final val x: kotlin.IntArray - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } - - @kotlin.JvmInline public final value class A8 { - public constructor A8(/*0*/ x: kotlin.Int) - public open val x: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } - - @kotlin.JvmInline public final value class A9 { - public constructor A9(/*0*/ x: kotlin.Int) - public final val x: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } - - public final class B1 { - public constructor B1() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - - @kotlin.JvmInline public final value class C2 { - public constructor C2(/*0*/ x: kotlin.Int) + @kotlin.jvm.JvmInline public final value class A0 { + public constructor A0(/*0*/ x: kotlin.Int) public final val x: kotlin.Int public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String } - public companion object Companion { - private constructor Companion() + @kotlin.jvm.JvmInline public final value class A1 { + public constructor A1() + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } + + @kotlin.jvm.JvmInline public final value class A2 { + public constructor A2() + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } + + @kotlin.jvm.JvmInline public final value class A3 { + public constructor A3(/*0*/ x: kotlin.Int) + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } + + @kotlin.jvm.JvmInline public final value class A4 { + public constructor A4(/*0*/ x: kotlin.Int) + public final var x: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } + + @kotlin.jvm.JvmInline public final value class A5 { + public constructor A5(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.Int) + public final val x: kotlin.Int + public final val y: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } + + @kotlin.jvm.JvmInline public final value class A6 { + public constructor A6(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.Int) + public final val y: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } + + @kotlin.jvm.JvmInline public final value class A7 { + public constructor A7(/*0*/ vararg x: kotlin.Int /*kotlin.IntArray*/) + public final val x: kotlin.IntArray + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } + + @kotlin.jvm.JvmInline public final value class A8 { + public constructor A8(/*0*/ x: kotlin.Int) + public open val x: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } + + @kotlin.jvm.JvmInline public final value class A9 { + public constructor A9(/*0*/ x: kotlin.Int) + public final val x: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } + + public final class B1 { + public constructor B1() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - @kotlin.JvmInline public final value class C1 { - public constructor C1(/*0*/ x: kotlin.Int) + @kotlin.jvm.JvmInline public final value class C2 { + public constructor C2(/*0*/ x: kotlin.Int) + public final val x: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } + + public companion object Companion { + private constructor Companion() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + + @kotlin.jvm.JvmInline public final value class C1 { + public constructor C1(/*0*/ x: kotlin.Int) + public final val x: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } + } + } + + public object B2 { + private constructor B2() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + + @kotlin.jvm.JvmInline public final value class C3 { + public constructor C3(/*0*/ x: kotlin.Int) public final val x: kotlin.Int public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String } } - } - public object B2 { - private constructor B2() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - - @kotlin.JvmInline public final value class C3 { - public constructor C3(/*0*/ x: kotlin.Int) + @kotlin.jvm.JvmInline public final value class D0 { + public constructor D0(/*0*/ x: kotlin.Int) public final val x: kotlin.Int public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String } - } - @kotlin.JvmInline public final value class D0 { - public constructor D0(/*0*/ x: kotlin.Int) - public final val x: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + public open value class D1 { + public constructor D1(/*0*/ x: kotlin.Int) + public final val x: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - public open value class D1 { - public constructor D1(/*0*/ x: kotlin.Int) - public final val x: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + public abstract value class D2 { + public constructor D2(/*0*/ x: kotlin.Int) + public final val x: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - public abstract value class D2 { - public constructor D2(/*0*/ x: kotlin.Int) - public final val x: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + public sealed value class D3 { + private constructor D3(/*0*/ x: kotlin.Int) + public final val x: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - public sealed value class D3 { - private constructor D3(/*0*/ x: kotlin.Int) - public final val x: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + public final data value class D4 { + public constructor D4(/*0*/ x: kotlin.String) + public final val x: kotlin.String + public final operator /*synthesized*/ fun component1(): kotlin.String + public final /*synthesized*/ fun copy(/*0*/ x: kotlin.String = ...): kotlin.jvm.D4 + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - public final data value class D4 { - public constructor D4(/*0*/ x: kotlin.String) - public final val x: kotlin.String - public final operator /*synthesized*/ fun component1(): kotlin.String - public final /*synthesized*/ fun copy(/*0*/ x: kotlin.String = ...): kotlin.D4 - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } - - public final annotation class JvmInline : kotlin.Annotation { - public constructor JvmInline() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + public final annotation class JvmInline : kotlin.Annotation { + public constructor JvmInline() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } } } diff --git a/compiler/testData/diagnostics/tests/valueClasses/valueClassImplementsCollection.kt b/compiler/testData/diagnostics/tests/valueClasses/valueClassImplementsCollection.kt index 3b6e1a34a79..8d24d41c91c 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/valueClassImplementsCollection.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/valueClassImplementsCollection.kt @@ -1,7 +1,7 @@ // FIR_IDENTICAL // !LANGUAGE: +InlineClasses -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/valueClassImplementsCollection.txt b/compiler/testData/diagnostics/tests/valueClasses/valueClassImplementsCollection.txt index c5054c4d4f1..74ff9df03e0 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/valueClassImplementsCollection.txt +++ b/compiler/testData/diagnostics/tests/valueClasses/valueClassImplementsCollection.txt @@ -2,31 +2,34 @@ package package kotlin { - public final annotation class JvmInline : kotlin.Annotation { - public constructor JvmInline() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + package kotlin.jvm { - @kotlin.JvmInline public final value class UInt { - public constructor UInt(/*0*/ x: kotlin.Int) - public final val x: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + public final annotation class JvmInline : kotlin.Annotation { + public constructor JvmInline() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class UIntArray : kotlin.collections.Collection { - public constructor UIntArray(/*0*/ storage: kotlin.IntArray) - public open override /*1*/ val size: kotlin.Int - private final val storage: kotlin.IntArray - public open override /*1*/ fun contains(/*0*/ element: kotlin.UInt): kotlin.Boolean - public open override /*1*/ fun containsAll(/*0*/ elements: kotlin.collections.Collection): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ fun isEmpty(): kotlin.Boolean - public open override /*1*/ fun iterator(): kotlin.Nothing - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + @kotlin.jvm.JvmInline public final value class UInt { + public constructor UInt(/*0*/ x: kotlin.Int) + public final val x: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } + + @kotlin.jvm.JvmInline public final value class UIntArray : kotlin.collections.Collection { + public constructor UIntArray(/*0*/ storage: kotlin.IntArray) + public open override /*1*/ val size: kotlin.Int + private final val storage: kotlin.IntArray + public open override /*1*/ fun contains(/*0*/ element: kotlin.jvm.UInt): kotlin.Boolean + public open override /*1*/ fun containsAll(/*0*/ elements: kotlin.collections.Collection): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ fun isEmpty(): kotlin.Boolean + public open override /*1*/ fun iterator(): kotlin.Nothing + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } } } diff --git a/compiler/testData/diagnostics/tests/valueClasses/valueClassWithForbiddenUnderlyingType.fir.kt b/compiler/testData/diagnostics/tests/valueClasses/valueClassWithForbiddenUnderlyingType.fir.kt index 8b21a794cb7..7ed03f8cdd2 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/valueClassWithForbiddenUnderlyingType.fir.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/valueClassWithForbiddenUnderlyingType.fir.kt @@ -1,6 +1,6 @@ // !LANGUAGE: +InlineClasses -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/valueClassWithForbiddenUnderlyingType.kt b/compiler/testData/diagnostics/tests/valueClasses/valueClassWithForbiddenUnderlyingType.kt index c29a59d547f..3a680ba0dc4 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/valueClassWithForbiddenUnderlyingType.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/valueClassWithForbiddenUnderlyingType.kt @@ -1,6 +1,6 @@ // !LANGUAGE: +InlineClasses -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/valueClassWithForbiddenUnderlyingType.txt b/compiler/testData/diagnostics/tests/valueClasses/valueClassWithForbiddenUnderlyingType.txt index 22b80d4b1e2..4b61d6575f6 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/valueClassWithForbiddenUnderlyingType.txt +++ b/compiler/testData/diagnostics/tests/valueClasses/valueClassWithForbiddenUnderlyingType.txt @@ -2,90 +2,93 @@ package package kotlin { - @kotlin.JvmInline public final value class Bar { - public constructor Bar(/*0*/ u: kotlin.Unit) - public final val u: kotlin.Unit - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + package kotlin.jvm { - @kotlin.JvmInline public final value class BarNullable { - public constructor BarNullable(/*0*/ u: kotlin.Unit?) - public final val u: kotlin.Unit? - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class Bar { + public constructor Bar(/*0*/ u: kotlin.Unit) + public final val u: kotlin.Unit + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class Baz { - public constructor Baz(/*0*/ u: kotlin.Nothing) - public final val u: kotlin.Nothing - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class BarNullable { + public constructor BarNullable(/*0*/ u: kotlin.Unit?) + public final val u: kotlin.Unit? + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class BazNullable { - public constructor BazNullable(/*0*/ u: kotlin.Nothing?) - public final val u: kotlin.Nothing? - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class Baz { + public constructor Baz(/*0*/ u: kotlin.Nothing) + public final val u: kotlin.Nothing + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class Foo { - public constructor Foo(/*0*/ x: T) - public final val x: T - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class BazNullable { + public constructor BazNullable(/*0*/ u: kotlin.Nothing?) + public final val u: kotlin.Nothing? + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class FooGenericArray { - public constructor FooGenericArray(/*0*/ x: kotlin.Array) - public final val x: kotlin.Array - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class Foo { + public constructor Foo(/*0*/ x: T) + public final val x: T + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class FooGenericArray2 { - public constructor FooGenericArray2(/*0*/ x: kotlin.Array>) - public final val x: kotlin.Array> - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class FooGenericArray { + public constructor FooGenericArray(/*0*/ x: kotlin.Array) + public final val x: kotlin.Array + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class FooNullable { - public constructor FooNullable(/*0*/ x: T?) - public final val x: T? - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class FooGenericArray2 { + public constructor FooGenericArray2(/*0*/ x: kotlin.Array>) + public final val x: kotlin.Array> + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class FooStarProjectedArray { - public constructor FooStarProjectedArray(/*0*/ x: kotlin.Array<*>) - public final val x: kotlin.Array<*> - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class FooNullable { + public constructor FooNullable(/*0*/ x: T?) + public final val x: T? + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class FooStarProjectedArray2 { - public constructor FooStarProjectedArray2(/*0*/ x: kotlin.Array>) - public final val x: kotlin.Array> - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + @kotlin.jvm.JvmInline public final value class FooStarProjectedArray { + public constructor FooStarProjectedArray(/*0*/ x: kotlin.Array<*>) + public final val x: kotlin.Array<*> + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } - public final annotation class JvmInline : kotlin.Annotation { - public constructor JvmInline() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + @kotlin.jvm.JvmInline public final value class FooStarProjectedArray2 { + public constructor FooStarProjectedArray2(/*0*/ x: kotlin.Array>) + public final val x: kotlin.Array> + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } + + public final annotation class JvmInline : kotlin.Annotation { + public constructor JvmInline() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } } } diff --git a/compiler/testData/diagnostics/tests/valueClasses/valueClassesInsideAnnotations.fir.kt b/compiler/testData/diagnostics/tests/valueClasses/valueClassesInsideAnnotations.fir.kt index 29a43c81ef1..2a99108dd6a 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/valueClassesInsideAnnotations.fir.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/valueClassesInsideAnnotations.fir.kt @@ -1,6 +1,6 @@ // !LANGUAGE: +InlineClasses -package kotlin +package kotlin.jvm import kotlin.reflect.KClass diff --git a/compiler/testData/diagnostics/tests/valueClasses/valueClassesInsideAnnotations.kt b/compiler/testData/diagnostics/tests/valueClasses/valueClassesInsideAnnotations.kt index efcd653369d..6f583fff243 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/valueClassesInsideAnnotations.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/valueClassesInsideAnnotations.kt @@ -1,6 +1,6 @@ // !LANGUAGE: +InlineClasses -package kotlin +package kotlin.jvm import kotlin.reflect.KClass diff --git a/compiler/testData/diagnostics/tests/valueClasses/valueClassesInsideAnnotations.txt b/compiler/testData/diagnostics/tests/valueClasses/valueClassesInsideAnnotations.txt index 3cf8b5549cb..c1f5e47fe37 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/valueClassesInsideAnnotations.txt +++ b/compiler/testData/diagnostics/tests/valueClasses/valueClassesInsideAnnotations.txt @@ -2,58 +2,61 @@ package package kotlin { - public final annotation class Ann1 : kotlin.Annotation { - public constructor Ann1(/*0*/ a: kotlin.MyInt) - public final val a: kotlin.MyInt - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + package kotlin.jvm { - public final annotation class Ann2 : kotlin.Annotation { - public constructor Ann2(/*0*/ a: kotlin.Array) - public final val a: kotlin.Array - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + public final annotation class Ann1 : kotlin.Annotation { + public constructor Ann1(/*0*/ a: kotlin.jvm.MyInt) + public final val a: kotlin.jvm.MyInt + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - public final annotation class Ann3 : kotlin.Annotation { - public constructor Ann3(/*0*/ vararg a: kotlin.MyInt /*kotlin.Array*/) - public final val a: kotlin.Array - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + public final annotation class Ann2 : kotlin.Annotation { + public constructor Ann2(/*0*/ a: kotlin.Array) + public final val a: kotlin.Array + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - public final annotation class Ann4 : kotlin.Annotation { - public constructor Ann4(/*0*/ a: kotlin.reflect.KClass) - public final val a: kotlin.reflect.KClass - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + public final annotation class Ann3 : kotlin.Annotation { + public constructor Ann3(/*0*/ vararg a: kotlin.jvm.MyInt /*kotlin.Array*/) + public final val a: kotlin.Array + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - public final annotation class JvmInline : kotlin.Annotation { - public constructor JvmInline() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + public final annotation class Ann4 : kotlin.Annotation { + public constructor Ann4(/*0*/ a: kotlin.reflect.KClass) + public final val a: kotlin.reflect.KClass + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class MyInt { - public constructor MyInt(/*0*/ x: kotlin.Int) - public final val x: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + public final annotation class JvmInline : kotlin.Annotation { + public constructor JvmInline() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class MyString { - public constructor MyString(/*0*/ x: kotlin.String) - public final val x: kotlin.String - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + @kotlin.jvm.JvmInline public final value class MyInt { + public constructor MyInt(/*0*/ x: kotlin.Int) + public final val x: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } + + @kotlin.jvm.JvmInline public final value class MyString { + public constructor MyString(/*0*/ x: kotlin.String) + public final val x: kotlin.String + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } } } diff --git a/compiler/testData/diagnostics/tests/valueClasses/varargsOnParametersOfValueClassType.fir.kt b/compiler/testData/diagnostics/tests/valueClasses/varargsOnParametersOfValueClassType.fir.kt index 8347b2f9779..3c5e49a25cc 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/varargsOnParametersOfValueClassType.fir.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/varargsOnParametersOfValueClassType.fir.kt @@ -1,7 +1,7 @@ // !LANGUAGE: +InlineClasses // !DIAGNOSTICS: -UNUSED_PARAMETER, -UNUSED_VARIABLE, -UNUSED_ANONYMOUS_PARAMETER -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/varargsOnParametersOfValueClassType.kt b/compiler/testData/diagnostics/tests/valueClasses/varargsOnParametersOfValueClassType.kt index 56af413cbbd..b12960baf06 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/varargsOnParametersOfValueClassType.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/varargsOnParametersOfValueClassType.kt @@ -1,7 +1,7 @@ // !LANGUAGE: +InlineClasses // !DIAGNOSTICS: -UNUSED_PARAMETER, -UNUSED_VARIABLE, -UNUSED_ANONYMOUS_PARAMETER -package kotlin +package kotlin.jvm annotation class JvmInline diff --git a/compiler/testData/diagnostics/tests/valueClasses/varargsOnParametersOfValueClassType.txt b/compiler/testData/diagnostics/tests/valueClasses/varargsOnParametersOfValueClassType.txt index 3577155821f..486b3c1047f 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/varargsOnParametersOfValueClassType.txt +++ b/compiler/testData/diagnostics/tests/valueClasses/varargsOnParametersOfValueClassType.txt @@ -1,46 +1,49 @@ package package kotlin { - public fun f1(/*0*/ vararg a: kotlin.Foo /*kotlin.Array*/): kotlin.Unit - public fun f2(/*0*/ vararg a: kotlin.Foo? /*kotlin.Array*/): kotlin.Unit - public final class A { - public constructor A() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public final fun f3(/*0*/ a0: kotlin.Int, /*1*/ vararg a1: kotlin.Foo /*kotlin.Array*/): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + package kotlin.jvm { + public fun f1(/*0*/ vararg a: kotlin.jvm.Foo /*kotlin.Array*/): kotlin.Unit + public fun f2(/*0*/ vararg a: kotlin.jvm.Foo? /*kotlin.Array*/): kotlin.Unit - public final annotation class Ann : kotlin.Annotation { - public constructor Ann(/*0*/ vararg f: kotlin.Foo /*kotlin.Array*/) - public final val f: kotlin.Array - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + public final class A { + public constructor A() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public final fun f3(/*0*/ a0: kotlin.Int, /*1*/ vararg a1: kotlin.jvm.Foo /*kotlin.Array*/): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - public final class B { - public constructor B(/*0*/ vararg s: kotlin.Foo /*kotlin.Array*/) - public constructor B(/*0*/ a: kotlin.Int, /*1*/ vararg s: kotlin.Foo /*kotlin.Array*/) - public final val s: kotlin.Array - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } + public final annotation class Ann : kotlin.Annotation { + public constructor Ann(/*0*/ vararg f: kotlin.jvm.Foo /*kotlin.Array*/) + public final val f: kotlin.Array + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - @kotlin.JvmInline public final value class Foo { - public constructor Foo(/*0*/ x: kotlin.Int) - public final val x: kotlin.Int - public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String - } + public final class B { + public constructor B(/*0*/ vararg s: kotlin.jvm.Foo /*kotlin.Array*/) + public constructor B(/*0*/ a: kotlin.Int, /*1*/ vararg s: kotlin.jvm.Foo /*kotlin.Array*/) + public final val s: kotlin.Array + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } - public final annotation class JvmInline : kotlin.Annotation { - public constructor JvmInline() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + @kotlin.jvm.JvmInline public final value class Foo { + public constructor Foo(/*0*/ x: kotlin.Int) + public final val x: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String + } + + public final annotation class JvmInline : kotlin.Annotation { + public constructor JvmInline() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } } } diff --git a/compiler/testData/loadJava/compiledKotlin/annotations/classMembers/HiddenConstructorWithInlineClassParameters.txt b/compiler/testData/loadJava/compiledKotlin/annotations/classMembers/HiddenConstructorWithInlineClassParameters.txt index 5a96613bc75..cbef850e2ac 100644 --- a/compiler/testData/loadJava/compiledKotlin/annotations/classMembers/HiddenConstructorWithInlineClassParameters.txt +++ b/compiler/testData/loadJava/compiledKotlin/annotations/classMembers/HiddenConstructorWithInlineClassParameters.txt @@ -24,7 +24,7 @@ public final class Test { public final fun (): test.Z } -public final value class Z { +@kotlin.jvm.JvmInline /* annotation class not found */ public final value class Z { /*primary*/ public constructor Z(/*0*/ x: kotlin.Int) public final val x: kotlin.Int public final fun (): kotlin.Int diff --git a/compiler/testData/loadJava/compiledKotlin/annotations/classMembers/PublishedApiAnnotationOnInlineClassCosntructor.runtime.txt b/compiler/testData/loadJava/compiledKotlin/annotations/classMembers/PublishedApiAnnotationOnInlineClassCosntructor.runtime.txt index 92185af7855..6f275e6fa55 100644 --- a/compiler/testData/loadJava/compiledKotlin/annotations/classMembers/PublishedApiAnnotationOnInlineClassCosntructor.runtime.txt +++ b/compiler/testData/loadJava/compiledKotlin/annotations/classMembers/PublishedApiAnnotationOnInlineClassCosntructor.runtime.txt @@ -1,6 +1,6 @@ package test -public final value class Z { +@kotlin.jvm.JvmInline public final value class Z { /*primary*/ internal constructor Z(/*0*/ kotlin.Int) public final val value: kotlin.Int public final fun (): kotlin.Int diff --git a/compiler/testData/loadJava/compiledKotlin/annotations/classMembers/PublishedApiAnnotationOnInlineClassCosntructor.txt b/compiler/testData/loadJava/compiledKotlin/annotations/classMembers/PublishedApiAnnotationOnInlineClassCosntructor.txt index 4b2803557ad..286d44d0736 100644 --- a/compiler/testData/loadJava/compiledKotlin/annotations/classMembers/PublishedApiAnnotationOnInlineClassCosntructor.txt +++ b/compiler/testData/loadJava/compiledKotlin/annotations/classMembers/PublishedApiAnnotationOnInlineClassCosntructor.txt @@ -1,6 +1,6 @@ package test -public final value class Z { +@kotlin.jvm.JvmInline /* annotation class not found */ public final value class Z { /*primary*/ @kotlin.PublishedApi internal constructor Z(/*0*/ value: kotlin.Int) public final val value: kotlin.Int public final fun (): kotlin.Int diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/inlineClassesUtils.kt b/core/descriptors/src/org/jetbrains/kotlin/resolve/inlineClassesUtils.kt index b3804f4d0d2..2e3652765b8 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/inlineClassesUtils.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/inlineClassesUtils.kt @@ -13,7 +13,7 @@ import org.jetbrains.kotlin.types.TypeUtils import org.jetbrains.kotlin.types.Variance import org.jetbrains.kotlin.utils.addToStdlib.safeAs -val JVM_INLINE_ANNOTATION_FQ_NAME = FqName("kotlin.JvmInline") +val JVM_INLINE_ANNOTATION_FQ_NAME = FqName("kotlin.jvm.JvmInline") fun ClassDescriptor.underlyingRepresentation(): ValueParameterDescriptor? { if (!isInlineClass()) return null