From 07767f88e2e83ded62e6b55c2e63b7e46fb55cad Mon Sep 17 00:00:00 2001 From: Dmitriy Dolovov Date: Fri, 9 Feb 2024 15:23:40 +0100 Subject: [PATCH] [KLIB tool] Update KLIB metadata dump tests ^KT-62340 --- .../klib/dump-metadata/Accessors.fir.txt | 52 +++ .../testData/klib/dump-metadata/Accessors.txt | 67 +++- .../klib/dump-metadata/Accessors.v1.fir.txt | 75 +++++ .../klib/dump-metadata/Accessors.v1.txt | 102 ++++-- .../klib/dump-metadata/Accessors.v2.fir.txt | 75 +++++ .../klib/dump-metadata/Accessors.v2.txt | 102 ++++-- .../testData/klib/dump-metadata/Classes.kt | 1 + .../testData/klib/dump-metadata/Classes.txt | 199 ++++++++--- .../klib/dump-metadata/Classes.v1.txt | 312 +++++++++++++----- .../klib/dump-metadata/Classes.v2.txt | 312 +++++++++++++----- .../klib/dump-metadata/Constructors.kt | 1 + .../klib/dump-metadata/Constructors.txt | 87 ++++- .../klib/dump-metadata/Constructors.v1.txt | 125 +++++-- .../klib/dump-metadata/Constructors.v2.txt | 125 +++++-- .../testData/klib/dump-metadata/Enum.fir.txt | 34 ++ .../testData/klib/dump-metadata/Enum.txt | 57 +++- .../klib/dump-metadata/Enum.v1.fir.txt | 47 +++ .../testData/klib/dump-metadata/Enum.v1.txt | 80 ++++- .../klib/dump-metadata/Enum.v2.fir.txt | 47 +++ .../testData/klib/dump-metadata/Enum.v2.txt | 80 ++++- .../klib/dump-metadata/FunctionModifiers.kt | 1 + .../klib/dump-metadata/FunctionModifiers.txt | 34 +- .../dump-metadata/FunctionModifiers.v1.txt | 47 ++- .../dump-metadata/FunctionModifiers.v2.txt | 47 ++- .../klib/dump-metadata/MethodModality.kt | 1 + .../klib/dump-metadata/MethodModality.txt | 59 +++- .../klib/dump-metadata/MethodModality.v1.txt | 86 +++-- .../klib/dump-metadata/MethodModality.v2.txt | 86 +++-- .../klib/dump-metadata/Objects.fir.txt | 62 ++++ .../testData/klib/dump-metadata/Objects.txt | 18 - .../klib/dump-metadata/Objects.v1.fir.txt | 78 +++++ .../klib/dump-metadata/Objects.v1.txt | 28 -- .../klib/dump-metadata/Objects.v2.fir.txt | 78 +++++ .../klib/dump-metadata/Objects.v2.txt | 28 -- .../klib/dump-metadata/TopLevelFunctions.kt | 1 + .../klib/dump-metadata/TopLevelFunctions.txt | 84 +++-- .../dump-metadata/TopLevelFunctions.v1.txt | 123 ++++--- .../dump-metadata/TopLevelFunctions.v2.txt | 123 ++++--- .../TopLevelPropertiesCustomPackage.kt | 1 + .../TopLevelPropertiesCustomPackage.txt | 31 +- .../TopLevelPropertiesCustomPackage.v1.txt | 43 ++- .../TopLevelPropertiesCustomPackage.v2.txt | 43 ++- .../TopLevelPropertiesRootPackage.kt | 1 + .../TopLevelPropertiesRootPackage.txt | 31 +- .../TopLevelPropertiesRootPackage.v1.txt | 43 ++- .../TopLevelPropertiesRootPackage.v2.txt | 43 ++- ...LevelPropertiesWithClassesCustomPackage.kt | 1 + ...evelPropertiesWithClassesCustomPackage.txt | 46 ++- ...lPropertiesWithClassesCustomPackage.v1.txt | 64 +++- ...lPropertiesWithClassesCustomPackage.v2.txt | 64 +++- ...opLevelPropertiesWithClassesRootPackage.kt | 1 + ...pLevelPropertiesWithClassesRootPackage.txt | 46 ++- ...velPropertiesWithClassesRootPackage.v1.txt | 64 +++- ...velPropertiesWithClassesRootPackage.v2.txt | 64 +++- .../klib/dump-metadata/annotations.txt | 190 +++++++++-- .../klib/dump-metadata/annotations.v1.txt | 269 +++++++++++---- .../klib/dump-metadata/annotations.v2.txt | 269 +++++++++++---- .../annotations_source_retention.kt | 1 + .../annotations_source_retention.txt | 160 +++++++-- .../annotations_source_retention.v1.txt | 222 ++++++++++--- .../annotations_source_retention.v2.txt | 222 ++++++++++--- .../annotatedEnumEntry.fir.txt | 46 +++ .../builtinsSerializer/annotatedEnumEntry.txt | 75 ++++- .../annotatedEnumEntry.v1.fir.txt | 60 ++++ .../annotatedEnumEntry.v1.txt | 100 ++++-- .../annotatedEnumEntry.v2.fir.txt | 60 ++++ .../annotatedEnumEntry.v2.txt | 100 ++++-- .../annotationArguments/annotation.kt | 1 + .../annotationArguments/annotation.txt | 52 ++- .../annotationArguments/annotation.v1.txt | 73 +++- .../annotationArguments/annotation.v2.txt | 73 +++- .../annotationArguments/enum.fir.txt | 55 +++ .../annotationArguments/enum.txt | 74 ++++- .../annotationArguments/enum.v1.fir.txt | 72 ++++ .../annotationArguments/enum.v1.txt | 104 ++++-- .../annotationArguments/enum.v2.fir.txt | 72 ++++ .../annotationArguments/enum.v2.txt | 104 ++++-- .../annotationArguments/primitiveArrays.kt | 1 + .../annotationArguments/primitiveArrays.txt | 62 +++- .../primitiveArrays.v1.txt | 95 ++++-- .../primitiveArrays.v2.txt | 95 ++++-- .../annotationArguments/primitives.kt | 1 + .../annotationArguments/primitives.txt | 54 ++- .../annotationArguments/primitives.v1.txt | 84 +++-- .../annotationArguments/primitives.v2.txt | 84 +++-- .../annotationArguments/string.kt | 1 + .../annotationArguments/string.txt | 45 ++- .../annotationArguments/string.v1.txt | 63 +++- .../annotationArguments/string.v2.txt | 63 +++- .../annotationArguments/varargs.fir.txt | 38 +++ .../annotationArguments/varargs.txt | 55 ++- .../annotationArguments/varargs.v1.fir.txt | 49 +++ .../annotationArguments/varargs.v1.txt | 76 ++++- .../annotationArguments/varargs.v2.fir.txt | 49 +++ .../annotationArguments/varargs.v2.txt | 76 ++++- .../builtinsSerializer/annotationTargets.kt | 1 + .../builtinsSerializer/annotationTargets.txt | 89 ++++- .../annotationTargets.v1.txt | 122 +++++-- .../annotationTargets.v2.txt | 122 +++++-- .../binaryRetainedAnnotation.fir.txt | 45 +++ .../binaryRetainedAnnotation.txt | 57 +++- .../binaryRetainedAnnotation.v1.fir.txt | 55 +++ .../binaryRetainedAnnotation.v1.txt | 72 +++- .../binaryRetainedAnnotation.v2.fir.txt | 55 +++ .../binaryRetainedAnnotation.v2.txt | 72 +++- .../compileTimeConstants.fir.txt | 97 ++++++ .../compileTimeConstants.txt | 136 ++++++-- .../compileTimeConstants.v1.fir.txt | 148 +++++++++ .../compileTimeConstants.v1.txt | 215 +++++++++--- .../compileTimeConstants.v2.fir.txt | 148 +++++++++ .../compileTimeConstants.v2.txt | 215 +++++++++--- .../nestedClassesAndObjects.kt | 1 + .../nestedClassesAndObjects.txt | 127 +++++-- .../nestedClassesAndObjects.v1.txt | 175 +++++++--- .../nestedClassesAndObjects.v2.txt | 175 +++++++--- .../propertyAccessorAnnotations.kt | 1 + .../propertyAccessorAnnotations.txt | 37 ++- .../propertyAccessorAnnotations.v1.txt | 50 ++- .../propertyAccessorAnnotations.v2.txt | 50 ++- .../builtinsSerializer/simple.kt | 1 + .../builtinsSerializer/simple.txt | 32 +- .../builtinsSerializer/simple.v1.txt | 42 ++- .../builtinsSerializer/simple.v2.txt | 42 ++- .../sourceRetainedAnnotation.fir.txt | 40 +++ .../sourceRetainedAnnotation.txt | 51 ++- .../sourceRetainedAnnotation.v1.fir.txt | 50 +++ .../sourceRetainedAnnotation.v1.txt | 66 +++- .../sourceRetainedAnnotation.v2.fir.txt | 50 +++ .../sourceRetainedAnnotation.v2.txt | 66 +++- .../builtinsSerializer/stringConcatenation.kt | 1 + .../stringConcatenation.txt | 32 +- .../stringConcatenation.v1.txt | 42 ++- .../stringConcatenation.v2.txt | 42 ++- .../typeParameterAnnotation.kt | 1 + .../typeParameterAnnotation.txt | 28 +- .../typeParameterAnnotation.v1.txt | 34 +- .../typeParameterAnnotation.v2.txt | 34 +- .../klib/dump-metadata/data_class.fir.txt | 47 +++ .../klib/dump-metadata/data_class.txt | 18 - .../klib/dump-metadata/data_class.v1.fir.txt | 66 ++++ .../klib/dump-metadata/data_class.v1.txt | 32 -- .../klib/dump-metadata/data_class.v2.fir.txt | 66 ++++ .../klib/dump-metadata/data_class.v2.txt | 32 -- .../dump-metadata/klib/fieldAnnotations.txt | 46 ++- .../klib/fieldAnnotations.v1.txt | 66 +++- .../klib/fieldAnnotations.v2.txt | 66 +++- .../dump-metadata/klib/receiverAnnotations.kt | 1 + .../klib/receiverAnnotations.txt | 44 ++- .../klib/receiverAnnotations.v1.txt | 58 +++- .../klib/receiverAnnotations.v2.txt | 58 +++- .../kt55464_serializeTypeAnnotation.kt | 1 + .../kt55464_serializeTypeAnnotation.txt | 23 +- .../kt55464_serializeTypeAnnotation.v1.txt | 26 +- .../kt55464_serializeTypeAnnotation.v2.txt | 26 +- .../kt56018_value_parameters_annotations.kt | 1 + .../kt56018_value_parameters_annotations.txt | 23 +- ...t56018_value_parameters_annotations.v1.txt | 26 +- ...t56018_value_parameters_annotations.v2.txt | 26 +- .../dump-metadata/property_accessors.fir.txt | 49 +++ .../klib/dump-metadata/property_accessors.txt | 64 +++- .../property_accessors.v1.fir.txt | 76 +++++ .../dump-metadata/property_accessors.v1.txt | 103 ++++-- .../property_accessors.v2.fir.txt | 76 +++++ .../dump-metadata/property_accessors.v2.txt | 103 ++++-- .../klib/dump-metadata/type_annotations.kt | 1 + .../klib/dump-metadata/type_annotations.txt | 49 ++- .../dump-metadata/type_annotations.v1.txt | 62 +++- .../dump-metadata/type_annotations.v2.txt | 62 +++- .../AbstractNativeKlibDumpMetadataTest.kt | 70 ++-- .../support/util/TestCompilationArtifacts.kt | 3 +- 170 files changed, 9177 insertions(+), 2207 deletions(-) create mode 100644 native/native.tests/testData/klib/dump-metadata/Accessors.fir.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/Accessors.v1.fir.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/Accessors.v2.fir.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/Enum.fir.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/Enum.v1.fir.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/Enum.v2.fir.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/Objects.fir.txt delete mode 100644 native/native.tests/testData/klib/dump-metadata/Objects.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/Objects.v1.fir.txt delete mode 100644 native/native.tests/testData/klib/dump-metadata/Objects.v1.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/Objects.v2.fir.txt delete mode 100644 native/native.tests/testData/klib/dump-metadata/Objects.v2.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.fir.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.v1.fir.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.v2.fir.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.fir.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.v1.fir.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.v2.fir.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.fir.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.v1.fir.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.v2.fir.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.fir.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.v1.fir.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.v2.fir.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.fir.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.v1.fir.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.v2.fir.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.fir.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.v1.fir.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.v2.fir.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/data_class.fir.txt delete mode 100644 native/native.tests/testData/klib/dump-metadata/data_class.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/data_class.v1.fir.txt delete mode 100644 native/native.tests/testData/klib/dump-metadata/data_class.v1.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/data_class.v2.fir.txt delete mode 100644 native/native.tests/testData/klib/dump-metadata/data_class.v2.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/property_accessors.fir.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/property_accessors.v1.fir.txt create mode 100644 native/native.tests/testData/klib/dump-metadata/property_accessors.v2.fir.txt diff --git a/native/native.tests/testData/klib/dump-metadata/Accessors.fir.txt b/native/native.tests/testData/klib/dump-metadata/Accessors.fir.txt new file mode 100644 index 00000000000..8ced1f4256b --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/Accessors.fir.txt @@ -0,0 +1,52 @@ +library { + // module name: + + library fragment { + // package name: custom.pkg + + // class name: custom/pkg/A + // class name: custom/pkg/Foo + + public final annotation class custom/pkg/A : kotlin/Annotation { + + public constructor() + } + + public final class custom/pkg/Foo : kotlin/Any { + + public constructor() + + @custom/pkg/A + public final val annotated: kotlin/Int /* = 0 */ + public final get + + public final var annotatedAccessors: kotlin/Int + @custom/pkg/A + public final /* non-default */ get + @custom/pkg/A + public final /* non-default */ set(value: kotlin/Int) + + public final val annotatedGetter: kotlin/Int /* = 0 */ + @custom/pkg/A + public final /* non-default */ get + + public final var annotatedSetter: kotlin/Int + public final get + @custom/pkg/A + public final /* non-default */ set(value: kotlin/Int) + + public final var privateSetter: kotlin/Int + public final get + private final /* non-default */ set(value: kotlin/Int) + + private final val privateSimple: kotlin/Int /* = 0 */ + private final get + + protected final val protectedSimple: kotlin/Int /* = 0 */ + protected final get + + public final val simple: kotlin/Int /* = 0 */ + public final get + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/Accessors.txt b/native/native.tests/testData/klib/dump-metadata/Accessors.txt index a929e697af3..85809675144 100644 --- a/native/native.tests/testData/klib/dump-metadata/Accessors.txt +++ b/native/native.tests/testData/klib/dump-metadata/Accessors.txt @@ -1,17 +1,52 @@ -package custom.pkg { - annotation class A constructor() : Annotation - class Foo constructor() { - @A val annotated: Int = 0 - var annotatedAccessors: Int - @A get - @A set - val annotatedGetter: Int = 0 - @A get - var annotatedSetter: Int - @A set - var privateSetter: Int - private set - protected val protectedSimple: Int = 0 - val simple: Int = 0 +library { + // module name: + + library fragment { + // package name: custom.pkg + + // class name: custom/pkg/A + // class name: custom/pkg/Foo + + public final annotation class custom/pkg/A : kotlin/Annotation { + + public constructor() } -} \ No newline at end of file + + public final class custom/pkg/Foo : kotlin/Any { + + public constructor() + + @custom/pkg/A + public final val annotated: kotlin/Int /* = 0 */ + public final get + + public final var annotatedAccessors: kotlin/Int + @custom/pkg/A + public final /* non-default */ get + @custom/pkg/A + public final /* non-default */ set(: kotlin/Int) + + public final val annotatedGetter: kotlin/Int /* = 0 */ + @custom/pkg/A + public final /* non-default */ get + + public final var annotatedSetter: kotlin/Int + public final get + @custom/pkg/A + public final /* non-default */ set(: kotlin/Int) + + public final var privateSetter: kotlin/Int + public final get + private final /* non-default */ set(: kotlin/Int) + + private final val privateSimple: kotlin/Int /* = 0 */ + private final get + + protected final val protectedSimple: kotlin/Int /* = 0 */ + protected final get + + public final val simple: kotlin/Int /* = 0 */ + public final get + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/Accessors.v1.fir.txt b/native/native.tests/testData/klib/dump-metadata/Accessors.v1.fir.txt new file mode 100644 index 00000000000..b964f56bcb9 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/Accessors.v1.fir.txt @@ -0,0 +1,75 @@ +library { + // module name: + + library fragment { + // package name: custom.pkg + + // class name: custom/pkg/A + // class name: custom/pkg/Foo + + // signature: custom.pkg/A|null[0] + public final annotation class custom/pkg/A : kotlin/Annotation { + + // signature: custom.pkg/A.|-5645683436151566731[0] + public constructor() + } + + // signature: custom.pkg/Foo|null[0] + public final class custom/pkg/Foo : kotlin/Any { + + // signature: custom.pkg/Foo.|-5645683436151566731[0] + public constructor() + + // signature: custom.pkg/Foo.annotated|4796959806228949141[0] + @custom/pkg/A + public final val annotated: kotlin/Int /* = 0 */ + // signature: custom.pkg/Foo.annotated.|8560369092635518301[0] + public final get + + // signature: custom.pkg/Foo.annotatedAccessors|-2696733316289958808[0] + public final var annotatedAccessors: kotlin/Int + // signature: custom.pkg/Foo.annotatedAccessors.|1622120395968958718[0] + @custom/pkg/A + public final /* non-default */ get + // signature: custom.pkg/Foo.annotatedAccessors.|-2659697716788262479[0] + @custom/pkg/A + public final /* non-default */ set(value: kotlin/Int) + + // signature: custom.pkg/Foo.annotatedGetter|2662566077187940730[0] + public final val annotatedGetter: kotlin/Int /* = 0 */ + // signature: custom.pkg/Foo.annotatedGetter.|811214482955708703[0] + @custom/pkg/A + public final /* non-default */ get + + // signature: custom.pkg/Foo.annotatedSetter|-2080041549422472915[0] + public final var annotatedSetter: kotlin/Int + // signature: custom.pkg/Foo.annotatedSetter.|-3803695636622870963[0] + public final get + // signature: custom.pkg/Foo.annotatedSetter.|4219770012469820688[0] + @custom/pkg/A + public final /* non-default */ set(value: kotlin/Int) + + // signature: custom.pkg/Foo.privateSetter|-7367207755766039228[0] + public final var privateSetter: kotlin/Int + // signature: custom.pkg/Foo.privateSetter.|-1955517508082257126[0] + public final get + // signature: custom.pkg/Foo.privateSetter.|-2122183718828263324[0] + private final /* non-default */ set(value: kotlin/Int) + + // signature: custom.pkg/Foo.privateSimple|-6462896533882242463[0] + private final val privateSimple: kotlin/Int /* = 0 */ + // signature: custom.pkg/Foo.privateSimple.|-7951279747362169535[0] + private final get + + // signature: custom.pkg/Foo.protectedSimple|8596646478392887235[0] + protected final val protectedSimple: kotlin/Int /* = 0 */ + // signature: custom.pkg/Foo.protectedSimple.|-7535435137848975023[0] + protected final get + + // signature: custom.pkg/Foo.simple|1899398506587500007[0] + public final val simple: kotlin/Int /* = 0 */ + // signature: custom.pkg/Foo.simple.|-1948492533687709865[0] + public final get + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/Accessors.v1.txt b/native/native.tests/testData/klib/dump-metadata/Accessors.v1.txt index 4d7d52ee261..f881fe8df12 100644 --- a/native/native.tests/testData/klib/dump-metadata/Accessors.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/Accessors.v1.txt @@ -1,31 +1,75 @@ -package custom.pkg { - // Signature: custom.pkg/A|null[0] - annotation class A constructor() : Annotation - // Signature: custom.pkg/Foo|null[0] - class Foo constructor() { - // Signature: custom.pkg/Foo.annotated|4796959806228949141[0] - @A val annotated: Int = 0 - // Signature: custom.pkg/Foo.annotatedAccessors|-2696733316289958808[0] - var annotatedAccessors: Int - // Signature: custom.pkg/Foo.annotatedAccessors.|1622120395968958718[0] - @A get - // Signature: custom.pkg/Foo.annotatedAccessors.|-2659697716788262479[0] - @A set - // Signature: custom.pkg/Foo.annotatedGetter|2662566077187940730[0] - val annotatedGetter: Int = 0 - // Signature: custom.pkg/Foo.annotatedGetter.|811214482955708703[0] - @A get - // Signature: custom.pkg/Foo.annotatedSetter|-2080041549422472915[0] - var annotatedSetter: Int - // Signature: custom.pkg/Foo.annotatedSetter.|4219770012469820688[0] - @A set - // Signature: custom.pkg/Foo.privateSetter|-7367207755766039228[0] - var privateSetter: Int - // Signature: custom.pkg/Foo.privateSetter.|-2122183718828263324[0] - private set - // Signature: custom.pkg/Foo.protectedSimple|8596646478392887235[0] - protected val protectedSimple: Int = 0 - // Signature: custom.pkg/Foo.simple|1899398506587500007[0] - val simple: Int = 0 +library { + // module name: + + library fragment { + // package name: custom.pkg + + // class name: custom/pkg/A + // class name: custom/pkg/Foo + + // signature: custom.pkg/A|null[0] + public final annotation class custom/pkg/A : kotlin/Annotation { + + // signature: custom.pkg/A.|-5645683436151566731[0] + public constructor() } + + // signature: custom.pkg/Foo|null[0] + public final class custom/pkg/Foo : kotlin/Any { + + // signature: custom.pkg/Foo.|-5645683436151566731[0] + public constructor() + + // signature: custom.pkg/Foo.annotated|4796959806228949141[0] + @custom/pkg/A + public final val annotated: kotlin/Int /* = 0 */ + // signature: custom.pkg/Foo.annotated.|8560369092635518301[0] + public final get + + // signature: custom.pkg/Foo.annotatedAccessors|-2696733316289958808[0] + public final var annotatedAccessors: kotlin/Int + // signature: custom.pkg/Foo.annotatedAccessors.|1622120395968958718[0] + @custom/pkg/A + public final /* non-default */ get + // signature: custom.pkg/Foo.annotatedAccessors.|-2659697716788262479[0] + @custom/pkg/A + public final /* non-default */ set(: kotlin/Int) + + // signature: custom.pkg/Foo.annotatedGetter|2662566077187940730[0] + public final val annotatedGetter: kotlin/Int /* = 0 */ + // signature: custom.pkg/Foo.annotatedGetter.|811214482955708703[0] + @custom/pkg/A + public final /* non-default */ get + + // signature: custom.pkg/Foo.annotatedSetter|-2080041549422472915[0] + public final var annotatedSetter: kotlin/Int + // signature: custom.pkg/Foo.annotatedSetter.|-3803695636622870963[0] + public final get + // signature: custom.pkg/Foo.annotatedSetter.|4219770012469820688[0] + @custom/pkg/A + public final /* non-default */ set(: kotlin/Int) + + // signature: custom.pkg/Foo.privateSetter|-7367207755766039228[0] + public final var privateSetter: kotlin/Int + // signature: custom.pkg/Foo.privateSetter.|-1955517508082257126[0] + public final get + // signature: custom.pkg/Foo.privateSetter.|-2122183718828263324[0] + private final /* non-default */ set(: kotlin/Int) + + // signature: custom.pkg/Foo.privateSimple|-6462896533882242463[0] + private final val privateSimple: kotlin/Int /* = 0 */ + // signature: custom.pkg/Foo.privateSimple.|-7951279747362169535[0] + private final get + + // signature: custom.pkg/Foo.protectedSimple|8596646478392887235[0] + protected final val protectedSimple: kotlin/Int /* = 0 */ + // signature: custom.pkg/Foo.protectedSimple.|-7535435137848975023[0] + protected final get + + // signature: custom.pkg/Foo.simple|1899398506587500007[0] + public final val simple: kotlin/Int /* = 0 */ + // signature: custom.pkg/Foo.simple.|-1948492533687709865[0] + public final get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/Accessors.v2.fir.txt b/native/native.tests/testData/klib/dump-metadata/Accessors.v2.fir.txt new file mode 100644 index 00000000000..52062548ca1 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/Accessors.v2.fir.txt @@ -0,0 +1,75 @@ +library { + // module name: + + library fragment { + // package name: custom.pkg + + // class name: custom/pkg/A + // class name: custom/pkg/Foo + + // signature: custom.pkg/A|null[0] + public final annotation class custom/pkg/A : kotlin/Annotation { + + // signature: custom.pkg/A.|(){}[0] + public constructor() + } + + // signature: custom.pkg/Foo|null[0] + public final class custom/pkg/Foo : kotlin/Any { + + // signature: custom.pkg/Foo.|(){}[0] + public constructor() + + // signature: custom.pkg/Foo.annotated|{}annotated[0] + @custom/pkg/A + public final val annotated: kotlin/Int /* = 0 */ + // signature: custom.pkg/Foo.annotated.|(){}[0] + public final get + + // signature: custom.pkg/Foo.annotatedAccessors|{}annotatedAccessors[0] + public final var annotatedAccessors: kotlin/Int + // signature: custom.pkg/Foo.annotatedAccessors.|(){}[0] + @custom/pkg/A + public final /* non-default */ get + // signature: custom.pkg/Foo.annotatedAccessors.|(kotlin.Int){}[0] + @custom/pkg/A + public final /* non-default */ set(value: kotlin/Int) + + // signature: custom.pkg/Foo.annotatedGetter|{}annotatedGetter[0] + public final val annotatedGetter: kotlin/Int /* = 0 */ + // signature: custom.pkg/Foo.annotatedGetter.|(){}[0] + @custom/pkg/A + public final /* non-default */ get + + // signature: custom.pkg/Foo.annotatedSetter|{}annotatedSetter[0] + public final var annotatedSetter: kotlin/Int + // signature: custom.pkg/Foo.annotatedSetter.|(){}[0] + public final get + // signature: custom.pkg/Foo.annotatedSetter.|(kotlin.Int){}[0] + @custom/pkg/A + public final /* non-default */ set(value: kotlin/Int) + + // signature: custom.pkg/Foo.privateSetter|{}privateSetter[0] + public final var privateSetter: kotlin/Int + // signature: custom.pkg/Foo.privateSetter.|(){}[0] + public final get + // signature: custom.pkg/Foo.privateSetter.|(kotlin.Int){}[0] + private final /* non-default */ set(value: kotlin/Int) + + // signature: custom.pkg/Foo.privateSimple|{}privateSimple[0] + private final val privateSimple: kotlin/Int /* = 0 */ + // signature: custom.pkg/Foo.privateSimple.|(){}[0] + private final get + + // signature: custom.pkg/Foo.protectedSimple|{}protectedSimple[0] + protected final val protectedSimple: kotlin/Int /* = 0 */ + // signature: custom.pkg/Foo.protectedSimple.|(){}[0] + protected final get + + // signature: custom.pkg/Foo.simple|{}simple[0] + public final val simple: kotlin/Int /* = 0 */ + // signature: custom.pkg/Foo.simple.|(){}[0] + public final get + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/Accessors.v2.txt b/native/native.tests/testData/klib/dump-metadata/Accessors.v2.txt index 379608bbdab..77259e11dc6 100644 --- a/native/native.tests/testData/klib/dump-metadata/Accessors.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/Accessors.v2.txt @@ -1,31 +1,75 @@ -package custom.pkg { - // Signature: custom.pkg/A|null[0] - annotation class A constructor() : Annotation - // Signature: custom.pkg/Foo|null[0] - class Foo constructor() { - // Signature: custom.pkg/Foo.annotated|{}annotated[0] - @A val annotated: Int = 0 - // Signature: custom.pkg/Foo.annotatedAccessors|{}annotatedAccessors[0] - var annotatedAccessors: Int - // Signature: custom.pkg/Foo.annotatedAccessors.|(){}[0] - @A get - // Signature: custom.pkg/Foo.annotatedAccessors.|(kotlin.Int){}[0] - @A set - // Signature: custom.pkg/Foo.annotatedGetter|{}annotatedGetter[0] - val annotatedGetter: Int = 0 - // Signature: custom.pkg/Foo.annotatedGetter.|(){}[0] - @A get - // Signature: custom.pkg/Foo.annotatedSetter|{}annotatedSetter[0] - var annotatedSetter: Int - // Signature: custom.pkg/Foo.annotatedSetter.|(kotlin.Int){}[0] - @A set - // Signature: custom.pkg/Foo.privateSetter|{}privateSetter[0] - var privateSetter: Int - // Signature: custom.pkg/Foo.privateSetter.|(kotlin.Int){}[0] - private set - // Signature: custom.pkg/Foo.protectedSimple|{}protectedSimple[0] - protected val protectedSimple: Int = 0 - // Signature: custom.pkg/Foo.simple|{}simple[0] - val simple: Int = 0 +library { + // module name: + + library fragment { + // package name: custom.pkg + + // class name: custom/pkg/A + // class name: custom/pkg/Foo + + // signature: custom.pkg/A|null[0] + public final annotation class custom/pkg/A : kotlin/Annotation { + + // signature: custom.pkg/A.|(){}[0] + public constructor() } + + // signature: custom.pkg/Foo|null[0] + public final class custom/pkg/Foo : kotlin/Any { + + // signature: custom.pkg/Foo.|(){}[0] + public constructor() + + // signature: custom.pkg/Foo.annotated|{}annotated[0] + @custom/pkg/A + public final val annotated: kotlin/Int /* = 0 */ + // signature: custom.pkg/Foo.annotated.|(){}[0] + public final get + + // signature: custom.pkg/Foo.annotatedAccessors|{}annotatedAccessors[0] + public final var annotatedAccessors: kotlin/Int + // signature: custom.pkg/Foo.annotatedAccessors.|(){}[0] + @custom/pkg/A + public final /* non-default */ get + // signature: custom.pkg/Foo.annotatedAccessors.|(kotlin.Int){}[0] + @custom/pkg/A + public final /* non-default */ set(: kotlin/Int) + + // signature: custom.pkg/Foo.annotatedGetter|{}annotatedGetter[0] + public final val annotatedGetter: kotlin/Int /* = 0 */ + // signature: custom.pkg/Foo.annotatedGetter.|(){}[0] + @custom/pkg/A + public final /* non-default */ get + + // signature: custom.pkg/Foo.annotatedSetter|{}annotatedSetter[0] + public final var annotatedSetter: kotlin/Int + // signature: custom.pkg/Foo.annotatedSetter.|(){}[0] + public final get + // signature: custom.pkg/Foo.annotatedSetter.|(kotlin.Int){}[0] + @custom/pkg/A + public final /* non-default */ set(: kotlin/Int) + + // signature: custom.pkg/Foo.privateSetter|{}privateSetter[0] + public final var privateSetter: kotlin/Int + // signature: custom.pkg/Foo.privateSetter.|(){}[0] + public final get + // signature: custom.pkg/Foo.privateSetter.|(kotlin.Int){}[0] + private final /* non-default */ set(: kotlin/Int) + + // signature: custom.pkg/Foo.privateSimple|{}privateSimple[0] + private final val privateSimple: kotlin/Int /* = 0 */ + // signature: custom.pkg/Foo.privateSimple.|(){}[0] + private final get + + // signature: custom.pkg/Foo.protectedSimple|{}protectedSimple[0] + protected final val protectedSimple: kotlin/Int /* = 0 */ + // signature: custom.pkg/Foo.protectedSimple.|(){}[0] + protected final get + + // signature: custom.pkg/Foo.simple|{}simple[0] + public final val simple: kotlin/Int /* = 0 */ + // signature: custom.pkg/Foo.simple.|(){}[0] + public final get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/Classes.kt b/native/native.tests/testData/klib/dump-metadata/Classes.kt index e912e979cdb..763c4f2f3f0 100644 --- a/native/native.tests/testData/klib/dump-metadata/Classes.kt +++ b/native/native.tests/testData/klib/dump-metadata/Classes.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL class A { fun aFun() {} val aVal = 0 diff --git a/native/native.tests/testData/klib/dump-metadata/Classes.txt b/native/native.tests/testData/klib/dump-metadata/Classes.txt index 612ac3d348d..7fb32d153f5 100644 --- a/native/native.tests/testData/klib/dump-metadata/Classes.txt +++ b/native/native.tests/testData/klib/dump-metadata/Classes.txt @@ -1,48 +1,161 @@ -package { - class A constructor() { - val aVal: Int = 0 - var aVar: String - fun aFun() - inner class B constructor() { - val bVal: Int = 0 - var bVar: String - fun bFun() - inner class C constructor() { - val cVal: Int = 0 - var cVar: String - fun cFun() - } - } - class E constructor() { - val eVal: Int = 0 - var eVar: String - fun eFun() - } +library { + // module name: + + library fragment { + // package name: + + // class name: A + // class name: A.B + // class name: A.B.C + // class name: A.B.D + // class name: A.E + // class name: F + // class name: FinalImpl + // class name: Interface + // class name: OpenImpl + + public final class A : kotlin/Any { + + public constructor() + + public final fun aFun(): kotlin/Unit + + public final val aVal: kotlin/Int /* = 0 */ + public final get + + public final var aVar: kotlin/String + public final get + public final set + + // nested class: B + + // nested class: E } - data class F constructor(fVal: Int, fVar: String) { - val fVal: Int - var fVar: String - operator fun component1(): Int - operator fun component2(): String - fun copy(fVal: Int = ..., fVar: String = ...): F - override fun equals(other: Any?): Boolean - fun fFun() - override fun hashCode(): Int - override fun toString(): String + + public final inner class A.B : kotlin/Any { + + public constructor() + + public final fun bFun(): kotlin/Unit + + public final val bVal: kotlin/Int /* = 0 */ + public final get + + public final var bVar: kotlin/String + public final get + public final set + + // nested class: C + + // nested class: D } - class FinalImpl constructor() : OpenImpl { - override val iVal: Int = 0 - override var iVar: String - override fun iFun() + + public final inner class A.B.C : kotlin/Any { + + public constructor() + + public final fun cFun(): kotlin/Unit + + public final val cVal: kotlin/Int /* = 0 */ + public final get + + public final var cVar: kotlin/String + public final get + public final set } - interface Interface { - val iVal: Int - var iVar: String - fun iFun() + + private final inner class A.B.D : kotlin/Any { + + public constructor() + + public final fun dFun(): kotlin/Unit + + public final val dVal: kotlin/Int /* = 0 */ + public final get + + public final var dVar: kotlin/String + public final get + public final set } - open class OpenImpl constructor() : Interface { - override val iVal: Int = 0 - override var iVar: String - override fun iFun() + + public final class A.E : kotlin/Any { + + public constructor() + + public final fun eFun(): kotlin/Unit + + public final val eVal: kotlin/Int /* = 0 */ + public final get + + public final var eVar: kotlin/String + public final get + public final set } -} \ No newline at end of file + + public final data class F : kotlin/Any { + + public constructor(fVal: kotlin/Int, fVar: kotlin/String) + + public final /* synthesized */ operator fun component1(): kotlin/Int + + public final /* synthesized */ operator fun component2(): kotlin/String + + public final /* synthesized */ fun copy(fVal: kotlin/Int /* = ... */, fVar: kotlin/String /* = ... */): F + + public open /* synthesized */ operator fun equals(other: kotlin/Any?): kotlin/Boolean + + public final fun fFun(): kotlin/Unit + + public open /* synthesized */ fun hashCode(): kotlin/Int + + public open /* synthesized */ fun toString(): kotlin/String + + public final val fVal: kotlin/Int + public final get + + public final var fVar: kotlin/String + public final get + public final set + } + + public final class FinalImpl : OpenImpl { + + public constructor() + + public open fun iFun(): kotlin/Unit + + public open val iVal: kotlin/Int /* = 0 */ + public open get + + public open var iVar: kotlin/String + public open get + public open set + } + + public abstract interface Interface : kotlin/Any { + + public abstract fun iFun(): kotlin/Unit + + public abstract val iVal: kotlin/Int + public abstract get + + public abstract var iVar: kotlin/String + public abstract get + public abstract set + } + + public open class OpenImpl : Interface { + + public constructor() + + public open fun iFun(): kotlin/Unit + + public open val iVal: kotlin/Int /* = 0 */ + public open get + + public open var iVar: kotlin/String + public open get + public open set + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/Classes.v1.txt b/native/native.tests/testData/klib/dump-metadata/Classes.v1.txt index a039a9ef1bf..e49d727e137 100644 --- a/native/native.tests/testData/klib/dump-metadata/Classes.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/Classes.v1.txt @@ -1,86 +1,238 @@ -package { - // Signature: /A|null[0] - class A constructor() { - // Signature: /A.aVal|-4026160909590410018[0] - val aVal: Int = 0 - // Signature: /A.aVar|3814694652979924453[0] - var aVar: String - // Signature: /A.aFun|-596272525427331003[0] - fun aFun() - // Signature: /A.B|null[0] - inner class B constructor() { - // Signature: /A.B.bVal|47661200932476778[0] - val bVal: Int = 0 - // Signature: /A.B.bVar|1733087153451115465[0] - var bVar: String - // Signature: /A.B.bFun|4199274722730592230[0] - fun bFun() - // Signature: /A.B.C|null[0] - inner class C constructor() { - // Signature: /A.B.C.cVal|5776604707001436517[0] - val cVal: Int = 0 - // Signature: /A.B.C.cVar|-6552073779725328843[0] - var cVar: String - // Signature: /A.B.C.cFun|5963622644484500428[0] - fun cFun() - } - } - // Signature: /A.E|null[0] - class E constructor() { - // Signature: /A.E.eVal|3045358633348092364[0] - val eVal: Int = 0 - // Signature: /A.E.eVar|3111249734155596017[0] - var eVar: String - // Signature: /A.E.eFun|3495051381223408264[0] - fun eFun() - } +library { + // module name: + + library fragment { + // package name: + + // class name: A + // class name: A.B + // class name: A.B.C + // class name: A.B.D + // class name: A.E + // class name: F + // class name: FinalImpl + // class name: Interface + // class name: OpenImpl + + // signature: /A|null[0] + public final class A : kotlin/Any { + + // signature: /A.|-5645683436151566731[0] + public constructor() + + // signature: /A.aFun|-596272525427331003[0] + public final fun aFun(): kotlin/Unit + + // signature: /A.aVal|-4026160909590410018[0] + public final val aVal: kotlin/Int /* = 0 */ + // signature: /A.aVal.|1133261762939420636[0] + public final get + + // signature: /A.aVar|3814694652979924453[0] + public final var aVar: kotlin/String + // signature: /A.aVar.|643049459261948719[0] + public final get + // signature: /A.aVar.|-3684581426018096880[0] + public final set + + // nested class: B + + // nested class: E } - // Signature: /F|null[0] - data class F constructor(fVal: Int, fVar: String) { - // Signature: /F.fVal|6893318909478774212[0] - val fVal: Int - // Signature: /F.fVar|-2983039959624530436[0] - var fVar: String - // Signature: /F.component1|162597135895221648[0] - operator fun component1(): Int - // Signature: /F.component2|3796717572321500973[0] - operator fun component2(): String - // Signature: /F.copy|5893098757611139585[0] - fun copy(fVal: Int = ..., fVar: String = ...): F - // Signature: /F.equals|4638265728071529943[0] - override fun equals(other: Any?): Boolean - // Signature: /F.fFun|2647324645836040292[0] - fun fFun() - // Signature: /F.hashCode|3409210261493131192[0] - override fun hashCode(): Int - // Signature: /F.toString|-1522858123163872138[0] - override fun toString(): String + + // signature: /A.B|null[0] + public final inner class A.B : kotlin/Any { + + // signature: /A.B.|-5645683436151566731[0] + public constructor() + + // signature: /A.B.bFun|4199274722730592230[0] + public final fun bFun(): kotlin/Unit + + // signature: /A.B.bVal|47661200932476778[0] + public final val bVal: kotlin/Int /* = 0 */ + // signature: /A.B.bVal.|4280762573327915998[0] + public final get + + // signature: /A.B.bVar|1733087153451115465[0] + public final var bVar: kotlin/String + // signature: /A.B.bVar.|-3999248274667876256[0] + public final get + // signature: /A.B.bVar.|-4825376880140249283[0] + public final set + + // nested class: C + + // nested class: D } - // Signature: /FinalImpl|null[0] - class FinalImpl constructor() : OpenImpl { - // Signature: /FinalImpl.iVal|-7454916029695635493[0] - override val iVal: Int = 0 - // Signature: /FinalImpl.iVar|5660235026806079480[0] - override var iVar: String - // Signature: /FinalImpl.iFun|-7944844664160120593[0] - override fun iFun() + + // signature: /A.B.C|null[0] + public final inner class A.B.C : kotlin/Any { + + // signature: /A.B.C.|-5645683436151566731[0] + public constructor() + + // signature: /A.B.C.cFun|5963622644484500428[0] + public final fun cFun(): kotlin/Unit + + // signature: /A.B.C.cVal|5776604707001436517[0] + public final val cVal: kotlin/Int /* = 0 */ + // signature: /A.B.C.cVal.|3075094094508885184[0] + public final get + + // signature: /A.B.C.cVar|-6552073779725328843[0] + public final var cVar: kotlin/String + // signature: /A.B.C.cVar.|1091296143631960810[0] + public final get + // signature: /A.B.C.cVar.|6166431973776537982[0] + public final set } - // Signature: /Interface|null[0] - interface Interface { - // Signature: /Interface.iVal|-7454916029695635493[0] - val iVal: Int - // Signature: /Interface.iVar|5660235026806079480[0] - var iVar: String - // Signature: /Interface.iFun|-7944844664160120593[0] - fun iFun() + + // signature: /A.B.D|null[0] + private final inner class A.B.D : kotlin/Any { + + // signature: /A.B.D.|-5645683436151566731[0] + public constructor() + + // signature: /A.B.D.dFun|-875776255063369523[0] + public final fun dFun(): kotlin/Unit + + // signature: /A.B.D.dVal|-4657921206489813306[0] + public final val dVal: kotlin/Int /* = 0 */ + // signature: /A.B.D.dVal.|8462599572645632105[0] + public final get + + // signature: /A.B.D.dVar|-4302662149706586937[0] + public final var dVar: kotlin/String + // signature: /A.B.D.dVar.|5843434698909708981[0] + public final get + // signature: /A.B.D.dVar.|-8291764058292932666[0] + public final set } - // Signature: /OpenImpl|null[0] - open class OpenImpl constructor() : Interface { - // Signature: /OpenImpl.iVal|-7454916029695635493[0] - override val iVal: Int = 0 - // Signature: /OpenImpl.iVar|5660235026806079480[0] - override var iVar: String - // Signature: /OpenImpl.iFun|-7944844664160120593[0] - override fun iFun() + + // signature: /A.E|null[0] + public final class A.E : kotlin/Any { + + // signature: /A.E.|-5645683436151566731[0] + public constructor() + + // signature: /A.E.eFun|3495051381223408264[0] + public final fun eFun(): kotlin/Unit + + // signature: /A.E.eVal|3045358633348092364[0] + public final val eVal: kotlin/Int /* = 0 */ + // signature: /A.E.eVal.|5614868761266169748[0] + public final get + + // signature: /A.E.eVar|3111249734155596017[0] + public final var eVar: kotlin/String + // signature: /A.E.eVar.|-6537729739637652536[0] + public final get + // signature: /A.E.eVar.|-1170683713879761253[0] + public final set } + + // signature: /F|null[0] + public final data class F : kotlin/Any { + + // signature: /F.|-6994814679185246063[0] + public constructor(fVal: kotlin/Int, fVar: kotlin/String) + + // signature: /F.component1|162597135895221648[0] + public final /* synthesized */ operator fun component1(): kotlin/Int + + // signature: /F.component2|3796717572321500973[0] + public final /* synthesized */ operator fun component2(): kotlin/String + + // signature: /F.copy|5893098757611139585[0] + public final /* synthesized */ fun copy(fVal: kotlin/Int /* = ... */, fVar: kotlin/String /* = ... */): F + + // signature: /F.equals|4638265728071529943[0] + public open /* synthesized */ operator fun equals(other: kotlin/Any?): kotlin/Boolean + + // signature: /F.fFun|2647324645836040292[0] + public final fun fFun(): kotlin/Unit + + // signature: /F.hashCode|3409210261493131192[0] + public open /* synthesized */ fun hashCode(): kotlin/Int + + // signature: /F.toString|-1522858123163872138[0] + public open /* synthesized */ fun toString(): kotlin/String + + // signature: /F.fVal|6893318909478774212[0] + public final val fVal: kotlin/Int + // signature: /F.fVal.|4437215135741003892[0] + public final get + + // signature: /F.fVar|-2983039959624530436[0] + public final var fVar: kotlin/String + // signature: /F.fVar.|3603103252422838880[0] + public final get + // signature: /F.fVar.|2951263171025328798[0] + public final set + } + + // signature: /FinalImpl|null[0] + public final class FinalImpl : OpenImpl { + + // signature: /FinalImpl.|-5645683436151566731[0] + public constructor() + + // signature: /FinalImpl.iFun|-7944844664160120593[0] + public open fun iFun(): kotlin/Unit + + // signature: /FinalImpl.iVal|-7454916029695635493[0] + public open val iVal: kotlin/Int /* = 0 */ + // signature: /FinalImpl.iVal.|3700448028516726757[0] + public open get + + // signature: /FinalImpl.iVar|5660235026806079480[0] + public open var iVar: kotlin/String + // signature: /FinalImpl.iVar.|-2407059627731632582[0] + public open get + // signature: /FinalImpl.iVar.|1731789752263997975[0] + public open set + } + + // signature: /Interface|null[0] + public abstract interface Interface : kotlin/Any { + + // signature: /Interface.iFun|-7944844664160120593[0] + public abstract fun iFun(): kotlin/Unit + + // signature: /Interface.iVal|-7454916029695635493[0] + public abstract val iVal: kotlin/Int + // signature: /Interface.iVal.|3700448028516726757[0] + public abstract get + + // signature: /Interface.iVar|5660235026806079480[0] + public abstract var iVar: kotlin/String + // signature: /Interface.iVar.|-2407059627731632582[0] + public abstract get + // signature: /Interface.iVar.|1731789752263997975[0] + public abstract set + } + + // signature: /OpenImpl|null[0] + public open class OpenImpl : Interface { + + // signature: /OpenImpl.|-5645683436151566731[0] + public constructor() + + // signature: /OpenImpl.iFun|-7944844664160120593[0] + public open fun iFun(): kotlin/Unit + + // signature: /OpenImpl.iVal|-7454916029695635493[0] + public open val iVal: kotlin/Int /* = 0 */ + // signature: /OpenImpl.iVal.|3700448028516726757[0] + public open get + + // signature: /OpenImpl.iVar|5660235026806079480[0] + public open var iVar: kotlin/String + // signature: /OpenImpl.iVar.|-2407059627731632582[0] + public open get + // signature: /OpenImpl.iVar.|1731789752263997975[0] + public open set + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/Classes.v2.txt b/native/native.tests/testData/klib/dump-metadata/Classes.v2.txt index d15068af5f4..a2a3cb1b78c 100644 --- a/native/native.tests/testData/klib/dump-metadata/Classes.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/Classes.v2.txt @@ -1,86 +1,238 @@ -package { - // Signature: /A|null[0] - class A constructor() { - // Signature: /A.aVal|{}aVal[0] - val aVal: Int = 0 - // Signature: /A.aVar|{}aVar[0] - var aVar: String - // Signature: /A.aFun|aFun(){}[0] - fun aFun() - // Signature: /A.B|null[0] - inner class B constructor() { - // Signature: /A.B.bVal|{}bVal[0] - val bVal: Int = 0 - // Signature: /A.B.bVar|{}bVar[0] - var bVar: String - // Signature: /A.B.bFun|bFun(){}[0] - fun bFun() - // Signature: /A.B.C|null[0] - inner class C constructor() { - // Signature: /A.B.C.cVal|{}cVal[0] - val cVal: Int = 0 - // Signature: /A.B.C.cVar|{}cVar[0] - var cVar: String - // Signature: /A.B.C.cFun|cFun(){}[0] - fun cFun() - } - } - // Signature: /A.E|null[0] - class E constructor() { - // Signature: /A.E.eVal|{}eVal[0] - val eVal: Int = 0 - // Signature: /A.E.eVar|{}eVar[0] - var eVar: String - // Signature: /A.E.eFun|eFun(){}[0] - fun eFun() - } +library { + // module name: + + library fragment { + // package name: + + // class name: A + // class name: A.B + // class name: A.B.C + // class name: A.B.D + // class name: A.E + // class name: F + // class name: FinalImpl + // class name: Interface + // class name: OpenImpl + + // signature: /A|null[0] + public final class A : kotlin/Any { + + // signature: /A.|(){}[0] + public constructor() + + // signature: /A.aFun|aFun(){}[0] + public final fun aFun(): kotlin/Unit + + // signature: /A.aVal|{}aVal[0] + public final val aVal: kotlin/Int /* = 0 */ + // signature: /A.aVal.|(){}[0] + public final get + + // signature: /A.aVar|{}aVar[0] + public final var aVar: kotlin/String + // signature: /A.aVar.|(){}[0] + public final get + // signature: /A.aVar.|(kotlin.String){}[0] + public final set + + // nested class: B + + // nested class: E } - // Signature: /F|null[0] - data class F constructor(fVal: Int, fVar: String) { - // Signature: /F.fVal|{}fVal[0] - val fVal: Int - // Signature: /F.fVar|{}fVar[0] - var fVar: String - // Signature: /F.component1|component1(){}[0] - operator fun component1(): Int - // Signature: /F.component2|component2(){}[0] - operator fun component2(): String - // Signature: /F.copy|copy(kotlin.Int;kotlin.String){}[0] - fun copy(fVal: Int = ..., fVar: String = ...): F - // Signature: /F.equals|equals(kotlin.Any?){}[0] - override fun equals(other: Any?): Boolean - // Signature: /F.fFun|fFun(){}[0] - fun fFun() - // Signature: /F.hashCode|hashCode(){}[0] - override fun hashCode(): Int - // Signature: /F.toString|toString(){}[0] - override fun toString(): String + + // signature: /A.B|null[0] + public final inner class A.B : kotlin/Any { + + // signature: /A.B.|(){}[0] + public constructor() + + // signature: /A.B.bFun|bFun(){}[0] + public final fun bFun(): kotlin/Unit + + // signature: /A.B.bVal|{}bVal[0] + public final val bVal: kotlin/Int /* = 0 */ + // signature: /A.B.bVal.|(){}[0] + public final get + + // signature: /A.B.bVar|{}bVar[0] + public final var bVar: kotlin/String + // signature: /A.B.bVar.|(){}[0] + public final get + // signature: /A.B.bVar.|(kotlin.String){}[0] + public final set + + // nested class: C + + // nested class: D } - // Signature: /FinalImpl|null[0] - class FinalImpl constructor() : OpenImpl { - // Signature: /FinalImpl.iVal|{}iVal[0] - override val iVal: Int = 0 - // Signature: /FinalImpl.iVar|{}iVar[0] - override var iVar: String - // Signature: /FinalImpl.iFun|iFun(){}[0] - override fun iFun() + + // signature: /A.B.C|null[0] + public final inner class A.B.C : kotlin/Any { + + // signature: /A.B.C.|(){}[0] + public constructor() + + // signature: /A.B.C.cFun|cFun(){}[0] + public final fun cFun(): kotlin/Unit + + // signature: /A.B.C.cVal|{}cVal[0] + public final val cVal: kotlin/Int /* = 0 */ + // signature: /A.B.C.cVal.|(){}[0] + public final get + + // signature: /A.B.C.cVar|{}cVar[0] + public final var cVar: kotlin/String + // signature: /A.B.C.cVar.|(){}[0] + public final get + // signature: /A.B.C.cVar.|(kotlin.String){}[0] + public final set } - // Signature: /Interface|null[0] - interface Interface { - // Signature: /Interface.iVal|{}iVal[0] - val iVal: Int - // Signature: /Interface.iVar|{}iVar[0] - var iVar: String - // Signature: /Interface.iFun|iFun(){}[0] - fun iFun() + + // signature: /A.B.D|null[0] + private final inner class A.B.D : kotlin/Any { + + // signature: /A.B.D.|(){}[0] + public constructor() + + // signature: /A.B.D.dFun|dFun(){}[0] + public final fun dFun(): kotlin/Unit + + // signature: /A.B.D.dVal|{}dVal[0] + public final val dVal: kotlin/Int /* = 0 */ + // signature: /A.B.D.dVal.|(){}[0] + public final get + + // signature: /A.B.D.dVar|{}dVar[0] + public final var dVar: kotlin/String + // signature: /A.B.D.dVar.|(){}[0] + public final get + // signature: /A.B.D.dVar.|(kotlin.String){}[0] + public final set } - // Signature: /OpenImpl|null[0] - open class OpenImpl constructor() : Interface { - // Signature: /OpenImpl.iVal|{}iVal[0] - override val iVal: Int = 0 - // Signature: /OpenImpl.iVar|{}iVar[0] - override var iVar: String - // Signature: /OpenImpl.iFun|iFun(){}[0] - override fun iFun() + + // signature: /A.E|null[0] + public final class A.E : kotlin/Any { + + // signature: /A.E.|(){}[0] + public constructor() + + // signature: /A.E.eFun|eFun(){}[0] + public final fun eFun(): kotlin/Unit + + // signature: /A.E.eVal|{}eVal[0] + public final val eVal: kotlin/Int /* = 0 */ + // signature: /A.E.eVal.|(){}[0] + public final get + + // signature: /A.E.eVar|{}eVar[0] + public final var eVar: kotlin/String + // signature: /A.E.eVar.|(){}[0] + public final get + // signature: /A.E.eVar.|(kotlin.String){}[0] + public final set } + + // signature: /F|null[0] + public final data class F : kotlin/Any { + + // signature: /F.|(kotlin.Int;kotlin.String){}[0] + public constructor(fVal: kotlin/Int, fVar: kotlin/String) + + // signature: /F.component1|component1(){}[0] + public final /* synthesized */ operator fun component1(): kotlin/Int + + // signature: /F.component2|component2(){}[0] + public final /* synthesized */ operator fun component2(): kotlin/String + + // signature: /F.copy|copy(kotlin.Int;kotlin.String){}[0] + public final /* synthesized */ fun copy(fVal: kotlin/Int /* = ... */, fVar: kotlin/String /* = ... */): F + + // signature: /F.equals|equals(kotlin.Any?){}[0] + public open /* synthesized */ operator fun equals(other: kotlin/Any?): kotlin/Boolean + + // signature: /F.fFun|fFun(){}[0] + public final fun fFun(): kotlin/Unit + + // signature: /F.hashCode|hashCode(){}[0] + public open /* synthesized */ fun hashCode(): kotlin/Int + + // signature: /F.toString|toString(){}[0] + public open /* synthesized */ fun toString(): kotlin/String + + // signature: /F.fVal|{}fVal[0] + public final val fVal: kotlin/Int + // signature: /F.fVal.|(){}[0] + public final get + + // signature: /F.fVar|{}fVar[0] + public final var fVar: kotlin/String + // signature: /F.fVar.|(){}[0] + public final get + // signature: /F.fVar.|(kotlin.String){}[0] + public final set + } + + // signature: /FinalImpl|null[0] + public final class FinalImpl : OpenImpl { + + // signature: /FinalImpl.|(){}[0] + public constructor() + + // signature: /FinalImpl.iFun|iFun(){}[0] + public open fun iFun(): kotlin/Unit + + // signature: /FinalImpl.iVal|{}iVal[0] + public open val iVal: kotlin/Int /* = 0 */ + // signature: /FinalImpl.iVal.|(){}[0] + public open get + + // signature: /FinalImpl.iVar|{}iVar[0] + public open var iVar: kotlin/String + // signature: /FinalImpl.iVar.|(){}[0] + public open get + // signature: /FinalImpl.iVar.|(kotlin.String){}[0] + public open set + } + + // signature: /Interface|null[0] + public abstract interface Interface : kotlin/Any { + + // signature: /Interface.iFun|iFun(){}[0] + public abstract fun iFun(): kotlin/Unit + + // signature: /Interface.iVal|{}iVal[0] + public abstract val iVal: kotlin/Int + // signature: /Interface.iVal.|(){}[0] + public abstract get + + // signature: /Interface.iVar|{}iVar[0] + public abstract var iVar: kotlin/String + // signature: /Interface.iVar.|(){}[0] + public abstract get + // signature: /Interface.iVar.|(kotlin.String){}[0] + public abstract set + } + + // signature: /OpenImpl|null[0] + public open class OpenImpl : Interface { + + // signature: /OpenImpl.|(){}[0] + public constructor() + + // signature: /OpenImpl.iFun|iFun(){}[0] + public open fun iFun(): kotlin/Unit + + // signature: /OpenImpl.iVal|{}iVal[0] + public open val iVal: kotlin/Int /* = 0 */ + // signature: /OpenImpl.iVal.|(){}[0] + public open get + + // signature: /OpenImpl.iVar|{}iVar[0] + public open var iVar: kotlin/String + // signature: /OpenImpl.iVar.|(){}[0] + public open get + // signature: /OpenImpl.iVar.|(kotlin.String){}[0] + public open set + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/Constructors.kt b/native/native.tests/testData/klib/dump-metadata/Constructors.kt index 17bff119793..dd2c010fdf6 100644 --- a/native/native.tests/testData/klib/dump-metadata/Constructors.kt +++ b/native/native.tests/testData/klib/dump-metadata/Constructors.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL @file:Suppress("UNUSED_PARAMETER") annotation class A diff --git a/native/native.tests/testData/klib/dump-metadata/Constructors.txt b/native/native.tests/testData/klib/dump-metadata/Constructors.txt index 32112c71f24..b4958da5fe2 100644 --- a/native/native.tests/testData/klib/dump-metadata/Constructors.txt +++ b/native/native.tests/testData/klib/dump-metadata/Constructors.txt @@ -1,20 +1,71 @@ -package { - annotation class A constructor() : Annotation - class Bar @A constructor(x: Int) - class Baz private constructor(x: Int) - class Foo constructor(x: Int) { - constructor() - constructor(x: Double) - constructor(x: Double, y: Int) - protected constructor(x: String) - @A constructor(x: Foo) +library { + // module name: + + library fragment { + // package name: + + // class name: A + // class name: Bar + // class name: Baz + // class name: Foo + // class name: Qux + // class name: Typed + + public final annotation class A : kotlin/Annotation { + + public constructor() } - class Qux protected constructor(x: Int) - class Typed constructor(x: Int) { - constructor() - constructor(x: Double) - constructor(x: Double, y: Int) - protected constructor(x: String) - @A constructor(x: Foo) + + public final class Bar : kotlin/Any { + + @A + public constructor(x: kotlin/Int) } -} \ No newline at end of file + + public final class Baz : kotlin/Any { + + private constructor(x: kotlin/Int) + } + + public final class Foo : kotlin/Any { + + public /* secondary */ constructor() + + @A + public /* secondary */ constructor(x: Foo) + + public /* secondary */ constructor(x: kotlin/Double) + + public constructor(x: kotlin/Int) + + private /* secondary */ constructor(x: kotlin/Long) + + protected /* secondary */ constructor(x: kotlin/String) + + public /* secondary */ constructor(x: kotlin/Double, y: kotlin/Int) + } + + public final class Qux : kotlin/Any { + + protected constructor(x: kotlin/Int) + } + + public final class Typed : kotlin/Any { + + public /* secondary */ constructor() + + @A + public /* secondary */ constructor(x: Foo) + + public /* secondary */ constructor(x: kotlin/Double) + + public constructor(x: kotlin/Int) + + private /* secondary */ constructor(x: kotlin/Long) + + protected /* secondary */ constructor(x: kotlin/String) + + public /* secondary */ constructor(x: kotlin/Double, y: kotlin/Int) + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/Constructors.v1.txt b/native/native.tests/testData/klib/dump-metadata/Constructors.v1.txt index 77f11fd0c1f..dfe4fc30fc0 100644 --- a/native/native.tests/testData/klib/dump-metadata/Constructors.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/Constructors.v1.txt @@ -1,36 +1,95 @@ -package { - // Signature: /A|null[0] - annotation class A constructor() : Annotation - // Signature: /Bar|null[0] - class Bar @A constructor(x: Int) - // Signature: /Baz|null[0] - class Baz private constructor(x: Int) - // Signature: /Foo|null[0] - class Foo constructor(x: Int) { - // Signature: /Foo.|-5645683436151566731[0] - constructor() - // Signature: /Foo.|575075696928934302[0] - constructor(x: Double) - // Signature: /Foo.|-648032236499795795[0] - constructor(x: Double, y: Int) - // Signature: /Foo.|1280618353163213788[0] - protected constructor(x: String) - // Signature: /Foo.|5452796351634795197[0] - @A constructor(x: Foo) +library { + // module name: + + library fragment { + // package name: + + // class name: A + // class name: Bar + // class name: Baz + // class name: Foo + // class name: Qux + // class name: Typed + + // signature: /A|null[0] + public final annotation class A : kotlin/Annotation { + + // signature: /A.|-5645683436151566731[0] + public constructor() } - // Signature: /Qux|null[0] - class Qux protected constructor(x: Int) - // Signature: /Typed|null[0] - class Typed constructor(x: Int) { - // Signature: /Typed.|-5645683436151566731[0] - constructor() - // Signature: /Typed.|575075696928934302[0] - constructor(x: Double) - // Signature: /Typed.|-648032236499795795[0] - constructor(x: Double, y: Int) - // Signature: /Typed.|1280618353163213788[0] - protected constructor(x: String) - // Signature: /Typed.|5452796351634795197[0] - @A constructor(x: Foo) + + // signature: /Bar|null[0] + public final class Bar : kotlin/Any { + + // signature: /Bar.|-5182794243525578284[0] + @A + public constructor(x: kotlin/Int) } + + // signature: /Baz|null[0] + public final class Baz : kotlin/Any { + + // signature: /Baz.|-5182794243525578284[0] + private constructor(x: kotlin/Int) + } + + // signature: /Foo|null[0] + public final class Foo : kotlin/Any { + + // signature: /Foo.|-5645683436151566731[0] + public /* secondary */ constructor() + + // signature: /Foo.|5452796351634795197[0] + @A + public /* secondary */ constructor(x: Foo) + + // signature: /Foo.|575075696928934302[0] + public /* secondary */ constructor(x: kotlin/Double) + + // signature: /Foo.|-5182794243525578284[0] + public constructor(x: kotlin/Int) + + // signature: /Foo.|5217973964116651322[0] + private /* secondary */ constructor(x: kotlin/Long) + + // signature: /Foo.|1280618353163213788[0] + protected /* secondary */ constructor(x: kotlin/String) + + // signature: /Foo.|-648032236499795795[0] + public /* secondary */ constructor(x: kotlin/Double, y: kotlin/Int) + } + + // signature: /Qux|null[0] + public final class Qux : kotlin/Any { + + // signature: /Qux.|-5182794243525578284[0] + protected constructor(x: kotlin/Int) + } + + // signature: /Typed|null[0] + public final class Typed : kotlin/Any { + + // signature: /Typed.|-5645683436151566731[0] + public /* secondary */ constructor() + + // signature: /Typed.|5452796351634795197[0] + @A + public /* secondary */ constructor(x: Foo) + + // signature: /Typed.|575075696928934302[0] + public /* secondary */ constructor(x: kotlin/Double) + + // signature: /Typed.|-5182794243525578284[0] + public constructor(x: kotlin/Int) + + // signature: /Typed.|5217973964116651322[0] + private /* secondary */ constructor(x: kotlin/Long) + + // signature: /Typed.|1280618353163213788[0] + protected /* secondary */ constructor(x: kotlin/String) + + // signature: /Typed.|-648032236499795795[0] + public /* secondary */ constructor(x: kotlin/Double, y: kotlin/Int) + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/Constructors.v2.txt b/native/native.tests/testData/klib/dump-metadata/Constructors.v2.txt index 252c87c0c3d..5aedad8d8ea 100644 --- a/native/native.tests/testData/klib/dump-metadata/Constructors.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/Constructors.v2.txt @@ -1,36 +1,95 @@ -package { - // Signature: /A|null[0] - annotation class A constructor() : Annotation - // Signature: /Bar|null[0] - class Bar @A constructor(x: Int) - // Signature: /Baz|null[0] - class Baz private constructor(x: Int) - // Signature: /Foo|null[0] - class Foo constructor(x: Int) { - // Signature: /Foo.|(){}[0] - constructor() - // Signature: /Foo.|(kotlin.Double){}[0] - constructor(x: Double) - // Signature: /Foo.|(kotlin.Double;kotlin.Int){}[0] - constructor(x: Double, y: Int) - // Signature: /Foo.|(kotlin.String){}[0] - protected constructor(x: String) - // Signature: /Foo.|(Foo){}[0] - @A constructor(x: Foo) +library { + // module name: + + library fragment { + // package name: + + // class name: A + // class name: Bar + // class name: Baz + // class name: Foo + // class name: Qux + // class name: Typed + + // signature: /A|null[0] + public final annotation class A : kotlin/Annotation { + + // signature: /A.|(){}[0] + public constructor() } - // Signature: /Qux|null[0] - class Qux protected constructor(x: Int) - // Signature: /Typed|null[0] - class Typed constructor(x: Int) { - // Signature: /Typed.|(){}[0] - constructor() - // Signature: /Typed.|(kotlin.Double){}[0] - constructor(x: Double) - // Signature: /Typed.|(kotlin.Double;kotlin.Int){}[0] - constructor(x: Double, y: Int) - // Signature: /Typed.|(kotlin.String){}[0] - protected constructor(x: String) - // Signature: /Typed.|(Foo){}[0] - @A constructor(x: Foo) + + // signature: /Bar|null[0] + public final class Bar : kotlin/Any { + + // signature: /Bar.|(kotlin.Int){}[0] + @A + public constructor(x: kotlin/Int) } + + // signature: /Baz|null[0] + public final class Baz : kotlin/Any { + + // signature: /Baz.|(kotlin.Int){}[0] + private constructor(x: kotlin/Int) + } + + // signature: /Foo|null[0] + public final class Foo : kotlin/Any { + + // signature: /Foo.|(){}[0] + public /* secondary */ constructor() + + // signature: /Foo.|(Foo){}[0] + @A + public /* secondary */ constructor(x: Foo) + + // signature: /Foo.|(kotlin.Double){}[0] + public /* secondary */ constructor(x: kotlin/Double) + + // signature: /Foo.|(kotlin.Int){}[0] + public constructor(x: kotlin/Int) + + // signature: /Foo.|(kotlin.Long){}[0] + private /* secondary */ constructor(x: kotlin/Long) + + // signature: /Foo.|(kotlin.String){}[0] + protected /* secondary */ constructor(x: kotlin/String) + + // signature: /Foo.|(kotlin.Double;kotlin.Int){}[0] + public /* secondary */ constructor(x: kotlin/Double, y: kotlin/Int) + } + + // signature: /Qux|null[0] + public final class Qux : kotlin/Any { + + // signature: /Qux.|(kotlin.Int){}[0] + protected constructor(x: kotlin/Int) + } + + // signature: /Typed|null[0] + public final class Typed : kotlin/Any { + + // signature: /Typed.|(){}[0] + public /* secondary */ constructor() + + // signature: /Typed.|(Foo){}[0] + @A + public /* secondary */ constructor(x: Foo) + + // signature: /Typed.|(kotlin.Double){}[0] + public /* secondary */ constructor(x: kotlin/Double) + + // signature: /Typed.|(kotlin.Int){}[0] + public constructor(x: kotlin/Int) + + // signature: /Typed.|(kotlin.Long){}[0] + private /* secondary */ constructor(x: kotlin/Long) + + // signature: /Typed.|(kotlin.String){}[0] + protected /* secondary */ constructor(x: kotlin/String) + + // signature: /Typed.|(kotlin.Double;kotlin.Int){}[0] + public /* secondary */ constructor(x: kotlin/Double, y: kotlin/Int) + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/Enum.fir.txt b/native/native.tests/testData/klib/dump-metadata/Enum.fir.txt new file mode 100644 index 00000000000..c2151e83d88 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/Enum.fir.txt @@ -0,0 +1,34 @@ +library { + // module name: + + library fragment { + // package name: + + // class name: E + + public final enum class E : kotlin/Enum { + + private constructor(x: kotlin/Int /* = ... */) + + public open fun enumFun(): kotlin/Int + + public final val enumVal: kotlin/Int /* = 0 */ + public final get + + public final var enumVar: kotlin/String + public final get + public final set + + public final val x: kotlin/Int + public final get + + A, + + B, + + C, + + // has Enum.entries + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/Enum.txt b/native/native.tests/testData/klib/dump-metadata/Enum.txt index 545b6b2d3a4..fd2275f65e2 100644 --- a/native/native.tests/testData/klib/dump-metadata/Enum.txt +++ b/native/native.tests/testData/klib/dump-metadata/Enum.txt @@ -1,11 +1,48 @@ -package { - enum class E private constructor(x: Int = ...) : Enum { - enum entry A - enum entry B - enum entry C - val enumVal: Int = 0 - var enumVar: String - val x: Int - open fun enumFun(): Int +library { + // module name: + + library fragment { + // package name: + + // class name: E + // class name: E.A + // class name: E.B + // class name: E.C + + public final enum class E : kotlin/Enum { + + private constructor(x: kotlin/Int /* = ... */) + + public open fun enumFun(): kotlin/Int + + public final val enumVal: kotlin/Int /* = 0 */ + public final get + + public final var enumVar: kotlin/String + public final get + public final set + + public final val x: kotlin/Int + public final get + + A, + + B, + + C, + + // has Enum.entries } -} \ No newline at end of file + + public final enum entry E.A : E { + } + + public final enum entry E.B : E { + } + + public final enum entry E.C : E { + + public open fun enumFun(): kotlin/Int + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/Enum.v1.fir.txt b/native/native.tests/testData/klib/dump-metadata/Enum.v1.fir.txt new file mode 100644 index 00000000000..6a5be88938d --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/Enum.v1.fir.txt @@ -0,0 +1,47 @@ +library { + // module name: + + library fragment { + // package name: + + // class name: E + + // signature: /E|null[0] + public final enum class E : kotlin/Enum { + + // signature: /E.|-5182794243525578284[0] + private constructor(x: kotlin/Int /* = ... */) + + // signature: /E.enumFun|7331595556228318192[0] + public open fun enumFun(): kotlin/Int + + // signature: /E.enumVal|-794670998786832931[0] + public final val enumVal: kotlin/Int /* = 0 */ + // signature: /E.enumVal.|2351802094437052431[0] + public final get + + // signature: /E.enumVar|-3275598925785518996[0] + public final var enumVar: kotlin/String + // signature: /E.enumVar.|1169914060484710215[0] + public final get + // signature: /E.enumVar.|-2620334385099104445[0] + public final set + + // signature: /E.x|-8060530855978347579[0] + public final val x: kotlin/Int + // signature: /E.x.|1482705010654679335[0] + public final get + + // signature: /E.A|null[0] + A, + + // signature: /E.B|null[0] + B, + + // signature: /E.C|null[0] + C, + + // has Enum.entries + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/Enum.v1.txt b/native/native.tests/testData/klib/dump-metadata/Enum.v1.txt index ba76ba16304..2933bdfe2db 100644 --- a/native/native.tests/testData/klib/dump-metadata/Enum.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/Enum.v1.txt @@ -1,19 +1,65 @@ -package { - // Signature: /E|null[0] - enum class E private constructor(x: Int = ...) : Enum { - // Signature: /E.A|null[0] - enum entry A - // Signature: /E.B|null[0] - enum entry B - // Signature: /E.C|null[0] - enum entry C - // Signature: /E.enumVal|-794670998786832931[0] - val enumVal: Int = 0 - // Signature: /E.enumVar|-3275598925785518996[0] - var enumVar: String - // Signature: /E.x|-8060530855978347579[0] - val x: Int - // Signature: /E.enumFun|7331595556228318192[0] - open fun enumFun(): Int +library { + // module name: + + library fragment { + // package name: + + // class name: E + // class name: E.A + // class name: E.B + // class name: E.C + + // signature: /E|null[0] + public final enum class E : kotlin/Enum { + + // signature: /E.|-5182794243525578284[0] + private constructor(x: kotlin/Int /* = ... */) + + // signature: /E.enumFun|7331595556228318192[0] + public open fun enumFun(): kotlin/Int + + // signature: /E.enumVal|-794670998786832931[0] + public final val enumVal: kotlin/Int /* = 0 */ + // signature: /E.enumVal.|2351802094437052431[0] + public final get + + // signature: /E.enumVar|-3275598925785518996[0] + public final var enumVar: kotlin/String + // signature: /E.enumVar.|1169914060484710215[0] + public final get + // signature: /E.enumVar.|-2620334385099104445[0] + public final set + + // signature: /E.x|-8060530855978347579[0] + public final val x: kotlin/Int + // signature: /E.x.|1482705010654679335[0] + public final get + + // signature: /E.A|null[0] + A, + + // signature: /E.B|null[0] + B, + + // signature: /E.C|null[0] + C, + + // has Enum.entries } + + // signature: /E.A|null[0] + public final enum entry E.A : E { + } + + // signature: /E.B|null[0] + public final enum entry E.B : E { + } + + // signature: /E.C|null[0] + public final enum entry E.C : E { + + // signature: /E.C..enumFun|7331595556228318192[0] + public open fun enumFun(): kotlin/Int + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/Enum.v2.fir.txt b/native/native.tests/testData/klib/dump-metadata/Enum.v2.fir.txt new file mode 100644 index 00000000000..60ec2ff73a2 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/Enum.v2.fir.txt @@ -0,0 +1,47 @@ +library { + // module name: + + library fragment { + // package name: + + // class name: E + + // signature: /E|null[0] + public final enum class E : kotlin/Enum { + + // signature: /E.|(kotlin.Int){}[0] + private constructor(x: kotlin/Int /* = ... */) + + // signature: /E.enumFun|enumFun(){}[0] + public open fun enumFun(): kotlin/Int + + // signature: /E.enumVal|{}enumVal[0] + public final val enumVal: kotlin/Int /* = 0 */ + // signature: /E.enumVal.|(){}[0] + public final get + + // signature: /E.enumVar|{}enumVar[0] + public final var enumVar: kotlin/String + // signature: /E.enumVar.|(){}[0] + public final get + // signature: /E.enumVar.|(kotlin.String){}[0] + public final set + + // signature: /E.x|{}x[0] + public final val x: kotlin/Int + // signature: /E.x.|(){}[0] + public final get + + // signature: /E.A|null[0] + A, + + // signature: /E.B|null[0] + B, + + // signature: /E.C|null[0] + C, + + // has Enum.entries + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/Enum.v2.txt b/native/native.tests/testData/klib/dump-metadata/Enum.v2.txt index e4a661ba361..d7bd1e80324 100644 --- a/native/native.tests/testData/klib/dump-metadata/Enum.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/Enum.v2.txt @@ -1,19 +1,65 @@ -package { - // Signature: /E|null[0] - enum class E private constructor(x: Int = ...) : Enum { - // Signature: /E.A|null[0] - enum entry A - // Signature: /E.B|null[0] - enum entry B - // Signature: /E.C|null[0] - enum entry C - // Signature: /E.enumVal|{}enumVal[0] - val enumVal: Int = 0 - // Signature: /E.enumVar|{}enumVar[0] - var enumVar: String - // Signature: /E.x|{}x[0] - val x: Int - // Signature: /E.enumFun|enumFun(){}[0] - open fun enumFun(): Int +library { + // module name: + + library fragment { + // package name: + + // class name: E + // class name: E.A + // class name: E.B + // class name: E.C + + // signature: /E|null[0] + public final enum class E : kotlin/Enum { + + // signature: /E.|(kotlin.Int){}[0] + private constructor(x: kotlin/Int /* = ... */) + + // signature: /E.enumFun|enumFun(){}[0] + public open fun enumFun(): kotlin/Int + + // signature: /E.enumVal|{}enumVal[0] + public final val enumVal: kotlin/Int /* = 0 */ + // signature: /E.enumVal.|(){}[0] + public final get + + // signature: /E.enumVar|{}enumVar[0] + public final var enumVar: kotlin/String + // signature: /E.enumVar.|(){}[0] + public final get + // signature: /E.enumVar.|(kotlin.String){}[0] + public final set + + // signature: /E.x|{}x[0] + public final val x: kotlin/Int + // signature: /E.x.|(){}[0] + public final get + + // signature: /E.A|null[0] + A, + + // signature: /E.B|null[0] + B, + + // signature: /E.C|null[0] + C, + + // has Enum.entries } + + // signature: /E.A|null[0] + public final enum entry E.A : E { + } + + // signature: /E.B|null[0] + public final enum entry E.B : E { + } + + // signature: /E.C|null[0] + public final enum entry E.C : E { + + // signature: /E.C..enumFun|enumFun(){}[0] + public open fun enumFun(): kotlin/Int + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/FunctionModifiers.kt b/native/native.tests/testData/klib/dump-metadata/FunctionModifiers.kt index 80b83ab2f3b..06a89c4026f 100644 --- a/native/native.tests/testData/klib/dump-metadata/FunctionModifiers.kt +++ b/native/native.tests/testData/klib/dump-metadata/FunctionModifiers.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL class Foo { fun f1() {} infix fun f2(x: Int) {} diff --git a/native/native.tests/testData/klib/dump-metadata/FunctionModifiers.txt b/native/native.tests/testData/klib/dump-metadata/FunctionModifiers.txt index c72b4e00601..e96fb6ebed0 100644 --- a/native/native.tests/testData/klib/dump-metadata/FunctionModifiers.txt +++ b/native/native.tests/testData/klib/dump-metadata/FunctionModifiers.txt @@ -1,10 +1,26 @@ -package { - class Foo constructor() { - fun f1() - infix fun f2(x: Int) - suspend fun f3() - tailrec fun f4() - fun f5(vararg x: Int) - operator fun plus(x: Int) +library { + // module name: + + library fragment { + // package name: + + // class name: Foo + + public final class Foo : kotlin/Any { + + public constructor() + + public final fun f1(): kotlin/Unit + + public final infix fun f2(x: kotlin/Int): kotlin/Unit + + public final suspend fun f3(): kotlin/Unit + + public final tailrec fun f4(): kotlin/Unit + + public final fun f5(vararg x: kotlin/Int /* kotlin/IntArray */): kotlin/Unit + + public final operator fun plus(x: kotlin/Int): kotlin/Unit } -} \ No newline at end of file + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/FunctionModifiers.v1.txt b/native/native.tests/testData/klib/dump-metadata/FunctionModifiers.v1.txt index fccbf0290f3..2b12f0586fd 100644 --- a/native/native.tests/testData/klib/dump-metadata/FunctionModifiers.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/FunctionModifiers.v1.txt @@ -1,17 +1,34 @@ -package { - // Signature: /Foo|null[0] - class Foo constructor() { - // Signature: /Foo.f1|3067719429478803475[0] - fun f1() - // Signature: /Foo.f2|998031826907343926[0] - infix fun f2(x: Int) - // Signature: /Foo.f3|-7352656899019660364[0] - suspend fun f3() - // Signature: /Foo.f4|-653369539400762817[0] - tailrec fun f4() - // Signature: /Foo.f5|136030160982396464[0] - fun f5(vararg x: Int) - // Signature: /Foo.plus|4955128566171430399[0] - operator fun plus(x: Int) +library { + // module name: + + library fragment { + // package name: + + // class name: Foo + + // signature: /Foo|null[0] + public final class Foo : kotlin/Any { + + // signature: /Foo.|-5645683436151566731[0] + public constructor() + + // signature: /Foo.f1|3067719429478803475[0] + public final fun f1(): kotlin/Unit + + // signature: /Foo.f2|998031826907343926[0] + public final infix fun f2(x: kotlin/Int): kotlin/Unit + + // signature: /Foo.f3|-7352656899019660364[0] + public final suspend fun f3(): kotlin/Unit + + // signature: /Foo.f4|-653369539400762817[0] + public final tailrec fun f4(): kotlin/Unit + + // signature: /Foo.f5|136030160982396464[0] + public final fun f5(vararg x: kotlin/Int /* kotlin/IntArray */): kotlin/Unit + + // signature: /Foo.plus|4955128566171430399[0] + public final operator fun plus(x: kotlin/Int): kotlin/Unit } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/FunctionModifiers.v2.txt b/native/native.tests/testData/klib/dump-metadata/FunctionModifiers.v2.txt index 2048a9d8773..f166daff0c8 100644 --- a/native/native.tests/testData/klib/dump-metadata/FunctionModifiers.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/FunctionModifiers.v2.txt @@ -1,17 +1,34 @@ -package { - // Signature: /Foo|null[0] - class Foo constructor() { - // Signature: /Foo.f1|f1(){}[0] - fun f1() - // Signature: /Foo.f2|f2(kotlin.Int){}[0] - infix fun f2(x: Int) - // Signature: /Foo.f3|f3(){}[0] - suspend fun f3() - // Signature: /Foo.f4|f4(){}[0] - tailrec fun f4() - // Signature: /Foo.f5|f5(kotlin.IntArray...){}[0] - fun f5(vararg x: Int) - // Signature: /Foo.plus|plus(kotlin.Int){}[0] - operator fun plus(x: Int) +library { + // module name: + + library fragment { + // package name: + + // class name: Foo + + // signature: /Foo|null[0] + public final class Foo : kotlin/Any { + + // signature: /Foo.|(){}[0] + public constructor() + + // signature: /Foo.f1|f1(){}[0] + public final fun f1(): kotlin/Unit + + // signature: /Foo.f2|f2(kotlin.Int){}[0] + public final infix fun f2(x: kotlin/Int): kotlin/Unit + + // signature: /Foo.f3|f3(){}[0] + public final suspend fun f3(): kotlin/Unit + + // signature: /Foo.f4|f4(){}[0] + public final tailrec fun f4(): kotlin/Unit + + // signature: /Foo.f5|f5(kotlin.IntArray...){}[0] + public final fun f5(vararg x: kotlin/Int /* kotlin/IntArray */): kotlin/Unit + + // signature: /Foo.plus|plus(kotlin.Int){}[0] + public final operator fun plus(x: kotlin/Int): kotlin/Unit } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/MethodModality.kt b/native/native.tests/testData/klib/dump-metadata/MethodModality.kt index 01844360ede..2a16395ba97 100644 --- a/native/native.tests/testData/klib/dump-metadata/MethodModality.kt +++ b/native/native.tests/testData/klib/dump-metadata/MethodModality.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL interface Interface { fun interfaceFun() } diff --git a/native/native.tests/testData/klib/dump-metadata/MethodModality.txt b/native/native.tests/testData/klib/dump-metadata/MethodModality.txt index 563daa79d5a..b1116821691 100644 --- a/native/native.tests/testData/klib/dump-metadata/MethodModality.txt +++ b/native/native.tests/testData/klib/dump-metadata/MethodModality.txt @@ -1,19 +1,48 @@ -package { - abstract class AbstractClass constructor() : Interface { - abstract fun abstractFun() - override fun interfaceFun() +library { + // module name: + + library fragment { + // package name: + + // class name: AbstractClass + // class name: FinalClass + // class name: Interface + // class name: OpenClass + + public abstract class AbstractClass : Interface { + + public constructor() + + public abstract fun abstractFun(): kotlin/Unit + + public open fun interfaceFun(): kotlin/Unit } - class FinalClass constructor() : OpenClass { - override fun openFun1() - final override fun openFun2() + + public final class FinalClass : OpenClass { + + public constructor() + + public open fun openFun1(): kotlin/Unit + + public final fun openFun2(): kotlin/Unit } - interface Interface { - fun interfaceFun() + + public abstract interface Interface : kotlin/Any { + + public abstract fun interfaceFun(): kotlin/Unit } - open class OpenClass constructor() : AbstractClass { - override fun abstractFun() - fun finalFun() - open fun openFun1() - open fun openFun2() + + public open class OpenClass : AbstractClass { + + public constructor() + + public open fun abstractFun(): kotlin/Unit + + public final fun finalFun(): kotlin/Unit + + public open fun openFun1(): kotlin/Unit + + public open fun openFun2(): kotlin/Unit } -} \ No newline at end of file + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/MethodModality.v1.txt b/native/native.tests/testData/klib/dump-metadata/MethodModality.v1.txt index 8d859c6855d..9a2e6a43938 100644 --- a/native/native.tests/testData/klib/dump-metadata/MethodModality.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/MethodModality.v1.txt @@ -1,32 +1,64 @@ -package { - // Signature: /AbstractClass|null[0] - abstract class AbstractClass constructor() : Interface { - // Signature: /AbstractClass.abstractFun|-8137574360252002020[0] - abstract fun abstractFun() - // Signature: /AbstractClass.interfaceFun|2213060701516703022[0] - override fun interfaceFun() +library { + // module name: + + library fragment { + // package name: + + // class name: AbstractClass + // class name: FinalClass + // class name: Interface + // class name: OpenClass + + // signature: /AbstractClass|null[0] + public abstract class AbstractClass : Interface { + + // signature: /AbstractClass.|-5645683436151566731[0] + public constructor() + + // signature: /AbstractClass.abstractFun|-8137574360252002020[0] + public abstract fun abstractFun(): kotlin/Unit + + // signature: /AbstractClass.interfaceFun|2213060701516703022[0] + public open fun interfaceFun(): kotlin/Unit } - // Signature: /FinalClass|null[0] - class FinalClass constructor() : OpenClass { - // Signature: /FinalClass.openFun1|-6191809905018816441[0] - override fun openFun1() - // Signature: /FinalClass.openFun2|-6569900631812216745[0] - final override fun openFun2() + + // signature: /FinalClass|null[0] + public final class FinalClass : OpenClass { + + // signature: /FinalClass.|-5645683436151566731[0] + public constructor() + + // signature: /FinalClass.openFun1|-6191809905018816441[0] + public open fun openFun1(): kotlin/Unit + + // signature: /FinalClass.openFun2|-6569900631812216745[0] + public final fun openFun2(): kotlin/Unit } - // Signature: /Interface|null[0] - interface Interface { - // Signature: /Interface.interfaceFun|2213060701516703022[0] - fun interfaceFun() + + // signature: /Interface|null[0] + public abstract interface Interface : kotlin/Any { + + // signature: /Interface.interfaceFun|2213060701516703022[0] + public abstract fun interfaceFun(): kotlin/Unit } - // Signature: /OpenClass|null[0] - open class OpenClass constructor() : AbstractClass { - // Signature: /OpenClass.abstractFun|-8137574360252002020[0] - override fun abstractFun() - // Signature: /OpenClass.finalFun|3657632771909858561[0] - fun finalFun() - // Signature: /OpenClass.openFun1|-6191809905018816441[0] - open fun openFun1() - // Signature: /OpenClass.openFun2|-6569900631812216745[0] - open fun openFun2() + + // signature: /OpenClass|null[0] + public open class OpenClass : AbstractClass { + + // signature: /OpenClass.|-5645683436151566731[0] + public constructor() + + // signature: /OpenClass.abstractFun|-8137574360252002020[0] + public open fun abstractFun(): kotlin/Unit + + // signature: /OpenClass.finalFun|3657632771909858561[0] + public final fun finalFun(): kotlin/Unit + + // signature: /OpenClass.openFun1|-6191809905018816441[0] + public open fun openFun1(): kotlin/Unit + + // signature: /OpenClass.openFun2|-6569900631812216745[0] + public open fun openFun2(): kotlin/Unit } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/MethodModality.v2.txt b/native/native.tests/testData/klib/dump-metadata/MethodModality.v2.txt index 1bcbee424c2..af837bd6b77 100644 --- a/native/native.tests/testData/klib/dump-metadata/MethodModality.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/MethodModality.v2.txt @@ -1,32 +1,64 @@ -package { - // Signature: /AbstractClass|null[0] - abstract class AbstractClass constructor() : Interface { - // Signature: /AbstractClass.abstractFun|abstractFun(){}[0] - abstract fun abstractFun() - // Signature: /AbstractClass.interfaceFun|interfaceFun(){}[0] - override fun interfaceFun() +library { + // module name: + + library fragment { + // package name: + + // class name: AbstractClass + // class name: FinalClass + // class name: Interface + // class name: OpenClass + + // signature: /AbstractClass|null[0] + public abstract class AbstractClass : Interface { + + // signature: /AbstractClass.|(){}[0] + public constructor() + + // signature: /AbstractClass.abstractFun|abstractFun(){}[0] + public abstract fun abstractFun(): kotlin/Unit + + // signature: /AbstractClass.interfaceFun|interfaceFun(){}[0] + public open fun interfaceFun(): kotlin/Unit } - // Signature: /FinalClass|null[0] - class FinalClass constructor() : OpenClass { - // Signature: /FinalClass.openFun1|openFun1(){}[0] - override fun openFun1() - // Signature: /FinalClass.openFun2|openFun2(){}[0] - final override fun openFun2() + + // signature: /FinalClass|null[0] + public final class FinalClass : OpenClass { + + // signature: /FinalClass.|(){}[0] + public constructor() + + // signature: /FinalClass.openFun1|openFun1(){}[0] + public open fun openFun1(): kotlin/Unit + + // signature: /FinalClass.openFun2|openFun2(){}[0] + public final fun openFun2(): kotlin/Unit } - // Signature: /Interface|null[0] - interface Interface { - // Signature: /Interface.interfaceFun|interfaceFun(){}[0] - fun interfaceFun() + + // signature: /Interface|null[0] + public abstract interface Interface : kotlin/Any { + + // signature: /Interface.interfaceFun|interfaceFun(){}[0] + public abstract fun interfaceFun(): kotlin/Unit } - // Signature: /OpenClass|null[0] - open class OpenClass constructor() : AbstractClass { - // Signature: /OpenClass.abstractFun|abstractFun(){}[0] - override fun abstractFun() - // Signature: /OpenClass.finalFun|finalFun(){}[0] - fun finalFun() - // Signature: /OpenClass.openFun1|openFun1(){}[0] - open fun openFun1() - // Signature: /OpenClass.openFun2|openFun2(){}[0] - open fun openFun2() + + // signature: /OpenClass|null[0] + public open class OpenClass : AbstractClass { + + // signature: /OpenClass.|(){}[0] + public constructor() + + // signature: /OpenClass.abstractFun|abstractFun(){}[0] + public open fun abstractFun(): kotlin/Unit + + // signature: /OpenClass.finalFun|finalFun(){}[0] + public final fun finalFun(): kotlin/Unit + + // signature: /OpenClass.openFun1|openFun1(){}[0] + public open fun openFun1(): kotlin/Unit + + // signature: /OpenClass.openFun2|openFun2(){}[0] + public open fun openFun2(): kotlin/Unit } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/Objects.fir.txt b/native/native.tests/testData/klib/dump-metadata/Objects.fir.txt new file mode 100644 index 00000000000..c883ce18a9a --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/Objects.fir.txt @@ -0,0 +1,62 @@ +library { + // module name: + + library fragment { + // package name: + + // class name: A + // class name: B + // class name: B.C + // class name: B.Companion + // class name: D + // class name: D.E + + public final object A : kotlin/Any { + + private constructor() + + public final fun a(): kotlin/Unit + } + + public final class B : kotlin/Any { + + public constructor() + + // companion object: Companion + + // nested class: Companion + + // nested class: C + } + + public final object B.C : kotlin/Any { + + private constructor() + + public final fun c(): kotlin/Unit + } + + public final companion object B.Companion : kotlin/Any { + + private constructor() + + public final fun b(): kotlin/Unit + } + + public final class D : kotlin/Any { + + public constructor() + + // companion object: E + + // nested class: E + } + + public final companion object D.E : kotlin/Any { + + private constructor() + + public final fun e(): kotlin/Unit + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/Objects.txt b/native/native.tests/testData/klib/dump-metadata/Objects.txt deleted file mode 100644 index ff6dc6e8fdb..00000000000 --- a/native/native.tests/testData/klib/dump-metadata/Objects.txt +++ /dev/null @@ -1,18 +0,0 @@ -package { - object A { - fun a() - } - class B constructor() { - companion object { - fun b() - } - object C { - fun c() - } - } - class D constructor() { - companion object E { - fun e() - } - } -} \ No newline at end of file diff --git a/native/native.tests/testData/klib/dump-metadata/Objects.v1.fir.txt b/native/native.tests/testData/klib/dump-metadata/Objects.v1.fir.txt new file mode 100644 index 00000000000..31f797487ef --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/Objects.v1.fir.txt @@ -0,0 +1,78 @@ +library { + // module name: + + library fragment { + // package name: + + // class name: A + // class name: B + // class name: B.C + // class name: B.Companion + // class name: D + // class name: D.E + + // signature: /A|null[0] + public final object A : kotlin/Any { + + // signature: /A.|-5645683436151566731[0] + private constructor() + + // signature: /A.a|-4432112437378250461[0] + public final fun a(): kotlin/Unit + } + + // signature: /B|null[0] + public final class B : kotlin/Any { + + // signature: /B.|-5645683436151566731[0] + public constructor() + + // companion object: Companion + + // nested class: Companion + + // nested class: C + } + + // signature: /B.C|null[0] + public final object B.C : kotlin/Any { + + // signature: /B.C.|-5645683436151566731[0] + private constructor() + + // signature: /B.C.c|-2724918380551733646[0] + public final fun c(): kotlin/Unit + } + + // signature: /B.Companion|null[0] + public final companion object B.Companion : kotlin/Any { + + // signature: /B.Companion.|-5645683436151566731[0] + private constructor() + + // signature: /B.Companion.b|4789657038926421504[0] + public final fun b(): kotlin/Unit + } + + // signature: /D|null[0] + public final class D : kotlin/Any { + + // signature: /D.|-5645683436151566731[0] + public constructor() + + // companion object: E + + // nested class: E + } + + // signature: /D.E|null[0] + public final companion object D.E : kotlin/Any { + + // signature: /D.E.|-5645683436151566731[0] + private constructor() + + // signature: /D.E.e|-4971306249673273083[0] + public final fun e(): kotlin/Unit + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/Objects.v1.txt b/native/native.tests/testData/klib/dump-metadata/Objects.v1.txt deleted file mode 100644 index 075f0c3859f..00000000000 --- a/native/native.tests/testData/klib/dump-metadata/Objects.v1.txt +++ /dev/null @@ -1,28 +0,0 @@ -package { - // Signature: /A|null[0] - object A { - // Signature: /A.a|-4432112437378250461[0] - fun a() - } - // Signature: /B|null[0] - class B constructor() { - // Signature: /B.Companion|null[0] - companion object { - // Signature: /B.Companion.b|4789657038926421504[0] - fun b() - } - // Signature: /B.C|null[0] - object C { - // Signature: /B.C.c|-2724918380551733646[0] - fun c() - } - } - // Signature: /D|null[0] - class D constructor() { - // Signature: /D.E|null[0] - companion object E { - // Signature: /D.E.e|-4971306249673273083[0] - fun e() - } - } -} diff --git a/native/native.tests/testData/klib/dump-metadata/Objects.v2.fir.txt b/native/native.tests/testData/klib/dump-metadata/Objects.v2.fir.txt new file mode 100644 index 00000000000..6d5f20c34c5 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/Objects.v2.fir.txt @@ -0,0 +1,78 @@ +library { + // module name: + + library fragment { + // package name: + + // class name: A + // class name: B + // class name: B.C + // class name: B.Companion + // class name: D + // class name: D.E + + // signature: /A|null[0] + public final object A : kotlin/Any { + + // signature: /A.|(){}[0] + private constructor() + + // signature: /A.a|a(){}[0] + public final fun a(): kotlin/Unit + } + + // signature: /B|null[0] + public final class B : kotlin/Any { + + // signature: /B.|(){}[0] + public constructor() + + // companion object: Companion + + // nested class: Companion + + // nested class: C + } + + // signature: /B.C|null[0] + public final object B.C : kotlin/Any { + + // signature: /B.C.|(){}[0] + private constructor() + + // signature: /B.C.c|c(){}[0] + public final fun c(): kotlin/Unit + } + + // signature: /B.Companion|null[0] + public final companion object B.Companion : kotlin/Any { + + // signature: /B.Companion.|(){}[0] + private constructor() + + // signature: /B.Companion.b|b(){}[0] + public final fun b(): kotlin/Unit + } + + // signature: /D|null[0] + public final class D : kotlin/Any { + + // signature: /D.|(){}[0] + public constructor() + + // companion object: E + + // nested class: E + } + + // signature: /D.E|null[0] + public final companion object D.E : kotlin/Any { + + // signature: /D.E.|(){}[0] + private constructor() + + // signature: /D.E.e|e(){}[0] + public final fun e(): kotlin/Unit + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/Objects.v2.txt b/native/native.tests/testData/klib/dump-metadata/Objects.v2.txt deleted file mode 100644 index 9199864e38a..00000000000 --- a/native/native.tests/testData/klib/dump-metadata/Objects.v2.txt +++ /dev/null @@ -1,28 +0,0 @@ -package { - // Signature: /A|null[0] - object A { - // Signature: /A.a|a(){}[0] - fun a() - } - // Signature: /B|null[0] - class B constructor() { - // Signature: /B.Companion|null[0] - companion object { - // Signature: /B.Companion.b|b(){}[0] - fun b() - } - // Signature: /B.C|null[0] - object C { - // Signature: /B.C.c|c(){}[0] - fun c() - } - } - // Signature: /D|null[0] - class D constructor() { - // Signature: /D.E|null[0] - companion object E { - // Signature: /D.E.e|e(){}[0] - fun e() - } - } -} diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelFunctions.kt b/native/native.tests/testData/klib/dump-metadata/TopLevelFunctions.kt index 6bec232a3dd..d3db26fc559 100644 --- a/native/native.tests/testData/klib/dump-metadata/TopLevelFunctions.kt +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelFunctions.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL @file:Suppress("UNUSED_PARAMETER") annotation class A diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelFunctions.txt b/native/native.tests/testData/klib/dump-metadata/TopLevelFunctions.txt index 3b5fe84022b..c46e42ac777 100644 --- a/native/native.tests/testData/klib/dump-metadata/TopLevelFunctions.txt +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelFunctions.txt @@ -1,21 +1,63 @@ -package { - annotation class A constructor() : Annotation - annotation class B constructor() : Annotation - class Foo constructor() - @A @B fun a() - fun Foo.e() - fun f1(x: Foo) - fun f2(x: Foo, y: Foo): Int - inline fun i1(block: () -> Foo) - inline fun i2(noinline block: () -> Foo) - inline fun i3(crossinline block: () -> Foo) - fun i4(block: (Foo) -> Int) - fun i5(block: (Foo, Foo) -> Int) - fun i6(block: Foo.() -> Int) - fun i7(block: Foo.(Foo) -> Int) - fun t1(x: Foo) - fun t2(x: T) - fun t3(x: T, y: F) - inline fun t4(x: T) - fun t5(x: T) -} \ No newline at end of file +library { + // module name: + + library fragment { + // package name: + + // class name: A + // class name: B + // class name: Foo + + public final annotation class A : kotlin/Annotation { + + public constructor() + } + + public final annotation class B : kotlin/Annotation { + + public constructor() + } + + public final class Foo : kotlin/Any { + + public constructor() + } + + package { + + @A + @B + public final fun a(): kotlin/Unit + + public final fun Foo.e(): kotlin/Unit + + public final fun f1(x: Foo): kotlin/Unit + + public final fun f2(x: Foo, y: Foo): kotlin/Int + + public final inline fun i1(block: kotlin/Function0): kotlin/Unit + + public final inline fun i2(noinline block: kotlin/Function0): kotlin/Unit + + public final inline fun i3(crossinline block: kotlin/Function0): kotlin/Unit + + public final fun i4(block: kotlin/Function1): kotlin/Unit + + public final fun i5(block: kotlin/Function2): kotlin/Unit + + public final fun i6(block: @kotlin/ExtensionFunctionType kotlin/Function1): kotlin/Unit + + public final fun i7(block: @kotlin/ExtensionFunctionType kotlin/Function2): kotlin/Unit + + public final fun t1(x: Foo): kotlin/Unit + + public final fun t2(x: T#0): kotlin/Unit + + public final fun t3(x: T#0, y: T#1): kotlin/Unit + + public final inline fun t4(x: T#0): kotlin/Unit + + public final fun t5(x: T#0): kotlin/Unit + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelFunctions.v1.txt b/native/native.tests/testData/klib/dump-metadata/TopLevelFunctions.v1.txt index 77d4f4334fd..664708e0031 100644 --- a/native/native.tests/testData/klib/dump-metadata/TopLevelFunctions.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelFunctions.v1.txt @@ -1,40 +1,85 @@ -package { - // Signature: /A|null[0] - annotation class A constructor() : Annotation - // Signature: /B|null[0] - annotation class B constructor() : Annotation - // Signature: /Foo|null[0] - class Foo constructor() - // Signature: /a|-4432112437378250461[0] - @A @B fun a() - // Signature: /e|8989066053884186758[0] - fun Foo.e() - // Signature: /f1|-1560136604489335247[0] - fun f1(x: Foo) - // Signature: /f2|8193757935438764272[0] - fun f2(x: Foo, y: Foo): Int - // Signature: /i1|-6444280688669682335[0] - inline fun i1(block: () -> Foo) - // Signature: /i2|-6849364972861294160[0] - inline fun i2(noinline block: () -> Foo) - // Signature: /i3|-3309425284353652160[0] - inline fun i3(crossinline block: () -> Foo) - // Signature: /i4|-6304681376176934836[0] - fun i4(block: (Foo) -> Int) - // Signature: /i5|-3051198308501003303[0] - fun i5(block: (Foo, Foo) -> Int) - // Signature: /i6|6453956519947412951[0] - fun i6(block: Foo.() -> Int) - // Signature: /i7|-2413842829876213778[0] - fun i7(block: Foo.(Foo) -> Int) - // Signature: /t1|4730456697336757969[0] - fun t1(x: Foo) - // Signature: /t2|-90499170678395935[0] - fun t2(x: T) - // Signature: /t3|7012475377071720756[0] - fun t3(x: T, y: F) - // Signature: /t4|-3843581059144476593[0] - inline fun t4(x: T) - // Signature: /t5|236307131019209421[0] - fun t5(x: T) +library { + // module name: + + library fragment { + // package name: + + // class name: A + // class name: B + // class name: Foo + + // signature: /A|null[0] + public final annotation class A : kotlin/Annotation { + + // signature: /A.|-5645683436151566731[0] + public constructor() + } + + // signature: /B|null[0] + public final annotation class B : kotlin/Annotation { + + // signature: /B.|-5645683436151566731[0] + public constructor() + } + + // signature: /Foo|null[0] + public final class Foo : kotlin/Any { + + // signature: /Foo.|-5645683436151566731[0] + public constructor() + } + + package { + + // signature: /a|-4432112437378250461[0] + @A + @B + public final fun a(): kotlin/Unit + + // signature: /e|8989066053884186758[0] + public final fun Foo.e(): kotlin/Unit + + // signature: /f1|-1560136604489335247[0] + public final fun f1(x: Foo): kotlin/Unit + + // signature: /f2|8193757935438764272[0] + public final fun f2(x: Foo, y: Foo): kotlin/Int + + // signature: /i1|-6444280688669682335[0] + public final inline fun i1(block: kotlin/Function0): kotlin/Unit + + // signature: /i2|-6849364972861294160[0] + public final inline fun i2(noinline block: kotlin/Function0): kotlin/Unit + + // signature: /i3|-3309425284353652160[0] + public final inline fun i3(crossinline block: kotlin/Function0): kotlin/Unit + + // signature: /i4|-6304681376176934836[0] + public final fun i4(block: kotlin/Function1): kotlin/Unit + + // signature: /i5|-3051198308501003303[0] + public final fun i5(block: kotlin/Function2): kotlin/Unit + + // signature: /i6|6453956519947412951[0] + public final fun i6(block: @kotlin/ExtensionFunctionType kotlin/Function1): kotlin/Unit + + // signature: /i7|-2413842829876213778[0] + public final fun i7(block: @kotlin/ExtensionFunctionType kotlin/Function2): kotlin/Unit + + // signature: /t1|4730456697336757969[0] + public final fun t1(x: Foo): kotlin/Unit + + // signature: /t2|-90499170678395935[0] + public final fun t2(x: T#0): kotlin/Unit + + // signature: /t3|7012475377071720756[0] + public final fun t3(x: T#0, y: T#1): kotlin/Unit + + // signature: /t4|-3843581059144476593[0] + public final inline fun t4(x: T#0): kotlin/Unit + + // signature: /t5|236307131019209421[0] + public final fun t5(x: T#0): kotlin/Unit + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelFunctions.v2.txt b/native/native.tests/testData/klib/dump-metadata/TopLevelFunctions.v2.txt index 0ea009f88a1..25889341355 100644 --- a/native/native.tests/testData/klib/dump-metadata/TopLevelFunctions.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelFunctions.v2.txt @@ -1,40 +1,85 @@ -package { - // Signature: /A|null[0] - annotation class A constructor() : Annotation - // Signature: /B|null[0] - annotation class B constructor() : Annotation - // Signature: /Foo|null[0] - class Foo constructor() - // Signature: /a|a(){}[0] - @A @B fun a() - // Signature: /e|e@Foo(){}[0] - fun Foo.e() - // Signature: /f1|f1(Foo){}[0] - fun f1(x: Foo) - // Signature: /f2|f2(Foo;Foo){}[0] - fun f2(x: Foo, y: Foo): Int - // Signature: /i1|i1(kotlin.Function0){}[0] - inline fun i1(block: () -> Foo) - // Signature: /i2|i2(kotlin.Function0){}[0] - inline fun i2(noinline block: () -> Foo) - // Signature: /i3|i3(kotlin.Function0){}[0] - inline fun i3(crossinline block: () -> Foo) - // Signature: /i4|i4(kotlin.Function1){}[0] - fun i4(block: (Foo) -> Int) - // Signature: /i5|i5(kotlin.Function2){}[0] - fun i5(block: (Foo, Foo) -> Int) - // Signature: /i6|i6(kotlin.Function1){}[0] - fun i6(block: Foo.() -> Int) - // Signature: /i7|i7(kotlin.Function2){}[0] - fun i7(block: Foo.(Foo) -> Int) - // Signature: /t1|t1(Foo){0§}[0] - fun t1(x: Foo) - // Signature: /t2|t2(0:0){0§}[0] - fun t2(x: T) - // Signature: /t3|t3(0:0;0:1){0§;1§}[0] - fun t3(x: T, y: F) - // Signature: /t4|t4(0:0){0§}[0] - inline fun t4(x: T) - // Signature: /t5|t5(0:0){0§}[0] - fun t5(x: T) +library { + // module name: + + library fragment { + // package name: + + // class name: A + // class name: B + // class name: Foo + + // signature: /A|null[0] + public final annotation class A : kotlin/Annotation { + + // signature: /A.|(){}[0] + public constructor() + } + + // signature: /B|null[0] + public final annotation class B : kotlin/Annotation { + + // signature: /B.|(){}[0] + public constructor() + } + + // signature: /Foo|null[0] + public final class Foo : kotlin/Any { + + // signature: /Foo.|(){}[0] + public constructor() + } + + package { + + // signature: /a|a(){}[0] + @A + @B + public final fun a(): kotlin/Unit + + // signature: /e|e@Foo(){}[0] + public final fun Foo.e(): kotlin/Unit + + // signature: /f1|f1(Foo){}[0] + public final fun f1(x: Foo): kotlin/Unit + + // signature: /f2|f2(Foo;Foo){}[0] + public final fun f2(x: Foo, y: Foo): kotlin/Int + + // signature: /i1|i1(kotlin.Function0){}[0] + public final inline fun i1(block: kotlin/Function0): kotlin/Unit + + // signature: /i2|i2(kotlin.Function0){}[0] + public final inline fun i2(noinline block: kotlin/Function0): kotlin/Unit + + // signature: /i3|i3(kotlin.Function0){}[0] + public final inline fun i3(crossinline block: kotlin/Function0): kotlin/Unit + + // signature: /i4|i4(kotlin.Function1){}[0] + public final fun i4(block: kotlin/Function1): kotlin/Unit + + // signature: /i5|i5(kotlin.Function2){}[0] + public final fun i5(block: kotlin/Function2): kotlin/Unit + + // signature: /i6|i6(kotlin.Function1){}[0] + public final fun i6(block: @kotlin/ExtensionFunctionType kotlin/Function1): kotlin/Unit + + // signature: /i7|i7(kotlin.Function2){}[0] + public final fun i7(block: @kotlin/ExtensionFunctionType kotlin/Function2): kotlin/Unit + + // signature: /t1|t1(Foo){0§}[0] + public final fun t1(x: Foo): kotlin/Unit + + // signature: /t2|t2(0:0){0§}[0] + public final fun t2(x: T#0): kotlin/Unit + + // signature: /t3|t3(0:0;0:1){0§;1§}[0] + public final fun t3(x: T#0, y: T#1): kotlin/Unit + + // signature: /t4|t4(0:0){0§}[0] + public final inline fun t4(x: T#0): kotlin/Unit + + // signature: /t5|t5(0:0){0§}[0] + public final fun t5(x: T#0): kotlin/Unit + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesCustomPackage.kt b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesCustomPackage.kt index 0e35b9252ad..0153e51a9a4 100644 --- a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesCustomPackage.kt +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesCustomPackage.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL @file:Suppress("UNUSED_PARAMETER") package custom.pkg diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesCustomPackage.txt b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesCustomPackage.txt index 2e83223fccd..991620f26fa 100644 --- a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesCustomPackage.txt +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesCustomPackage.txt @@ -1,7 +1,24 @@ -package custom.pkg { - typealias MyTransformer = (String) -> Int - val v1: Int = 1 - val v2: String = "hello" - val v3: (String) -> Int - val v4: MyTransformer /* = (String) -> Int */ -} \ No newline at end of file +library { + // module name: + + library fragment { + // package name: custom.pkg + + package { + + public final val v1: kotlin/Int /* = 1 */ + public final get + + public final val v2: kotlin/String /* = "hello" */ + public final get + + public final val v3: kotlin/Function1 + public final get + + public final val v4: kotlin/Function1 /* = custom/pkg/MyTransformer^ */ + public final get + + public typealias MyTransformer = kotlin/Function1 /* = kotlin/Function1 */ + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesCustomPackage.v1.txt b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesCustomPackage.v1.txt index 2d2db23efc2..f412bd60dd1 100644 --- a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesCustomPackage.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesCustomPackage.v1.txt @@ -1,12 +1,33 @@ -package custom.pkg { - // Signature: custom.pkg/MyTransformer|null[0] - typealias MyTransformer = (String) -> Int - // Signature: custom.pkg/v1|7393439784805956893[0] - val v1: Int = 1 - // Signature: custom.pkg/v2|-7674839086071973207[0] - val v2: String = "hello" - // Signature: custom.pkg/v3|1020778405567015018[0] - val v3: (String) -> Int - // Signature: custom.pkg/v4|8662652590067501092[0] - val v4: MyTransformer /* = (String) -> Int */ +library { + // module name: + + library fragment { + // package name: custom.pkg + + package { + + // signature: custom.pkg/v1|7393439784805956893[0] + public final val v1: kotlin/Int /* = 1 */ + // signature: custom.pkg/v1.|6078408232880608613[0] + public final get + + // signature: custom.pkg/v2|-7674839086071973207[0] + public final val v2: kotlin/String /* = "hello" */ + // signature: custom.pkg/v2.|-1626959823585604055[0] + public final get + + // signature: custom.pkg/v3|1020778405567015018[0] + public final val v3: kotlin/Function1 + // signature: custom.pkg/v3.|-8677319744655558329[0] + public final get + + // signature: custom.pkg/v4|8662652590067501092[0] + public final val v4: kotlin/Function1 /* = custom/pkg/MyTransformer^ */ + // signature: custom.pkg/v4.|-8872551565527715335[0] + public final get + + // signature: custom.pkg/MyTransformer|null[0] + public typealias MyTransformer = kotlin/Function1 /* = kotlin/Function1 */ + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesCustomPackage.v2.txt b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesCustomPackage.v2.txt index 3cde36d98b6..77ccfe8bf62 100644 --- a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesCustomPackage.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesCustomPackage.v2.txt @@ -1,12 +1,33 @@ -package custom.pkg { - // Signature: custom.pkg/MyTransformer|null[0] - typealias MyTransformer = (String) -> Int - // Signature: custom.pkg/v1|{}v1[0] - val v1: Int = 1 - // Signature: custom.pkg/v2|{}v2[0] - val v2: String = "hello" - // Signature: custom.pkg/v3|{}v3[0] - val v3: (String) -> Int - // Signature: custom.pkg/v4|{}v4[0] - val v4: MyTransformer /* = (String) -> Int */ +library { + // module name: + + library fragment { + // package name: custom.pkg + + package { + + // signature: custom.pkg/v1|{}v1[0] + public final val v1: kotlin/Int /* = 1 */ + // signature: custom.pkg/v1.|(){}[0] + public final get + + // signature: custom.pkg/v2|{}v2[0] + public final val v2: kotlin/String /* = "hello" */ + // signature: custom.pkg/v2.|(){}[0] + public final get + + // signature: custom.pkg/v3|{}v3[0] + public final val v3: kotlin/Function1 + // signature: custom.pkg/v3.|(){}[0] + public final get + + // signature: custom.pkg/v4|{}v4[0] + public final val v4: kotlin/Function1 /* = custom/pkg/MyTransformer^ */ + // signature: custom.pkg/v4.|(){}[0] + public final get + + // signature: custom.pkg/MyTransformer|null[0] + public typealias MyTransformer = kotlin/Function1 /* = kotlin/Function1 */ + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesRootPackage.kt b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesRootPackage.kt index fc2e27f6c8b..97b347d674c 100644 --- a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesRootPackage.kt +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesRootPackage.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL @file:Suppress("UNUSED_PARAMETER") typealias MyTransformer = (String) -> Int diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesRootPackage.txt b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesRootPackage.txt index 07f8f2ad4df..bd89bcf654c 100644 --- a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesRootPackage.txt +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesRootPackage.txt @@ -1,7 +1,24 @@ -package { - typealias MyTransformer = (String) -> Int - val v1: Int = 1 - val v2: String = "hello" - val v3: (String) -> Int - val v4: MyTransformer /* = (String) -> Int */ -} \ No newline at end of file +library { + // module name: + + library fragment { + // package name: + + package { + + public final val v1: kotlin/Int /* = 1 */ + public final get + + public final val v2: kotlin/String /* = "hello" */ + public final get + + public final val v3: kotlin/Function1 + public final get + + public final val v4: kotlin/Function1 /* = MyTransformer^ */ + public final get + + public typealias MyTransformer = kotlin/Function1 /* = kotlin/Function1 */ + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesRootPackage.v1.txt b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesRootPackage.v1.txt index fa61f0d6ba6..970212db0fe 100644 --- a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesRootPackage.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesRootPackage.v1.txt @@ -1,12 +1,33 @@ -package { - // Signature: /MyTransformer|null[0] - typealias MyTransformer = (String) -> Int - // Signature: /v1|7393439784805956893[0] - val v1: Int = 1 - // Signature: /v2|-7674839086071973207[0] - val v2: String = "hello" - // Signature: /v3|1020778405567015018[0] - val v3: (String) -> Int - // Signature: /v4|8662652590067501092[0] - val v4: MyTransformer /* = (String) -> Int */ +library { + // module name: + + library fragment { + // package name: + + package { + + // signature: /v1|7393439784805956893[0] + public final val v1: kotlin/Int /* = 1 */ + // signature: /v1.|6078408232880608613[0] + public final get + + // signature: /v2|-7674839086071973207[0] + public final val v2: kotlin/String /* = "hello" */ + // signature: /v2.|-1626959823585604055[0] + public final get + + // signature: /v3|1020778405567015018[0] + public final val v3: kotlin/Function1 + // signature: /v3.|-8677319744655558329[0] + public final get + + // signature: /v4|8662652590067501092[0] + public final val v4: kotlin/Function1 /* = MyTransformer^ */ + // signature: /v4.|-8872551565527715335[0] + public final get + + // signature: /MyTransformer|null[0] + public typealias MyTransformer = kotlin/Function1 /* = kotlin/Function1 */ + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesRootPackage.v2.txt b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesRootPackage.v2.txt index 94966b3e87c..7e8d53de65f 100644 --- a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesRootPackage.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesRootPackage.v2.txt @@ -1,12 +1,33 @@ -package { - // Signature: /MyTransformer|null[0] - typealias MyTransformer = (String) -> Int - // Signature: /v1|{}v1[0] - val v1: Int = 1 - // Signature: /v2|{}v2[0] - val v2: String = "hello" - // Signature: /v3|{}v3[0] - val v3: (String) -> Int - // Signature: /v4|{}v4[0] - val v4: MyTransformer /* = (String) -> Int */ +library { + // module name: + + library fragment { + // package name: + + package { + + // signature: /v1|{}v1[0] + public final val v1: kotlin/Int /* = 1 */ + // signature: /v1.|(){}[0] + public final get + + // signature: /v2|{}v2[0] + public final val v2: kotlin/String /* = "hello" */ + // signature: /v2.|(){}[0] + public final get + + // signature: /v3|{}v3[0] + public final val v3: kotlin/Function1 + // signature: /v3.|(){}[0] + public final get + + // signature: /v4|{}v4[0] + public final val v4: kotlin/Function1 /* = MyTransformer^ */ + // signature: /v4.|(){}[0] + public final get + + // signature: /MyTransformer|null[0] + public typealias MyTransformer = kotlin/Function1 /* = kotlin/Function1 */ + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesCustomPackage.kt b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesCustomPackage.kt index e699714afad..88e87f18987 100644 --- a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesCustomPackage.kt +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesCustomPackage.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL @file:Suppress("UNUSED_PARAMETER") package custom.pkg diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesCustomPackage.txt b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesCustomPackage.txt index 2ddc001b15a..f4d1d558c81 100644 --- a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesCustomPackage.txt +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesCustomPackage.txt @@ -1,9 +1,37 @@ -package custom.pkg { - object Bar - class Foo constructor() - typealias MyTransformer = (String) -> Int - val v1: Int = 1 - val v2: String = "hello" - val v3: (String) -> Int - val v4: MyTransformer /* = (String) -> Int */ -} \ No newline at end of file +library { + // module name: + + library fragment { + // package name: custom.pkg + + // class name: custom/pkg/Bar + // class name: custom/pkg/Foo + + public final object custom/pkg/Bar : kotlin/Any { + + private constructor() + } + + public final class custom/pkg/Foo : kotlin/Any { + + public constructor() + } + + package { + + public final val v1: kotlin/Int /* = 1 */ + public final get + + public final val v2: kotlin/String /* = "hello" */ + public final get + + public final val v3: kotlin/Function1 + public final get + + public final val v4: kotlin/Function1 /* = custom/pkg/MyTransformer^ */ + public final get + + public typealias MyTransformer = kotlin/Function1 /* = kotlin/Function1 */ + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesCustomPackage.v1.txt b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesCustomPackage.v1.txt index 1266fe7e39a..926d5b3bea0 100644 --- a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesCustomPackage.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesCustomPackage.v1.txt @@ -1,16 +1,50 @@ -package custom.pkg { - // Signature: custom.pkg/Bar|null[0] - object Bar - // Signature: custom.pkg/Foo|null[0] - class Foo constructor() - // Signature: custom.pkg/MyTransformer|null[0] - typealias MyTransformer = (String) -> Int - // Signature: custom.pkg/v1|7393439784805956893[0] - val v1: Int = 1 - // Signature: custom.pkg/v2|-7674839086071973207[0] - val v2: String = "hello" - // Signature: custom.pkg/v3|1020778405567015018[0] - val v3: (String) -> Int - // Signature: custom.pkg/v4|8662652590067501092[0] - val v4: MyTransformer /* = (String) -> Int */ +library { + // module name: + + library fragment { + // package name: custom.pkg + + // class name: custom/pkg/Bar + // class name: custom/pkg/Foo + + // signature: custom.pkg/Bar|null[0] + public final object custom/pkg/Bar : kotlin/Any { + + // signature: custom.pkg/Bar.|-5645683436151566731[0] + private constructor() + } + + // signature: custom.pkg/Foo|null[0] + public final class custom/pkg/Foo : kotlin/Any { + + // signature: custom.pkg/Foo.|-5645683436151566731[0] + public constructor() + } + + package { + + // signature: custom.pkg/v1|7393439784805956893[0] + public final val v1: kotlin/Int /* = 1 */ + // signature: custom.pkg/v1.|6078408232880608613[0] + public final get + + // signature: custom.pkg/v2|-7674839086071973207[0] + public final val v2: kotlin/String /* = "hello" */ + // signature: custom.pkg/v2.|-1626959823585604055[0] + public final get + + // signature: custom.pkg/v3|1020778405567015018[0] + public final val v3: kotlin/Function1 + // signature: custom.pkg/v3.|-8677319744655558329[0] + public final get + + // signature: custom.pkg/v4|8662652590067501092[0] + public final val v4: kotlin/Function1 /* = custom/pkg/MyTransformer^ */ + // signature: custom.pkg/v4.|-8872551565527715335[0] + public final get + + // signature: custom.pkg/MyTransformer|null[0] + public typealias MyTransformer = kotlin/Function1 /* = kotlin/Function1 */ + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesCustomPackage.v2.txt b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesCustomPackage.v2.txt index 89285f50240..1a56ebecf9e 100644 --- a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesCustomPackage.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesCustomPackage.v2.txt @@ -1,16 +1,50 @@ -package custom.pkg { - // Signature: custom.pkg/Bar|null[0] - object Bar - // Signature: custom.pkg/Foo|null[0] - class Foo constructor() - // Signature: custom.pkg/MyTransformer|null[0] - typealias MyTransformer = (String) -> Int - // Signature: custom.pkg/v1|{}v1[0] - val v1: Int = 1 - // Signature: custom.pkg/v2|{}v2[0] - val v2: String = "hello" - // Signature: custom.pkg/v3|{}v3[0] - val v3: (String) -> Int - // Signature: custom.pkg/v4|{}v4[0] - val v4: MyTransformer /* = (String) -> Int */ +library { + // module name: + + library fragment { + // package name: custom.pkg + + // class name: custom/pkg/Bar + // class name: custom/pkg/Foo + + // signature: custom.pkg/Bar|null[0] + public final object custom/pkg/Bar : kotlin/Any { + + // signature: custom.pkg/Bar.|(){}[0] + private constructor() + } + + // signature: custom.pkg/Foo|null[0] + public final class custom/pkg/Foo : kotlin/Any { + + // signature: custom.pkg/Foo.|(){}[0] + public constructor() + } + + package { + + // signature: custom.pkg/v1|{}v1[0] + public final val v1: kotlin/Int /* = 1 */ + // signature: custom.pkg/v1.|(){}[0] + public final get + + // signature: custom.pkg/v2|{}v2[0] + public final val v2: kotlin/String /* = "hello" */ + // signature: custom.pkg/v2.|(){}[0] + public final get + + // signature: custom.pkg/v3|{}v3[0] + public final val v3: kotlin/Function1 + // signature: custom.pkg/v3.|(){}[0] + public final get + + // signature: custom.pkg/v4|{}v4[0] + public final val v4: kotlin/Function1 /* = custom/pkg/MyTransformer^ */ + // signature: custom.pkg/v4.|(){}[0] + public final get + + // signature: custom.pkg/MyTransformer|null[0] + public typealias MyTransformer = kotlin/Function1 /* = kotlin/Function1 */ + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesRootPackage.kt b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesRootPackage.kt index ffdf56c0489..3aa39abf7fd 100644 --- a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesRootPackage.kt +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesRootPackage.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL @file:Suppress("UNUSED_PARAMETER") class Foo diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesRootPackage.txt b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesRootPackage.txt index 7f43d07a76b..455918638d3 100644 --- a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesRootPackage.txt +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesRootPackage.txt @@ -1,9 +1,37 @@ -package { - object Bar - class Foo constructor() - typealias MyTransformer = (String) -> Int - val v1: Int = 1 - val v2: String = "hello" - val v3: (String) -> Int - val v4: MyTransformer /* = (String) -> Int */ -} \ No newline at end of file +library { + // module name: + + library fragment { + // package name: + + // class name: Bar + // class name: Foo + + public final object Bar : kotlin/Any { + + private constructor() + } + + public final class Foo : kotlin/Any { + + public constructor() + } + + package { + + public final val v1: kotlin/Int /* = 1 */ + public final get + + public final val v2: kotlin/String /* = "hello" */ + public final get + + public final val v3: kotlin/Function1 + public final get + + public final val v4: kotlin/Function1 /* = MyTransformer^ */ + public final get + + public typealias MyTransformer = kotlin/Function1 /* = kotlin/Function1 */ + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesRootPackage.v1.txt b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesRootPackage.v1.txt index c436423b794..89089b8f18f 100644 --- a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesRootPackage.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesRootPackage.v1.txt @@ -1,16 +1,50 @@ -package { - // Signature: /Bar|null[0] - object Bar - // Signature: /Foo|null[0] - class Foo constructor() - // Signature: /MyTransformer|null[0] - typealias MyTransformer = (String) -> Int - // Signature: /v1|7393439784805956893[0] - val v1: Int = 1 - // Signature: /v2|-7674839086071973207[0] - val v2: String = "hello" - // Signature: /v3|1020778405567015018[0] - val v3: (String) -> Int - // Signature: /v4|8662652590067501092[0] - val v4: MyTransformer /* = (String) -> Int */ +library { + // module name: + + library fragment { + // package name: + + // class name: Bar + // class name: Foo + + // signature: /Bar|null[0] + public final object Bar : kotlin/Any { + + // signature: /Bar.|-5645683436151566731[0] + private constructor() + } + + // signature: /Foo|null[0] + public final class Foo : kotlin/Any { + + // signature: /Foo.|-5645683436151566731[0] + public constructor() + } + + package { + + // signature: /v1|7393439784805956893[0] + public final val v1: kotlin/Int /* = 1 */ + // signature: /v1.|6078408232880608613[0] + public final get + + // signature: /v2|-7674839086071973207[0] + public final val v2: kotlin/String /* = "hello" */ + // signature: /v2.|-1626959823585604055[0] + public final get + + // signature: /v3|1020778405567015018[0] + public final val v3: kotlin/Function1 + // signature: /v3.|-8677319744655558329[0] + public final get + + // signature: /v4|8662652590067501092[0] + public final val v4: kotlin/Function1 /* = MyTransformer^ */ + // signature: /v4.|-8872551565527715335[0] + public final get + + // signature: /MyTransformer|null[0] + public typealias MyTransformer = kotlin/Function1 /* = kotlin/Function1 */ + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesRootPackage.v2.txt b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesRootPackage.v2.txt index 7bb21573bf3..c03db5041b1 100644 --- a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesRootPackage.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesRootPackage.v2.txt @@ -1,16 +1,50 @@ -package { - // Signature: /Bar|null[0] - object Bar - // Signature: /Foo|null[0] - class Foo constructor() - // Signature: /MyTransformer|null[0] - typealias MyTransformer = (String) -> Int - // Signature: /v1|{}v1[0] - val v1: Int = 1 - // Signature: /v2|{}v2[0] - val v2: String = "hello" - // Signature: /v3|{}v3[0] - val v3: (String) -> Int - // Signature: /v4|{}v4[0] - val v4: MyTransformer /* = (String) -> Int */ +library { + // module name: + + library fragment { + // package name: + + // class name: Bar + // class name: Foo + + // signature: /Bar|null[0] + public final object Bar : kotlin/Any { + + // signature: /Bar.|(){}[0] + private constructor() + } + + // signature: /Foo|null[0] + public final class Foo : kotlin/Any { + + // signature: /Foo.|(){}[0] + public constructor() + } + + package { + + // signature: /v1|{}v1[0] + public final val v1: kotlin/Int /* = 1 */ + // signature: /v1.|(){}[0] + public final get + + // signature: /v2|{}v2[0] + public final val v2: kotlin/String /* = "hello" */ + // signature: /v2.|(){}[0] + public final get + + // signature: /v3|{}v3[0] + public final val v3: kotlin/Function1 + // signature: /v3.|(){}[0] + public final get + + // signature: /v4|{}v4[0] + public final val v4: kotlin/Function1 /* = MyTransformer^ */ + // signature: /v4.|(){}[0] + public final get + + // signature: /MyTransformer|null[0] + public typealias MyTransformer = kotlin/Function1 /* = kotlin/Function1 */ + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/annotations.txt b/native/native.tests/testData/klib/dump-metadata/annotations.txt index 17c855ffde5..7a5247fc6b6 100644 --- a/native/native.tests/testData/klib/dump-metadata/annotations.txt +++ b/native/native.tests/testData/klib/dump-metadata/annotations.txt @@ -1,32 +1,160 @@ -package test { - annotation class AnnoBackingField constructor() : Annotation - annotation class AnnoClass constructor() : Annotation - @Target(allowedTargets = {AnnotationTarget.TYPE_PARAMETER}) annotation class AnnoClassTypeParameter constructor() : Annotation - @Target(allowedTargets = {AnnotationTarget.TYPE}) annotation class AnnoClassUsageTypeParameter constructor() : Annotation - annotation class AnnoConstructor constructor() : Annotation - annotation class AnnoConstructorParameter constructor() : Annotation - annotation class AnnoDelegatedField constructor() : Annotation - annotation class AnnoFunction constructor() : Annotation - annotation class AnnoFunctionExtensionReceiver constructor() : Annotation - annotation class AnnoFunctionParam constructor() : Annotation - @Target(allowedTargets = {AnnotationTarget.TYPE_PARAMETER}) annotation class AnnoFunctionTypeParameter constructor() : Annotation - annotation class AnnoGetter constructor() : Annotation - annotation class AnnoProperty constructor() : Annotation - annotation class AnnoPropertyExtensionReceiver constructor() : Annotation - annotation class AnnoSetParam constructor() : Annotation - annotation class AnnoSetParam2 constructor() : Annotation - annotation class AnnoSetter constructor() : Annotation - annotation class AnnoSetter2 constructor() : Annotation - class B<@AnnoClassTypeParameter T> constructor() - @AnnoClass class Foo @AnnoConstructor constructor(@AnnoConstructorParameter i: Int) { - @delegate:AnnoDelegatedField val immutableProp: Int - var mutableProp: Int - @AnnoSetter2 set - @AnnoProperty @field:AnnoBackingField var prop: Int - @AnnoGetter get - @AnnoSetter set +library { + // module name: + + library fragment { + // package name: test + + // class name: test/AnnoBackingField + // class name: test/AnnoClass + // class name: test/AnnoClassTypeParameter + // class name: test/AnnoClassUsageTypeParameter + // class name: test/AnnoConstructor + // class name: test/AnnoConstructorParameter + // class name: test/AnnoDelegatedField + // class name: test/AnnoFunction + // class name: test/AnnoFunctionExtensionReceiver + // class name: test/AnnoFunctionParam + // class name: test/AnnoFunctionTypeParameter + // class name: test/AnnoGetter + // class name: test/AnnoProperty + // class name: test/AnnoPropertyExtensionReceiver + // class name: test/AnnoSetParam + // class name: test/AnnoSetParam2 + // class name: test/AnnoSetter + // class name: test/AnnoSetter2 + // class name: test/B + // class name: test/Foo + + public final annotation class test/AnnoBackingField : kotlin/Annotation { + + public constructor() } - @AnnoPropertyExtensionReceiver val Foo.extProp: Int - @AnnoFunction fun @receiver:AnnoFunctionExtensionReceiver Foo.extfun(@AnnoFunctionParam x: Int) - fun <@AnnoFunctionTypeParameter T> f(x: B<@AnnoClassUsageTypeParameter Int>) -} \ No newline at end of file + + public final annotation class test/AnnoClass : kotlin/Annotation { + + public constructor() + } + + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.TYPE_PARAMETER]) + public final annotation class test/AnnoClassTypeParameter : kotlin/Annotation { + + public constructor() + } + + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.TYPE]) + public final annotation class test/AnnoClassUsageTypeParameter : kotlin/Annotation { + + public constructor() + } + + public final annotation class test/AnnoConstructor : kotlin/Annotation { + + public constructor() + } + + public final annotation class test/AnnoConstructorParameter : kotlin/Annotation { + + public constructor() + } + + public final annotation class test/AnnoDelegatedField : kotlin/Annotation { + + public constructor() + } + + public final annotation class test/AnnoFunction : kotlin/Annotation { + + public constructor() + } + + public final annotation class test/AnnoFunctionExtensionReceiver : kotlin/Annotation { + + public constructor() + } + + public final annotation class test/AnnoFunctionParam : kotlin/Annotation { + + public constructor() + } + + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.TYPE_PARAMETER]) + public final annotation class test/AnnoFunctionTypeParameter : kotlin/Annotation { + + public constructor() + } + + public final annotation class test/AnnoGetter : kotlin/Annotation { + + public constructor() + } + + public final annotation class test/AnnoProperty : kotlin/Annotation { + + public constructor() + } + + public final annotation class test/AnnoPropertyExtensionReceiver : kotlin/Annotation { + + public constructor() + } + + public final annotation class test/AnnoSetParam : kotlin/Annotation { + + public constructor() + } + + public final annotation class test/AnnoSetParam2 : kotlin/Annotation { + + public constructor() + } + + public final annotation class test/AnnoSetter : kotlin/Annotation { + + public constructor() + } + + public final annotation class test/AnnoSetter2 : kotlin/Annotation { + + public constructor() + } + + public final class test/B<@test/AnnoClassTypeParameter T#0 /* T */> : kotlin/Any { + + public constructor() + } + + @test/AnnoClass + public final class test/Foo : kotlin/Any { + + @test/AnnoConstructor + public constructor(@test/AnnoConstructorParameter i: kotlin/Int) + + public final /* delegated */ val immutableProp: kotlin/Int + public final /* non-default */ get + + public final var mutableProp: kotlin/Int + public final get + @test/AnnoSetter2 + public final /* non-default */ set(@test/AnnoSetParam2 x: kotlin/Int) + + @test/AnnoProperty + public final var prop: kotlin/Int + @test/AnnoGetter + public final /* non-default */ get + @test/AnnoSetter + public final /* non-default */ set(@test/AnnoSetParam x: kotlin/Int) + } + + package { + + @test/AnnoFunction + public final fun test/Foo.extfun(@test/AnnoFunctionParam x: kotlin/Int): kotlin/Unit + + public final fun <@test/AnnoFunctionTypeParameter T#0 /* T */> f(x: test/B<@test/AnnoClassUsageTypeParameter kotlin/Int>): kotlin/Unit + + @test/AnnoPropertyExtensionReceiver + public final val test/Foo.extProp: kotlin/Int + public final /* non-default */ get + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/annotations.v1.txt b/native/native.tests/testData/klib/dump-metadata/annotations.v1.txt index ad3402d20e3..fde0a3c9b2a 100644 --- a/native/native.tests/testData/klib/dump-metadata/annotations.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/annotations.v1.txt @@ -1,61 +1,212 @@ -package test { - // Signature: test/AnnoBackingField|null[0] - annotation class AnnoBackingField constructor() : Annotation - // Signature: test/AnnoClass|null[0] - annotation class AnnoClass constructor() : Annotation - // Signature: test/AnnoClassTypeParameter|null[0] - @Target(allowedTargets = {AnnotationTarget.TYPE_PARAMETER}) annotation class AnnoClassTypeParameter constructor() : Annotation - // Signature: test/AnnoClassUsageTypeParameter|null[0] - @Target(allowedTargets = {AnnotationTarget.TYPE}) annotation class AnnoClassUsageTypeParameter constructor() : Annotation - // Signature: test/AnnoConstructor|null[0] - annotation class AnnoConstructor constructor() : Annotation - // Signature: test/AnnoConstructorParameter|null[0] - annotation class AnnoConstructorParameter constructor() : Annotation - // Signature: test/AnnoDelegatedField|null[0] - annotation class AnnoDelegatedField constructor() : Annotation - // Signature: test/AnnoFunction|null[0] - annotation class AnnoFunction constructor() : Annotation - // Signature: test/AnnoFunctionExtensionReceiver|null[0] - annotation class AnnoFunctionExtensionReceiver constructor() : Annotation - // Signature: test/AnnoFunctionParam|null[0] - annotation class AnnoFunctionParam constructor() : Annotation - // Signature: test/AnnoFunctionTypeParameter|null[0] - @Target(allowedTargets = {AnnotationTarget.TYPE_PARAMETER}) annotation class AnnoFunctionTypeParameter constructor() : Annotation - // Signature: test/AnnoGetter|null[0] - annotation class AnnoGetter constructor() : Annotation - // Signature: test/AnnoProperty|null[0] - annotation class AnnoProperty constructor() : Annotation - // Signature: test/AnnoPropertyExtensionReceiver|null[0] - annotation class AnnoPropertyExtensionReceiver constructor() : Annotation - // Signature: test/AnnoSetParam|null[0] - annotation class AnnoSetParam constructor() : Annotation - // Signature: test/AnnoSetParam2|null[0] - annotation class AnnoSetParam2 constructor() : Annotation - // Signature: test/AnnoSetter|null[0] - annotation class AnnoSetter constructor() : Annotation - // Signature: test/AnnoSetter2|null[0] - annotation class AnnoSetter2 constructor() : Annotation - // Signature: test/B|null[0] - class B<@AnnoClassTypeParameter T> constructor() - // Signature: test/Foo|null[0] - @AnnoClass class Foo @AnnoConstructor constructor(@AnnoConstructorParameter i: Int) { - // Signature: test/Foo.immutableProp|-821319779095389209[0] - @delegate:AnnoDelegatedField val immutableProp: Int - // Signature: test/Foo.mutableProp|1472686943295008822[0] - var mutableProp: Int - // Signature: test/Foo.mutableProp.|-3965758569411010277[0] - @AnnoSetter2 set - // Signature: test/Foo.prop|3598315380056892812[0] - @AnnoProperty @field:AnnoBackingField var prop: Int - // Signature: test/Foo.prop.|-5734736374948136327[0] - @AnnoGetter get - // Signature: test/Foo.prop.|3724820243841906450[0] - @AnnoSetter set +library { + // module name: + + library fragment { + // package name: test + + // class name: test/AnnoBackingField + // class name: test/AnnoClass + // class name: test/AnnoClassTypeParameter + // class name: test/AnnoClassUsageTypeParameter + // class name: test/AnnoConstructor + // class name: test/AnnoConstructorParameter + // class name: test/AnnoDelegatedField + // class name: test/AnnoFunction + // class name: test/AnnoFunctionExtensionReceiver + // class name: test/AnnoFunctionParam + // class name: test/AnnoFunctionTypeParameter + // class name: test/AnnoGetter + // class name: test/AnnoProperty + // class name: test/AnnoPropertyExtensionReceiver + // class name: test/AnnoSetParam + // class name: test/AnnoSetParam2 + // class name: test/AnnoSetter + // class name: test/AnnoSetter2 + // class name: test/B + // class name: test/Foo + + // signature: test/AnnoBackingField|null[0] + public final annotation class test/AnnoBackingField : kotlin/Annotation { + + // signature: test/AnnoBackingField.|-5645683436151566731[0] + public constructor() } - // Signature: test/extProp|-6867325556440293248[0] - @AnnoPropertyExtensionReceiver val Foo.extProp: Int - // Signature: test/extfun|-4862331552047794615[0] - @AnnoFunction fun @receiver:AnnoFunctionExtensionReceiver Foo.extfun(@AnnoFunctionParam x: Int) - // Signature: test/f|-1335249788552583475[0] - fun <@AnnoFunctionTypeParameter T> f(x: B<@AnnoClassUsageTypeParameter Int>) + + // signature: test/AnnoClass|null[0] + public final annotation class test/AnnoClass : kotlin/Annotation { + + // signature: test/AnnoClass.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoClassTypeParameter|null[0] + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.TYPE_PARAMETER]) + public final annotation class test/AnnoClassTypeParameter : kotlin/Annotation { + + // signature: test/AnnoClassTypeParameter.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoClassUsageTypeParameter|null[0] + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.TYPE]) + public final annotation class test/AnnoClassUsageTypeParameter : kotlin/Annotation { + + // signature: test/AnnoClassUsageTypeParameter.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoConstructor|null[0] + public final annotation class test/AnnoConstructor : kotlin/Annotation { + + // signature: test/AnnoConstructor.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoConstructorParameter|null[0] + public final annotation class test/AnnoConstructorParameter : kotlin/Annotation { + + // signature: test/AnnoConstructorParameter.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoDelegatedField|null[0] + public final annotation class test/AnnoDelegatedField : kotlin/Annotation { + + // signature: test/AnnoDelegatedField.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoFunction|null[0] + public final annotation class test/AnnoFunction : kotlin/Annotation { + + // signature: test/AnnoFunction.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoFunctionExtensionReceiver|null[0] + public final annotation class test/AnnoFunctionExtensionReceiver : kotlin/Annotation { + + // signature: test/AnnoFunctionExtensionReceiver.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoFunctionParam|null[0] + public final annotation class test/AnnoFunctionParam : kotlin/Annotation { + + // signature: test/AnnoFunctionParam.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoFunctionTypeParameter|null[0] + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.TYPE_PARAMETER]) + public final annotation class test/AnnoFunctionTypeParameter : kotlin/Annotation { + + // signature: test/AnnoFunctionTypeParameter.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoGetter|null[0] + public final annotation class test/AnnoGetter : kotlin/Annotation { + + // signature: test/AnnoGetter.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoProperty|null[0] + public final annotation class test/AnnoProperty : kotlin/Annotation { + + // signature: test/AnnoProperty.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoPropertyExtensionReceiver|null[0] + public final annotation class test/AnnoPropertyExtensionReceiver : kotlin/Annotation { + + // signature: test/AnnoPropertyExtensionReceiver.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoSetParam|null[0] + public final annotation class test/AnnoSetParam : kotlin/Annotation { + + // signature: test/AnnoSetParam.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoSetParam2|null[0] + public final annotation class test/AnnoSetParam2 : kotlin/Annotation { + + // signature: test/AnnoSetParam2.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoSetter|null[0] + public final annotation class test/AnnoSetter : kotlin/Annotation { + + // signature: test/AnnoSetter.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoSetter2|null[0] + public final annotation class test/AnnoSetter2 : kotlin/Annotation { + + // signature: test/AnnoSetter2.|-5645683436151566731[0] + public constructor() + } + + // signature: test/B|null[0] + public final class test/B<@test/AnnoClassTypeParameter T#0 /* T */> : kotlin/Any { + + // signature: test/B.|-5645683436151566731[0] + public constructor() + } + + // signature: test/Foo|null[0] + @test/AnnoClass + public final class test/Foo : kotlin/Any { + + // signature: test/Foo.|-5182794243525578284[0] + @test/AnnoConstructor + public constructor(@test/AnnoConstructorParameter i: kotlin/Int) + + // signature: test/Foo.immutableProp|-821319779095389209[0] + public final /* delegated */ val immutableProp: kotlin/Int + // signature: test/Foo.immutableProp.|325589445193220939[0] + public final /* non-default */ get + + // signature: test/Foo.mutableProp|1472686943295008822[0] + public final var mutableProp: kotlin/Int + // signature: test/Foo.mutableProp.|-557070840259409057[0] + public final get + // signature: test/Foo.mutableProp.|-3965758569411010277[0] + @test/AnnoSetter2 + public final /* non-default */ set(@test/AnnoSetParam2 x: kotlin/Int) + + // signature: test/Foo.prop|3598315380056892812[0] + @test/AnnoProperty + public final var prop: kotlin/Int + // signature: test/Foo.prop.|-5734736374948136327[0] + @test/AnnoGetter + public final /* non-default */ get + // signature: test/Foo.prop.|3724820243841906450[0] + @test/AnnoSetter + public final /* non-default */ set(@test/AnnoSetParam x: kotlin/Int) + } + + package { + + // signature: test/extfun|-4862331552047794615[0] + @test/AnnoFunction + public final fun test/Foo.extfun(@test/AnnoFunctionParam x: kotlin/Int): kotlin/Unit + + // signature: test/f|-1335249788552583475[0] + public final fun <@test/AnnoFunctionTypeParameter T#0 /* T */> f(x: test/B<@test/AnnoClassUsageTypeParameter kotlin/Int>): kotlin/Unit + + // signature: test/extProp|-6867325556440293248[0] + @test/AnnoPropertyExtensionReceiver + public final val test/Foo.extProp: kotlin/Int + // signature: test/extProp.|8446410089263600861[0] + public final /* non-default */ get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/annotations.v2.txt b/native/native.tests/testData/klib/dump-metadata/annotations.v2.txt index d4087a678e0..3258983e68e 100644 --- a/native/native.tests/testData/klib/dump-metadata/annotations.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/annotations.v2.txt @@ -1,61 +1,212 @@ -package test { - // Signature: test/AnnoBackingField|null[0] - annotation class AnnoBackingField constructor() : Annotation - // Signature: test/AnnoClass|null[0] - annotation class AnnoClass constructor() : Annotation - // Signature: test/AnnoClassTypeParameter|null[0] - @Target(allowedTargets = {AnnotationTarget.TYPE_PARAMETER}) annotation class AnnoClassTypeParameter constructor() : Annotation - // Signature: test/AnnoClassUsageTypeParameter|null[0] - @Target(allowedTargets = {AnnotationTarget.TYPE}) annotation class AnnoClassUsageTypeParameter constructor() : Annotation - // Signature: test/AnnoConstructor|null[0] - annotation class AnnoConstructor constructor() : Annotation - // Signature: test/AnnoConstructorParameter|null[0] - annotation class AnnoConstructorParameter constructor() : Annotation - // Signature: test/AnnoDelegatedField|null[0] - annotation class AnnoDelegatedField constructor() : Annotation - // Signature: test/AnnoFunction|null[0] - annotation class AnnoFunction constructor() : Annotation - // Signature: test/AnnoFunctionExtensionReceiver|null[0] - annotation class AnnoFunctionExtensionReceiver constructor() : Annotation - // Signature: test/AnnoFunctionParam|null[0] - annotation class AnnoFunctionParam constructor() : Annotation - // Signature: test/AnnoFunctionTypeParameter|null[0] - @Target(allowedTargets = {AnnotationTarget.TYPE_PARAMETER}) annotation class AnnoFunctionTypeParameter constructor() : Annotation - // Signature: test/AnnoGetter|null[0] - annotation class AnnoGetter constructor() : Annotation - // Signature: test/AnnoProperty|null[0] - annotation class AnnoProperty constructor() : Annotation - // Signature: test/AnnoPropertyExtensionReceiver|null[0] - annotation class AnnoPropertyExtensionReceiver constructor() : Annotation - // Signature: test/AnnoSetParam|null[0] - annotation class AnnoSetParam constructor() : Annotation - // Signature: test/AnnoSetParam2|null[0] - annotation class AnnoSetParam2 constructor() : Annotation - // Signature: test/AnnoSetter|null[0] - annotation class AnnoSetter constructor() : Annotation - // Signature: test/AnnoSetter2|null[0] - annotation class AnnoSetter2 constructor() : Annotation - // Signature: test/B|null[0] - class B<@AnnoClassTypeParameter T> constructor() - // Signature: test/Foo|null[0] - @AnnoClass class Foo @AnnoConstructor constructor(@AnnoConstructorParameter i: Int) { - // Signature: test/Foo.immutableProp|{}immutableProp[0] - @delegate:AnnoDelegatedField val immutableProp: Int - // Signature: test/Foo.mutableProp|{}mutableProp[0] - var mutableProp: Int - // Signature: test/Foo.mutableProp.|(kotlin.Int){}[0] - @AnnoSetter2 set - // Signature: test/Foo.prop|{}prop[0] - @AnnoProperty @field:AnnoBackingField var prop: Int - // Signature: test/Foo.prop.|(){}[0] - @AnnoGetter get - // Signature: test/Foo.prop.|(kotlin.Int){}[0] - @AnnoSetter set +library { + // module name: + + library fragment { + // package name: test + + // class name: test/AnnoBackingField + // class name: test/AnnoClass + // class name: test/AnnoClassTypeParameter + // class name: test/AnnoClassUsageTypeParameter + // class name: test/AnnoConstructor + // class name: test/AnnoConstructorParameter + // class name: test/AnnoDelegatedField + // class name: test/AnnoFunction + // class name: test/AnnoFunctionExtensionReceiver + // class name: test/AnnoFunctionParam + // class name: test/AnnoFunctionTypeParameter + // class name: test/AnnoGetter + // class name: test/AnnoProperty + // class name: test/AnnoPropertyExtensionReceiver + // class name: test/AnnoSetParam + // class name: test/AnnoSetParam2 + // class name: test/AnnoSetter + // class name: test/AnnoSetter2 + // class name: test/B + // class name: test/Foo + + // signature: test/AnnoBackingField|null[0] + public final annotation class test/AnnoBackingField : kotlin/Annotation { + + // signature: test/AnnoBackingField.|(){}[0] + public constructor() } - // Signature: test/extProp|@test.Foo{}extProp[0] - @AnnoPropertyExtensionReceiver val Foo.extProp: Int - // Signature: test/extfun|extfun@test.Foo(kotlin.Int){}[0] - @AnnoFunction fun @receiver:AnnoFunctionExtensionReceiver Foo.extfun(@AnnoFunctionParam x: Int) - // Signature: test/f|f(test.B){0§}[0] - fun <@AnnoFunctionTypeParameter T> f(x: B<@AnnoClassUsageTypeParameter Int>) + + // signature: test/AnnoClass|null[0] + public final annotation class test/AnnoClass : kotlin/Annotation { + + // signature: test/AnnoClass.|(){}[0] + public constructor() + } + + // signature: test/AnnoClassTypeParameter|null[0] + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.TYPE_PARAMETER]) + public final annotation class test/AnnoClassTypeParameter : kotlin/Annotation { + + // signature: test/AnnoClassTypeParameter.|(){}[0] + public constructor() + } + + // signature: test/AnnoClassUsageTypeParameter|null[0] + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.TYPE]) + public final annotation class test/AnnoClassUsageTypeParameter : kotlin/Annotation { + + // signature: test/AnnoClassUsageTypeParameter.|(){}[0] + public constructor() + } + + // signature: test/AnnoConstructor|null[0] + public final annotation class test/AnnoConstructor : kotlin/Annotation { + + // signature: test/AnnoConstructor.|(){}[0] + public constructor() + } + + // signature: test/AnnoConstructorParameter|null[0] + public final annotation class test/AnnoConstructorParameter : kotlin/Annotation { + + // signature: test/AnnoConstructorParameter.|(){}[0] + public constructor() + } + + // signature: test/AnnoDelegatedField|null[0] + public final annotation class test/AnnoDelegatedField : kotlin/Annotation { + + // signature: test/AnnoDelegatedField.|(){}[0] + public constructor() + } + + // signature: test/AnnoFunction|null[0] + public final annotation class test/AnnoFunction : kotlin/Annotation { + + // signature: test/AnnoFunction.|(){}[0] + public constructor() + } + + // signature: test/AnnoFunctionExtensionReceiver|null[0] + public final annotation class test/AnnoFunctionExtensionReceiver : kotlin/Annotation { + + // signature: test/AnnoFunctionExtensionReceiver.|(){}[0] + public constructor() + } + + // signature: test/AnnoFunctionParam|null[0] + public final annotation class test/AnnoFunctionParam : kotlin/Annotation { + + // signature: test/AnnoFunctionParam.|(){}[0] + public constructor() + } + + // signature: test/AnnoFunctionTypeParameter|null[0] + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.TYPE_PARAMETER]) + public final annotation class test/AnnoFunctionTypeParameter : kotlin/Annotation { + + // signature: test/AnnoFunctionTypeParameter.|(){}[0] + public constructor() + } + + // signature: test/AnnoGetter|null[0] + public final annotation class test/AnnoGetter : kotlin/Annotation { + + // signature: test/AnnoGetter.|(){}[0] + public constructor() + } + + // signature: test/AnnoProperty|null[0] + public final annotation class test/AnnoProperty : kotlin/Annotation { + + // signature: test/AnnoProperty.|(){}[0] + public constructor() + } + + // signature: test/AnnoPropertyExtensionReceiver|null[0] + public final annotation class test/AnnoPropertyExtensionReceiver : kotlin/Annotation { + + // signature: test/AnnoPropertyExtensionReceiver.|(){}[0] + public constructor() + } + + // signature: test/AnnoSetParam|null[0] + public final annotation class test/AnnoSetParam : kotlin/Annotation { + + // signature: test/AnnoSetParam.|(){}[0] + public constructor() + } + + // signature: test/AnnoSetParam2|null[0] + public final annotation class test/AnnoSetParam2 : kotlin/Annotation { + + // signature: test/AnnoSetParam2.|(){}[0] + public constructor() + } + + // signature: test/AnnoSetter|null[0] + public final annotation class test/AnnoSetter : kotlin/Annotation { + + // signature: test/AnnoSetter.|(){}[0] + public constructor() + } + + // signature: test/AnnoSetter2|null[0] + public final annotation class test/AnnoSetter2 : kotlin/Annotation { + + // signature: test/AnnoSetter2.|(){}[0] + public constructor() + } + + // signature: test/B|null[0] + public final class test/B<@test/AnnoClassTypeParameter T#0 /* T */> : kotlin/Any { + + // signature: test/B.|(){}[0] + public constructor() + } + + // signature: test/Foo|null[0] + @test/AnnoClass + public final class test/Foo : kotlin/Any { + + // signature: test/Foo.|(kotlin.Int){}[0] + @test/AnnoConstructor + public constructor(@test/AnnoConstructorParameter i: kotlin/Int) + + // signature: test/Foo.immutableProp|{}immutableProp[0] + public final /* delegated */ val immutableProp: kotlin/Int + // signature: test/Foo.immutableProp.|(){}[0] + public final /* non-default */ get + + // signature: test/Foo.mutableProp|{}mutableProp[0] + public final var mutableProp: kotlin/Int + // signature: test/Foo.mutableProp.|(){}[0] + public final get + // signature: test/Foo.mutableProp.|(kotlin.Int){}[0] + @test/AnnoSetter2 + public final /* non-default */ set(@test/AnnoSetParam2 x: kotlin/Int) + + // signature: test/Foo.prop|{}prop[0] + @test/AnnoProperty + public final var prop: kotlin/Int + // signature: test/Foo.prop.|(){}[0] + @test/AnnoGetter + public final /* non-default */ get + // signature: test/Foo.prop.|(kotlin.Int){}[0] + @test/AnnoSetter + public final /* non-default */ set(@test/AnnoSetParam x: kotlin/Int) + } + + package { + + // signature: test/extfun|extfun@test.Foo(kotlin.Int){}[0] + @test/AnnoFunction + public final fun test/Foo.extfun(@test/AnnoFunctionParam x: kotlin/Int): kotlin/Unit + + // signature: test/f|f(test.B){0§}[0] + public final fun <@test/AnnoFunctionTypeParameter T#0 /* T */> f(x: test/B<@test/AnnoClassUsageTypeParameter kotlin/Int>): kotlin/Unit + + // signature: test/extProp|@test.Foo{}extProp[0] + @test/AnnoPropertyExtensionReceiver + public final val test/Foo.extProp: kotlin/Int + // signature: test/extProp.|@test.Foo(){}[0] + public final /* non-default */ get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/annotations_source_retention.kt b/native/native.tests/testData/klib/dump-metadata/annotations_source_retention.kt index 60e69de8e91..7a97a8635b4 100644 --- a/native/native.tests/testData/klib/dump-metadata/annotations_source_retention.kt +++ b/native/native.tests/testData/klib/dump-metadata/annotations_source_retention.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL package test @Retention(AnnotationRetention.SOURCE) annotation class AnnoClass diff --git a/native/native.tests/testData/klib/dump-metadata/annotations_source_retention.txt b/native/native.tests/testData/klib/dump-metadata/annotations_source_retention.txt index 70557e975c8..33e2c7cd0fb 100644 --- a/native/native.tests/testData/klib/dump-metadata/annotations_source_retention.txt +++ b/native/native.tests/testData/klib/dump-metadata/annotations_source_retention.txt @@ -1,24 +1,138 @@ -package test { - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoBackingField constructor() : Annotation - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoClass constructor() : Annotation - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoConstructor constructor() : Annotation - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoConstructorParameter constructor() : Annotation - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoDelegatedField constructor() : Annotation - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoFunction constructor() : Annotation - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoFunctionExtensionReceiver constructor() : Annotation - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoFunctionParam constructor() : Annotation - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoGetter constructor() : Annotation - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoProperty constructor() : Annotation - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoPropertyExtensionReceiver constructor() : Annotation - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoSetParam constructor() : Annotation - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoSetParam2 constructor() : Annotation - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoSetter constructor() : Annotation - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoSetter2 constructor() : Annotation - class Foo constructor(i: Int) { - val immutableProp: Int - var mutableProp: Int - var prop: Int +library { + // module name: + + library fragment { + // package name: test + + // class name: test/AnnoBackingField + // class name: test/AnnoClass + // class name: test/AnnoConstructor + // class name: test/AnnoConstructorParameter + // class name: test/AnnoDelegatedField + // class name: test/AnnoFunction + // class name: test/AnnoFunctionExtensionReceiver + // class name: test/AnnoFunctionParam + // class name: test/AnnoGetter + // class name: test/AnnoProperty + // class name: test/AnnoPropertyExtensionReceiver + // class name: test/AnnoSetParam + // class name: test/AnnoSetParam2 + // class name: test/AnnoSetter + // class name: test/AnnoSetter2 + // class name: test/Foo + + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoBackingField : kotlin/Annotation { + + public constructor() } - val Foo.extProp: Int - fun Foo.extfun(x: Int) -} \ No newline at end of file + + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoClass : kotlin/Annotation { + + public constructor() + } + + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoConstructor : kotlin/Annotation { + + public constructor() + } + + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoConstructorParameter : kotlin/Annotation { + + public constructor() + } + + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoDelegatedField : kotlin/Annotation { + + public constructor() + } + + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoFunction : kotlin/Annotation { + + public constructor() + } + + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoFunctionExtensionReceiver : kotlin/Annotation { + + public constructor() + } + + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoFunctionParam : kotlin/Annotation { + + public constructor() + } + + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoGetter : kotlin/Annotation { + + public constructor() + } + + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoProperty : kotlin/Annotation { + + public constructor() + } + + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoPropertyExtensionReceiver : kotlin/Annotation { + + public constructor() + } + + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoSetParam : kotlin/Annotation { + + public constructor() + } + + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoSetParam2 : kotlin/Annotation { + + public constructor() + } + + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoSetter : kotlin/Annotation { + + public constructor() + } + + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoSetter2 : kotlin/Annotation { + + public constructor() + } + + public final class test/Foo : kotlin/Any { + + public constructor(i: kotlin/Int) + + public final /* delegated */ val immutableProp: kotlin/Int + public final /* non-default */ get + + public final var mutableProp: kotlin/Int + public final get + public final /* non-default */ set(x: kotlin/Int) + + public final var prop: kotlin/Int + public final /* non-default */ get + public final /* non-default */ set(x: kotlin/Int) + } + + package { + + public final fun test/Foo.extfun(x: kotlin/Int): kotlin/Unit + + public final val test/Foo.extProp: kotlin/Int + public final /* non-default */ get + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/annotations_source_retention.v1.txt b/native/native.tests/testData/klib/dump-metadata/annotations_source_retention.v1.txt index e545d1ca181..df4971a7774 100644 --- a/native/native.tests/testData/klib/dump-metadata/annotations_source_retention.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/annotations_source_retention.v1.txt @@ -1,45 +1,181 @@ -package test { - // Signature: test/AnnoBackingField|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoBackingField constructor() : Annotation - // Signature: test/AnnoClass|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoClass constructor() : Annotation - // Signature: test/AnnoConstructor|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoConstructor constructor() : Annotation - // Signature: test/AnnoConstructorParameter|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoConstructorParameter constructor() : Annotation - // Signature: test/AnnoDelegatedField|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoDelegatedField constructor() : Annotation - // Signature: test/AnnoFunction|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoFunction constructor() : Annotation - // Signature: test/AnnoFunctionExtensionReceiver|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoFunctionExtensionReceiver constructor() : Annotation - // Signature: test/AnnoFunctionParam|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoFunctionParam constructor() : Annotation - // Signature: test/AnnoGetter|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoGetter constructor() : Annotation - // Signature: test/AnnoProperty|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoProperty constructor() : Annotation - // Signature: test/AnnoPropertyExtensionReceiver|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoPropertyExtensionReceiver constructor() : Annotation - // Signature: test/AnnoSetParam|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoSetParam constructor() : Annotation - // Signature: test/AnnoSetParam2|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoSetParam2 constructor() : Annotation - // Signature: test/AnnoSetter|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoSetter constructor() : Annotation - // Signature: test/AnnoSetter2|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoSetter2 constructor() : Annotation - // Signature: test/Foo|null[0] - class Foo constructor(i: Int) { - // Signature: test/Foo.immutableProp|-821319779095389209[0] - val immutableProp: Int - // Signature: test/Foo.mutableProp|1472686943295008822[0] - var mutableProp: Int - // Signature: test/Foo.prop|3598315380056892812[0] - var prop: Int +library { + // module name: + + library fragment { + // package name: test + + // class name: test/AnnoBackingField + // class name: test/AnnoClass + // class name: test/AnnoConstructor + // class name: test/AnnoConstructorParameter + // class name: test/AnnoDelegatedField + // class name: test/AnnoFunction + // class name: test/AnnoFunctionExtensionReceiver + // class name: test/AnnoFunctionParam + // class name: test/AnnoGetter + // class name: test/AnnoProperty + // class name: test/AnnoPropertyExtensionReceiver + // class name: test/AnnoSetParam + // class name: test/AnnoSetParam2 + // class name: test/AnnoSetter + // class name: test/AnnoSetter2 + // class name: test/Foo + + // signature: test/AnnoBackingField|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoBackingField : kotlin/Annotation { + + // signature: test/AnnoBackingField.|-5645683436151566731[0] + public constructor() } - // Signature: test/extProp|-6867325556440293248[0] - val Foo.extProp: Int - // Signature: test/extfun|-4862331552047794615[0] - fun Foo.extfun(x: Int) + + // signature: test/AnnoClass|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoClass : kotlin/Annotation { + + // signature: test/AnnoClass.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoConstructor|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoConstructor : kotlin/Annotation { + + // signature: test/AnnoConstructor.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoConstructorParameter|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoConstructorParameter : kotlin/Annotation { + + // signature: test/AnnoConstructorParameter.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoDelegatedField|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoDelegatedField : kotlin/Annotation { + + // signature: test/AnnoDelegatedField.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoFunction|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoFunction : kotlin/Annotation { + + // signature: test/AnnoFunction.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoFunctionExtensionReceiver|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoFunctionExtensionReceiver : kotlin/Annotation { + + // signature: test/AnnoFunctionExtensionReceiver.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoFunctionParam|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoFunctionParam : kotlin/Annotation { + + // signature: test/AnnoFunctionParam.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoGetter|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoGetter : kotlin/Annotation { + + // signature: test/AnnoGetter.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoProperty|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoProperty : kotlin/Annotation { + + // signature: test/AnnoProperty.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoPropertyExtensionReceiver|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoPropertyExtensionReceiver : kotlin/Annotation { + + // signature: test/AnnoPropertyExtensionReceiver.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoSetParam|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoSetParam : kotlin/Annotation { + + // signature: test/AnnoSetParam.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoSetParam2|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoSetParam2 : kotlin/Annotation { + + // signature: test/AnnoSetParam2.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoSetter|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoSetter : kotlin/Annotation { + + // signature: test/AnnoSetter.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoSetter2|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoSetter2 : kotlin/Annotation { + + // signature: test/AnnoSetter2.|-5645683436151566731[0] + public constructor() + } + + // signature: test/Foo|null[0] + public final class test/Foo : kotlin/Any { + + // signature: test/Foo.|-5182794243525578284[0] + public constructor(i: kotlin/Int) + + // signature: test/Foo.immutableProp|-821319779095389209[0] + public final /* delegated */ val immutableProp: kotlin/Int + // signature: test/Foo.immutableProp.|325589445193220939[0] + public final /* non-default */ get + + // signature: test/Foo.mutableProp|1472686943295008822[0] + public final var mutableProp: kotlin/Int + // signature: test/Foo.mutableProp.|-557070840259409057[0] + public final get + // signature: test/Foo.mutableProp.|-3965758569411010277[0] + public final /* non-default */ set(x: kotlin/Int) + + // signature: test/Foo.prop|3598315380056892812[0] + public final var prop: kotlin/Int + // signature: test/Foo.prop.|-5734736374948136327[0] + public final /* non-default */ get + // signature: test/Foo.prop.|3724820243841906450[0] + public final /* non-default */ set(x: kotlin/Int) + } + + package { + + // signature: test/extfun|-4862331552047794615[0] + public final fun test/Foo.extfun(x: kotlin/Int): kotlin/Unit + + // signature: test/extProp|-6867325556440293248[0] + public final val test/Foo.extProp: kotlin/Int + // signature: test/extProp.|8446410089263600861[0] + public final /* non-default */ get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/annotations_source_retention.v2.txt b/native/native.tests/testData/klib/dump-metadata/annotations_source_retention.v2.txt index 73e9bb44a53..9cbb33fca87 100644 --- a/native/native.tests/testData/klib/dump-metadata/annotations_source_retention.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/annotations_source_retention.v2.txt @@ -1,45 +1,181 @@ -package test { - // Signature: test/AnnoBackingField|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoBackingField constructor() : Annotation - // Signature: test/AnnoClass|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoClass constructor() : Annotation - // Signature: test/AnnoConstructor|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoConstructor constructor() : Annotation - // Signature: test/AnnoConstructorParameter|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoConstructorParameter constructor() : Annotation - // Signature: test/AnnoDelegatedField|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoDelegatedField constructor() : Annotation - // Signature: test/AnnoFunction|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoFunction constructor() : Annotation - // Signature: test/AnnoFunctionExtensionReceiver|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoFunctionExtensionReceiver constructor() : Annotation - // Signature: test/AnnoFunctionParam|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoFunctionParam constructor() : Annotation - // Signature: test/AnnoGetter|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoGetter constructor() : Annotation - // Signature: test/AnnoProperty|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoProperty constructor() : Annotation - // Signature: test/AnnoPropertyExtensionReceiver|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoPropertyExtensionReceiver constructor() : Annotation - // Signature: test/AnnoSetParam|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoSetParam constructor() : Annotation - // Signature: test/AnnoSetParam2|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoSetParam2 constructor() : Annotation - // Signature: test/AnnoSetter|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoSetter constructor() : Annotation - // Signature: test/AnnoSetter2|null[0] - @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoSetter2 constructor() : Annotation - // Signature: test/Foo|null[0] - class Foo constructor(i: Int) { - // Signature: test/Foo.immutableProp|{}immutableProp[0] - val immutableProp: Int - // Signature: test/Foo.mutableProp|{}mutableProp[0] - var mutableProp: Int - // Signature: test/Foo.prop|{}prop[0] - var prop: Int +library { + // module name: + + library fragment { + // package name: test + + // class name: test/AnnoBackingField + // class name: test/AnnoClass + // class name: test/AnnoConstructor + // class name: test/AnnoConstructorParameter + // class name: test/AnnoDelegatedField + // class name: test/AnnoFunction + // class name: test/AnnoFunctionExtensionReceiver + // class name: test/AnnoFunctionParam + // class name: test/AnnoGetter + // class name: test/AnnoProperty + // class name: test/AnnoPropertyExtensionReceiver + // class name: test/AnnoSetParam + // class name: test/AnnoSetParam2 + // class name: test/AnnoSetter + // class name: test/AnnoSetter2 + // class name: test/Foo + + // signature: test/AnnoBackingField|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoBackingField : kotlin/Annotation { + + // signature: test/AnnoBackingField.|(){}[0] + public constructor() } - // Signature: test/extProp|@test.Foo{}extProp[0] - val Foo.extProp: Int - // Signature: test/extfun|extfun@test.Foo(kotlin.Int){}[0] - fun Foo.extfun(x: Int) + + // signature: test/AnnoClass|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoClass : kotlin/Annotation { + + // signature: test/AnnoClass.|(){}[0] + public constructor() + } + + // signature: test/AnnoConstructor|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoConstructor : kotlin/Annotation { + + // signature: test/AnnoConstructor.|(){}[0] + public constructor() + } + + // signature: test/AnnoConstructorParameter|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoConstructorParameter : kotlin/Annotation { + + // signature: test/AnnoConstructorParameter.|(){}[0] + public constructor() + } + + // signature: test/AnnoDelegatedField|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoDelegatedField : kotlin/Annotation { + + // signature: test/AnnoDelegatedField.|(){}[0] + public constructor() + } + + // signature: test/AnnoFunction|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoFunction : kotlin/Annotation { + + // signature: test/AnnoFunction.|(){}[0] + public constructor() + } + + // signature: test/AnnoFunctionExtensionReceiver|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoFunctionExtensionReceiver : kotlin/Annotation { + + // signature: test/AnnoFunctionExtensionReceiver.|(){}[0] + public constructor() + } + + // signature: test/AnnoFunctionParam|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoFunctionParam : kotlin/Annotation { + + // signature: test/AnnoFunctionParam.|(){}[0] + public constructor() + } + + // signature: test/AnnoGetter|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoGetter : kotlin/Annotation { + + // signature: test/AnnoGetter.|(){}[0] + public constructor() + } + + // signature: test/AnnoProperty|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoProperty : kotlin/Annotation { + + // signature: test/AnnoProperty.|(){}[0] + public constructor() + } + + // signature: test/AnnoPropertyExtensionReceiver|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoPropertyExtensionReceiver : kotlin/Annotation { + + // signature: test/AnnoPropertyExtensionReceiver.|(){}[0] + public constructor() + } + + // signature: test/AnnoSetParam|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoSetParam : kotlin/Annotation { + + // signature: test/AnnoSetParam.|(){}[0] + public constructor() + } + + // signature: test/AnnoSetParam2|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoSetParam2 : kotlin/Annotation { + + // signature: test/AnnoSetParam2.|(){}[0] + public constructor() + } + + // signature: test/AnnoSetter|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoSetter : kotlin/Annotation { + + // signature: test/AnnoSetter.|(){}[0] + public constructor() + } + + // signature: test/AnnoSetter2|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + public final annotation class test/AnnoSetter2 : kotlin/Annotation { + + // signature: test/AnnoSetter2.|(){}[0] + public constructor() + } + + // signature: test/Foo|null[0] + public final class test/Foo : kotlin/Any { + + // signature: test/Foo.|(kotlin.Int){}[0] + public constructor(i: kotlin/Int) + + // signature: test/Foo.immutableProp|{}immutableProp[0] + public final /* delegated */ val immutableProp: kotlin/Int + // signature: test/Foo.immutableProp.|(){}[0] + public final /* non-default */ get + + // signature: test/Foo.mutableProp|{}mutableProp[0] + public final var mutableProp: kotlin/Int + // signature: test/Foo.mutableProp.|(){}[0] + public final get + // signature: test/Foo.mutableProp.|(kotlin.Int){}[0] + public final /* non-default */ set(x: kotlin/Int) + + // signature: test/Foo.prop|{}prop[0] + public final var prop: kotlin/Int + // signature: test/Foo.prop.|(){}[0] + public final /* non-default */ get + // signature: test/Foo.prop.|(kotlin.Int){}[0] + public final /* non-default */ set(x: kotlin/Int) + } + + package { + + // signature: test/extfun|extfun@test.Foo(kotlin.Int){}[0] + public final fun test/Foo.extfun(x: kotlin/Int): kotlin/Unit + + // signature: test/extProp|@test.Foo{}extProp[0] + public final val test/Foo.extProp: kotlin/Int + // signature: test/extProp.|@test.Foo(){}[0] + public final /* non-default */ get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.fir.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.fir.txt new file mode 100644 index 00000000000..15777c17364 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.fir.txt @@ -0,0 +1,46 @@ +library { + // module name: + + library fragment { + // package name: test + + // class name: test/Anno + // class name: test/Bnno + // class name: test/Eee + + public final annotation class test/Anno : kotlin/Annotation { + + public constructor(value: kotlin/String /* = ... */, x: kotlin/Int /* = ... */) + + public final val value: kotlin/String + public final get + + public final val x: kotlin/Int + public final get + } + + public final annotation class test/Bnno : kotlin/Annotation { + + public constructor() + } + + public final enum class test/Eee : kotlin/Enum { + + private constructor() + + @test/Anno + Entry1, + + Entry2, + + @test/Anno(value = "3") + @test/Bnno + Entry3, + + @test/Anno(value = "4", x = 4) + Entry4, + + // has Enum.entries + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.txt index 3dcbb32045f..b4179cbb236 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.txt @@ -1,13 +1,66 @@ -package test { - annotation class Anno constructor(value: String = ..., x: Int = ...) : Annotation { - val value: String - val x: Int +library { + // module name: + + library fragment { + // package name: test + + // class name: test/Anno + // class name: test/Bnno + // class name: test/Eee + // class name: test/Eee.Entry1 + // class name: test/Eee.Entry2 + // class name: test/Eee.Entry3 + // class name: test/Eee.Entry4 + + public final annotation class test/Anno : kotlin/Annotation { + + public constructor(value: kotlin/String /* = ... */, x: kotlin/Int /* = ... */) + + public final val value: kotlin/String + public final get + + public final val x: kotlin/Int + public final get } - annotation class Bnno constructor() : Annotation - enum class Eee private constructor() : Enum { - @Anno enum entry Entry1 - enum entry Entry2 - @Anno(value = "3") @Bnno enum entry Entry3 - @Anno(value = "4", x = 4) enum entry Entry4 + + public final annotation class test/Bnno : kotlin/Annotation { + + public constructor() } -} \ No newline at end of file + + public final enum class test/Eee : kotlin/Enum { + + private constructor() + + @test/Anno + Entry1, + + Entry2, + + @test/Anno(value = "3") + @test/Bnno + Entry3, + + @test/Anno(value = "4", x = 4) + Entry4, + + // has Enum.entries + } + + @test/Anno + public final enum entry test/Eee.Entry1 : test/Eee { + } + + public final enum entry test/Eee.Entry2 : test/Eee { + } + + @test/Anno(value = "3") + @test/Bnno + public final enum entry test/Eee.Entry3 : test/Eee { + } + + @test/Anno(value = "4", x = 4) + public final enum entry test/Eee.Entry4 : test/Eee { + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.v1.fir.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.v1.fir.txt new file mode 100644 index 00000000000..16784e68b78 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.v1.fir.txt @@ -0,0 +1,60 @@ +library { + // module name: + + library fragment { + // package name: test + + // class name: test/Anno + // class name: test/Bnno + // class name: test/Eee + + // signature: test/Anno|null[0] + public final annotation class test/Anno : kotlin/Annotation { + + // signature: test/Anno.|-2457917570611619111[0] + public constructor(value: kotlin/String /* = ... */, x: kotlin/Int /* = ... */) + + // signature: test/Anno.value|1987073854177347439[0] + public final val value: kotlin/String + // signature: test/Anno.value.|3260093555963109437[0] + public final get + + // signature: test/Anno.x|-8060530855978347579[0] + public final val x: kotlin/Int + // signature: test/Anno.x.|1482705010654679335[0] + public final get + } + + // signature: test/Bnno|null[0] + public final annotation class test/Bnno : kotlin/Annotation { + + // signature: test/Bnno.|-5645683436151566731[0] + public constructor() + } + + // signature: test/Eee|null[0] + public final enum class test/Eee : kotlin/Enum { + + // signature: test/Eee.|-5645683436151566731[0] + private constructor() + + // signature: test/Eee.Entry1|null[0] + @test/Anno + Entry1, + + // signature: test/Eee.Entry2|null[0] + Entry2, + + // signature: test/Eee.Entry3|null[0] + @test/Anno(value = "3") + @test/Bnno + Entry3, + + // signature: test/Eee.Entry4|null[0] + @test/Anno(value = "4", x = 4) + Entry4, + + // has Enum.entries + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.v1.txt index f4b4a267b56..b906e88b84b 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.v1.txt @@ -1,22 +1,84 @@ -package test { - // Signature: test/Anno|null[0] - annotation class Anno constructor(value: String = ..., x: Int = ...) : Annotation { - // Signature: test/Anno.value|1987073854177347439[0] - val value: String - // Signature: test/Anno.x|-8060530855978347579[0] - val x: Int +library { + // module name: + + library fragment { + // package name: test + + // class name: test/Anno + // class name: test/Bnno + // class name: test/Eee + // class name: test/Eee.Entry1 + // class name: test/Eee.Entry2 + // class name: test/Eee.Entry3 + // class name: test/Eee.Entry4 + + // signature: test/Anno|null[0] + public final annotation class test/Anno : kotlin/Annotation { + + // signature: test/Anno.|-2457917570611619111[0] + public constructor(value: kotlin/String /* = ... */, x: kotlin/Int /* = ... */) + + // signature: test/Anno.value|1987073854177347439[0] + public final val value: kotlin/String + // signature: test/Anno.value.|3260093555963109437[0] + public final get + + // signature: test/Anno.x|-8060530855978347579[0] + public final val x: kotlin/Int + // signature: test/Anno.x.|1482705010654679335[0] + public final get } - // Signature: test/Bnno|null[0] - annotation class Bnno constructor() : Annotation - // Signature: test/Eee|null[0] - enum class Eee private constructor() : Enum { - // Signature: test/Eee.Entry1|null[0] - @Anno enum entry Entry1 - // Signature: test/Eee.Entry2|null[0] - enum entry Entry2 - // Signature: test/Eee.Entry3|null[0] - @Anno(value = "3") @Bnno enum entry Entry3 - // Signature: test/Eee.Entry4|null[0] - @Anno(value = "4", x = 4) enum entry Entry4 + + // signature: test/Bnno|null[0] + public final annotation class test/Bnno : kotlin/Annotation { + + // signature: test/Bnno.|-5645683436151566731[0] + public constructor() } + + // signature: test/Eee|null[0] + public final enum class test/Eee : kotlin/Enum { + + // signature: test/Eee.|-5645683436151566731[0] + private constructor() + + // signature: test/Eee.Entry1|null[0] + @test/Anno + Entry1, + + // signature: test/Eee.Entry2|null[0] + Entry2, + + // signature: test/Eee.Entry3|null[0] + @test/Anno(value = "3") + @test/Bnno + Entry3, + + // signature: test/Eee.Entry4|null[0] + @test/Anno(value = "4", x = 4) + Entry4, + + // has Enum.entries + } + + // signature: test/Eee.Entry1|null[0] + @test/Anno + public final enum entry test/Eee.Entry1 : test/Eee { + } + + // signature: test/Eee.Entry2|null[0] + public final enum entry test/Eee.Entry2 : test/Eee { + } + + // signature: test/Eee.Entry3|null[0] + @test/Anno(value = "3") + @test/Bnno + public final enum entry test/Eee.Entry3 : test/Eee { + } + + // signature: test/Eee.Entry4|null[0] + @test/Anno(value = "4", x = 4) + public final enum entry test/Eee.Entry4 : test/Eee { + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.v2.fir.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.v2.fir.txt new file mode 100644 index 00000000000..4122b2b423e --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.v2.fir.txt @@ -0,0 +1,60 @@ +library { + // module name: + + library fragment { + // package name: test + + // class name: test/Anno + // class name: test/Bnno + // class name: test/Eee + + // signature: test/Anno|null[0] + public final annotation class test/Anno : kotlin/Annotation { + + // signature: test/Anno.|(kotlin.String;kotlin.Int){}[0] + public constructor(value: kotlin/String /* = ... */, x: kotlin/Int /* = ... */) + + // signature: test/Anno.value|{}value[0] + public final val value: kotlin/String + // signature: test/Anno.value.|(){}[0] + public final get + + // signature: test/Anno.x|{}x[0] + public final val x: kotlin/Int + // signature: test/Anno.x.|(){}[0] + public final get + } + + // signature: test/Bnno|null[0] + public final annotation class test/Bnno : kotlin/Annotation { + + // signature: test/Bnno.|(){}[0] + public constructor() + } + + // signature: test/Eee|null[0] + public final enum class test/Eee : kotlin/Enum { + + // signature: test/Eee.|(){}[0] + private constructor() + + // signature: test/Eee.Entry1|null[0] + @test/Anno + Entry1, + + // signature: test/Eee.Entry2|null[0] + Entry2, + + // signature: test/Eee.Entry3|null[0] + @test/Anno(value = "3") + @test/Bnno + Entry3, + + // signature: test/Eee.Entry4|null[0] + @test/Anno(value = "4", x = 4) + Entry4, + + // has Enum.entries + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.v2.txt index 4d75d92e65f..f687e95004c 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.v2.txt @@ -1,22 +1,84 @@ -package test { - // Signature: test/Anno|null[0] - annotation class Anno constructor(value: String = ..., x: Int = ...) : Annotation { - // Signature: test/Anno.value|{}value[0] - val value: String - // Signature: test/Anno.x|{}x[0] - val x: Int +library { + // module name: + + library fragment { + // package name: test + + // class name: test/Anno + // class name: test/Bnno + // class name: test/Eee + // class name: test/Eee.Entry1 + // class name: test/Eee.Entry2 + // class name: test/Eee.Entry3 + // class name: test/Eee.Entry4 + + // signature: test/Anno|null[0] + public final annotation class test/Anno : kotlin/Annotation { + + // signature: test/Anno.|(kotlin.String;kotlin.Int){}[0] + public constructor(value: kotlin/String /* = ... */, x: kotlin/Int /* = ... */) + + // signature: test/Anno.value|{}value[0] + public final val value: kotlin/String + // signature: test/Anno.value.|(){}[0] + public final get + + // signature: test/Anno.x|{}x[0] + public final val x: kotlin/Int + // signature: test/Anno.x.|(){}[0] + public final get } - // Signature: test/Bnno|null[0] - annotation class Bnno constructor() : Annotation - // Signature: test/Eee|null[0] - enum class Eee private constructor() : Enum { - // Signature: test/Eee.Entry1|null[0] - @Anno enum entry Entry1 - // Signature: test/Eee.Entry2|null[0] - enum entry Entry2 - // Signature: test/Eee.Entry3|null[0] - @Anno(value = "3") @Bnno enum entry Entry3 - // Signature: test/Eee.Entry4|null[0] - @Anno(value = "4", x = 4) enum entry Entry4 + + // signature: test/Bnno|null[0] + public final annotation class test/Bnno : kotlin/Annotation { + + // signature: test/Bnno.|(){}[0] + public constructor() } + + // signature: test/Eee|null[0] + public final enum class test/Eee : kotlin/Enum { + + // signature: test/Eee.|(){}[0] + private constructor() + + // signature: test/Eee.Entry1|null[0] + @test/Anno + Entry1, + + // signature: test/Eee.Entry2|null[0] + Entry2, + + // signature: test/Eee.Entry3|null[0] + @test/Anno(value = "3") + @test/Bnno + Entry3, + + // signature: test/Eee.Entry4|null[0] + @test/Anno(value = "4", x = 4) + Entry4, + + // has Enum.entries + } + + // signature: test/Eee.Entry1|null[0] + @test/Anno + public final enum entry test/Eee.Entry1 : test/Eee { + } + + // signature: test/Eee.Entry2|null[0] + public final enum entry test/Eee.Entry2 : test/Eee { + } + + // signature: test/Eee.Entry3|null[0] + @test/Anno(value = "3") + @test/Bnno + public final enum entry test/Eee.Entry3 : test/Eee { + } + + // signature: test/Eee.Entry4|null[0] + @test/Anno(value = "4", x = 4) + public final enum entry test/Eee.Entry4 : test/Eee { + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/annotation.kt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/annotation.kt index 09c7b752245..60b07d0325c 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/annotation.kt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/annotation.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL package test annotation class Empty diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/annotation.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/annotation.txt index 7d3131aa9aa..ca549f8a771 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/annotation.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/annotation.txt @@ -1,11 +1,47 @@ -package test { - annotation class AnnotationArray constructor(annotationArray: Array) : Annotation { - val annotationArray: Array +library { + // module name: + + library fragment { + // package name: test + + // class name: test/AnnotationArray + // class name: test/C1 + // class name: test/C2 + // class name: test/Empty + // class name: test/JustAnnotation + + public final annotation class test/AnnotationArray : kotlin/Annotation { + + public constructor(annotationArray: kotlin/Array) + + public final val annotationArray: kotlin/Array + public final get } - @JustAnnotation(annotation = Empty) @AnnotationArray(annotationArray = {}) class C1 constructor() - @AnnotationArray(annotationArray = {JustAnnotation(annotation = Empty), JustAnnotation(annotation = Empty)}) class C2 constructor() - annotation class Empty constructor() : Annotation - annotation class JustAnnotation constructor(annotation: Empty) : Annotation { - val annotation: Empty + + @test/JustAnnotation(annotation = test/Empty()) + @test/AnnotationArray(annotationArray = []) + public final class test/C1 : kotlin/Any { + + public constructor() } + + @test/AnnotationArray(annotationArray = [test/JustAnnotation(annotation = test/Empty()), test/JustAnnotation(annotation = test/Empty())]) + public final class test/C2 : kotlin/Any { + + public constructor() + } + + public final annotation class test/Empty : kotlin/Annotation { + + public constructor() + } + + public final annotation class test/JustAnnotation : kotlin/Annotation { + + public constructor(annotation: test/Empty) + + public final val annotation: test/Empty + public final get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/annotation.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/annotation.v1.txt index 5c2b7318fd2..e759ff762b1 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/annotation.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/annotation.v1.txt @@ -1,18 +1,61 @@ -package test { - // Signature: test/AnnotationArray|null[0] - annotation class AnnotationArray constructor(annotationArray: Array) : Annotation { - // Signature: test/AnnotationArray.annotationArray|8313552415425816993[0] - val annotationArray: Array +library { + // module name: + + library fragment { + // package name: test + + // class name: test/AnnotationArray + // class name: test/C1 + // class name: test/C2 + // class name: test/Empty + // class name: test/JustAnnotation + + // signature: test/AnnotationArray|null[0] + public final annotation class test/AnnotationArray : kotlin/Annotation { + + // signature: test/AnnotationArray.|-6014246659175253914[0] + public constructor(annotationArray: kotlin/Array) + + // signature: test/AnnotationArray.annotationArray|8313552415425816993[0] + public final val annotationArray: kotlin/Array + // signature: test/AnnotationArray.annotationArray.|9152756390547890002[0] + public final get } - // Signature: test/C1|null[0] - @JustAnnotation(annotation = Empty) @AnnotationArray(annotationArray = {}) class C1 constructor() - // Signature: test/C2|null[0] - @AnnotationArray(annotationArray = {JustAnnotation(annotation = Empty), JustAnnotation(annotation = Empty)}) class C2 constructor() - // Signature: test/Empty|null[0] - annotation class Empty constructor() : Annotation - // Signature: test/JustAnnotation|null[0] - annotation class JustAnnotation constructor(annotation: Empty) : Annotation { - // Signature: test/JustAnnotation.annotation|-5849805091355678126[0] - val annotation: Empty + + // signature: test/C1|null[0] + @test/JustAnnotation(annotation = test/Empty()) + @test/AnnotationArray(annotationArray = []) + public final class test/C1 : kotlin/Any { + + // signature: test/C1.|-5645683436151566731[0] + public constructor() } + + // signature: test/C2|null[0] + @test/AnnotationArray(annotationArray = [test/JustAnnotation(annotation = test/Empty()), test/JustAnnotation(annotation = test/Empty())]) + public final class test/C2 : kotlin/Any { + + // signature: test/C2.|-5645683436151566731[0] + public constructor() + } + + // signature: test/Empty|null[0] + public final annotation class test/Empty : kotlin/Annotation { + + // signature: test/Empty.|-5645683436151566731[0] + public constructor() + } + + // signature: test/JustAnnotation|null[0] + public final annotation class test/JustAnnotation : kotlin/Annotation { + + // signature: test/JustAnnotation.|5792502191508234832[0] + public constructor(annotation: test/Empty) + + // signature: test/JustAnnotation.annotation|-5849805091355678126[0] + public final val annotation: test/Empty + // signature: test/JustAnnotation.annotation.|6966823876819433685[0] + public final get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/annotation.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/annotation.v2.txt index bf8248b68ca..704a3f65a40 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/annotation.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/annotation.v2.txt @@ -1,18 +1,61 @@ -package test { - // Signature: test/AnnotationArray|null[0] - annotation class AnnotationArray constructor(annotationArray: Array) : Annotation { - // Signature: test/AnnotationArray.annotationArray|{}annotationArray[0] - val annotationArray: Array +library { + // module name: + + library fragment { + // package name: test + + // class name: test/AnnotationArray + // class name: test/C1 + // class name: test/C2 + // class name: test/Empty + // class name: test/JustAnnotation + + // signature: test/AnnotationArray|null[0] + public final annotation class test/AnnotationArray : kotlin/Annotation { + + // signature: test/AnnotationArray.|(kotlin.Array){}[0] + public constructor(annotationArray: kotlin/Array) + + // signature: test/AnnotationArray.annotationArray|{}annotationArray[0] + public final val annotationArray: kotlin/Array + // signature: test/AnnotationArray.annotationArray.|(){}[0] + public final get } - // Signature: test/C1|null[0] - @JustAnnotation(annotation = Empty) @AnnotationArray(annotationArray = {}) class C1 constructor() - // Signature: test/C2|null[0] - @AnnotationArray(annotationArray = {JustAnnotation(annotation = Empty), JustAnnotation(annotation = Empty)}) class C2 constructor() - // Signature: test/Empty|null[0] - annotation class Empty constructor() : Annotation - // Signature: test/JustAnnotation|null[0] - annotation class JustAnnotation constructor(annotation: Empty) : Annotation { - // Signature: test/JustAnnotation.annotation|{}annotation[0] - val annotation: Empty + + // signature: test/C1|null[0] + @test/JustAnnotation(annotation = test/Empty()) + @test/AnnotationArray(annotationArray = []) + public final class test/C1 : kotlin/Any { + + // signature: test/C1.|(){}[0] + public constructor() } + + // signature: test/C2|null[0] + @test/AnnotationArray(annotationArray = [test/JustAnnotation(annotation = test/Empty()), test/JustAnnotation(annotation = test/Empty())]) + public final class test/C2 : kotlin/Any { + + // signature: test/C2.|(){}[0] + public constructor() + } + + // signature: test/Empty|null[0] + public final annotation class test/Empty : kotlin/Annotation { + + // signature: test/Empty.|(){}[0] + public constructor() + } + + // signature: test/JustAnnotation|null[0] + public final annotation class test/JustAnnotation : kotlin/Annotation { + + // signature: test/JustAnnotation.|(test.Empty){}[0] + public constructor(annotation: test/Empty) + + // signature: test/JustAnnotation.annotation|{}annotation[0] + public final val annotation: test/Empty + // signature: test/JustAnnotation.annotation.|(){}[0] + public final get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.fir.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.fir.txt new file mode 100644 index 00000000000..bc2035a5624 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.fir.txt @@ -0,0 +1,55 @@ +library { + // module name: + + library fragment { + // package name: test + + // class name: test/C1 + // class name: test/C2 + // class name: test/EnumArray + // class name: test/JustEnum + // class name: test/Weapon + + @test/JustEnum(weapon = test/Weapon.SCISSORS) + @test/EnumArray(enumArray = []) + public final class test/C1 : kotlin/Any { + + public constructor() + } + + @test/EnumArray(enumArray = [test/Weapon.PAPER, test/Weapon.ROCK]) + public final class test/C2 : kotlin/Any { + + public constructor() + } + + public final annotation class test/EnumArray : kotlin/Annotation { + + public constructor(enumArray: kotlin/Array) + + public final val enumArray: kotlin/Array + public final get + } + + public final annotation class test/JustEnum : kotlin/Annotation { + + public constructor(weapon: test/Weapon) + + public final val weapon: test/Weapon + public final get + } + + public final enum class test/Weapon : kotlin/Enum { + + private constructor() + + ROCK, + + PAPER, + + SCISSORS, + + // has Enum.entries + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.txt index b0ab93d35a0..2b0607fe070 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.txt @@ -1,15 +1,67 @@ -package test { - @JustEnum(weapon = Weapon.SCISSORS) @EnumArray(enumArray = {}) class C1 constructor() - @EnumArray(enumArray = {Weapon.PAPER, Weapon.ROCK}) class C2 constructor() - annotation class EnumArray constructor(enumArray: Array) : Annotation { - val enumArray: Array +library { + // module name: + + library fragment { + // package name: test + + // class name: test/C1 + // class name: test/C2 + // class name: test/EnumArray + // class name: test/JustEnum + // class name: test/Weapon + // class name: test/Weapon.PAPER + // class name: test/Weapon.ROCK + // class name: test/Weapon.SCISSORS + + @test/JustEnum(weapon = test/Weapon.SCISSORS) + @test/EnumArray(enumArray = []) + public final class test/C1 : kotlin/Any { + + public constructor() } - annotation class JustEnum constructor(weapon: Weapon) : Annotation { - val weapon: Weapon + + @test/EnumArray(enumArray = [test/Weapon.PAPER, test/Weapon.ROCK]) + public final class test/C2 : kotlin/Any { + + public constructor() } - enum class Weapon private constructor() : Enum { - enum entry ROCK - enum entry PAPER - enum entry SCISSORS + + public final annotation class test/EnumArray : kotlin/Annotation { + + public constructor(enumArray: kotlin/Array) + + public final val enumArray: kotlin/Array + public final get } + + public final annotation class test/JustEnum : kotlin/Annotation { + + public constructor(weapon: test/Weapon) + + public final val weapon: test/Weapon + public final get + } + + public final enum class test/Weapon : kotlin/Enum { + + private constructor() + + ROCK, + + PAPER, + + SCISSORS, + + // has Enum.entries + } + + public final enum entry test/Weapon.PAPER : test/Weapon { + } + + public final enum entry test/Weapon.ROCK : test/Weapon { + } + + public final enum entry test/Weapon.SCISSORS : test/Weapon { + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.v1.fir.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.v1.fir.txt new file mode 100644 index 00000000000..51c1b324294 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.v1.fir.txt @@ -0,0 +1,72 @@ +library { + // module name: + + library fragment { + // package name: test + + // class name: test/C1 + // class name: test/C2 + // class name: test/EnumArray + // class name: test/JustEnum + // class name: test/Weapon + + // signature: test/C1|null[0] + @test/JustEnum(weapon = test/Weapon.SCISSORS) + @test/EnumArray(enumArray = []) + public final class test/C1 : kotlin/Any { + + // signature: test/C1.|-5645683436151566731[0] + public constructor() + } + + // signature: test/C2|null[0] + @test/EnumArray(enumArray = [test/Weapon.PAPER, test/Weapon.ROCK]) + public final class test/C2 : kotlin/Any { + + // signature: test/C2.|-5645683436151566731[0] + public constructor() + } + + // signature: test/EnumArray|null[0] + public final annotation class test/EnumArray : kotlin/Annotation { + + // signature: test/EnumArray.|-6965179920057674266[0] + public constructor(enumArray: kotlin/Array) + + // signature: test/EnumArray.enumArray|-1032102509447694281[0] + public final val enumArray: kotlin/Array + // signature: test/EnumArray.enumArray.|913789251105993902[0] + public final get + } + + // signature: test/JustEnum|null[0] + public final annotation class test/JustEnum : kotlin/Annotation { + + // signature: test/JustEnum.|520094243120006516[0] + public constructor(weapon: test/Weapon) + + // signature: test/JustEnum.weapon|187372160426561863[0] + public final val weapon: test/Weapon + // signature: test/JustEnum.weapon.|-151232346567386467[0] + public final get + } + + // signature: test/Weapon|null[0] + public final enum class test/Weapon : kotlin/Enum { + + // signature: test/Weapon.|-5645683436151566731[0] + private constructor() + + // signature: test/Weapon.ROCK|null[0] + ROCK, + + // signature: test/Weapon.PAPER|null[0] + PAPER, + + // signature: test/Weapon.SCISSORS|null[0] + SCISSORS, + + // has Enum.entries + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.v1.txt index 28a9850b63b..1854c260484 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.v1.txt @@ -1,25 +1,87 @@ -package test { - // Signature: test/C1|null[0] - @JustEnum(weapon = Weapon.SCISSORS) @EnumArray(enumArray = {}) class C1 constructor() - // Signature: test/C2|null[0] - @EnumArray(enumArray = {Weapon.PAPER, Weapon.ROCK}) class C2 constructor() - // Signature: test/EnumArray|null[0] - annotation class EnumArray constructor(enumArray: Array) : Annotation { - // Signature: test/EnumArray.enumArray|-1032102509447694281[0] - val enumArray: Array +library { + // module name: + + library fragment { + // package name: test + + // class name: test/C1 + // class name: test/C2 + // class name: test/EnumArray + // class name: test/JustEnum + // class name: test/Weapon + // class name: test/Weapon.PAPER + // class name: test/Weapon.ROCK + // class name: test/Weapon.SCISSORS + + // signature: test/C1|null[0] + @test/JustEnum(weapon = test/Weapon.SCISSORS) + @test/EnumArray(enumArray = []) + public final class test/C1 : kotlin/Any { + + // signature: test/C1.|-5645683436151566731[0] + public constructor() } - // Signature: test/JustEnum|null[0] - annotation class JustEnum constructor(weapon: Weapon) : Annotation { - // Signature: test/JustEnum.weapon|187372160426561863[0] - val weapon: Weapon + + // signature: test/C2|null[0] + @test/EnumArray(enumArray = [test/Weapon.PAPER, test/Weapon.ROCK]) + public final class test/C2 : kotlin/Any { + + // signature: test/C2.|-5645683436151566731[0] + public constructor() } - // Signature: test/Weapon|null[0] - enum class Weapon private constructor() : Enum { - // Signature: test/Weapon.ROCK|null[0] - enum entry ROCK - // Signature: test/Weapon.PAPER|null[0] - enum entry PAPER - // Signature: test/Weapon.SCISSORS|null[0] - enum entry SCISSORS + + // signature: test/EnumArray|null[0] + public final annotation class test/EnumArray : kotlin/Annotation { + + // signature: test/EnumArray.|-6965179920057674266[0] + public constructor(enumArray: kotlin/Array) + + // signature: test/EnumArray.enumArray|-1032102509447694281[0] + public final val enumArray: kotlin/Array + // signature: test/EnumArray.enumArray.|913789251105993902[0] + public final get } + + // signature: test/JustEnum|null[0] + public final annotation class test/JustEnum : kotlin/Annotation { + + // signature: test/JustEnum.|520094243120006516[0] + public constructor(weapon: test/Weapon) + + // signature: test/JustEnum.weapon|187372160426561863[0] + public final val weapon: test/Weapon + // signature: test/JustEnum.weapon.|-151232346567386467[0] + public final get + } + + // signature: test/Weapon|null[0] + public final enum class test/Weapon : kotlin/Enum { + + // signature: test/Weapon.|-5645683436151566731[0] + private constructor() + + // signature: test/Weapon.ROCK|null[0] + ROCK, + + // signature: test/Weapon.PAPER|null[0] + PAPER, + + // signature: test/Weapon.SCISSORS|null[0] + SCISSORS, + + // has Enum.entries + } + + // signature: test/Weapon.PAPER|null[0] + public final enum entry test/Weapon.PAPER : test/Weapon { + } + + // signature: test/Weapon.ROCK|null[0] + public final enum entry test/Weapon.ROCK : test/Weapon { + } + + // signature: test/Weapon.SCISSORS|null[0] + public final enum entry test/Weapon.SCISSORS : test/Weapon { + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.v2.fir.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.v2.fir.txt new file mode 100644 index 00000000000..7527b05972f --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.v2.fir.txt @@ -0,0 +1,72 @@ +library { + // module name: + + library fragment { + // package name: test + + // class name: test/C1 + // class name: test/C2 + // class name: test/EnumArray + // class name: test/JustEnum + // class name: test/Weapon + + // signature: test/C1|null[0] + @test/JustEnum(weapon = test/Weapon.SCISSORS) + @test/EnumArray(enumArray = []) + public final class test/C1 : kotlin/Any { + + // signature: test/C1.|(){}[0] + public constructor() + } + + // signature: test/C2|null[0] + @test/EnumArray(enumArray = [test/Weapon.PAPER, test/Weapon.ROCK]) + public final class test/C2 : kotlin/Any { + + // signature: test/C2.|(){}[0] + public constructor() + } + + // signature: test/EnumArray|null[0] + public final annotation class test/EnumArray : kotlin/Annotation { + + // signature: test/EnumArray.|(kotlin.Array){}[0] + public constructor(enumArray: kotlin/Array) + + // signature: test/EnumArray.enumArray|{}enumArray[0] + public final val enumArray: kotlin/Array + // signature: test/EnumArray.enumArray.|(){}[0] + public final get + } + + // signature: test/JustEnum|null[0] + public final annotation class test/JustEnum : kotlin/Annotation { + + // signature: test/JustEnum.|(test.Weapon){}[0] + public constructor(weapon: test/Weapon) + + // signature: test/JustEnum.weapon|{}weapon[0] + public final val weapon: test/Weapon + // signature: test/JustEnum.weapon.|(){}[0] + public final get + } + + // signature: test/Weapon|null[0] + public final enum class test/Weapon : kotlin/Enum { + + // signature: test/Weapon.|(){}[0] + private constructor() + + // signature: test/Weapon.ROCK|null[0] + ROCK, + + // signature: test/Weapon.PAPER|null[0] + PAPER, + + // signature: test/Weapon.SCISSORS|null[0] + SCISSORS, + + // has Enum.entries + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.v2.txt index 24007e554cb..4b48771b7fc 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.v2.txt @@ -1,25 +1,87 @@ -package test { - // Signature: test/C1|null[0] - @JustEnum(weapon = Weapon.SCISSORS) @EnumArray(enumArray = {}) class C1 constructor() - // Signature: test/C2|null[0] - @EnumArray(enumArray = {Weapon.PAPER, Weapon.ROCK}) class C2 constructor() - // Signature: test/EnumArray|null[0] - annotation class EnumArray constructor(enumArray: Array) : Annotation { - // Signature: test/EnumArray.enumArray|{}enumArray[0] - val enumArray: Array +library { + // module name: + + library fragment { + // package name: test + + // class name: test/C1 + // class name: test/C2 + // class name: test/EnumArray + // class name: test/JustEnum + // class name: test/Weapon + // class name: test/Weapon.PAPER + // class name: test/Weapon.ROCK + // class name: test/Weapon.SCISSORS + + // signature: test/C1|null[0] + @test/JustEnum(weapon = test/Weapon.SCISSORS) + @test/EnumArray(enumArray = []) + public final class test/C1 : kotlin/Any { + + // signature: test/C1.|(){}[0] + public constructor() } - // Signature: test/JustEnum|null[0] - annotation class JustEnum constructor(weapon: Weapon) : Annotation { - // Signature: test/JustEnum.weapon|{}weapon[0] - val weapon: Weapon + + // signature: test/C2|null[0] + @test/EnumArray(enumArray = [test/Weapon.PAPER, test/Weapon.ROCK]) + public final class test/C2 : kotlin/Any { + + // signature: test/C2.|(){}[0] + public constructor() } - // Signature: test/Weapon|null[0] - enum class Weapon private constructor() : Enum { - // Signature: test/Weapon.ROCK|null[0] - enum entry ROCK - // Signature: test/Weapon.PAPER|null[0] - enum entry PAPER - // Signature: test/Weapon.SCISSORS|null[0] - enum entry SCISSORS + + // signature: test/EnumArray|null[0] + public final annotation class test/EnumArray : kotlin/Annotation { + + // signature: test/EnumArray.|(kotlin.Array){}[0] + public constructor(enumArray: kotlin/Array) + + // signature: test/EnumArray.enumArray|{}enumArray[0] + public final val enumArray: kotlin/Array + // signature: test/EnumArray.enumArray.|(){}[0] + public final get } + + // signature: test/JustEnum|null[0] + public final annotation class test/JustEnum : kotlin/Annotation { + + // signature: test/JustEnum.|(test.Weapon){}[0] + public constructor(weapon: test/Weapon) + + // signature: test/JustEnum.weapon|{}weapon[0] + public final val weapon: test/Weapon + // signature: test/JustEnum.weapon.|(){}[0] + public final get + } + + // signature: test/Weapon|null[0] + public final enum class test/Weapon : kotlin/Enum { + + // signature: test/Weapon.|(){}[0] + private constructor() + + // signature: test/Weapon.ROCK|null[0] + ROCK, + + // signature: test/Weapon.PAPER|null[0] + PAPER, + + // signature: test/Weapon.SCISSORS|null[0] + SCISSORS, + + // has Enum.entries + } + + // signature: test/Weapon.PAPER|null[0] + public final enum entry test/Weapon.PAPER : test/Weapon { + } + + // signature: test/Weapon.ROCK|null[0] + public final enum entry test/Weapon.ROCK : test/Weapon { + } + + // signature: test/Weapon.SCISSORS|null[0] + public final enum entry test/Weapon.SCISSORS : test/Weapon { + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitiveArrays.kt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitiveArrays.kt index e37614c667c..25271dec345 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitiveArrays.kt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitiveArrays.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL package test annotation class PrimitiveArrays( diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitiveArrays.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitiveArrays.txt index 8ff6d59d220..f96916a2541 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitiveArrays.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitiveArrays.txt @@ -1,14 +1,52 @@ -package test { - @PrimitiveArrays(booleanArray = {true, false, true}, byteArray = {-7.toByte(), 7.toByte()}, charArray = {\u0025 ('%'), \u007A ('z')}, doubleArray = {-3.14.toDouble()}, floatArray = {2.72.toFloat(), 0.0.toFloat()}, intArray = {239017, -1}, longArray = {123456789123456789.toLong()}, shortArray = {239.toShort()}) class C1 constructor() - @PrimitiveArrays(booleanArray = {}, byteArray = {}, charArray = {}, doubleArray = {}, floatArray = {}, intArray = {}, longArray = {}, shortArray = {}) class C2 constructor() - annotation class PrimitiveArrays constructor(byteArray: ByteArray, charArray: CharArray, shortArray: ShortArray, intArray: IntArray, longArray: LongArray, floatArray: FloatArray, doubleArray: DoubleArray, booleanArray: BooleanArray) : Annotation { - val booleanArray: BooleanArray - val byteArray: ByteArray - val charArray: CharArray - val doubleArray: DoubleArray - val floatArray: FloatArray - val intArray: IntArray - val longArray: LongArray - val shortArray: ShortArray +library { + // module name: + + library fragment { + // package name: test + + // class name: test/C1 + // class name: test/C2 + // class name: test/PrimitiveArrays + + @test/PrimitiveArrays(byteArray = [-7.toByte(), 7.toByte()], charArray = ['%', 'z'], shortArray = [239.toShort()], intArray = [239017, -1], longArray = [123456789123456789L], floatArray = [2.72f, 0.0f], doubleArray = [-3.14], booleanArray = [true, false, true]) + public final class test/C1 : kotlin/Any { + + public constructor() } + + @test/PrimitiveArrays(byteArray = [], charArray = [], shortArray = [], intArray = [], longArray = [], floatArray = [], doubleArray = [], booleanArray = []) + public final class test/C2 : kotlin/Any { + + public constructor() + } + + public final annotation class test/PrimitiveArrays : kotlin/Annotation { + + public constructor(byteArray: kotlin/ByteArray, charArray: kotlin/CharArray, shortArray: kotlin/ShortArray, intArray: kotlin/IntArray, longArray: kotlin/LongArray, floatArray: kotlin/FloatArray, doubleArray: kotlin/DoubleArray, booleanArray: kotlin/BooleanArray) + + public final val booleanArray: kotlin/BooleanArray + public final get + + public final val byteArray: kotlin/ByteArray + public final get + + public final val charArray: kotlin/CharArray + public final get + + public final val doubleArray: kotlin/DoubleArray + public final get + + public final val floatArray: kotlin/FloatArray + public final get + + public final val intArray: kotlin/IntArray + public final get + + public final val longArray: kotlin/LongArray + public final get + + public final val shortArray: kotlin/ShortArray + public final get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitiveArrays.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitiveArrays.v1.txt index 4496c7578f0..c530e081061 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitiveArrays.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitiveArrays.v1.txt @@ -1,25 +1,74 @@ -package test { - // Signature: test/C1|null[0] - @PrimitiveArrays(booleanArray = {true, false, true}, byteArray = {-7.toByte(), 7.toByte()}, charArray = {\u0025 ('%'), \u007A ('z')}, doubleArray = {-3.14.toDouble()}, floatArray = {2.72.toFloat(), 0.0.toFloat()}, intArray = {239017, -1}, longArray = {123456789123456789.toLong()}, shortArray = {239.toShort()}) class C1 constructor() - // Signature: test/C2|null[0] - @PrimitiveArrays(booleanArray = {}, byteArray = {}, charArray = {}, doubleArray = {}, floatArray = {}, intArray = {}, longArray = {}, shortArray = {}) class C2 constructor() - // Signature: test/PrimitiveArrays|null[0] - annotation class PrimitiveArrays constructor(byteArray: ByteArray, charArray: CharArray, shortArray: ShortArray, intArray: IntArray, longArray: LongArray, floatArray: FloatArray, doubleArray: DoubleArray, booleanArray: BooleanArray) : Annotation { - // Signature: test/PrimitiveArrays.booleanArray|7605527965651232515[0] - val booleanArray: BooleanArray - // Signature: test/PrimitiveArrays.byteArray|-2314777124899298189[0] - val byteArray: ByteArray - // Signature: test/PrimitiveArrays.charArray|-5349931751208968301[0] - val charArray: CharArray - // Signature: test/PrimitiveArrays.doubleArray|-3027997348205759511[0] - val doubleArray: DoubleArray - // Signature: test/PrimitiveArrays.floatArray|-863616440006860352[0] - val floatArray: FloatArray - // Signature: test/PrimitiveArrays.intArray|-5845507301569286943[0] - val intArray: IntArray - // Signature: test/PrimitiveArrays.longArray|-261136028309834719[0] - val longArray: LongArray - // Signature: test/PrimitiveArrays.shortArray|3516401755230006906[0] - val shortArray: ShortArray +library { + // module name: + + library fragment { + // package name: test + + // class name: test/C1 + // class name: test/C2 + // class name: test/PrimitiveArrays + + // signature: test/C1|null[0] + @test/PrimitiveArrays(byteArray = [-7.toByte(), 7.toByte()], charArray = ['%', 'z'], shortArray = [239.toShort()], intArray = [239017, -1], longArray = [123456789123456789L], floatArray = [2.72f, 0.0f], doubleArray = [-3.14], booleanArray = [true, false, true]) + public final class test/C1 : kotlin/Any { + + // signature: test/C1.|-5645683436151566731[0] + public constructor() } + + // signature: test/C2|null[0] + @test/PrimitiveArrays(byteArray = [], charArray = [], shortArray = [], intArray = [], longArray = [], floatArray = [], doubleArray = [], booleanArray = []) + public final class test/C2 : kotlin/Any { + + // signature: test/C2.|-5645683436151566731[0] + public constructor() + } + + // signature: test/PrimitiveArrays|null[0] + public final annotation class test/PrimitiveArrays : kotlin/Annotation { + + // signature: test/PrimitiveArrays.|-4916018512902367750[0] + public constructor(byteArray: kotlin/ByteArray, charArray: kotlin/CharArray, shortArray: kotlin/ShortArray, intArray: kotlin/IntArray, longArray: kotlin/LongArray, floatArray: kotlin/FloatArray, doubleArray: kotlin/DoubleArray, booleanArray: kotlin/BooleanArray) + + // signature: test/PrimitiveArrays.booleanArray|7605527965651232515[0] + public final val booleanArray: kotlin/BooleanArray + // signature: test/PrimitiveArrays.booleanArray.|-1483974669542225092[0] + public final get + + // signature: test/PrimitiveArrays.byteArray|-2314777124899298189[0] + public final val byteArray: kotlin/ByteArray + // signature: test/PrimitiveArrays.byteArray.|1184466848294423218[0] + public final get + + // signature: test/PrimitiveArrays.charArray|-5349931751208968301[0] + public final val charArray: kotlin/CharArray + // signature: test/PrimitiveArrays.charArray.|-8841051727055591008[0] + public final get + + // signature: test/PrimitiveArrays.doubleArray|-3027997348205759511[0] + public final val doubleArray: kotlin/DoubleArray + // signature: test/PrimitiveArrays.doubleArray.|-8332107536960256489[0] + public final get + + // signature: test/PrimitiveArrays.floatArray|-863616440006860352[0] + public final val floatArray: kotlin/FloatArray + // signature: test/PrimitiveArrays.floatArray.|-7251674888770048121[0] + public final get + + // signature: test/PrimitiveArrays.intArray|-5845507301569286943[0] + public final val intArray: kotlin/IntArray + // signature: test/PrimitiveArrays.intArray.|8581538667026869746[0] + public final get + + // signature: test/PrimitiveArrays.longArray|-261136028309834719[0] + public final val longArray: kotlin/LongArray + // signature: test/PrimitiveArrays.longArray.|7513485594208747900[0] + public final get + + // signature: test/PrimitiveArrays.shortArray|3516401755230006906[0] + public final val shortArray: kotlin/ShortArray + // signature: test/PrimitiveArrays.shortArray.|6916129091578524572[0] + public final get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitiveArrays.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitiveArrays.v2.txt index 856ad8351f3..e4e5df9fbd1 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitiveArrays.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitiveArrays.v2.txt @@ -1,25 +1,74 @@ -package test { - // Signature: test/C1|null[0] - @PrimitiveArrays(booleanArray = {true, false, true}, byteArray = {-7.toByte(), 7.toByte()}, charArray = {\u0025 ('%'), \u007A ('z')}, doubleArray = {-3.14.toDouble()}, floatArray = {2.72.toFloat(), 0.0.toFloat()}, intArray = {239017, -1}, longArray = {123456789123456789.toLong()}, shortArray = {239.toShort()}) class C1 constructor() - // Signature: test/C2|null[0] - @PrimitiveArrays(booleanArray = {}, byteArray = {}, charArray = {}, doubleArray = {}, floatArray = {}, intArray = {}, longArray = {}, shortArray = {}) class C2 constructor() - // Signature: test/PrimitiveArrays|null[0] - annotation class PrimitiveArrays constructor(byteArray: ByteArray, charArray: CharArray, shortArray: ShortArray, intArray: IntArray, longArray: LongArray, floatArray: FloatArray, doubleArray: DoubleArray, booleanArray: BooleanArray) : Annotation { - // Signature: test/PrimitiveArrays.booleanArray|{}booleanArray[0] - val booleanArray: BooleanArray - // Signature: test/PrimitiveArrays.byteArray|{}byteArray[0] - val byteArray: ByteArray - // Signature: test/PrimitiveArrays.charArray|{}charArray[0] - val charArray: CharArray - // Signature: test/PrimitiveArrays.doubleArray|{}doubleArray[0] - val doubleArray: DoubleArray - // Signature: test/PrimitiveArrays.floatArray|{}floatArray[0] - val floatArray: FloatArray - // Signature: test/PrimitiveArrays.intArray|{}intArray[0] - val intArray: IntArray - // Signature: test/PrimitiveArrays.longArray|{}longArray[0] - val longArray: LongArray - // Signature: test/PrimitiveArrays.shortArray|{}shortArray[0] - val shortArray: ShortArray +library { + // module name: + + library fragment { + // package name: test + + // class name: test/C1 + // class name: test/C2 + // class name: test/PrimitiveArrays + + // signature: test/C1|null[0] + @test/PrimitiveArrays(byteArray = [-7.toByte(), 7.toByte()], charArray = ['%', 'z'], shortArray = [239.toShort()], intArray = [239017, -1], longArray = [123456789123456789L], floatArray = [2.72f, 0.0f], doubleArray = [-3.14], booleanArray = [true, false, true]) + public final class test/C1 : kotlin/Any { + + // signature: test/C1.|(){}[0] + public constructor() } + + // signature: test/C2|null[0] + @test/PrimitiveArrays(byteArray = [], charArray = [], shortArray = [], intArray = [], longArray = [], floatArray = [], doubleArray = [], booleanArray = []) + public final class test/C2 : kotlin/Any { + + // signature: test/C2.|(){}[0] + public constructor() + } + + // signature: test/PrimitiveArrays|null[0] + public final annotation class test/PrimitiveArrays : kotlin/Annotation { + + // signature: test/PrimitiveArrays.|(kotlin.ByteArray;kotlin.CharArray;kotlin.ShortArray;kotlin.IntArray;kotlin.LongArray;kotlin.FloatArray;kotlin.DoubleArray;kotlin.BooleanArray){}[0] + public constructor(byteArray: kotlin/ByteArray, charArray: kotlin/CharArray, shortArray: kotlin/ShortArray, intArray: kotlin/IntArray, longArray: kotlin/LongArray, floatArray: kotlin/FloatArray, doubleArray: kotlin/DoubleArray, booleanArray: kotlin/BooleanArray) + + // signature: test/PrimitiveArrays.booleanArray|{}booleanArray[0] + public final val booleanArray: kotlin/BooleanArray + // signature: test/PrimitiveArrays.booleanArray.|(){}[0] + public final get + + // signature: test/PrimitiveArrays.byteArray|{}byteArray[0] + public final val byteArray: kotlin/ByteArray + // signature: test/PrimitiveArrays.byteArray.|(){}[0] + public final get + + // signature: test/PrimitiveArrays.charArray|{}charArray[0] + public final val charArray: kotlin/CharArray + // signature: test/PrimitiveArrays.charArray.|(){}[0] + public final get + + // signature: test/PrimitiveArrays.doubleArray|{}doubleArray[0] + public final val doubleArray: kotlin/DoubleArray + // signature: test/PrimitiveArrays.doubleArray.|(){}[0] + public final get + + // signature: test/PrimitiveArrays.floatArray|{}floatArray[0] + public final val floatArray: kotlin/FloatArray + // signature: test/PrimitiveArrays.floatArray.|(){}[0] + public final get + + // signature: test/PrimitiveArrays.intArray|{}intArray[0] + public final val intArray: kotlin/IntArray + // signature: test/PrimitiveArrays.intArray.|(){}[0] + public final get + + // signature: test/PrimitiveArrays.longArray|{}longArray[0] + public final val longArray: kotlin/LongArray + // signature: test/PrimitiveArrays.longArray.|(){}[0] + public final get + + // signature: test/PrimitiveArrays.shortArray|{}shortArray[0] + public final val shortArray: kotlin/ShortArray + // signature: test/PrimitiveArrays.shortArray.|(){}[0] + public final get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitives.kt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitives.kt index a593202fb29..6d11c3a91ed 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitives.kt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitives.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL package test annotation class Primitives( diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitives.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitives.txt index e1d872a1286..4255b8975a7 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitives.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitives.txt @@ -1,13 +1,45 @@ -package test { - @Primitives(boolean = true, byte = 7.toByte(), char = \u0025 ('%'), double = -3.14.toDouble(), float = 2.72.toFloat(), int = 239017, long = 123456789123456789.toLong(), short = 239.toShort()) class C constructor() - annotation class Primitives constructor(byte: Byte, char: Char, short: Short, int: Int, long: Long, float: Float, double: Double, boolean: Boolean) : Annotation { - val boolean: Boolean - val byte: Byte - val char: Char - val double: Double - val float: Float - val int: Int - val long: Long - val short: Short +library { + // module name: + + library fragment { + // package name: test + + // class name: test/C + // class name: test/Primitives + + @test/Primitives(byte = 7.toByte(), char = '%', short = 239.toShort(), int = 239017, long = 123456789123456789L, float = 2.72f, double = -3.14, boolean = true) + public final class test/C : kotlin/Any { + + public constructor() } + + public final annotation class test/Primitives : kotlin/Annotation { + + public constructor(byte: kotlin/Byte, char: kotlin/Char, short: kotlin/Short, int: kotlin/Int, long: kotlin/Long, float: kotlin/Float, double: kotlin/Double, boolean: kotlin/Boolean) + + public final val boolean: kotlin/Boolean + public final get + + public final val byte: kotlin/Byte + public final get + + public final val char: kotlin/Char + public final get + + public final val double: kotlin/Double + public final get + + public final val float: kotlin/Float + public final get + + public final val int: kotlin/Int + public final get + + public final val long: kotlin/Long + public final get + + public final val short: kotlin/Short + public final get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitives.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitives.v1.txt index 065dac96534..cf5d3f5d23d 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitives.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitives.v1.txt @@ -1,23 +1,65 @@ -package test { - // Signature: test/C|null[0] - @Primitives(boolean = true, byte = 7.toByte(), char = \u0025 ('%'), double = -3.14.toDouble(), float = 2.72.toFloat(), int = 239017, long = 123456789123456789.toLong(), short = 239.toShort()) class C constructor() - // Signature: test/Primitives|null[0] - annotation class Primitives constructor(byte: Byte, char: Char, short: Short, int: Int, long: Long, float: Float, double: Double, boolean: Boolean) : Annotation { - // Signature: test/Primitives.boolean|-4261332457766342551[0] - val boolean: Boolean - // Signature: test/Primitives.byte|-96849965763790584[0] - val byte: Byte - // Signature: test/Primitives.char|-1670337955414892634[0] - val char: Char - // Signature: test/Primitives.double|2356391280675975773[0] - val double: Double - // Signature: test/Primitives.float|3027698144133593704[0] - val float: Float - // Signature: test/Primitives.int|4038882325283937173[0] - val int: Int - // Signature: test/Primitives.long|-3528812958611327186[0] - val long: Long - // Signature: test/Primitives.short|2683753303457941763[0] - val short: Short +library { + // module name: + + library fragment { + // package name: test + + // class name: test/C + // class name: test/Primitives + + // signature: test/C|null[0] + @test/Primitives(byte = 7.toByte(), char = '%', short = 239.toShort(), int = 239017, long = 123456789123456789L, float = 2.72f, double = -3.14, boolean = true) + public final class test/C : kotlin/Any { + + // signature: test/C.|-5645683436151566731[0] + public constructor() } + + // signature: test/Primitives|null[0] + public final annotation class test/Primitives : kotlin/Annotation { + + // signature: test/Primitives.|4757917789516536964[0] + public constructor(byte: kotlin/Byte, char: kotlin/Char, short: kotlin/Short, int: kotlin/Int, long: kotlin/Long, float: kotlin/Float, double: kotlin/Double, boolean: kotlin/Boolean) + + // signature: test/Primitives.boolean|-4261332457766342551[0] + public final val boolean: kotlin/Boolean + // signature: test/Primitives.boolean.|517708060946479255[0] + public final get + + // signature: test/Primitives.byte|-96849965763790584[0] + public final val byte: kotlin/Byte + // signature: test/Primitives.byte.|310937544708577298[0] + public final get + + // signature: test/Primitives.char|-1670337955414892634[0] + public final val char: kotlin/Char + // signature: test/Primitives.char.|1437740164735763428[0] + public final get + + // signature: test/Primitives.double|2356391280675975773[0] + public final val double: kotlin/Double + // signature: test/Primitives.double.|-6763865848971261464[0] + public final get + + // signature: test/Primitives.float|3027698144133593704[0] + public final val float: kotlin/Float + // signature: test/Primitives.float.|1344292707679993701[0] + public final get + + // signature: test/Primitives.int|4038882325283937173[0] + public final val int: kotlin/Int + // signature: test/Primitives.int.|-626442327997506045[0] + public final get + + // signature: test/Primitives.long|-3528812958611327186[0] + public final val long: kotlin/Long + // signature: test/Primitives.long.|-8542925932497577082[0] + public final get + + // signature: test/Primitives.short|2683753303457941763[0] + public final val short: kotlin/Short + // signature: test/Primitives.short.|-8651028235276253274[0] + public final get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitives.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitives.v2.txt index 7c452b84219..f2591c999aa 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitives.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitives.v2.txt @@ -1,23 +1,65 @@ -package test { - // Signature: test/C|null[0] - @Primitives(boolean = true, byte = 7.toByte(), char = \u0025 ('%'), double = -3.14.toDouble(), float = 2.72.toFloat(), int = 239017, long = 123456789123456789.toLong(), short = 239.toShort()) class C constructor() - // Signature: test/Primitives|null[0] - annotation class Primitives constructor(byte: Byte, char: Char, short: Short, int: Int, long: Long, float: Float, double: Double, boolean: Boolean) : Annotation { - // Signature: test/Primitives.boolean|{}boolean[0] - val boolean: Boolean - // Signature: test/Primitives.byte|{}byte[0] - val byte: Byte - // Signature: test/Primitives.char|{}char[0] - val char: Char - // Signature: test/Primitives.double|{}double[0] - val double: Double - // Signature: test/Primitives.float|{}float[0] - val float: Float - // Signature: test/Primitives.int|{}int[0] - val int: Int - // Signature: test/Primitives.long|{}long[0] - val long: Long - // Signature: test/Primitives.short|{}short[0] - val short: Short +library { + // module name: + + library fragment { + // package name: test + + // class name: test/C + // class name: test/Primitives + + // signature: test/C|null[0] + @test/Primitives(byte = 7.toByte(), char = '%', short = 239.toShort(), int = 239017, long = 123456789123456789L, float = 2.72f, double = -3.14, boolean = true) + public final class test/C : kotlin/Any { + + // signature: test/C.|(){}[0] + public constructor() } + + // signature: test/Primitives|null[0] + public final annotation class test/Primitives : kotlin/Annotation { + + // signature: test/Primitives.|(kotlin.Byte;kotlin.Char;kotlin.Short;kotlin.Int;kotlin.Long;kotlin.Float;kotlin.Double;kotlin.Boolean){}[0] + public constructor(byte: kotlin/Byte, char: kotlin/Char, short: kotlin/Short, int: kotlin/Int, long: kotlin/Long, float: kotlin/Float, double: kotlin/Double, boolean: kotlin/Boolean) + + // signature: test/Primitives.boolean|{}boolean[0] + public final val boolean: kotlin/Boolean + // signature: test/Primitives.boolean.|(){}[0] + public final get + + // signature: test/Primitives.byte|{}byte[0] + public final val byte: kotlin/Byte + // signature: test/Primitives.byte.|(){}[0] + public final get + + // signature: test/Primitives.char|{}char[0] + public final val char: kotlin/Char + // signature: test/Primitives.char.|(){}[0] + public final get + + // signature: test/Primitives.double|{}double[0] + public final val double: kotlin/Double + // signature: test/Primitives.double.|(){}[0] + public final get + + // signature: test/Primitives.float|{}float[0] + public final val float: kotlin/Float + // signature: test/Primitives.float.|(){}[0] + public final get + + // signature: test/Primitives.int|{}int[0] + public final val int: kotlin/Int + // signature: test/Primitives.int.|(){}[0] + public final get + + // signature: test/Primitives.long|{}long[0] + public final val long: kotlin/Long + // signature: test/Primitives.long.|(){}[0] + public final get + + // signature: test/Primitives.short|{}short[0] + public final val short: kotlin/Short + // signature: test/Primitives.short.|(){}[0] + public final get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/string.kt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/string.kt index 92860cd716a..5613cc3cbc6 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/string.kt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/string.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL package test annotation class JustString(val string: String) diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/string.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/string.txt index eb6ec27656d..955c69b71e0 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/string.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/string.txt @@ -1,10 +1,41 @@ -package test { - @JustString(string = "kotlin") @StringArray(stringArray = {}) class C1 constructor() - @StringArray(stringArray = {"java", ""}) class C2 constructor() - annotation class JustString constructor(string: String) : Annotation { - val string: String +library { + // module name: + + library fragment { + // package name: test + + // class name: test/C1 + // class name: test/C2 + // class name: test/JustString + // class name: test/StringArray + + @test/JustString(string = "kotlin") + @test/StringArray(stringArray = []) + public final class test/C1 : kotlin/Any { + + public constructor() } - annotation class StringArray constructor(stringArray: Array) : Annotation { - val stringArray: Array + + @test/StringArray(stringArray = ["java", ""]) + public final class test/C2 : kotlin/Any { + + public constructor() } + + public final annotation class test/JustString : kotlin/Annotation { + + public constructor(string: kotlin/String) + + public final val string: kotlin/String + public final get + } + + public final annotation class test/StringArray : kotlin/Annotation { + + public constructor(stringArray: kotlin/Array) + + public final val stringArray: kotlin/Array + public final get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/string.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/string.v1.txt index 0a0bcffa3c8..7148157ef73 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/string.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/string.v1.txt @@ -1,16 +1,53 @@ -package test { - // Signature: test/C1|null[0] - @JustString(string = "kotlin") @StringArray(stringArray = {}) class C1 constructor() - // Signature: test/C2|null[0] - @StringArray(stringArray = {"java", ""}) class C2 constructor() - // Signature: test/JustString|null[0] - annotation class JustString constructor(string: String) : Annotation { - // Signature: test/JustString.string|-528183805128847417[0] - val string: String +library { + // module name: + + library fragment { + // package name: test + + // class name: test/C1 + // class name: test/C2 + // class name: test/JustString + // class name: test/StringArray + + // signature: test/C1|null[0] + @test/JustString(string = "kotlin") + @test/StringArray(stringArray = []) + public final class test/C1 : kotlin/Any { + + // signature: test/C1.|-5645683436151566731[0] + public constructor() } - // Signature: test/StringArray|null[0] - annotation class StringArray constructor(stringArray: Array) : Annotation { - // Signature: test/StringArray.stringArray|3224078221487065108[0] - val stringArray: Array + + // signature: test/C2|null[0] + @test/StringArray(stringArray = ["java", ""]) + public final class test/C2 : kotlin/Any { + + // signature: test/C2.|-5645683436151566731[0] + public constructor() } + + // signature: test/JustString|null[0] + public final annotation class test/JustString : kotlin/Annotation { + + // signature: test/JustString.|1280618353163213788[0] + public constructor(string: kotlin/String) + + // signature: test/JustString.string|-528183805128847417[0] + public final val string: kotlin/String + // signature: test/JustString.string.|3519820768600764381[0] + public final get + } + + // signature: test/StringArray|null[0] + public final annotation class test/StringArray : kotlin/Annotation { + + // signature: test/StringArray.|5393043463829665764[0] + public constructor(stringArray: kotlin/Array) + + // signature: test/StringArray.stringArray|3224078221487065108[0] + public final val stringArray: kotlin/Array + // signature: test/StringArray.stringArray.|-999420313937698549[0] + public final get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/string.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/string.v2.txt index bed4a2750ad..05838e1a765 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/string.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/string.v2.txt @@ -1,16 +1,53 @@ -package test { - // Signature: test/C1|null[0] - @JustString(string = "kotlin") @StringArray(stringArray = {}) class C1 constructor() - // Signature: test/C2|null[0] - @StringArray(stringArray = {"java", ""}) class C2 constructor() - // Signature: test/JustString|null[0] - annotation class JustString constructor(string: String) : Annotation { - // Signature: test/JustString.string|{}string[0] - val string: String +library { + // module name: + + library fragment { + // package name: test + + // class name: test/C1 + // class name: test/C2 + // class name: test/JustString + // class name: test/StringArray + + // signature: test/C1|null[0] + @test/JustString(string = "kotlin") + @test/StringArray(stringArray = []) + public final class test/C1 : kotlin/Any { + + // signature: test/C1.|(){}[0] + public constructor() } - // Signature: test/StringArray|null[0] - annotation class StringArray constructor(stringArray: Array) : Annotation { - // Signature: test/StringArray.stringArray|{}stringArray[0] - val stringArray: Array + + // signature: test/C2|null[0] + @test/StringArray(stringArray = ["java", ""]) + public final class test/C2 : kotlin/Any { + + // signature: test/C2.|(){}[0] + public constructor() } + + // signature: test/JustString|null[0] + public final annotation class test/JustString : kotlin/Annotation { + + // signature: test/JustString.|(kotlin.String){}[0] + public constructor(string: kotlin/String) + + // signature: test/JustString.string|{}string[0] + public final val string: kotlin/String + // signature: test/JustString.string.|(){}[0] + public final get + } + + // signature: test/StringArray|null[0] + public final annotation class test/StringArray : kotlin/Annotation { + + // signature: test/StringArray.|(kotlin.Array){}[0] + public constructor(stringArray: kotlin/Array) + + // signature: test/StringArray.stringArray|{}stringArray[0] + public final val stringArray: kotlin/Array + // signature: test/StringArray.stringArray.|(){}[0] + public final get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.fir.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.fir.txt new file mode 100644 index 00000000000..f0ffa8d2f79 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.fir.txt @@ -0,0 +1,38 @@ +library { + // module name: + + library fragment { + // package name: test + + // class name: test/My + // class name: test/ann + // class name: test/annotated + + public final enum class test/My : kotlin/Enum { + + private constructor() + + ALPHA, + + BETA, + + OMEGA, + + // has Enum.entries + } + + public final annotation class test/ann : kotlin/Annotation { + + public constructor(vararg m: test/My /* kotlin/Array */) + + public final val m: kotlin/Array + public final get + } + + @test/ann(m = [test/My.ALPHA, test/My.BETA]) + public final annotation class test/annotated : kotlin/Annotation { + + public constructor() + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.txt index 402298c680e..760282de650 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.txt @@ -1,11 +1,50 @@ -package test { - enum class My private constructor() : Enum { - enum entry ALPHA - enum entry BETA - enum entry OMEGA +library { + // module name: + + library fragment { + // package name: test + + // class name: test/My + // class name: test/My.ALPHA + // class name: test/My.BETA + // class name: test/My.OMEGA + // class name: test/ann + // class name: test/annotated + + public final enum class test/My : kotlin/Enum { + + private constructor() + + ALPHA, + + BETA, + + OMEGA, + + // has Enum.entries } - annotation class ann constructor(vararg m: My) : Annotation { - val m: Array + + public final enum entry test/My.ALPHA : test/My { } - @ann(m = {My.ALPHA, My.BETA}) annotation class annotated constructor() : Annotation + + public final enum entry test/My.BETA : test/My { + } + + public final enum entry test/My.OMEGA : test/My { + } + + public final annotation class test/ann : kotlin/Annotation { + + public constructor(vararg m: test/My /* kotlin/Array */) + + public final val m: kotlin/Array + public final get + } + + @test/ann(m = [test/My.ALPHA, test/My.BETA]) + public final annotation class test/annotated : kotlin/Annotation { + + public constructor() + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.v1.fir.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.v1.fir.txt new file mode 100644 index 00000000000..b912664a371 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.v1.fir.txt @@ -0,0 +1,49 @@ +library { + // module name: + + library fragment { + // package name: test + + // class name: test/My + // class name: test/ann + // class name: test/annotated + + // signature: test/My|null[0] + public final enum class test/My : kotlin/Enum { + + // signature: test/My.|-5645683436151566731[0] + private constructor() + + // signature: test/My.ALPHA|null[0] + ALPHA, + + // signature: test/My.BETA|null[0] + BETA, + + // signature: test/My.OMEGA|null[0] + OMEGA, + + // has Enum.entries + } + + // signature: test/ann|null[0] + public final annotation class test/ann : kotlin/Annotation { + + // signature: test/ann.|-2563184725332266251[0] + public constructor(vararg m: test/My /* kotlin/Array */) + + // signature: test/ann.m|1584387991504031144[0] + public final val m: kotlin/Array + // signature: test/ann.m.|-4080345507792793848[0] + public final get + } + + // signature: test/annotated|null[0] + @test/ann(m = [test/My.ALPHA, test/My.BETA]) + public final annotation class test/annotated : kotlin/Annotation { + + // signature: test/annotated.|-5645683436151566731[0] + public constructor() + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.v1.txt index 90c611ea4a8..ec0892c162a 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.v1.txt @@ -1,18 +1,64 @@ -package test { - // Signature: test/My|null[0] - enum class My private constructor() : Enum { - // Signature: test/My.ALPHA|null[0] - enum entry ALPHA - // Signature: test/My.BETA|null[0] - enum entry BETA - // Signature: test/My.OMEGA|null[0] - enum entry OMEGA +library { + // module name: + + library fragment { + // package name: test + + // class name: test/My + // class name: test/My.ALPHA + // class name: test/My.BETA + // class name: test/My.OMEGA + // class name: test/ann + // class name: test/annotated + + // signature: test/My|null[0] + public final enum class test/My : kotlin/Enum { + + // signature: test/My.|-5645683436151566731[0] + private constructor() + + // signature: test/My.ALPHA|null[0] + ALPHA, + + // signature: test/My.BETA|null[0] + BETA, + + // signature: test/My.OMEGA|null[0] + OMEGA, + + // has Enum.entries } - // Signature: test/ann|null[0] - annotation class ann constructor(vararg m: My) : Annotation { - // Signature: test/ann.m|1584387991504031144[0] - val m: Array + + // signature: test/My.ALPHA|null[0] + public final enum entry test/My.ALPHA : test/My { } - // Signature: test/annotated|null[0] - @ann(m = {My.ALPHA, My.BETA}) annotation class annotated constructor() : Annotation + + // signature: test/My.BETA|null[0] + public final enum entry test/My.BETA : test/My { + } + + // signature: test/My.OMEGA|null[0] + public final enum entry test/My.OMEGA : test/My { + } + + // signature: test/ann|null[0] + public final annotation class test/ann : kotlin/Annotation { + + // signature: test/ann.|-2563184725332266251[0] + public constructor(vararg m: test/My /* kotlin/Array */) + + // signature: test/ann.m|1584387991504031144[0] + public final val m: kotlin/Array + // signature: test/ann.m.|-4080345507792793848[0] + public final get + } + + // signature: test/annotated|null[0] + @test/ann(m = [test/My.ALPHA, test/My.BETA]) + public final annotation class test/annotated : kotlin/Annotation { + + // signature: test/annotated.|-5645683436151566731[0] + public constructor() + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.v2.fir.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.v2.fir.txt new file mode 100644 index 00000000000..5133a1e21fe --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.v2.fir.txt @@ -0,0 +1,49 @@ +library { + // module name: + + library fragment { + // package name: test + + // class name: test/My + // class name: test/ann + // class name: test/annotated + + // signature: test/My|null[0] + public final enum class test/My : kotlin/Enum { + + // signature: test/My.|(){}[0] + private constructor() + + // signature: test/My.ALPHA|null[0] + ALPHA, + + // signature: test/My.BETA|null[0] + BETA, + + // signature: test/My.OMEGA|null[0] + OMEGA, + + // has Enum.entries + } + + // signature: test/ann|null[0] + public final annotation class test/ann : kotlin/Annotation { + + // signature: test/ann.|(kotlin.Array...){}[0] + public constructor(vararg m: test/My /* kotlin/Array */) + + // signature: test/ann.m|{}m[0] + public final val m: kotlin/Array + // signature: test/ann.m.|(){}[0] + public final get + } + + // signature: test/annotated|null[0] + @test/ann(m = [test/My.ALPHA, test/My.BETA]) + public final annotation class test/annotated : kotlin/Annotation { + + // signature: test/annotated.|(){}[0] + public constructor() + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.v2.txt index 4ca956f6fb2..6e81222daca 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.v2.txt @@ -1,18 +1,64 @@ -package test { - // Signature: test/My|null[0] - enum class My private constructor() : Enum { - // Signature: test/My.ALPHA|null[0] - enum entry ALPHA - // Signature: test/My.BETA|null[0] - enum entry BETA - // Signature: test/My.OMEGA|null[0] - enum entry OMEGA +library { + // module name: + + library fragment { + // package name: test + + // class name: test/My + // class name: test/My.ALPHA + // class name: test/My.BETA + // class name: test/My.OMEGA + // class name: test/ann + // class name: test/annotated + + // signature: test/My|null[0] + public final enum class test/My : kotlin/Enum { + + // signature: test/My.|(){}[0] + private constructor() + + // signature: test/My.ALPHA|null[0] + ALPHA, + + // signature: test/My.BETA|null[0] + BETA, + + // signature: test/My.OMEGA|null[0] + OMEGA, + + // has Enum.entries } - // Signature: test/ann|null[0] - annotation class ann constructor(vararg m: My) : Annotation { - // Signature: test/ann.m|{}m[0] - val m: Array + + // signature: test/My.ALPHA|null[0] + public final enum entry test/My.ALPHA : test/My { } - // Signature: test/annotated|null[0] - @ann(m = {My.ALPHA, My.BETA}) annotation class annotated constructor() : Annotation + + // signature: test/My.BETA|null[0] + public final enum entry test/My.BETA : test/My { + } + + // signature: test/My.OMEGA|null[0] + public final enum entry test/My.OMEGA : test/My { + } + + // signature: test/ann|null[0] + public final annotation class test/ann : kotlin/Annotation { + + // signature: test/ann.|(kotlin.Array...){}[0] + public constructor(vararg m: test/My /* kotlin/Array */) + + // signature: test/ann.m|{}m[0] + public final val m: kotlin/Array + // signature: test/ann.m.|(){}[0] + public final get + } + + // signature: test/annotated|null[0] + @test/ann(m = [test/My.ALPHA, test/My.BETA]) + public final annotation class test/annotated : kotlin/Annotation { + + // signature: test/annotated.|(){}[0] + public constructor() + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationTargets.kt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationTargets.kt index 61278bee3a6..1f873d049cb 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationTargets.kt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationTargets.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL package test annotation class anno(val x: String) diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationTargets.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationTargets.txt index 1e7a31be05d..e9184a98cb1 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationTargets.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationTargets.txt @@ -1,17 +1,76 @@ -package test { - @anno(x = "top level class") class C1 @anno(x = "constructor") constructor() { - @anno(x = "member property") val p3: Nothing? - @anno(x = "member extension property") val Int.v4: Int - @anno(x = "member function") fun f3(@anno(x = "member function parameter") p: Int) - @anno(x = "member extension function") fun String.f4() - @anno(x = "nested class") class C2 constructor() - @anno(x = "companion object") companion object +library { + // module name: + + library fragment { + // package name: test + + // class name: test/C1 + // class name: test/C1.C2 + // class name: test/C1.Companion + // class name: test/anno + + @test/anno(x = "top level class") + public final class test/C1 : kotlin/Any { + + @test/anno(x = "constructor") + public constructor() + + @test/anno(x = "member function") + public final fun f3(@test/anno(x = "member function parameter") p: kotlin/Int): kotlin/Unit + + @test/anno(x = "member extension function") + public final fun kotlin/String.f4(): kotlin/Unit + + @test/anno(x = "member property") + public final val p3: kotlin/Nothing? + public final get + + @test/anno(x = "member extension property") + public final val kotlin/Int.v4: kotlin/Int + public final /* non-default */ get + + // companion object: Companion + + // nested class: C2 + + // nested class: Companion } - annotation class anno constructor(x: String) : Annotation { - val x: String + + @test/anno(x = "nested class") + public final class test/C1.C2 : kotlin/Any { + + public constructor() } - @anno(x = "top level function") fun f1(@anno(x = "top level function parameter") p: Int) - @anno(x = "extension function") fun Long.f2(@anno(x = "extension function parameter") p: Int) - @anno(x = "top level property") val p1: Nothing? - @anno(x = "extension property") val Double.p2: Double -} \ No newline at end of file + + @test/anno(x = "companion object") + public final companion object test/C1.Companion : kotlin/Any { + + private constructor() + } + + public final annotation class test/anno : kotlin/Annotation { + + public constructor(x: kotlin/String) + + public final val x: kotlin/String + public final get + } + + package { + + @test/anno(x = "top level function") + public final fun f1(@test/anno(x = "top level function parameter") p: kotlin/Int): kotlin/Unit + + @test/anno(x = "extension function") + public final fun kotlin/Long.f2(@test/anno(x = "extension function parameter") p: kotlin/Int): kotlin/Unit + + @test/anno(x = "top level property") + public final val p1: kotlin/Nothing? + public final get + + @test/anno(x = "extension property") + public final val kotlin/Double.p2: kotlin/Double + public final /* non-default */ get + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationTargets.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationTargets.v1.txt index 5b06866da62..b03924ea4f9 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationTargets.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationTargets.v1.txt @@ -1,30 +1,98 @@ -package test { - // Signature: test/C1|null[0] - @anno(x = "top level class") class C1 @anno(x = "constructor") constructor() { - // Signature: test/C1.p3|-373830470709388280[0] - @anno(x = "member property") val p3: Nothing? - // Signature: test/C1.v4|-38532081724949562[0] - @anno(x = "member extension property") val Int.v4: Int - // Signature: test/C1.f3|-21944318592270529[0] - @anno(x = "member function") fun f3(@anno(x = "member function parameter") p: Int) - // Signature: test/C1.f4|229292746020934047[0] - @anno(x = "member extension function") fun String.f4() - // Signature: test/C1.C2|null[0] - @anno(x = "nested class") class C2 constructor() - // Signature: test/C1.Companion|null[0] - @anno(x = "companion object") companion object +library { + // module name: + + library fragment { + // package name: test + + // class name: test/C1 + // class name: test/C1.C2 + // class name: test/C1.Companion + // class name: test/anno + + // signature: test/C1|null[0] + @test/anno(x = "top level class") + public final class test/C1 : kotlin/Any { + + // signature: test/C1.|-5645683436151566731[0] + @test/anno(x = "constructor") + public constructor() + + // signature: test/C1.f3|-21944318592270529[0] + @test/anno(x = "member function") + public final fun f3(@test/anno(x = "member function parameter") p: kotlin/Int): kotlin/Unit + + // signature: test/C1.f4|229292746020934047[0] + @test/anno(x = "member extension function") + public final fun kotlin/String.f4(): kotlin/Unit + + // signature: test/C1.p3|-373830470709388280[0] + @test/anno(x = "member property") + public final val p3: kotlin/Nothing? + // signature: test/C1.p3.|-2557278263413792822[0] + public final get + + // signature: test/C1.v4|-38532081724949562[0] + @test/anno(x = "member extension property") + public final val kotlin/Int.v4: kotlin/Int + // signature: test/C1.v4.|8055377869057184256[0] + public final /* non-default */ get + + // companion object: Companion + + // nested class: C2 + + // nested class: Companion } - // Signature: test/anno|null[0] - annotation class anno constructor(x: String) : Annotation { - // Signature: test/anno.x|-8060530855978347579[0] - val x: String + + // signature: test/C1.C2|null[0] + @test/anno(x = "nested class") + public final class test/C1.C2 : kotlin/Any { + + // signature: test/C1.C2.|-5645683436151566731[0] + public constructor() } - // Signature: test/f1|7367719253560189071[0] - @anno(x = "top level function") fun f1(@anno(x = "top level function parameter") p: Int) - // Signature: test/f2|6524047282310410984[0] - @anno(x = "extension function") fun Long.f2(@anno(x = "extension function parameter") p: Int) - // Signature: test/p1|7711764890799440087[0] - @anno(x = "top level property") val p1: Nothing? - // Signature: test/p2|8934898181461715514[0] - @anno(x = "extension property") val Double.p2: Double + + // signature: test/C1.Companion|null[0] + @test/anno(x = "companion object") + public final companion object test/C1.Companion : kotlin/Any { + + // signature: test/C1.Companion.|-5645683436151566731[0] + private constructor() + } + + // signature: test/anno|null[0] + public final annotation class test/anno : kotlin/Annotation { + + // signature: test/anno.|1280618353163213788[0] + public constructor(x: kotlin/String) + + // signature: test/anno.x|-8060530855978347579[0] + public final val x: kotlin/String + // signature: test/anno.x.|1482705010654679335[0] + public final get + } + + package { + + // signature: test/f1|7367719253560189071[0] + @test/anno(x = "top level function") + public final fun f1(@test/anno(x = "top level function parameter") p: kotlin/Int): kotlin/Unit + + // signature: test/f2|6524047282310410984[0] + @test/anno(x = "extension function") + public final fun kotlin/Long.f2(@test/anno(x = "extension function parameter") p: kotlin/Int): kotlin/Unit + + // signature: test/p1|7711764890799440087[0] + @test/anno(x = "top level property") + public final val p1: kotlin/Nothing? + // signature: test/p1.|419663188770843259[0] + public final get + + // signature: test/p2|8934898181461715514[0] + @test/anno(x = "extension property") + public final val kotlin/Double.p2: kotlin/Double + // signature: test/p2.|-4908997596127971814[0] + public final /* non-default */ get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationTargets.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationTargets.v2.txt index 3b90f77f4a8..898cbb601a0 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationTargets.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationTargets.v2.txt @@ -1,30 +1,98 @@ -package test { - // Signature: test/C1|null[0] - @anno(x = "top level class") class C1 @anno(x = "constructor") constructor() { - // Signature: test/C1.p3|{}p3[0] - @anno(x = "member property") val p3: Nothing? - // Signature: test/C1.v4|@kotlin.Int{}v4[0] - @anno(x = "member extension property") val Int.v4: Int - // Signature: test/C1.f3|f3(kotlin.Int){}[0] - @anno(x = "member function") fun f3(@anno(x = "member function parameter") p: Int) - // Signature: test/C1.f4|f4@kotlin.String(){}[0] - @anno(x = "member extension function") fun String.f4() - // Signature: test/C1.C2|null[0] - @anno(x = "nested class") class C2 constructor() - // Signature: test/C1.Companion|null[0] - @anno(x = "companion object") companion object +library { + // module name: + + library fragment { + // package name: test + + // class name: test/C1 + // class name: test/C1.C2 + // class name: test/C1.Companion + // class name: test/anno + + // signature: test/C1|null[0] + @test/anno(x = "top level class") + public final class test/C1 : kotlin/Any { + + // signature: test/C1.|(){}[0] + @test/anno(x = "constructor") + public constructor() + + // signature: test/C1.f3|f3(kotlin.Int){}[0] + @test/anno(x = "member function") + public final fun f3(@test/anno(x = "member function parameter") p: kotlin/Int): kotlin/Unit + + // signature: test/C1.f4|f4@kotlin.String(){}[0] + @test/anno(x = "member extension function") + public final fun kotlin/String.f4(): kotlin/Unit + + // signature: test/C1.p3|{}p3[0] + @test/anno(x = "member property") + public final val p3: kotlin/Nothing? + // signature: test/C1.p3.|(){}[0] + public final get + + // signature: test/C1.v4|@kotlin.Int{}v4[0] + @test/anno(x = "member extension property") + public final val kotlin/Int.v4: kotlin/Int + // signature: test/C1.v4.|@kotlin.Int(){}[0] + public final /* non-default */ get + + // companion object: Companion + + // nested class: C2 + + // nested class: Companion } - // Signature: test/anno|null[0] - annotation class anno constructor(x: String) : Annotation { - // Signature: test/anno.x|{}x[0] - val x: String + + // signature: test/C1.C2|null[0] + @test/anno(x = "nested class") + public final class test/C1.C2 : kotlin/Any { + + // signature: test/C1.C2.|(){}[0] + public constructor() } - // Signature: test/f1|f1(kotlin.Int){}[0] - @anno(x = "top level function") fun f1(@anno(x = "top level function parameter") p: Int) - // Signature: test/f2|f2@kotlin.Long(kotlin.Int){}[0] - @anno(x = "extension function") fun Long.f2(@anno(x = "extension function parameter") p: Int) - // Signature: test/p1|{}p1[0] - @anno(x = "top level property") val p1: Nothing? - // Signature: test/p2|@kotlin.Double{}p2[0] - @anno(x = "extension property") val Double.p2: Double + + // signature: test/C1.Companion|null[0] + @test/anno(x = "companion object") + public final companion object test/C1.Companion : kotlin/Any { + + // signature: test/C1.Companion.|(){}[0] + private constructor() + } + + // signature: test/anno|null[0] + public final annotation class test/anno : kotlin/Annotation { + + // signature: test/anno.|(kotlin.String){}[0] + public constructor(x: kotlin/String) + + // signature: test/anno.x|{}x[0] + public final val x: kotlin/String + // signature: test/anno.x.|(){}[0] + public final get + } + + package { + + // signature: test/f1|f1(kotlin.Int){}[0] + @test/anno(x = "top level function") + public final fun f1(@test/anno(x = "top level function parameter") p: kotlin/Int): kotlin/Unit + + // signature: test/f2|f2@kotlin.Long(kotlin.Int){}[0] + @test/anno(x = "extension function") + public final fun kotlin/Long.f2(@test/anno(x = "extension function parameter") p: kotlin/Int): kotlin/Unit + + // signature: test/p1|{}p1[0] + @test/anno(x = "top level property") + public final val p1: kotlin/Nothing? + // signature: test/p1.|(){}[0] + public final get + + // signature: test/p2|@kotlin.Double{}p2[0] + @test/anno(x = "extension property") + public final val kotlin/Double.p2: kotlin/Double + // signature: test/p2.|@kotlin.Double(){}[0] + public final /* non-default */ get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.fir.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.fir.txt new file mode 100644 index 00000000000..135500ca0d7 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.fir.txt @@ -0,0 +1,45 @@ +library { + // module name: + + library fragment { + // package name: test + + // class name: test/A + // class name: test/Enum + // class name: test/Klass + + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.BINARY) + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.CLASS, kotlin/annotation/AnnotationTarget.CONSTRUCTOR, kotlin/annotation/AnnotationTarget.FUNCTION, kotlin/annotation/AnnotationTarget.PROPERTY, kotlin/annotation/AnnotationTarget.VALUE_PARAMETER, kotlin/annotation/AnnotationTarget.TYPE, kotlin/annotation/AnnotationTarget.TYPE_PARAMETER]) + public final annotation class test/A : kotlin/Annotation { + + public constructor() + } + + public final enum class test/Enum : kotlin/Enum { + + private constructor() + + @test/A + ENTRY, + + // has Enum.entries + } + + @test/A + public final class test/Klass : kotlin/Any { + + @test/A + public constructor() + } + + package { + + @test/A + public final fun <@test/A T#0 /* T */> function(@test/A param: kotlin/Unit): @test/A kotlin/Unit + + @test/A + public final val property: kotlin/Unit + public final get + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.txt index c882c0cc694..9f6e7e93311 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.txt @@ -1,9 +1,50 @@ -package test { - @Retention(value = AnnotationRetention.BINARY) @Target(allowedTargets = {AnnotationTarget.CLASS, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.TYPE, AnnotationTarget.TYPE_PARAMETER}) annotation class A constructor() : Annotation - enum class Enum private constructor() : Enum { - @A enum entry ENTRY +library { + // module name: + + library fragment { + // package name: test + + // class name: test/A + // class name: test/Enum + // class name: test/Enum.ENTRY + // class name: test/Klass + + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.BINARY) + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.CLASS, kotlin/annotation/AnnotationTarget.CONSTRUCTOR, kotlin/annotation/AnnotationTarget.FUNCTION, kotlin/annotation/AnnotationTarget.PROPERTY, kotlin/annotation/AnnotationTarget.VALUE_PARAMETER, kotlin/annotation/AnnotationTarget.TYPE, kotlin/annotation/AnnotationTarget.TYPE_PARAMETER]) + public final annotation class test/A : kotlin/Annotation { + + public constructor() } - @A class Klass @A constructor() - @A fun <@A T> function(@A param: Unit) - @A val property: Unit -} \ No newline at end of file + + public final enum class test/Enum : kotlin/Enum { + + private constructor() + + @test/A + ENTRY, + + // has Enum.entries + } + + @test/A + public final enum entry test/Enum.ENTRY : test/Enum { + } + + @test/A + public final class test/Klass : kotlin/Any { + + @test/A + public constructor() + } + + package { + + @test/A + public final fun <@test/A T#0 /* T */> function(@test/A param: kotlin/Unit): @test/A kotlin/Unit + + @test/A + public final val property: kotlin/Unit + public final get + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.v1.fir.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.v1.fir.txt new file mode 100644 index 00000000000..613714c747e --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.v1.fir.txt @@ -0,0 +1,55 @@ +library { + // module name: + + library fragment { + // package name: test + + // class name: test/A + // class name: test/Enum + // class name: test/Klass + + // signature: test/A|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.BINARY) + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.CLASS, kotlin/annotation/AnnotationTarget.CONSTRUCTOR, kotlin/annotation/AnnotationTarget.FUNCTION, kotlin/annotation/AnnotationTarget.PROPERTY, kotlin/annotation/AnnotationTarget.VALUE_PARAMETER, kotlin/annotation/AnnotationTarget.TYPE, kotlin/annotation/AnnotationTarget.TYPE_PARAMETER]) + public final annotation class test/A : kotlin/Annotation { + + // signature: test/A.|-5645683436151566731[0] + public constructor() + } + + // signature: test/Enum|null[0] + public final enum class test/Enum : kotlin/Enum { + + // signature: test/Enum.|-5645683436151566731[0] + private constructor() + + // signature: test/Enum.ENTRY|null[0] + @test/A + ENTRY, + + // has Enum.entries + } + + // signature: test/Klass|null[0] + @test/A + public final class test/Klass : kotlin/Any { + + // signature: test/Klass.|-5645683436151566731[0] + @test/A + public constructor() + } + + package { + + // signature: test/function|5623997416410866984[0] + @test/A + public final fun <@test/A T#0 /* T */> function(@test/A param: kotlin/Unit): @test/A kotlin/Unit + + // signature: test/property|4634558160746314112[0] + @test/A + public final val property: kotlin/Unit + // signature: test/property.|4838831487146901942[0] + public final get + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.v1.txt index ca5ee82f551..2f0e07669cd 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.v1.txt @@ -1,15 +1,61 @@ -package test { - // Signature: test/A|null[0] - @Retention(value = AnnotationRetention.BINARY) @Target(allowedTargets = {AnnotationTarget.CLASS, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.TYPE, AnnotationTarget.TYPE_PARAMETER}) annotation class A constructor() : Annotation - // Signature: test/Enum|null[0] - enum class Enum private constructor() : Enum { - // Signature: test/Enum.ENTRY|null[0] - @A enum entry ENTRY +library { + // module name: + + library fragment { + // package name: test + + // class name: test/A + // class name: test/Enum + // class name: test/Enum.ENTRY + // class name: test/Klass + + // signature: test/A|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.BINARY) + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.CLASS, kotlin/annotation/AnnotationTarget.CONSTRUCTOR, kotlin/annotation/AnnotationTarget.FUNCTION, kotlin/annotation/AnnotationTarget.PROPERTY, kotlin/annotation/AnnotationTarget.VALUE_PARAMETER, kotlin/annotation/AnnotationTarget.TYPE, kotlin/annotation/AnnotationTarget.TYPE_PARAMETER]) + public final annotation class test/A : kotlin/Annotation { + + // signature: test/A.|-5645683436151566731[0] + public constructor() } - // Signature: test/Klass|null[0] - @A class Klass @A constructor() - // Signature: test/function|5623997416410866984[0] - @A fun <@A T> function(@A param: Unit) - // Signature: test/property|4634558160746314112[0] - @A val property: Unit + + // signature: test/Enum|null[0] + public final enum class test/Enum : kotlin/Enum { + + // signature: test/Enum.|-5645683436151566731[0] + private constructor() + + // signature: test/Enum.ENTRY|null[0] + @test/A + ENTRY, + + // has Enum.entries + } + + // signature: test/Enum.ENTRY|null[0] + @test/A + public final enum entry test/Enum.ENTRY : test/Enum { + } + + // signature: test/Klass|null[0] + @test/A + public final class test/Klass : kotlin/Any { + + // signature: test/Klass.|-5645683436151566731[0] + @test/A + public constructor() + } + + package { + + // signature: test/function|5623997416410866984[0] + @test/A + public final fun <@test/A T#0 /* T */> function(@test/A param: kotlin/Unit): @test/A kotlin/Unit + + // signature: test/property|4634558160746314112[0] + @test/A + public final val property: kotlin/Unit + // signature: test/property.|4838831487146901942[0] + public final get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.v2.fir.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.v2.fir.txt new file mode 100644 index 00000000000..cbebfe7923d --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.v2.fir.txt @@ -0,0 +1,55 @@ +library { + // module name: + + library fragment { + // package name: test + + // class name: test/A + // class name: test/Enum + // class name: test/Klass + + // signature: test/A|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.BINARY) + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.CLASS, kotlin/annotation/AnnotationTarget.CONSTRUCTOR, kotlin/annotation/AnnotationTarget.FUNCTION, kotlin/annotation/AnnotationTarget.PROPERTY, kotlin/annotation/AnnotationTarget.VALUE_PARAMETER, kotlin/annotation/AnnotationTarget.TYPE, kotlin/annotation/AnnotationTarget.TYPE_PARAMETER]) + public final annotation class test/A : kotlin/Annotation { + + // signature: test/A.|(){}[0] + public constructor() + } + + // signature: test/Enum|null[0] + public final enum class test/Enum : kotlin/Enum { + + // signature: test/Enum.|(){}[0] + private constructor() + + // signature: test/Enum.ENTRY|null[0] + @test/A + ENTRY, + + // has Enum.entries + } + + // signature: test/Klass|null[0] + @test/A + public final class test/Klass : kotlin/Any { + + // signature: test/Klass.|(){}[0] + @test/A + public constructor() + } + + package { + + // signature: test/function|function(kotlin.Unit){0§}[0] + @test/A + public final fun <@test/A T#0 /* T */> function(@test/A param: kotlin/Unit): @test/A kotlin/Unit + + // signature: test/property|{}property[0] + @test/A + public final val property: kotlin/Unit + // signature: test/property.|(){}[0] + public final get + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.v2.txt index fb33a8fd613..d186ddc854e 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.v2.txt @@ -1,15 +1,61 @@ -package test { - // Signature: test/A|null[0] - @Retention(value = AnnotationRetention.BINARY) @Target(allowedTargets = {AnnotationTarget.CLASS, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.TYPE, AnnotationTarget.TYPE_PARAMETER}) annotation class A constructor() : Annotation - // Signature: test/Enum|null[0] - enum class Enum private constructor() : Enum { - // Signature: test/Enum.ENTRY|null[0] - @A enum entry ENTRY +library { + // module name: + + library fragment { + // package name: test + + // class name: test/A + // class name: test/Enum + // class name: test/Enum.ENTRY + // class name: test/Klass + + // signature: test/A|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.BINARY) + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.CLASS, kotlin/annotation/AnnotationTarget.CONSTRUCTOR, kotlin/annotation/AnnotationTarget.FUNCTION, kotlin/annotation/AnnotationTarget.PROPERTY, kotlin/annotation/AnnotationTarget.VALUE_PARAMETER, kotlin/annotation/AnnotationTarget.TYPE, kotlin/annotation/AnnotationTarget.TYPE_PARAMETER]) + public final annotation class test/A : kotlin/Annotation { + + // signature: test/A.|(){}[0] + public constructor() } - // Signature: test/Klass|null[0] - @A class Klass @A constructor() - // Signature: test/function|function(kotlin.Unit){0§}[0] - @A fun <@A T> function(@A param: Unit) - // Signature: test/property|{}property[0] - @A val property: Unit + + // signature: test/Enum|null[0] + public final enum class test/Enum : kotlin/Enum { + + // signature: test/Enum.|(){}[0] + private constructor() + + // signature: test/Enum.ENTRY|null[0] + @test/A + ENTRY, + + // has Enum.entries + } + + // signature: test/Enum.ENTRY|null[0] + @test/A + public final enum entry test/Enum.ENTRY : test/Enum { + } + + // signature: test/Klass|null[0] + @test/A + public final class test/Klass : kotlin/Any { + + // signature: test/Klass.|(){}[0] + @test/A + public constructor() + } + + package { + + // signature: test/function|function(kotlin.Unit){0§}[0] + @test/A + public final fun <@test/A T#0 /* T */> function(@test/A param: kotlin/Unit): @test/A kotlin/Unit + + // signature: test/property|{}property[0] + @test/A + public final val property: kotlin/Unit + // signature: test/property.|(){}[0] + public final get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.fir.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.fir.txt new file mode 100644 index 00000000000..e111c91bd53 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.fir.txt @@ -0,0 +1,97 @@ +library { + // module name: + + library fragment { + // package name: test + + // class name: test/Class + // class name: test/Weapon + + public final class test/Class : kotlin/Any { + + public constructor() + + public final val arrayConst: kotlin/Any /* = [1.toByte(), 2.toByte()] */ + public final get + + public final val booleanConst: kotlin/Boolean /* = true */ + public final get + + public final val byteConst: kotlin/Byte /* = 10.toByte() */ + public final get + + public final val charConst: kotlin/Char /* = 'A' */ + public final get + + public final val doubleConst: kotlin/Double /* = 3.0 */ + public final get + + public final val enumConst: test/Weapon? /* = test/Weapon.ROCK */ + public final get + + public final val floatConst: kotlin/Float /* = 2.0f */ + public final get + + public final val intConst: kotlin/Int /* = 30 */ + public final get + + public final val longConst: kotlin/Long /* = 40L */ + public final get + + public final val shortConst: kotlin/Short /* = 20.toShort() */ + public final get + + public final val stringConst: kotlin/String /* = "abcd" */ + public final get + } + + public final enum class test/Weapon : kotlin/Enum { + + private constructor() + + ROCK, + + PAPER, + + SCISSORS, + + // has Enum.entries + } + + package { + + public final val arrayConst: kotlin/Any /* = [1.toByte(), 2.toByte()] */ + public final get + + public final val booleanConst: kotlin/Boolean /* = true */ + public final get + + public final val byteConst: kotlin/Byte /* = 10.toByte() */ + public final get + + public final val charConst: kotlin/Char /* = 'A' */ + public final get + + public final val doubleConst: kotlin/Double /* = 3.0 */ + public final get + + public final val enumConst: test/Weapon? /* = test/Weapon.ROCK */ + public final get + + public final val floatConst: kotlin/Float /* = 2.0f */ + public final get + + public final val intConst: kotlin/Int /* = 30 */ + public final get + + public final val longConst: kotlin/Long /* = 40L */ + public final get + + public final val shortConst: kotlin/Short /* = 20.toShort() */ + public final get + + public final val stringConst: kotlin/String /* = "abcd" */ + public final get + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.txt index cdcdfda67f8..7efe20e0f22 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.txt @@ -1,31 +1,109 @@ -package test { - class Class constructor() { - val arrayConst: Any = {1.toByte(), 2.toByte()} - val booleanConst: Boolean = true - val byteConst: Byte = 10.toByte() - val charConst: Char = \u0041 ('A') - val doubleConst: Double = 3.0.toDouble() - val enumConst: Weapon? = Weapon.ROCK - val floatConst: Float = 2.0.toFloat() - val intConst: Int = 30 - val longConst: Long = 40.toLong() - val shortConst: Short = 20.toShort() - val stringConst: String = "abcd" +library { + // module name: + + library fragment { + // package name: test + + // class name: test/Class + // class name: test/Weapon + // class name: test/Weapon.PAPER + // class name: test/Weapon.ROCK + // class name: test/Weapon.SCISSORS + + public final class test/Class : kotlin/Any { + + public constructor() + + public final val arrayConst: kotlin/Any /* = [1.toByte(), 2.toByte()] */ + public final get + + public final val booleanConst: kotlin/Boolean /* = true */ + public final get + + public final val byteConst: kotlin/Byte /* = 10.toByte() */ + public final get + + public final val charConst: kotlin/Char /* = 'A' */ + public final get + + public final val doubleConst: kotlin/Double /* = 3.0 */ + public final get + + public final val enumConst: test/Weapon? /* = test/Weapon.ROCK */ + public final get + + public final val floatConst: kotlin/Float /* = 2.0f */ + public final get + + public final val intConst: kotlin/Int /* = 30 */ + public final get + + public final val longConst: kotlin/Long /* = 40L */ + public final get + + public final val shortConst: kotlin/Short /* = 20.toShort() */ + public final get + + public final val stringConst: kotlin/String /* = "abcd" */ + public final get } - enum class Weapon private constructor() : Enum { - enum entry ROCK - enum entry PAPER - enum entry SCISSORS + + public final enum class test/Weapon : kotlin/Enum { + + private constructor() + + ROCK, + + PAPER, + + SCISSORS, + + // has Enum.entries } - val arrayConst: Any = {1.toByte(), 2.toByte()} - val booleanConst: Boolean = true - val byteConst: Byte = 10.toByte() - val charConst: Char = \u0041 ('A') - val doubleConst: Double = 3.0.toDouble() - val enumConst: Weapon? = Weapon.ROCK - val floatConst: Float = 2.0.toFloat() - val intConst: Int = 30 - val longConst: Long = 40.toLong() - val shortConst: Short = 20.toShort() - val stringConst: String = "abcd" -} \ No newline at end of file + + public final enum entry test/Weapon.PAPER : test/Weapon { + } + + public final enum entry test/Weapon.ROCK : test/Weapon { + } + + public final enum entry test/Weapon.SCISSORS : test/Weapon { + } + + package { + + public final val arrayConst: kotlin/Any /* = [1.toByte(), 2.toByte()] */ + public final get + + public final val booleanConst: kotlin/Boolean /* = true */ + public final get + + public final val byteConst: kotlin/Byte /* = 10.toByte() */ + public final get + + public final val charConst: kotlin/Char /* = 'A' */ + public final get + + public final val doubleConst: kotlin/Double /* = 3.0 */ + public final get + + public final val enumConst: test/Weapon? /* = test/Weapon.ROCK */ + public final get + + public final val floatConst: kotlin/Float /* = 2.0f */ + public final get + + public final val intConst: kotlin/Int /* = 30 */ + public final get + + public final val longConst: kotlin/Long /* = 40L */ + public final get + + public final val shortConst: kotlin/Short /* = 20.toShort() */ + public final get + + public final val stringConst: kotlin/String /* = "abcd" */ + public final get + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.v1.fir.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.v1.fir.txt new file mode 100644 index 00000000000..a244970e4da --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.v1.fir.txt @@ -0,0 +1,148 @@ +library { + // module name: + + library fragment { + // package name: test + + // class name: test/Class + // class name: test/Weapon + + // signature: test/Class|null[0] + public final class test/Class : kotlin/Any { + + // signature: test/Class.|-5645683436151566731[0] + public constructor() + + // signature: test/Class.arrayConst|-5420156590449024299[0] + public final val arrayConst: kotlin/Any /* = [1.toByte(), 2.toByte()] */ + // signature: test/Class.arrayConst.|1136504332961129324[0] + public final get + + // signature: test/Class.booleanConst|-4426657168193867786[0] + public final val booleanConst: kotlin/Boolean /* = true */ + // signature: test/Class.booleanConst.|-3209475031645787396[0] + public final get + + // signature: test/Class.byteConst|-838020094916250484[0] + public final val byteConst: kotlin/Byte /* = 10.toByte() */ + // signature: test/Class.byteConst.|684938813843616350[0] + public final get + + // signature: test/Class.charConst|-3386388106267045546[0] + public final val charConst: kotlin/Char /* = 'A' */ + // signature: test/Class.charConst.|-4454976750212930583[0] + public final get + + // signature: test/Class.doubleConst|-3410345003879286930[0] + public final val doubleConst: kotlin/Double /* = 3.0 */ + // signature: test/Class.doubleConst.|7033796687657075491[0] + public final get + + // signature: test/Class.enumConst|1893601016514874327[0] + public final val enumConst: test/Weapon? /* = test/Weapon.ROCK */ + // signature: test/Class.enumConst.|2301643281552555608[0] + public final get + + // signature: test/Class.floatConst|-7988261885828380685[0] + public final val floatConst: kotlin/Float /* = 2.0f */ + // signature: test/Class.floatConst.|-6871236235153349527[0] + public final get + + // signature: test/Class.intConst|-4862245503535493206[0] + public final val intConst: kotlin/Int /* = 30 */ + // signature: test/Class.intConst.|6557109391861272199[0] + public final get + + // signature: test/Class.longConst|-6740116794455248124[0] + public final val longConst: kotlin/Long /* = 40L */ + // signature: test/Class.longConst.|5521321965939239959[0] + public final get + + // signature: test/Class.shortConst|4526352702631103302[0] + public final val shortConst: kotlin/Short /* = 20.toShort() */ + // signature: test/Class.shortConst.|3931419575068595596[0] + public final get + + // signature: test/Class.stringConst|7958415035753538639[0] + public final val stringConst: kotlin/String /* = "abcd" */ + // signature: test/Class.stringConst.|6980866378150668988[0] + public final get + } + + // signature: test/Weapon|null[0] + public final enum class test/Weapon : kotlin/Enum { + + // signature: test/Weapon.|-5645683436151566731[0] + private constructor() + + // signature: test/Weapon.ROCK|null[0] + ROCK, + + // signature: test/Weapon.PAPER|null[0] + PAPER, + + // signature: test/Weapon.SCISSORS|null[0] + SCISSORS, + + // has Enum.entries + } + + package { + + // signature: test/arrayConst|-5420156590449024299[0] + public final val arrayConst: kotlin/Any /* = [1.toByte(), 2.toByte()] */ + // signature: test/arrayConst.|1136504332961129324[0] + public final get + + // signature: test/booleanConst|-4426657168193867786[0] + public final val booleanConst: kotlin/Boolean /* = true */ + // signature: test/booleanConst.|-3209475031645787396[0] + public final get + + // signature: test/byteConst|-838020094916250484[0] + public final val byteConst: kotlin/Byte /* = 10.toByte() */ + // signature: test/byteConst.|684938813843616350[0] + public final get + + // signature: test/charConst|-3386388106267045546[0] + public final val charConst: kotlin/Char /* = 'A' */ + // signature: test/charConst.|-4454976750212930583[0] + public final get + + // signature: test/doubleConst|-3410345003879286930[0] + public final val doubleConst: kotlin/Double /* = 3.0 */ + // signature: test/doubleConst.|7033796687657075491[0] + public final get + + // signature: test/enumConst|1893601016514874327[0] + public final val enumConst: test/Weapon? /* = test/Weapon.ROCK */ + // signature: test/enumConst.|2301643281552555608[0] + public final get + + // signature: test/floatConst|-7988261885828380685[0] + public final val floatConst: kotlin/Float /* = 2.0f */ + // signature: test/floatConst.|-6871236235153349527[0] + public final get + + // signature: test/intConst|-4862245503535493206[0] + public final val intConst: kotlin/Int /* = 30 */ + // signature: test/intConst.|6557109391861272199[0] + public final get + + // signature: test/longConst|-6740116794455248124[0] + public final val longConst: kotlin/Long /* = 40L */ + // signature: test/longConst.|5521321965939239959[0] + public final get + + // signature: test/shortConst|4526352702631103302[0] + public final val shortConst: kotlin/Short /* = 20.toShort() */ + // signature: test/shortConst.|3931419575068595596[0] + public final get + + // signature: test/stringConst|7958415035753538639[0] + public final val stringConst: kotlin/String /* = "abcd" */ + // signature: test/stringConst.|6980866378150668988[0] + public final get + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.v1.txt index fd6467ed3cd..e23ebd05611 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.v1.txt @@ -1,58 +1,163 @@ -package test { - // Signature: test/Class|null[0] - class Class constructor() { - // Signature: test/Class.arrayConst|-5420156590449024299[0] - val arrayConst: Any = {1.toByte(), 2.toByte()} - // Signature: test/Class.booleanConst|-4426657168193867786[0] - val booleanConst: Boolean = true - // Signature: test/Class.byteConst|-838020094916250484[0] - val byteConst: Byte = 10.toByte() - // Signature: test/Class.charConst|-3386388106267045546[0] - val charConst: Char = \u0041 ('A') - // Signature: test/Class.doubleConst|-3410345003879286930[0] - val doubleConst: Double = 3.0.toDouble() - // Signature: test/Class.enumConst|1893601016514874327[0] - val enumConst: Weapon? = Weapon.ROCK - // Signature: test/Class.floatConst|-7988261885828380685[0] - val floatConst: Float = 2.0.toFloat() - // Signature: test/Class.intConst|-4862245503535493206[0] - val intConst: Int = 30 - // Signature: test/Class.longConst|-6740116794455248124[0] - val longConst: Long = 40.toLong() - // Signature: test/Class.shortConst|4526352702631103302[0] - val shortConst: Short = 20.toShort() - // Signature: test/Class.stringConst|7958415035753538639[0] - val stringConst: String = "abcd" +library { + // module name: + + library fragment { + // package name: test + + // class name: test/Class + // class name: test/Weapon + // class name: test/Weapon.PAPER + // class name: test/Weapon.ROCK + // class name: test/Weapon.SCISSORS + + // signature: test/Class|null[0] + public final class test/Class : kotlin/Any { + + // signature: test/Class.|-5645683436151566731[0] + public constructor() + + // signature: test/Class.arrayConst|-5420156590449024299[0] + public final val arrayConst: kotlin/Any /* = [1.toByte(), 2.toByte()] */ + // signature: test/Class.arrayConst.|1136504332961129324[0] + public final get + + // signature: test/Class.booleanConst|-4426657168193867786[0] + public final val booleanConst: kotlin/Boolean /* = true */ + // signature: test/Class.booleanConst.|-3209475031645787396[0] + public final get + + // signature: test/Class.byteConst|-838020094916250484[0] + public final val byteConst: kotlin/Byte /* = 10.toByte() */ + // signature: test/Class.byteConst.|684938813843616350[0] + public final get + + // signature: test/Class.charConst|-3386388106267045546[0] + public final val charConst: kotlin/Char /* = 'A' */ + // signature: test/Class.charConst.|-4454976750212930583[0] + public final get + + // signature: test/Class.doubleConst|-3410345003879286930[0] + public final val doubleConst: kotlin/Double /* = 3.0 */ + // signature: test/Class.doubleConst.|7033796687657075491[0] + public final get + + // signature: test/Class.enumConst|1893601016514874327[0] + public final val enumConst: test/Weapon? /* = test/Weapon.ROCK */ + // signature: test/Class.enumConst.|2301643281552555608[0] + public final get + + // signature: test/Class.floatConst|-7988261885828380685[0] + public final val floatConst: kotlin/Float /* = 2.0f */ + // signature: test/Class.floatConst.|-6871236235153349527[0] + public final get + + // signature: test/Class.intConst|-4862245503535493206[0] + public final val intConst: kotlin/Int /* = 30 */ + // signature: test/Class.intConst.|6557109391861272199[0] + public final get + + // signature: test/Class.longConst|-6740116794455248124[0] + public final val longConst: kotlin/Long /* = 40L */ + // signature: test/Class.longConst.|5521321965939239959[0] + public final get + + // signature: test/Class.shortConst|4526352702631103302[0] + public final val shortConst: kotlin/Short /* = 20.toShort() */ + // signature: test/Class.shortConst.|3931419575068595596[0] + public final get + + // signature: test/Class.stringConst|7958415035753538639[0] + public final val stringConst: kotlin/String /* = "abcd" */ + // signature: test/Class.stringConst.|6980866378150668988[0] + public final get } - // Signature: test/Weapon|null[0] - enum class Weapon private constructor() : Enum { - // Signature: test/Weapon.ROCK|null[0] - enum entry ROCK - // Signature: test/Weapon.PAPER|null[0] - enum entry PAPER - // Signature: test/Weapon.SCISSORS|null[0] - enum entry SCISSORS + + // signature: test/Weapon|null[0] + public final enum class test/Weapon : kotlin/Enum { + + // signature: test/Weapon.|-5645683436151566731[0] + private constructor() + + // signature: test/Weapon.ROCK|null[0] + ROCK, + + // signature: test/Weapon.PAPER|null[0] + PAPER, + + // signature: test/Weapon.SCISSORS|null[0] + SCISSORS, + + // has Enum.entries } - // Signature: test/arrayConst|-5420156590449024299[0] - val arrayConst: Any = {1.toByte(), 2.toByte()} - // Signature: test/booleanConst|-4426657168193867786[0] - val booleanConst: Boolean = true - // Signature: test/byteConst|-838020094916250484[0] - val byteConst: Byte = 10.toByte() - // Signature: test/charConst|-3386388106267045546[0] - val charConst: Char = \u0041 ('A') - // Signature: test/doubleConst|-3410345003879286930[0] - val doubleConst: Double = 3.0.toDouble() - // Signature: test/enumConst|1893601016514874327[0] - val enumConst: Weapon? = Weapon.ROCK - // Signature: test/floatConst|-7988261885828380685[0] - val floatConst: Float = 2.0.toFloat() - // Signature: test/intConst|-4862245503535493206[0] - val intConst: Int = 30 - // Signature: test/longConst|-6740116794455248124[0] - val longConst: Long = 40.toLong() - // Signature: test/shortConst|4526352702631103302[0] - val shortConst: Short = 20.toShort() - // Signature: test/stringConst|7958415035753538639[0] - val stringConst: String = "abcd" + + // signature: test/Weapon.PAPER|null[0] + public final enum entry test/Weapon.PAPER : test/Weapon { + } + + // signature: test/Weapon.ROCK|null[0] + public final enum entry test/Weapon.ROCK : test/Weapon { + } + + // signature: test/Weapon.SCISSORS|null[0] + public final enum entry test/Weapon.SCISSORS : test/Weapon { + } + + package { + + // signature: test/arrayConst|-5420156590449024299[0] + public final val arrayConst: kotlin/Any /* = [1.toByte(), 2.toByte()] */ + // signature: test/arrayConst.|1136504332961129324[0] + public final get + + // signature: test/booleanConst|-4426657168193867786[0] + public final val booleanConst: kotlin/Boolean /* = true */ + // signature: test/booleanConst.|-3209475031645787396[0] + public final get + + // signature: test/byteConst|-838020094916250484[0] + public final val byteConst: kotlin/Byte /* = 10.toByte() */ + // signature: test/byteConst.|684938813843616350[0] + public final get + + // signature: test/charConst|-3386388106267045546[0] + public final val charConst: kotlin/Char /* = 'A' */ + // signature: test/charConst.|-4454976750212930583[0] + public final get + + // signature: test/doubleConst|-3410345003879286930[0] + public final val doubleConst: kotlin/Double /* = 3.0 */ + // signature: test/doubleConst.|7033796687657075491[0] + public final get + + // signature: test/enumConst|1893601016514874327[0] + public final val enumConst: test/Weapon? /* = test/Weapon.ROCK */ + // signature: test/enumConst.|2301643281552555608[0] + public final get + + // signature: test/floatConst|-7988261885828380685[0] + public final val floatConst: kotlin/Float /* = 2.0f */ + // signature: test/floatConst.|-6871236235153349527[0] + public final get + + // signature: test/intConst|-4862245503535493206[0] + public final val intConst: kotlin/Int /* = 30 */ + // signature: test/intConst.|6557109391861272199[0] + public final get + + // signature: test/longConst|-6740116794455248124[0] + public final val longConst: kotlin/Long /* = 40L */ + // signature: test/longConst.|5521321965939239959[0] + public final get + + // signature: test/shortConst|4526352702631103302[0] + public final val shortConst: kotlin/Short /* = 20.toShort() */ + // signature: test/shortConst.|3931419575068595596[0] + public final get + + // signature: test/stringConst|7958415035753538639[0] + public final val stringConst: kotlin/String /* = "abcd" */ + // signature: test/stringConst.|6980866378150668988[0] + public final get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.v2.fir.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.v2.fir.txt new file mode 100644 index 00000000000..78d338a1dd0 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.v2.fir.txt @@ -0,0 +1,148 @@ +library { + // module name: + + library fragment { + // package name: test + + // class name: test/Class + // class name: test/Weapon + + // signature: test/Class|null[0] + public final class test/Class : kotlin/Any { + + // signature: test/Class.|(){}[0] + public constructor() + + // signature: test/Class.arrayConst|{}arrayConst[0] + public final val arrayConst: kotlin/Any /* = [1.toByte(), 2.toByte()] */ + // signature: test/Class.arrayConst.|(){}[0] + public final get + + // signature: test/Class.booleanConst|{}booleanConst[0] + public final val booleanConst: kotlin/Boolean /* = true */ + // signature: test/Class.booleanConst.|(){}[0] + public final get + + // signature: test/Class.byteConst|{}byteConst[0] + public final val byteConst: kotlin/Byte /* = 10.toByte() */ + // signature: test/Class.byteConst.|(){}[0] + public final get + + // signature: test/Class.charConst|{}charConst[0] + public final val charConst: kotlin/Char /* = 'A' */ + // signature: test/Class.charConst.|(){}[0] + public final get + + // signature: test/Class.doubleConst|{}doubleConst[0] + public final val doubleConst: kotlin/Double /* = 3.0 */ + // signature: test/Class.doubleConst.|(){}[0] + public final get + + // signature: test/Class.enumConst|{}enumConst[0] + public final val enumConst: test/Weapon? /* = test/Weapon.ROCK */ + // signature: test/Class.enumConst.|(){}[0] + public final get + + // signature: test/Class.floatConst|{}floatConst[0] + public final val floatConst: kotlin/Float /* = 2.0f */ + // signature: test/Class.floatConst.|(){}[0] + public final get + + // signature: test/Class.intConst|{}intConst[0] + public final val intConst: kotlin/Int /* = 30 */ + // signature: test/Class.intConst.|(){}[0] + public final get + + // signature: test/Class.longConst|{}longConst[0] + public final val longConst: kotlin/Long /* = 40L */ + // signature: test/Class.longConst.|(){}[0] + public final get + + // signature: test/Class.shortConst|{}shortConst[0] + public final val shortConst: kotlin/Short /* = 20.toShort() */ + // signature: test/Class.shortConst.|(){}[0] + public final get + + // signature: test/Class.stringConst|{}stringConst[0] + public final val stringConst: kotlin/String /* = "abcd" */ + // signature: test/Class.stringConst.|(){}[0] + public final get + } + + // signature: test/Weapon|null[0] + public final enum class test/Weapon : kotlin/Enum { + + // signature: test/Weapon.|(){}[0] + private constructor() + + // signature: test/Weapon.ROCK|null[0] + ROCK, + + // signature: test/Weapon.PAPER|null[0] + PAPER, + + // signature: test/Weapon.SCISSORS|null[0] + SCISSORS, + + // has Enum.entries + } + + package { + + // signature: test/arrayConst|{}arrayConst[0] + public final val arrayConst: kotlin/Any /* = [1.toByte(), 2.toByte()] */ + // signature: test/arrayConst.|(){}[0] + public final get + + // signature: test/booleanConst|{}booleanConst[0] + public final val booleanConst: kotlin/Boolean /* = true */ + // signature: test/booleanConst.|(){}[0] + public final get + + // signature: test/byteConst|{}byteConst[0] + public final val byteConst: kotlin/Byte /* = 10.toByte() */ + // signature: test/byteConst.|(){}[0] + public final get + + // signature: test/charConst|{}charConst[0] + public final val charConst: kotlin/Char /* = 'A' */ + // signature: test/charConst.|(){}[0] + public final get + + // signature: test/doubleConst|{}doubleConst[0] + public final val doubleConst: kotlin/Double /* = 3.0 */ + // signature: test/doubleConst.|(){}[0] + public final get + + // signature: test/enumConst|{}enumConst[0] + public final val enumConst: test/Weapon? /* = test/Weapon.ROCK */ + // signature: test/enumConst.|(){}[0] + public final get + + // signature: test/floatConst|{}floatConst[0] + public final val floatConst: kotlin/Float /* = 2.0f */ + // signature: test/floatConst.|(){}[0] + public final get + + // signature: test/intConst|{}intConst[0] + public final val intConst: kotlin/Int /* = 30 */ + // signature: test/intConst.|(){}[0] + public final get + + // signature: test/longConst|{}longConst[0] + public final val longConst: kotlin/Long /* = 40L */ + // signature: test/longConst.|(){}[0] + public final get + + // signature: test/shortConst|{}shortConst[0] + public final val shortConst: kotlin/Short /* = 20.toShort() */ + // signature: test/shortConst.|(){}[0] + public final get + + // signature: test/stringConst|{}stringConst[0] + public final val stringConst: kotlin/String /* = "abcd" */ + // signature: test/stringConst.|(){}[0] + public final get + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.v2.txt index d51c9f7af74..e65c9ff5314 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.v2.txt @@ -1,58 +1,163 @@ -package test { - // Signature: test/Class|null[0] - class Class constructor() { - // Signature: test/Class.arrayConst|{}arrayConst[0] - val arrayConst: Any = {1.toByte(), 2.toByte()} - // Signature: test/Class.booleanConst|{}booleanConst[0] - val booleanConst: Boolean = true - // Signature: test/Class.byteConst|{}byteConst[0] - val byteConst: Byte = 10.toByte() - // Signature: test/Class.charConst|{}charConst[0] - val charConst: Char = \u0041 ('A') - // Signature: test/Class.doubleConst|{}doubleConst[0] - val doubleConst: Double = 3.0.toDouble() - // Signature: test/Class.enumConst|{}enumConst[0] - val enumConst: Weapon? = Weapon.ROCK - // Signature: test/Class.floatConst|{}floatConst[0] - val floatConst: Float = 2.0.toFloat() - // Signature: test/Class.intConst|{}intConst[0] - val intConst: Int = 30 - // Signature: test/Class.longConst|{}longConst[0] - val longConst: Long = 40.toLong() - // Signature: test/Class.shortConst|{}shortConst[0] - val shortConst: Short = 20.toShort() - // Signature: test/Class.stringConst|{}stringConst[0] - val stringConst: String = "abcd" +library { + // module name: + + library fragment { + // package name: test + + // class name: test/Class + // class name: test/Weapon + // class name: test/Weapon.PAPER + // class name: test/Weapon.ROCK + // class name: test/Weapon.SCISSORS + + // signature: test/Class|null[0] + public final class test/Class : kotlin/Any { + + // signature: test/Class.|(){}[0] + public constructor() + + // signature: test/Class.arrayConst|{}arrayConst[0] + public final val arrayConst: kotlin/Any /* = [1.toByte(), 2.toByte()] */ + // signature: test/Class.arrayConst.|(){}[0] + public final get + + // signature: test/Class.booleanConst|{}booleanConst[0] + public final val booleanConst: kotlin/Boolean /* = true */ + // signature: test/Class.booleanConst.|(){}[0] + public final get + + // signature: test/Class.byteConst|{}byteConst[0] + public final val byteConst: kotlin/Byte /* = 10.toByte() */ + // signature: test/Class.byteConst.|(){}[0] + public final get + + // signature: test/Class.charConst|{}charConst[0] + public final val charConst: kotlin/Char /* = 'A' */ + // signature: test/Class.charConst.|(){}[0] + public final get + + // signature: test/Class.doubleConst|{}doubleConst[0] + public final val doubleConst: kotlin/Double /* = 3.0 */ + // signature: test/Class.doubleConst.|(){}[0] + public final get + + // signature: test/Class.enumConst|{}enumConst[0] + public final val enumConst: test/Weapon? /* = test/Weapon.ROCK */ + // signature: test/Class.enumConst.|(){}[0] + public final get + + // signature: test/Class.floatConst|{}floatConst[0] + public final val floatConst: kotlin/Float /* = 2.0f */ + // signature: test/Class.floatConst.|(){}[0] + public final get + + // signature: test/Class.intConst|{}intConst[0] + public final val intConst: kotlin/Int /* = 30 */ + // signature: test/Class.intConst.|(){}[0] + public final get + + // signature: test/Class.longConst|{}longConst[0] + public final val longConst: kotlin/Long /* = 40L */ + // signature: test/Class.longConst.|(){}[0] + public final get + + // signature: test/Class.shortConst|{}shortConst[0] + public final val shortConst: kotlin/Short /* = 20.toShort() */ + // signature: test/Class.shortConst.|(){}[0] + public final get + + // signature: test/Class.stringConst|{}stringConst[0] + public final val stringConst: kotlin/String /* = "abcd" */ + // signature: test/Class.stringConst.|(){}[0] + public final get } - // Signature: test/Weapon|null[0] - enum class Weapon private constructor() : Enum { - // Signature: test/Weapon.ROCK|null[0] - enum entry ROCK - // Signature: test/Weapon.PAPER|null[0] - enum entry PAPER - // Signature: test/Weapon.SCISSORS|null[0] - enum entry SCISSORS + + // signature: test/Weapon|null[0] + public final enum class test/Weapon : kotlin/Enum { + + // signature: test/Weapon.|(){}[0] + private constructor() + + // signature: test/Weapon.ROCK|null[0] + ROCK, + + // signature: test/Weapon.PAPER|null[0] + PAPER, + + // signature: test/Weapon.SCISSORS|null[0] + SCISSORS, + + // has Enum.entries } - // Signature: test/arrayConst|{}arrayConst[0] - val arrayConst: Any = {1.toByte(), 2.toByte()} - // Signature: test/booleanConst|{}booleanConst[0] - val booleanConst: Boolean = true - // Signature: test/byteConst|{}byteConst[0] - val byteConst: Byte = 10.toByte() - // Signature: test/charConst|{}charConst[0] - val charConst: Char = \u0041 ('A') - // Signature: test/doubleConst|{}doubleConst[0] - val doubleConst: Double = 3.0.toDouble() - // Signature: test/enumConst|{}enumConst[0] - val enumConst: Weapon? = Weapon.ROCK - // Signature: test/floatConst|{}floatConst[0] - val floatConst: Float = 2.0.toFloat() - // Signature: test/intConst|{}intConst[0] - val intConst: Int = 30 - // Signature: test/longConst|{}longConst[0] - val longConst: Long = 40.toLong() - // Signature: test/shortConst|{}shortConst[0] - val shortConst: Short = 20.toShort() - // Signature: test/stringConst|{}stringConst[0] - val stringConst: String = "abcd" + + // signature: test/Weapon.PAPER|null[0] + public final enum entry test/Weapon.PAPER : test/Weapon { + } + + // signature: test/Weapon.ROCK|null[0] + public final enum entry test/Weapon.ROCK : test/Weapon { + } + + // signature: test/Weapon.SCISSORS|null[0] + public final enum entry test/Weapon.SCISSORS : test/Weapon { + } + + package { + + // signature: test/arrayConst|{}arrayConst[0] + public final val arrayConst: kotlin/Any /* = [1.toByte(), 2.toByte()] */ + // signature: test/arrayConst.|(){}[0] + public final get + + // signature: test/booleanConst|{}booleanConst[0] + public final val booleanConst: kotlin/Boolean /* = true */ + // signature: test/booleanConst.|(){}[0] + public final get + + // signature: test/byteConst|{}byteConst[0] + public final val byteConst: kotlin/Byte /* = 10.toByte() */ + // signature: test/byteConst.|(){}[0] + public final get + + // signature: test/charConst|{}charConst[0] + public final val charConst: kotlin/Char /* = 'A' */ + // signature: test/charConst.|(){}[0] + public final get + + // signature: test/doubleConst|{}doubleConst[0] + public final val doubleConst: kotlin/Double /* = 3.0 */ + // signature: test/doubleConst.|(){}[0] + public final get + + // signature: test/enumConst|{}enumConst[0] + public final val enumConst: test/Weapon? /* = test/Weapon.ROCK */ + // signature: test/enumConst.|(){}[0] + public final get + + // signature: test/floatConst|{}floatConst[0] + public final val floatConst: kotlin/Float /* = 2.0f */ + // signature: test/floatConst.|(){}[0] + public final get + + // signature: test/intConst|{}intConst[0] + public final val intConst: kotlin/Int /* = 30 */ + // signature: test/intConst.|(){}[0] + public final get + + // signature: test/longConst|{}longConst[0] + public final val longConst: kotlin/Long /* = 40L */ + // signature: test/longConst.|(){}[0] + public final get + + // signature: test/shortConst|{}shortConst[0] + public final val shortConst: kotlin/Short /* = 20.toShort() */ + // signature: test/shortConst.|(){}[0] + public final get + + // signature: test/stringConst|{}stringConst[0] + public final val stringConst: kotlin/String /* = "abcd" */ + // signature: test/stringConst.|(){}[0] + public final get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/nestedClassesAndObjects.kt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/nestedClassesAndObjects.kt index 84f378deee7..2978153cee0 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/nestedClassesAndObjects.kt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/nestedClassesAndObjects.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL package test class ClassA { diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/nestedClassesAndObjects.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/nestedClassesAndObjects.txt index 2eff080a013..60ef579f1f8 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/nestedClassesAndObjects.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/nestedClassesAndObjects.txt @@ -1,29 +1,104 @@ -package test { - class ClassA constructor() { - class classB constructor() { - fun memberFromB(): Int - class BC constructor() { - val memberFromBB: Int = 150 - } - object BO { - val memberFromBO: Int = 175 - } - } - inner class classC constructor() { - val memberFromC: Int = 200 - } +library { + // module name: + + library fragment { + // package name: test + + // class name: test/ClassA + // class name: test/ClassA.classB + // class name: test/ClassA.classB.BC + // class name: test/ClassA.classB.BO + // class name: test/ClassA.classC + // class name: test/E + // class name: test/E.Companion + // class name: test/E.Companion.D + // class name: test/F + // class name: test/F.ObjA + + public final class test/ClassA : kotlin/Any { + + public constructor() + + // nested class: classB + + // nested class: classC } - class E constructor() { - companion object { - val stat: Int = 250 - class D constructor() { - val memberFromD: Int = 275 - } - } + + public final class test/ClassA.classB : kotlin/Any { + + public constructor() + + public final fun memberFromB(): kotlin/Int + + // nested class: BC + + // nested class: BO } - class F constructor() { - object ObjA { - val memberFromObjA: Int = 300 - } + + public final class test/ClassA.classB.BC : kotlin/Any { + + public constructor() + + public final val memberFromBB: kotlin/Int /* = 150 */ + public final get } -} \ No newline at end of file + + public final object test/ClassA.classB.BO : kotlin/Any { + + private constructor() + + public final val memberFromBO: kotlin/Int /* = 175 */ + public final get + } + + public final inner class test/ClassA.classC : kotlin/Any { + + public constructor() + + public final val memberFromC: kotlin/Int /* = 200 */ + public final get + } + + public final class test/E : kotlin/Any { + + public constructor() + + // companion object: Companion + + // nested class: Companion + } + + public final companion object test/E.Companion : kotlin/Any { + + private constructor() + + public final val stat: kotlin/Int /* = 250 */ + public final get + + // nested class: D + } + + public final class test/E.Companion.D : kotlin/Any { + + public constructor() + + public final val memberFromD: kotlin/Int /* = 275 */ + public final get + } + + public final class test/F : kotlin/Any { + + public constructor() + + // nested class: ObjA + } + + public final object test/F.ObjA : kotlin/Any { + + private constructor() + + public final val memberFromObjA: kotlin/Int /* = 300 */ + public final get + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/nestedClassesAndObjects.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/nestedClassesAndObjects.v1.txt index c39adbfc18d..fbe7bb25cb6 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/nestedClassesAndObjects.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/nestedClassesAndObjects.v1.txt @@ -1,46 +1,137 @@ -package test { - // Signature: test/ClassA|null[0] - class ClassA constructor() { - // Signature: test/ClassA.classB|null[0] - class classB constructor() { - // Signature: test/ClassA.classB.memberFromB|-3679144108801549793[0] - fun memberFromB(): Int - // Signature: test/ClassA.classB.BC|null[0] - class BC constructor() { - // Signature: test/ClassA.classB.BC.memberFromBB|-923442573915205545[0] - val memberFromBB: Int = 150 - } - // Signature: test/ClassA.classB.BO|null[0] - object BO { - // Signature: test/ClassA.classB.BO.memberFromBO|217425991890338881[0] - val memberFromBO: Int = 175 - } - } - // Signature: test/ClassA.classC|null[0] - inner class classC constructor() { - // Signature: test/ClassA.classC.memberFromC|-1068553291605578391[0] - val memberFromC: Int = 200 - } +library { + // module name: + + library fragment { + // package name: test + + // class name: test/ClassA + // class name: test/ClassA.classB + // class name: test/ClassA.classB.BC + // class name: test/ClassA.classB.BO + // class name: test/ClassA.classC + // class name: test/E + // class name: test/E.Companion + // class name: test/E.Companion.D + // class name: test/F + // class name: test/F.ObjA + + // signature: test/ClassA|null[0] + public final class test/ClassA : kotlin/Any { + + // signature: test/ClassA.|-5645683436151566731[0] + public constructor() + + // nested class: classB + + // nested class: classC } - // Signature: test/E|null[0] - class E constructor() { - // Signature: test/E.Companion|null[0] - companion object { - // Signature: test/E.Companion.stat|5548368031485153544[0] - val stat: Int = 250 - // Signature: test/E.Companion.D|null[0] - class D constructor() { - // Signature: test/E.Companion.D.memberFromD|-58066615210301050[0] - val memberFromD: Int = 275 - } - } + + // signature: test/ClassA.classB|null[0] + public final class test/ClassA.classB : kotlin/Any { + + // signature: test/ClassA.classB.|-5645683436151566731[0] + public constructor() + + // signature: test/ClassA.classB.memberFromB|-3679144108801549793[0] + public final fun memberFromB(): kotlin/Int + + // nested class: BC + + // nested class: BO } - // Signature: test/F|null[0] - class F constructor() { - // Signature: test/F.ObjA|null[0] - object ObjA { - // Signature: test/F.ObjA.memberFromObjA|-203378438521009523[0] - val memberFromObjA: Int = 300 - } + + // signature: test/ClassA.classB.BC|null[0] + public final class test/ClassA.classB.BC : kotlin/Any { + + // signature: test/ClassA.classB.BC.|-5645683436151566731[0] + public constructor() + + // signature: test/ClassA.classB.BC.memberFromBB|-923442573915205545[0] + public final val memberFromBB: kotlin/Int /* = 150 */ + // signature: test/ClassA.classB.BC.memberFromBB.|5443620829411313169[0] + public final get } + + // signature: test/ClassA.classB.BO|null[0] + public final object test/ClassA.classB.BO : kotlin/Any { + + // signature: test/ClassA.classB.BO.|-5645683436151566731[0] + private constructor() + + // signature: test/ClassA.classB.BO.memberFromBO|217425991890338881[0] + public final val memberFromBO: kotlin/Int /* = 175 */ + // signature: test/ClassA.classB.BO.memberFromBO.|1305725195157127243[0] + public final get + } + + // signature: test/ClassA.classC|null[0] + public final inner class test/ClassA.classC : kotlin/Any { + + // signature: test/ClassA.classC.|-5645683436151566731[0] + public constructor() + + // signature: test/ClassA.classC.memberFromC|-1068553291605578391[0] + public final val memberFromC: kotlin/Int /* = 200 */ + // signature: test/ClassA.classC.memberFromC.|-6578051353572346364[0] + public final get + } + + // signature: test/E|null[0] + public final class test/E : kotlin/Any { + + // signature: test/E.|-5645683436151566731[0] + public constructor() + + // companion object: Companion + + // nested class: Companion + } + + // signature: test/E.Companion|null[0] + public final companion object test/E.Companion : kotlin/Any { + + // signature: test/E.Companion.|-5645683436151566731[0] + private constructor() + + // signature: test/E.Companion.stat|5548368031485153544[0] + public final val stat: kotlin/Int /* = 250 */ + // signature: test/E.Companion.stat.|3631794081063849556[0] + public final get + + // nested class: D + } + + // signature: test/E.Companion.D|null[0] + public final class test/E.Companion.D : kotlin/Any { + + // signature: test/E.Companion.D.|-5645683436151566731[0] + public constructor() + + // signature: test/E.Companion.D.memberFromD|-58066615210301050[0] + public final val memberFromD: kotlin/Int /* = 275 */ + // signature: test/E.Companion.D.memberFromD.|-1518145003187322874[0] + public final get + } + + // signature: test/F|null[0] + public final class test/F : kotlin/Any { + + // signature: test/F.|-5645683436151566731[0] + public constructor() + + // nested class: ObjA + } + + // signature: test/F.ObjA|null[0] + public final object test/F.ObjA : kotlin/Any { + + // signature: test/F.ObjA.|-5645683436151566731[0] + private constructor() + + // signature: test/F.ObjA.memberFromObjA|-203378438521009523[0] + public final val memberFromObjA: kotlin/Int /* = 300 */ + // signature: test/F.ObjA.memberFromObjA.|-5527443413947154633[0] + public final get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/nestedClassesAndObjects.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/nestedClassesAndObjects.v2.txt index 889a7b75248..a9b4bb817e9 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/nestedClassesAndObjects.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/nestedClassesAndObjects.v2.txt @@ -1,46 +1,137 @@ -package test { - // Signature: test/ClassA|null[0] - class ClassA constructor() { - // Signature: test/ClassA.classB|null[0] - class classB constructor() { - // Signature: test/ClassA.classB.memberFromB|memberFromB(){}[0] - fun memberFromB(): Int - // Signature: test/ClassA.classB.BC|null[0] - class BC constructor() { - // Signature: test/ClassA.classB.BC.memberFromBB|{}memberFromBB[0] - val memberFromBB: Int = 150 - } - // Signature: test/ClassA.classB.BO|null[0] - object BO { - // Signature: test/ClassA.classB.BO.memberFromBO|{}memberFromBO[0] - val memberFromBO: Int = 175 - } - } - // Signature: test/ClassA.classC|null[0] - inner class classC constructor() { - // Signature: test/ClassA.classC.memberFromC|{}memberFromC[0] - val memberFromC: Int = 200 - } +library { + // module name: + + library fragment { + // package name: test + + // class name: test/ClassA + // class name: test/ClassA.classB + // class name: test/ClassA.classB.BC + // class name: test/ClassA.classB.BO + // class name: test/ClassA.classC + // class name: test/E + // class name: test/E.Companion + // class name: test/E.Companion.D + // class name: test/F + // class name: test/F.ObjA + + // signature: test/ClassA|null[0] + public final class test/ClassA : kotlin/Any { + + // signature: test/ClassA.|(){}[0] + public constructor() + + // nested class: classB + + // nested class: classC } - // Signature: test/E|null[0] - class E constructor() { - // Signature: test/E.Companion|null[0] - companion object { - // Signature: test/E.Companion.stat|{}stat[0] - val stat: Int = 250 - // Signature: test/E.Companion.D|null[0] - class D constructor() { - // Signature: test/E.Companion.D.memberFromD|{}memberFromD[0] - val memberFromD: Int = 275 - } - } + + // signature: test/ClassA.classB|null[0] + public final class test/ClassA.classB : kotlin/Any { + + // signature: test/ClassA.classB.|(){}[0] + public constructor() + + // signature: test/ClassA.classB.memberFromB|memberFromB(){}[0] + public final fun memberFromB(): kotlin/Int + + // nested class: BC + + // nested class: BO } - // Signature: test/F|null[0] - class F constructor() { - // Signature: test/F.ObjA|null[0] - object ObjA { - // Signature: test/F.ObjA.memberFromObjA|{}memberFromObjA[0] - val memberFromObjA: Int = 300 - } + + // signature: test/ClassA.classB.BC|null[0] + public final class test/ClassA.classB.BC : kotlin/Any { + + // signature: test/ClassA.classB.BC.|(){}[0] + public constructor() + + // signature: test/ClassA.classB.BC.memberFromBB|{}memberFromBB[0] + public final val memberFromBB: kotlin/Int /* = 150 */ + // signature: test/ClassA.classB.BC.memberFromBB.|(){}[0] + public final get } + + // signature: test/ClassA.classB.BO|null[0] + public final object test/ClassA.classB.BO : kotlin/Any { + + // signature: test/ClassA.classB.BO.|(){}[0] + private constructor() + + // signature: test/ClassA.classB.BO.memberFromBO|{}memberFromBO[0] + public final val memberFromBO: kotlin/Int /* = 175 */ + // signature: test/ClassA.classB.BO.memberFromBO.|(){}[0] + public final get + } + + // signature: test/ClassA.classC|null[0] + public final inner class test/ClassA.classC : kotlin/Any { + + // signature: test/ClassA.classC.|(){}[0] + public constructor() + + // signature: test/ClassA.classC.memberFromC|{}memberFromC[0] + public final val memberFromC: kotlin/Int /* = 200 */ + // signature: test/ClassA.classC.memberFromC.|(){}[0] + public final get + } + + // signature: test/E|null[0] + public final class test/E : kotlin/Any { + + // signature: test/E.|(){}[0] + public constructor() + + // companion object: Companion + + // nested class: Companion + } + + // signature: test/E.Companion|null[0] + public final companion object test/E.Companion : kotlin/Any { + + // signature: test/E.Companion.|(){}[0] + private constructor() + + // signature: test/E.Companion.stat|{}stat[0] + public final val stat: kotlin/Int /* = 250 */ + // signature: test/E.Companion.stat.|(){}[0] + public final get + + // nested class: D + } + + // signature: test/E.Companion.D|null[0] + public final class test/E.Companion.D : kotlin/Any { + + // signature: test/E.Companion.D.|(){}[0] + public constructor() + + // signature: test/E.Companion.D.memberFromD|{}memberFromD[0] + public final val memberFromD: kotlin/Int /* = 275 */ + // signature: test/E.Companion.D.memberFromD.|(){}[0] + public final get + } + + // signature: test/F|null[0] + public final class test/F : kotlin/Any { + + // signature: test/F.|(){}[0] + public constructor() + + // nested class: ObjA + } + + // signature: test/F.ObjA|null[0] + public final object test/F.ObjA : kotlin/Any { + + // signature: test/F.ObjA.|(){}[0] + private constructor() + + // signature: test/F.ObjA.memberFromObjA|{}memberFromObjA[0] + public final val memberFromObjA: kotlin/Int /* = 300 */ + // signature: test/F.ObjA.memberFromObjA.|(){}[0] + public final get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/propertyAccessorAnnotations.kt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/propertyAccessorAnnotations.kt index c811408f596..4257b7d5026 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/propertyAccessorAnnotations.kt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/propertyAccessorAnnotations.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL package test annotation class Anno(val value: String) diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/propertyAccessorAnnotations.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/propertyAccessorAnnotations.txt index e78cce52f88..e4294873f6b 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/propertyAccessorAnnotations.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/propertyAccessorAnnotations.txt @@ -1,9 +1,30 @@ -package test { - annotation class Anno constructor(value: String) : Annotation { - val value: String +library { + // module name: + + library fragment { + // package name: test + + // class name: test/Anno + + public final annotation class test/Anno : kotlin/Annotation { + + public constructor(value: kotlin/String) + + public final val value: kotlin/String + public final get } - @Anno(value = "property") val v1: String = "" - var v2: String - @Anno(value = "getter") get - @Anno(value = "setter") set -} \ No newline at end of file + + package { + + @test/Anno(value = "property") + public final val v1: kotlin/String /* = "" */ + public final get + + public final var v2: kotlin/String + @test/Anno(value = "getter") + public final /* non-default */ get + @test/Anno(value = "setter") + public final /* non-default */ set(@test/Anno(value = "setparam") value: kotlin/String) + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/propertyAccessorAnnotations.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/propertyAccessorAnnotations.v1.txt index eada29c4c4f..072e5940698 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/propertyAccessorAnnotations.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/propertyAccessorAnnotations.v1.txt @@ -1,15 +1,39 @@ -package test { - // Signature: test/Anno|null[0] - annotation class Anno constructor(value: String) : Annotation { - // Signature: test/Anno.value|1987073854177347439[0] - val value: String +library { + // module name: + + library fragment { + // package name: test + + // class name: test/Anno + + // signature: test/Anno|null[0] + public final annotation class test/Anno : kotlin/Annotation { + + // signature: test/Anno.|1280618353163213788[0] + public constructor(value: kotlin/String) + + // signature: test/Anno.value|1987073854177347439[0] + public final val value: kotlin/String + // signature: test/Anno.value.|3260093555963109437[0] + public final get } - // Signature: test/v1|7393439784805956893[0] - @Anno(value = "property") val v1: String = "" - // Signature: test/v2|-7674839086071973207[0] - var v2: String - // Signature: test/v2.|-1626959823585604055[0] - @Anno(value = "getter") get - // Signature: test/v2.|-3541921589822523570[0] - @Anno(value = "setter") set + + package { + + // signature: test/v1|7393439784805956893[0] + @test/Anno(value = "property") + public final val v1: kotlin/String /* = "" */ + // signature: test/v1.|6078408232880608613[0] + public final get + + // signature: test/v2|-7674839086071973207[0] + public final var v2: kotlin/String + // signature: test/v2.|-1626959823585604055[0] + @test/Anno(value = "getter") + public final /* non-default */ get + // signature: test/v2.|-3541921589822523570[0] + @test/Anno(value = "setter") + public final /* non-default */ set(@test/Anno(value = "setparam") value: kotlin/String) + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/propertyAccessorAnnotations.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/propertyAccessorAnnotations.v2.txt index 906faa9a940..51a1893f134 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/propertyAccessorAnnotations.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/propertyAccessorAnnotations.v2.txt @@ -1,15 +1,39 @@ -package test { - // Signature: test/Anno|null[0] - annotation class Anno constructor(value: String) : Annotation { - // Signature: test/Anno.value|{}value[0] - val value: String +library { + // module name: + + library fragment { + // package name: test + + // class name: test/Anno + + // signature: test/Anno|null[0] + public final annotation class test/Anno : kotlin/Annotation { + + // signature: test/Anno.|(kotlin.String){}[0] + public constructor(value: kotlin/String) + + // signature: test/Anno.value|{}value[0] + public final val value: kotlin/String + // signature: test/Anno.value.|(){}[0] + public final get } - // Signature: test/v1|{}v1[0] - @Anno(value = "property") val v1: String = "" - // Signature: test/v2|{}v2[0] - var v2: String - // Signature: test/v2.|(){}[0] - @Anno(value = "getter") get - // Signature: test/v2.|(kotlin.String){}[0] - @Anno(value = "setter") set + + package { + + // signature: test/v1|{}v1[0] + @test/Anno(value = "property") + public final val v1: kotlin/String /* = "" */ + // signature: test/v1.|(){}[0] + public final get + + // signature: test/v2|{}v2[0] + public final var v2: kotlin/String + // signature: test/v2.|(){}[0] + @test/Anno(value = "getter") + public final /* non-default */ get + // signature: test/v2.|(kotlin.String){}[0] + @test/Anno(value = "setter") + public final /* non-default */ set(@test/Anno(value = "setparam") value: kotlin/String) + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/simple.kt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/simple.kt index 36b8496c363..0ec28f6cdcd 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/simple.kt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/simple.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL package test class Class { diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/simple.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/simple.txt index 718f4e03cb4..4cf3bd31e61 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/simple.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/simple.txt @@ -1,8 +1,26 @@ -package test { - class Class constructor() { - fun member(): Nothing? +library { + // module name: + + library fragment { + // package name: test + + // class name: test/Class + + public final class test/Class : kotlin/Any { + + public constructor() + + public final fun member(): kotlin/Nothing? } - fun T.extension(): T? - fun function(int: Int, string: String = ...): Class - val property: Unit -} \ No newline at end of file + + package { + + public final fun T#0.extension(): T#0? + + public final fun function(int: kotlin/Int, string: kotlin/String /* = ... */): test/Class + + public final val property: kotlin/Unit + public final get + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/simple.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/simple.v1.txt index 94896fc5493..4e2a9d8f1ac 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/simple.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/simple.v1.txt @@ -1,13 +1,33 @@ -package test { - // Signature: test/Class|null[0] - class Class constructor() { - // Signature: test/Class.member|-5369299060503369718[0] - fun member(): Nothing? +library { + // module name: + + library fragment { + // package name: test + + // class name: test/Class + + // signature: test/Class|null[0] + public final class test/Class : kotlin/Any { + + // signature: test/Class.|-5645683436151566731[0] + public constructor() + + // signature: test/Class.member|-5369299060503369718[0] + public final fun member(): kotlin/Nothing? } - // Signature: test/extension|-6620817981111883314[0] - fun T.extension(): T? - // Signature: test/function|894692402108510399[0] - fun function(int: Int, string: String = ...): Class - // Signature: test/property|4634558160746314112[0] - val property: Unit + + package { + + // signature: test/extension|-6620817981111883314[0] + public final fun T#0.extension(): T#0? + + // signature: test/function|894692402108510399[0] + public final fun function(int: kotlin/Int, string: kotlin/String /* = ... */): test/Class + + // signature: test/property|4634558160746314112[0] + public final val property: kotlin/Unit + // signature: test/property.|4838831487146901942[0] + public final get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/simple.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/simple.v2.txt index a49f6f4cf7c..20e3d845f5c 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/simple.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/simple.v2.txt @@ -1,13 +1,33 @@ -package test { - // Signature: test/Class|null[0] - class Class constructor() { - // Signature: test/Class.member|member(){}[0] - fun member(): Nothing? +library { + // module name: + + library fragment { + // package name: test + + // class name: test/Class + + // signature: test/Class|null[0] + public final class test/Class : kotlin/Any { + + // signature: test/Class.|(){}[0] + public constructor() + + // signature: test/Class.member|member(){}[0] + public final fun member(): kotlin/Nothing? } - // Signature: test/extension|extension@0:0(){0§}[0] - fun T.extension(): T? - // Signature: test/function|function(kotlin.Int;kotlin.String){}[0] - fun function(int: Int, string: String = ...): Class - // Signature: test/property|{}property[0] - val property: Unit + + package { + + // signature: test/extension|extension@0:0(){0§}[0] + public final fun T#0.extension(): T#0? + + // signature: test/function|function(kotlin.Int;kotlin.String){}[0] + public final fun function(int: kotlin/Int, string: kotlin/String /* = ... */): test/Class + + // signature: test/property|{}property[0] + public final val property: kotlin/Unit + // signature: test/property.|(){}[0] + public final get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.fir.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.fir.txt new file mode 100644 index 00000000000..beea8bab2ca --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.fir.txt @@ -0,0 +1,40 @@ +library { + // module name: + + library fragment { + // package name: test + + // class name: test/A + // class name: test/Enum + // class name: test/Klass + + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.CLASS, kotlin/annotation/AnnotationTarget.CONSTRUCTOR, kotlin/annotation/AnnotationTarget.FUNCTION, kotlin/annotation/AnnotationTarget.PROPERTY, kotlin/annotation/AnnotationTarget.VALUE_PARAMETER, kotlin/annotation/AnnotationTarget.TYPE, kotlin/annotation/AnnotationTarget.TYPE_PARAMETER]) + public final annotation class test/A : kotlin/Annotation { + + public constructor() + } + + public final enum class test/Enum : kotlin/Enum { + + private constructor() + + ENTRY, + + // has Enum.entries + } + + public final class test/Klass : kotlin/Any { + + public constructor() + } + + package { + + public final fun function(param: kotlin/Unit): kotlin/Unit + + public final val property: kotlin/Unit + public final get + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.txt index 9b491f26c9e..79e2e7162d5 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.txt @@ -1,9 +1,44 @@ -package test { - @Retention(value = AnnotationRetention.SOURCE) @Target(allowedTargets = {AnnotationTarget.CLASS, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.TYPE, AnnotationTarget.TYPE_PARAMETER}) annotation class A constructor() : Annotation - enum class Enum private constructor() : Enum { - enum entry ENTRY +library { + // module name: + + library fragment { + // package name: test + + // class name: test/A + // class name: test/Enum + // class name: test/Enum.ENTRY + // class name: test/Klass + + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.CLASS, kotlin/annotation/AnnotationTarget.CONSTRUCTOR, kotlin/annotation/AnnotationTarget.FUNCTION, kotlin/annotation/AnnotationTarget.PROPERTY, kotlin/annotation/AnnotationTarget.VALUE_PARAMETER, kotlin/annotation/AnnotationTarget.TYPE, kotlin/annotation/AnnotationTarget.TYPE_PARAMETER]) + public final annotation class test/A : kotlin/Annotation { + + public constructor() } - class Klass constructor() - fun function(param: Unit) - val property: Unit -} \ No newline at end of file + + public final enum class test/Enum : kotlin/Enum { + + private constructor() + + ENTRY, + + // has Enum.entries + } + + public final enum entry test/Enum.ENTRY : test/Enum { + } + + public final class test/Klass : kotlin/Any { + + public constructor() + } + + package { + + public final fun function(param: kotlin/Unit): kotlin/Unit + + public final val property: kotlin/Unit + public final get + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.v1.fir.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.v1.fir.txt new file mode 100644 index 00000000000..36a5d3c13f7 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.v1.fir.txt @@ -0,0 +1,50 @@ +library { + // module name: + + library fragment { + // package name: test + + // class name: test/A + // class name: test/Enum + // class name: test/Klass + + // signature: test/A|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.CLASS, kotlin/annotation/AnnotationTarget.CONSTRUCTOR, kotlin/annotation/AnnotationTarget.FUNCTION, kotlin/annotation/AnnotationTarget.PROPERTY, kotlin/annotation/AnnotationTarget.VALUE_PARAMETER, kotlin/annotation/AnnotationTarget.TYPE, kotlin/annotation/AnnotationTarget.TYPE_PARAMETER]) + public final annotation class test/A : kotlin/Annotation { + + // signature: test/A.|-5645683436151566731[0] + public constructor() + } + + // signature: test/Enum|null[0] + public final enum class test/Enum : kotlin/Enum { + + // signature: test/Enum.|-5645683436151566731[0] + private constructor() + + // signature: test/Enum.ENTRY|null[0] + ENTRY, + + // has Enum.entries + } + + // signature: test/Klass|null[0] + public final class test/Klass : kotlin/Any { + + // signature: test/Klass.|-5645683436151566731[0] + public constructor() + } + + package { + + // signature: test/function|5623997416410866984[0] + public final fun function(param: kotlin/Unit): kotlin/Unit + + // signature: test/property|4634558160746314112[0] + public final val property: kotlin/Unit + // signature: test/property.|4838831487146901942[0] + public final get + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.v1.txt index ff5a918a980..58a4f9a0f52 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.v1.txt @@ -1,15 +1,55 @@ -package test { - // Signature: test/A|null[0] - @Retention(value = AnnotationRetention.SOURCE) @Target(allowedTargets = {AnnotationTarget.CLASS, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.TYPE, AnnotationTarget.TYPE_PARAMETER}) annotation class A constructor() : Annotation - // Signature: test/Enum|null[0] - enum class Enum private constructor() : Enum { - // Signature: test/Enum.ENTRY|null[0] - enum entry ENTRY +library { + // module name: + + library fragment { + // package name: test + + // class name: test/A + // class name: test/Enum + // class name: test/Enum.ENTRY + // class name: test/Klass + + // signature: test/A|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.CLASS, kotlin/annotation/AnnotationTarget.CONSTRUCTOR, kotlin/annotation/AnnotationTarget.FUNCTION, kotlin/annotation/AnnotationTarget.PROPERTY, kotlin/annotation/AnnotationTarget.VALUE_PARAMETER, kotlin/annotation/AnnotationTarget.TYPE, kotlin/annotation/AnnotationTarget.TYPE_PARAMETER]) + public final annotation class test/A : kotlin/Annotation { + + // signature: test/A.|-5645683436151566731[0] + public constructor() } - // Signature: test/Klass|null[0] - class Klass constructor() - // Signature: test/function|5623997416410866984[0] - fun function(param: Unit) - // Signature: test/property|4634558160746314112[0] - val property: Unit + + // signature: test/Enum|null[0] + public final enum class test/Enum : kotlin/Enum { + + // signature: test/Enum.|-5645683436151566731[0] + private constructor() + + // signature: test/Enum.ENTRY|null[0] + ENTRY, + + // has Enum.entries + } + + // signature: test/Enum.ENTRY|null[0] + public final enum entry test/Enum.ENTRY : test/Enum { + } + + // signature: test/Klass|null[0] + public final class test/Klass : kotlin/Any { + + // signature: test/Klass.|-5645683436151566731[0] + public constructor() + } + + package { + + // signature: test/function|5623997416410866984[0] + public final fun function(param: kotlin/Unit): kotlin/Unit + + // signature: test/property|4634558160746314112[0] + public final val property: kotlin/Unit + // signature: test/property.|4838831487146901942[0] + public final get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.v2.fir.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.v2.fir.txt new file mode 100644 index 00000000000..58d3688569c --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.v2.fir.txt @@ -0,0 +1,50 @@ +library { + // module name: + + library fragment { + // package name: test + + // class name: test/A + // class name: test/Enum + // class name: test/Klass + + // signature: test/A|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.CLASS, kotlin/annotation/AnnotationTarget.CONSTRUCTOR, kotlin/annotation/AnnotationTarget.FUNCTION, kotlin/annotation/AnnotationTarget.PROPERTY, kotlin/annotation/AnnotationTarget.VALUE_PARAMETER, kotlin/annotation/AnnotationTarget.TYPE, kotlin/annotation/AnnotationTarget.TYPE_PARAMETER]) + public final annotation class test/A : kotlin/Annotation { + + // signature: test/A.|(){}[0] + public constructor() + } + + // signature: test/Enum|null[0] + public final enum class test/Enum : kotlin/Enum { + + // signature: test/Enum.|(){}[0] + private constructor() + + // signature: test/Enum.ENTRY|null[0] + ENTRY, + + // has Enum.entries + } + + // signature: test/Klass|null[0] + public final class test/Klass : kotlin/Any { + + // signature: test/Klass.|(){}[0] + public constructor() + } + + package { + + // signature: test/function|function(kotlin.Unit){0§}[0] + public final fun function(param: kotlin/Unit): kotlin/Unit + + // signature: test/property|{}property[0] + public final val property: kotlin/Unit + // signature: test/property.|(){}[0] + public final get + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.v2.txt index d9e1cf3c6ab..63e4fdfc475 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.v2.txt @@ -1,15 +1,55 @@ -package test { - // Signature: test/A|null[0] - @Retention(value = AnnotationRetention.SOURCE) @Target(allowedTargets = {AnnotationTarget.CLASS, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.TYPE, AnnotationTarget.TYPE_PARAMETER}) annotation class A constructor() : Annotation - // Signature: test/Enum|null[0] - enum class Enum private constructor() : Enum { - // Signature: test/Enum.ENTRY|null[0] - enum entry ENTRY +library { + // module name: + + library fragment { + // package name: test + + // class name: test/A + // class name: test/Enum + // class name: test/Enum.ENTRY + // class name: test/Klass + + // signature: test/A|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.CLASS, kotlin/annotation/AnnotationTarget.CONSTRUCTOR, kotlin/annotation/AnnotationTarget.FUNCTION, kotlin/annotation/AnnotationTarget.PROPERTY, kotlin/annotation/AnnotationTarget.VALUE_PARAMETER, kotlin/annotation/AnnotationTarget.TYPE, kotlin/annotation/AnnotationTarget.TYPE_PARAMETER]) + public final annotation class test/A : kotlin/Annotation { + + // signature: test/A.|(){}[0] + public constructor() } - // Signature: test/Klass|null[0] - class Klass constructor() - // Signature: test/function|function(kotlin.Unit){0§}[0] - fun function(param: Unit) - // Signature: test/property|{}property[0] - val property: Unit + + // signature: test/Enum|null[0] + public final enum class test/Enum : kotlin/Enum { + + // signature: test/Enum.|(){}[0] + private constructor() + + // signature: test/Enum.ENTRY|null[0] + ENTRY, + + // has Enum.entries + } + + // signature: test/Enum.ENTRY|null[0] + public final enum entry test/Enum.ENTRY : test/Enum { + } + + // signature: test/Klass|null[0] + public final class test/Klass : kotlin/Any { + + // signature: test/Klass.|(){}[0] + public constructor() + } + + package { + + // signature: test/function|function(kotlin.Unit){0§}[0] + public final fun function(param: kotlin/Unit): kotlin/Unit + + // signature: test/property|{}property[0] + public final val property: kotlin/Unit + // signature: test/property.|(){}[0] + public final get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/stringConcatenation.kt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/stringConcatenation.kt index 914c623e5cc..11144409406 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/stringConcatenation.kt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/stringConcatenation.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL object Obj { const val O = "O" val concat = "${O}K" diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/stringConcatenation.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/stringConcatenation.txt index e95aa8d5b9e..92491df623e 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/stringConcatenation.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/stringConcatenation.txt @@ -1,7 +1,27 @@ -package { - @Deprecated(message = "O/{id}") class Foo constructor() - object Obj { - const val O: String = "O" - val concat: String = "OK" +library { + // module name: + + library fragment { + // package name: + + // class name: Foo + // class name: Obj + + @kotlin/Deprecated(message = "O/{id}") + public final class Foo : kotlin/Any { + + public constructor() } -} \ No newline at end of file + + public final object Obj : kotlin/Any { + + private constructor() + + public final const val O: kotlin/String /* = "O" */ + public final get + + public final val concat: kotlin/String /* = "OK" */ + public final get + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/stringConcatenation.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/stringConcatenation.v1.txt index 286cc2aaa06..dfd5cfc5d89 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/stringConcatenation.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/stringConcatenation.v1.txt @@ -1,11 +1,35 @@ -package { - // Signature: /Foo|null[0] - @Deprecated(message = "O/{id}") class Foo constructor() - // Signature: /Obj|null[0] - object Obj { - // Signature: /Obj.O|-6675131087042329948[0] - const val O: String = "O" - // Signature: /Obj.concat|4194001668264387881[0] - val concat: String = "OK" +library { + // module name: + + library fragment { + // package name: + + // class name: Foo + // class name: Obj + + // signature: /Foo|null[0] + @kotlin/Deprecated(message = "O/{id}") + public final class Foo : kotlin/Any { + + // signature: /Foo.|-5645683436151566731[0] + public constructor() } + + // signature: /Obj|null[0] + public final object Obj : kotlin/Any { + + // signature: /Obj.|-5645683436151566731[0] + private constructor() + + // signature: /Obj.O|-6675131087042329948[0] + public final const val O: kotlin/String /* = "O" */ + // signature: /Obj.O.|3449384386782486809[0] + public final get + + // signature: /Obj.concat|4194001668264387881[0] + public final val concat: kotlin/String /* = "OK" */ + // signature: /Obj.concat.|7226754227535139280[0] + public final get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/stringConcatenation.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/stringConcatenation.v2.txt index 0d13cff7975..19e5fdd376a 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/stringConcatenation.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/stringConcatenation.v2.txt @@ -1,11 +1,35 @@ -package { - // Signature: /Foo|null[0] - @Deprecated(message = "O/{id}") class Foo constructor() - // Signature: /Obj|null[0] - object Obj { - // Signature: /Obj.O|{}O[0] - const val O: String = "O" - // Signature: /Obj.concat|{}concat[0] - val concat: String = "OK" +library { + // module name: + + library fragment { + // package name: + + // class name: Foo + // class name: Obj + + // signature: /Foo|null[0] + @kotlin/Deprecated(message = "O/{id}") + public final class Foo : kotlin/Any { + + // signature: /Foo.|(){}[0] + public constructor() } + + // signature: /Obj|null[0] + public final object Obj : kotlin/Any { + + // signature: /Obj.|(){}[0] + private constructor() + + // signature: /Obj.O|{}O[0] + public final const val O: kotlin/String /* = "O" */ + // signature: /Obj.O.|(){}[0] + public final get + + // signature: /Obj.concat|{}concat[0] + public final val concat: kotlin/String /* = "OK" */ + // signature: /Obj.concat.|(){}[0] + public final get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/typeParameterAnnotation.kt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/typeParameterAnnotation.kt index 4d6f25bb8c9..49c5d43f94d 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/typeParameterAnnotation.kt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/typeParameterAnnotation.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL package test @Retention(AnnotationRetention.BINARY) diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/typeParameterAnnotation.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/typeParameterAnnotation.txt index 940a6869cef..e85ecde2db0 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/typeParameterAnnotation.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/typeParameterAnnotation.txt @@ -1,6 +1,24 @@ -package test { - @Retention(value = AnnotationRetention.BINARY) @Target(allowedTargets = {AnnotationTarget.TYPE_PARAMETER}) annotation class Ann constructor(value: String) : Annotation { - val value: String +library { + // module name: + + library fragment { + // package name: test + + // class name: test/Ann + + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.BINARY) + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.TYPE_PARAMETER]) + public final annotation class test/Ann : kotlin/Annotation { + + public constructor(value: kotlin/String) + + public final val value: kotlin/String + public final get } - inline fun foo() -} \ No newline at end of file + + package { + + public final inline fun foo(): kotlin/Unit + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/typeParameterAnnotation.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/typeParameterAnnotation.v1.txt index 75b30962813..b76117804db 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/typeParameterAnnotation.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/typeParameterAnnotation.v1.txt @@ -1,9 +1,29 @@ -package test { - // Signature: test/Ann|null[0] - @Retention(value = AnnotationRetention.BINARY) @Target(allowedTargets = {AnnotationTarget.TYPE_PARAMETER}) annotation class Ann constructor(value: String) : Annotation { - // Signature: test/Ann.value|1987073854177347439[0] - val value: String +library { + // module name: + + library fragment { + // package name: test + + // class name: test/Ann + + // signature: test/Ann|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.BINARY) + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.TYPE_PARAMETER]) + public final annotation class test/Ann : kotlin/Annotation { + + // signature: test/Ann.|1280618353163213788[0] + public constructor(value: kotlin/String) + + // signature: test/Ann.value|1987073854177347439[0] + public final val value: kotlin/String + // signature: test/Ann.value.|3260093555963109437[0] + public final get } - // Signature: test/foo|-7822584347064313243[0] - inline fun foo() + + package { + + // signature: test/foo|-7822584347064313243[0] + public final inline fun foo(): kotlin/Unit + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/typeParameterAnnotation.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/typeParameterAnnotation.v2.txt index ff22ed972d3..748f0c5bb5d 100644 --- a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/typeParameterAnnotation.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/typeParameterAnnotation.v2.txt @@ -1,9 +1,29 @@ -package test { - // Signature: test/Ann|null[0] - @Retention(value = AnnotationRetention.BINARY) @Target(allowedTargets = {AnnotationTarget.TYPE_PARAMETER}) annotation class Ann constructor(value: String) : Annotation { - // Signature: test/Ann.value|{}value[0] - val value: String +library { + // module name: + + library fragment { + // package name: test + + // class name: test/Ann + + // signature: test/Ann|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.BINARY) + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.TYPE_PARAMETER]) + public final annotation class test/Ann : kotlin/Annotation { + + // signature: test/Ann.|(kotlin.String){}[0] + public constructor(value: kotlin/String) + + // signature: test/Ann.value|{}value[0] + public final val value: kotlin/String + // signature: test/Ann.value.|(){}[0] + public final get } - // Signature: test/foo|foo(){0§}[0] - inline fun foo() + + package { + + // signature: test/foo|foo(){0§}[0] + public final inline fun foo(): kotlin/Unit + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/data_class.fir.txt b/native/native.tests/testData/klib/dump-metadata/data_class.fir.txt new file mode 100644 index 00000000000..7eba22d0ab3 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/data_class.fir.txt @@ -0,0 +1,47 @@ +library { + // module name: + + library fragment { + // package name: test + + // class name: test/DataClass + // class name: test/DataObject + + public final data class test/DataClass : kotlin/Any { + + public constructor(intProp: kotlin/Int, stringProp: kotlin/String) + + public final /* synthesized */ operator fun component1(): kotlin/Int + + public final /* synthesized */ operator fun component2(): kotlin/String + + public final /* synthesized */ fun copy(intProp: kotlin/Int /* = ... */, stringProp: kotlin/String /* = ... */): test/DataClass + + public open /* synthesized */ operator fun equals(other: kotlin/Any?): kotlin/Boolean + + public open /* synthesized */ fun hashCode(): kotlin/Int + + public open /* synthesized */ fun toString(): kotlin/String + + public final val intProp: kotlin/Int + public final get + + public final val nonConstructorProp: kotlin/Int /* = 0 */ + public final get + + public final val stringProp: kotlin/String + public final get + } + + public final data object test/DataObject : kotlin/Any { + + private constructor() + + public open /* synthesized */ operator fun equals(other: kotlin/Any?): kotlin/Boolean + + public open /* synthesized */ fun hashCode(): kotlin/Int + + public open /* synthesized */ fun toString(): kotlin/String + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/data_class.txt b/native/native.tests/testData/klib/dump-metadata/data_class.txt deleted file mode 100644 index 6a477685a7b..00000000000 --- a/native/native.tests/testData/klib/dump-metadata/data_class.txt +++ /dev/null @@ -1,18 +0,0 @@ -package test { - data class DataClass constructor(intProp: Int, stringProp: String) { - val intProp: Int - val nonConstructorProp: Int = 0 - val stringProp: String - operator fun component1(): Int - operator fun component2(): String - fun copy(intProp: Int = ..., stringProp: String = ...): DataClass - override fun equals(other: Any?): Boolean - override fun hashCode(): Int - override fun toString(): String - } - data object DataObject { - override fun equals(other: Any?): Boolean - override fun hashCode(): Int - override fun toString(): String - } -} \ No newline at end of file diff --git a/native/native.tests/testData/klib/dump-metadata/data_class.v1.fir.txt b/native/native.tests/testData/klib/dump-metadata/data_class.v1.fir.txt new file mode 100644 index 00000000000..7fa05492c34 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/data_class.v1.fir.txt @@ -0,0 +1,66 @@ +library { + // module name: + + library fragment { + // package name: test + + // class name: test/DataClass + // class name: test/DataObject + + // signature: test/DataClass|null[0] + public final data class test/DataClass : kotlin/Any { + + // signature: test/DataClass.|-6994814679185246063[0] + public constructor(intProp: kotlin/Int, stringProp: kotlin/String) + + // signature: test/DataClass.component1|162597135895221648[0] + public final /* synthesized */ operator fun component1(): kotlin/Int + + // signature: test/DataClass.component2|3796717572321500973[0] + public final /* synthesized */ operator fun component2(): kotlin/String + + // signature: test/DataClass.copy|5893098757611139585[0] + public final /* synthesized */ fun copy(intProp: kotlin/Int /* = ... */, stringProp: kotlin/String /* = ... */): test/DataClass + + // signature: test/DataClass.equals|4638265728071529943[0] + public open /* synthesized */ operator fun equals(other: kotlin/Any?): kotlin/Boolean + + // signature: test/DataClass.hashCode|3409210261493131192[0] + public open /* synthesized */ fun hashCode(): kotlin/Int + + // signature: test/DataClass.toString|-1522858123163872138[0] + public open /* synthesized */ fun toString(): kotlin/String + + // signature: test/DataClass.intProp|-1954141164874420124[0] + public final val intProp: kotlin/Int + // signature: test/DataClass.intProp.|-1747412063459010494[0] + public final get + + // signature: test/DataClass.nonConstructorProp|-7591717016192191275[0] + public final val nonConstructorProp: kotlin/Int /* = 0 */ + // signature: test/DataClass.nonConstructorProp.|-4157169863676572493[0] + public final get + + // signature: test/DataClass.stringProp|36744939140285916[0] + public final val stringProp: kotlin/String + // signature: test/DataClass.stringProp.|-4778051063024598129[0] + public final get + } + + // signature: test/DataObject|null[0] + public final data object test/DataObject : kotlin/Any { + + // signature: test/DataObject.|-5645683436151566731[0] + private constructor() + + // signature: test/DataObject.equals|4638265728071529943[0] + public open /* synthesized */ operator fun equals(other: kotlin/Any?): kotlin/Boolean + + // signature: test/DataObject.hashCode|3409210261493131192[0] + public open /* synthesized */ fun hashCode(): kotlin/Int + + // signature: test/DataObject.toString|-1522858123163872138[0] + public open /* synthesized */ fun toString(): kotlin/String + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/data_class.v1.txt b/native/native.tests/testData/klib/dump-metadata/data_class.v1.txt deleted file mode 100644 index b81860654ac..00000000000 --- a/native/native.tests/testData/klib/dump-metadata/data_class.v1.txt +++ /dev/null @@ -1,32 +0,0 @@ -package test { - // Signature: test/DataClass|null[0] - data class DataClass constructor(intProp: Int, stringProp: String) { - // Signature: test/DataClass.intProp|-1954141164874420124[0] - val intProp: Int - // Signature: test/DataClass.nonConstructorProp|-7591717016192191275[0] - val nonConstructorProp: Int = 0 - // Signature: test/DataClass.stringProp|36744939140285916[0] - val stringProp: String - // Signature: test/DataClass.component1|162597135895221648[0] - operator fun component1(): Int - // Signature: test/DataClass.component2|3796717572321500973[0] - operator fun component2(): String - // Signature: test/DataClass.copy|5893098757611139585[0] - fun copy(intProp: Int = ..., stringProp: String = ...): DataClass - // Signature: test/DataClass.equals|4638265728071529943[0] - override fun equals(other: Any?): Boolean - // Signature: test/DataClass.hashCode|3409210261493131192[0] - override fun hashCode(): Int - // Signature: test/DataClass.toString|-1522858123163872138[0] - override fun toString(): String - } - // Signature: test/DataObject|null[0] - data object DataObject { - // Signature: test/DataObject.equals|4638265728071529943[0] - override fun equals(other: Any?): Boolean - // Signature: test/DataObject.hashCode|3409210261493131192[0] - override fun hashCode(): Int - // Signature: test/DataObject.toString|-1522858123163872138[0] - override fun toString(): String - } -} diff --git a/native/native.tests/testData/klib/dump-metadata/data_class.v2.fir.txt b/native/native.tests/testData/klib/dump-metadata/data_class.v2.fir.txt new file mode 100644 index 00000000000..cac6051334e --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/data_class.v2.fir.txt @@ -0,0 +1,66 @@ +library { + // module name: + + library fragment { + // package name: test + + // class name: test/DataClass + // class name: test/DataObject + + // signature: test/DataClass|null[0] + public final data class test/DataClass : kotlin/Any { + + // signature: test/DataClass.|(kotlin.Int;kotlin.String){}[0] + public constructor(intProp: kotlin/Int, stringProp: kotlin/String) + + // signature: test/DataClass.component1|component1(){}[0] + public final /* synthesized */ operator fun component1(): kotlin/Int + + // signature: test/DataClass.component2|component2(){}[0] + public final /* synthesized */ operator fun component2(): kotlin/String + + // signature: test/DataClass.copy|copy(kotlin.Int;kotlin.String){}[0] + public final /* synthesized */ fun copy(intProp: kotlin/Int /* = ... */, stringProp: kotlin/String /* = ... */): test/DataClass + + // signature: test/DataClass.equals|equals(kotlin.Any?){}[0] + public open /* synthesized */ operator fun equals(other: kotlin/Any?): kotlin/Boolean + + // signature: test/DataClass.hashCode|hashCode(){}[0] + public open /* synthesized */ fun hashCode(): kotlin/Int + + // signature: test/DataClass.toString|toString(){}[0] + public open /* synthesized */ fun toString(): kotlin/String + + // signature: test/DataClass.intProp|{}intProp[0] + public final val intProp: kotlin/Int + // signature: test/DataClass.intProp.|(){}[0] + public final get + + // signature: test/DataClass.nonConstructorProp|{}nonConstructorProp[0] + public final val nonConstructorProp: kotlin/Int /* = 0 */ + // signature: test/DataClass.nonConstructorProp.|(){}[0] + public final get + + // signature: test/DataClass.stringProp|{}stringProp[0] + public final val stringProp: kotlin/String + // signature: test/DataClass.stringProp.|(){}[0] + public final get + } + + // signature: test/DataObject|null[0] + public final data object test/DataObject : kotlin/Any { + + // signature: test/DataObject.|(){}[0] + private constructor() + + // signature: test/DataObject.equals|equals(kotlin.Any?){}[0] + public open /* synthesized */ operator fun equals(other: kotlin/Any?): kotlin/Boolean + + // signature: test/DataObject.hashCode|hashCode(){}[0] + public open /* synthesized */ fun hashCode(): kotlin/Int + + // signature: test/DataObject.toString|toString(){}[0] + public open /* synthesized */ fun toString(): kotlin/String + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/data_class.v2.txt b/native/native.tests/testData/klib/dump-metadata/data_class.v2.txt deleted file mode 100644 index ff92744d1cd..00000000000 --- a/native/native.tests/testData/klib/dump-metadata/data_class.v2.txt +++ /dev/null @@ -1,32 +0,0 @@ -package test { - // Signature: test/DataClass|null[0] - data class DataClass constructor(intProp: Int, stringProp: String) { - // Signature: test/DataClass.intProp|{}intProp[0] - val intProp: Int - // Signature: test/DataClass.nonConstructorProp|{}nonConstructorProp[0] - val nonConstructorProp: Int = 0 - // Signature: test/DataClass.stringProp|{}stringProp[0] - val stringProp: String - // Signature: test/DataClass.component1|component1(){}[0] - operator fun component1(): Int - // Signature: test/DataClass.component2|component2(){}[0] - operator fun component2(): String - // Signature: test/DataClass.copy|copy(kotlin.Int;kotlin.String){}[0] - fun copy(intProp: Int = ..., stringProp: String = ...): DataClass - // Signature: test/DataClass.equals|equals(kotlin.Any?){}[0] - override fun equals(other: Any?): Boolean - // Signature: test/DataClass.hashCode|hashCode(){}[0] - override fun hashCode(): Int - // Signature: test/DataClass.toString|toString(){}[0] - override fun toString(): String - } - // Signature: test/DataObject|null[0] - data object DataObject { - // Signature: test/DataObject.equals|equals(kotlin.Any?){}[0] - override fun equals(other: Any?): Boolean - // Signature: test/DataObject.hashCode|hashCode(){}[0] - override fun hashCode(): Int - // Signature: test/DataObject.toString|toString(){}[0] - override fun toString(): String - } -} diff --git a/native/native.tests/testData/klib/dump-metadata/klib/fieldAnnotations.txt b/native/native.tests/testData/klib/dump-metadata/klib/fieldAnnotations.txt index 2dce09c141e..f1d6b2a2468 100644 --- a/native/native.tests/testData/klib/dump-metadata/klib/fieldAnnotations.txt +++ b/native/native.tests/testData/klib/dump-metadata/klib/fieldAnnotations.txt @@ -1,9 +1,39 @@ -package test { - class A constructor() { - @field:Ann var x: Int - @delegate:Ann var y: Int +library { + // module name: + + library fragment { + // package name: test + + // class name: test/A + // class name: test/Ann + + public final class test/A : kotlin/Any { + + public constructor() + + public final var x: kotlin/Int + public final get + public final set + + public final /* delegated */ var y: kotlin/Int + public final /* non-default */ get + public final /* non-default */ set(: kotlin/Int) } - annotation class Ann constructor() : Annotation - @field:Ann var x: Int - @delegate:Ann var y: Int -} \ No newline at end of file + + public final annotation class test/Ann : kotlin/Annotation { + + public constructor() + } + + package { + + public final var x: kotlin/Int + public final get + public final set + + public final /* delegated */ var y: kotlin/Int + public final /* non-default */ get + public final /* non-default */ set(: kotlin/Int) + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/klib/fieldAnnotations.v1.txt b/native/native.tests/testData/klib/dump-metadata/klib/fieldAnnotations.v1.txt index ecc0c29859f..f0bf6d6a623 100644 --- a/native/native.tests/testData/klib/dump-metadata/klib/fieldAnnotations.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/klib/fieldAnnotations.v1.txt @@ -1,15 +1,55 @@ -package test { - // Signature: test/A|null[0] - class A constructor() { - // Signature: test/A.x|-8060530855978347579[0] - @field:Ann var x: Int - // Signature: test/A.y|3625903257357557171[0] - @delegate:Ann var y: Int +library { + // module name: + + library fragment { + // package name: test + + // class name: test/A + // class name: test/Ann + + // signature: test/A|null[0] + public final class test/A : kotlin/Any { + + // signature: test/A.|-5645683436151566731[0] + public constructor() + + // signature: test/A.x|-8060530855978347579[0] + public final var x: kotlin/Int + // signature: test/A.x.|1482705010654679335[0] + public final get + // signature: test/A.x.|-740209739415615559[0] + public final set + + // signature: test/A.y|3625903257357557171[0] + public final /* delegated */ var y: kotlin/Int + // signature: test/A.y.|-7902422373892128922[0] + public final /* non-default */ get + // signature: test/A.y.|2154335559382602722[0] + public final /* non-default */ set(: kotlin/Int) } - // Signature: test/Ann|null[0] - annotation class Ann constructor() : Annotation - // Signature: test/x|-8060530855978347579[0] - @field:Ann var x: Int - // Signature: test/y|3625903257357557171[0] - @delegate:Ann var y: Int + + // signature: test/Ann|null[0] + public final annotation class test/Ann : kotlin/Annotation { + + // signature: test/Ann.|-5645683436151566731[0] + public constructor() + } + + package { + + // signature: test/x|-8060530855978347579[0] + public final var x: kotlin/Int + // signature: test/x.|1482705010654679335[0] + public final get + // signature: test/x.|-740209739415615559[0] + public final set + + // signature: test/y|3625903257357557171[0] + public final /* delegated */ var y: kotlin/Int + // signature: test/y.|-7902422373892128922[0] + public final /* non-default */ get + // signature: test/y.|2154335559382602722[0] + public final /* non-default */ set(: kotlin/Int) + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/klib/fieldAnnotations.v2.txt b/native/native.tests/testData/klib/dump-metadata/klib/fieldAnnotations.v2.txt index f5085309ac3..47e570a1ba1 100644 --- a/native/native.tests/testData/klib/dump-metadata/klib/fieldAnnotations.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/klib/fieldAnnotations.v2.txt @@ -1,15 +1,55 @@ -package test { - // Signature: test/A|null[0] - class A constructor() { - // Signature: test/A.x|{}x[0] - @field:Ann var x: Int - // Signature: test/A.y|{}y[0] - @delegate:Ann var y: Int +library { + // module name: + + library fragment { + // package name: test + + // class name: test/A + // class name: test/Ann + + // signature: test/A|null[0] + public final class test/A : kotlin/Any { + + // signature: test/A.|(){}[0] + public constructor() + + // signature: test/A.x|{}x[0] + public final var x: kotlin/Int + // signature: test/A.x.|(){}[0] + public final get + // signature: test/A.x.|(kotlin.Int){}[0] + public final set + + // signature: test/A.y|{}y[0] + public final /* delegated */ var y: kotlin/Int + // signature: test/A.y.|(){}[0] + public final /* non-default */ get + // signature: test/A.y.|(kotlin.Int){}[0] + public final /* non-default */ set(: kotlin/Int) } - // Signature: test/Ann|null[0] - annotation class Ann constructor() : Annotation - // Signature: test/x|{}x[0] - @field:Ann var x: Int - // Signature: test/y|{}y[0] - @delegate:Ann var y: Int + + // signature: test/Ann|null[0] + public final annotation class test/Ann : kotlin/Annotation { + + // signature: test/Ann.|(){}[0] + public constructor() + } + + package { + + // signature: test/x|{}x[0] + public final var x: kotlin/Int + // signature: test/x.|(){}[0] + public final get + // signature: test/x.|(kotlin.Int){}[0] + public final set + + // signature: test/y|{}y[0] + public final /* delegated */ var y: kotlin/Int + // signature: test/y.|(){}[0] + public final /* non-default */ get + // signature: test/y.|(kotlin.Int){}[0] + public final /* non-default */ set(: kotlin/Int) + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/klib/receiverAnnotations.kt b/native/native.tests/testData/klib/dump-metadata/klib/receiverAnnotations.kt index fc56b534472..de2685d7748 100644 --- a/native/native.tests/testData/klib/dump-metadata/klib/receiverAnnotations.kt +++ b/native/native.tests/testData/klib/dump-metadata/klib/receiverAnnotations.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL package test annotation class Ann diff --git a/native/native.tests/testData/klib/dump-metadata/klib/receiverAnnotations.txt b/native/native.tests/testData/klib/dump-metadata/klib/receiverAnnotations.txt index fed8d36e370..76de844a1c9 100644 --- a/native/native.tests/testData/klib/dump-metadata/klib/receiverAnnotations.txt +++ b/native/native.tests/testData/klib/dump-metadata/klib/receiverAnnotations.txt @@ -1,9 +1,37 @@ -package test { - class A constructor() { - @Ann val @receiver:Ann Int.bar: Int - @Ann fun @receiver:Ann Int.foo(@Ann arg: Int): Int +library { + // module name: + + library fragment { + // package name: test + + // class name: test/A + // class name: test/Ann + + public final class test/A : kotlin/Any { + + public constructor() + + @test/Ann + public final fun kotlin/Int.foo(@test/Ann arg: kotlin/Int): kotlin/Int + + @test/Ann + public final val kotlin/Int.bar: kotlin/Int + public final /* non-default */ get } - annotation class Ann constructor() : Annotation - @Ann val @receiver:Ann Int.bar: Int - @Ann fun @receiver:Ann Int.foo(@Ann arg: Int): Int -} \ No newline at end of file + + public final annotation class test/Ann : kotlin/Annotation { + + public constructor() + } + + package { + + @test/Ann + public final fun kotlin/Int.foo(@test/Ann arg: kotlin/Int): kotlin/Int + + @test/Ann + public final val kotlin/Int.bar: kotlin/Int + public final /* non-default */ get + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/klib/receiverAnnotations.v1.txt b/native/native.tests/testData/klib/dump-metadata/klib/receiverAnnotations.v1.txt index 911d230485f..88ec16c8fd2 100644 --- a/native/native.tests/testData/klib/dump-metadata/klib/receiverAnnotations.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/klib/receiverAnnotations.v1.txt @@ -1,15 +1,47 @@ -package test { - // Signature: test/A|null[0] - class A constructor() { - // Signature: test/A.bar|6925958872823381534[0] - @Ann val @receiver:Ann Int.bar: Int - // Signature: test/A.foo|-5711085108413366035[0] - @Ann fun @receiver:Ann Int.foo(@Ann arg: Int): Int +library { + // module name: + + library fragment { + // package name: test + + // class name: test/A + // class name: test/Ann + + // signature: test/A|null[0] + public final class test/A : kotlin/Any { + + // signature: test/A.|-5645683436151566731[0] + public constructor() + + // signature: test/A.foo|-5711085108413366035[0] + @test/Ann + public final fun kotlin/Int.foo(@test/Ann arg: kotlin/Int): kotlin/Int + + // signature: test/A.bar|6925958872823381534[0] + @test/Ann + public final val kotlin/Int.bar: kotlin/Int + // signature: test/A.bar.|2955077643260793665[0] + public final /* non-default */ get } - // Signature: test/Ann|null[0] - annotation class Ann constructor() : Annotation - // Signature: test/bar|6925958872823381534[0] - @Ann val @receiver:Ann Int.bar: Int - // Signature: test/foo|-5711085108413366035[0] - @Ann fun @receiver:Ann Int.foo(@Ann arg: Int): Int + + // signature: test/Ann|null[0] + public final annotation class test/Ann : kotlin/Annotation { + + // signature: test/Ann.|-5645683436151566731[0] + public constructor() + } + + package { + + // signature: test/foo|-5711085108413366035[0] + @test/Ann + public final fun kotlin/Int.foo(@test/Ann arg: kotlin/Int): kotlin/Int + + // signature: test/bar|6925958872823381534[0] + @test/Ann + public final val kotlin/Int.bar: kotlin/Int + // signature: test/bar.|2955077643260793665[0] + public final /* non-default */ get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/klib/receiverAnnotations.v2.txt b/native/native.tests/testData/klib/dump-metadata/klib/receiverAnnotations.v2.txt index ab7bcfcf69c..fa4de37d4ce 100644 --- a/native/native.tests/testData/klib/dump-metadata/klib/receiverAnnotations.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/klib/receiverAnnotations.v2.txt @@ -1,15 +1,47 @@ -package test { - // Signature: test/A|null[0] - class A constructor() { - // Signature: test/A.bar|@kotlin.Int{}bar[0] - @Ann val @receiver:Ann Int.bar: Int - // Signature: test/A.foo|foo@kotlin.Int(kotlin.Int){}[0] - @Ann fun @receiver:Ann Int.foo(@Ann arg: Int): Int +library { + // module name: + + library fragment { + // package name: test + + // class name: test/A + // class name: test/Ann + + // signature: test/A|null[0] + public final class test/A : kotlin/Any { + + // signature: test/A.|(){}[0] + public constructor() + + // signature: test/A.foo|foo@kotlin.Int(kotlin.Int){}[0] + @test/Ann + public final fun kotlin/Int.foo(@test/Ann arg: kotlin/Int): kotlin/Int + + // signature: test/A.bar|@kotlin.Int{}bar[0] + @test/Ann + public final val kotlin/Int.bar: kotlin/Int + // signature: test/A.bar.|@kotlin.Int(){}[0] + public final /* non-default */ get } - // Signature: test/Ann|null[0] - annotation class Ann constructor() : Annotation - // Signature: test/bar|@kotlin.Int{}bar[0] - @Ann val @receiver:Ann Int.bar: Int - // Signature: test/foo|foo@kotlin.Int(kotlin.Int){}[0] - @Ann fun @receiver:Ann Int.foo(@Ann arg: Int): Int + + // signature: test/Ann|null[0] + public final annotation class test/Ann : kotlin/Annotation { + + // signature: test/Ann.|(){}[0] + public constructor() + } + + package { + + // signature: test/foo|foo@kotlin.Int(kotlin.Int){}[0] + @test/Ann + public final fun kotlin/Int.foo(@test/Ann arg: kotlin/Int): kotlin/Int + + // signature: test/bar|@kotlin.Int{}bar[0] + @test/Ann + public final val kotlin/Int.bar: kotlin/Int + // signature: test/bar.|@kotlin.Int(){}[0] + public final /* non-default */ get + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/kt55464_serializeTypeAnnotation.kt b/native/native.tests/testData/klib/dump-metadata/kt55464_serializeTypeAnnotation.kt index fefbfcd15db..dacb9943280 100644 --- a/native/native.tests/testData/klib/dump-metadata/kt55464_serializeTypeAnnotation.kt +++ b/native/native.tests/testData/klib/dump-metadata/kt55464_serializeTypeAnnotation.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL package test class C diff --git a/native/native.tests/testData/klib/dump-metadata/kt55464_serializeTypeAnnotation.txt b/native/native.tests/testData/klib/dump-metadata/kt55464_serializeTypeAnnotation.txt index 796537271c5..f1608a15b34 100644 --- a/native/native.tests/testData/klib/dump-metadata/kt55464_serializeTypeAnnotation.txt +++ b/native/native.tests/testData/klib/dump-metadata/kt55464_serializeTypeAnnotation.txt @@ -1,4 +1,19 @@ -package test { - class C constructor() - fun C.builder(c: C.() -> Unit) -} \ No newline at end of file +library { + // module name: + + library fragment { + // package name: test + + // class name: test/C + + public final class test/C : kotlin/Any { + + public constructor() + } + + package { + + public final fun test/C.builder(c: @kotlin/ExtensionFunctionType kotlin/Function1): kotlin/Unit + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/kt55464_serializeTypeAnnotation.v1.txt b/native/native.tests/testData/klib/dump-metadata/kt55464_serializeTypeAnnotation.v1.txt index 1f01c19cd62..6d41b1fbdb3 100644 --- a/native/native.tests/testData/klib/dump-metadata/kt55464_serializeTypeAnnotation.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/kt55464_serializeTypeAnnotation.v1.txt @@ -1,6 +1,22 @@ -package test { - // Signature: test/C|null[0] - class C constructor() - // Signature: test/builder|-5741056786925655007[0] - fun C.builder(c: C.() -> Unit) +library { + // module name: + + library fragment { + // package name: test + + // class name: test/C + + // signature: test/C|null[0] + public final class test/C : kotlin/Any { + + // signature: test/C.|-5645683436151566731[0] + public constructor() + } + + package { + + // signature: test/builder|-5741056786925655007[0] + public final fun test/C.builder(c: @kotlin/ExtensionFunctionType kotlin/Function1): kotlin/Unit + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/kt55464_serializeTypeAnnotation.v2.txt b/native/native.tests/testData/klib/dump-metadata/kt55464_serializeTypeAnnotation.v2.txt index 861e452f57c..8f706651f7f 100644 --- a/native/native.tests/testData/klib/dump-metadata/kt55464_serializeTypeAnnotation.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/kt55464_serializeTypeAnnotation.v2.txt @@ -1,6 +1,22 @@ -package test { - // Signature: test/C|null[0] - class C constructor() - // Signature: test/builder|builder@test.C(kotlin.Function1){}[0] - fun C.builder(c: C.() -> Unit) +library { + // module name: + + library fragment { + // package name: test + + // class name: test/C + + // signature: test/C|null[0] + public final class test/C : kotlin/Any { + + // signature: test/C.|(){}[0] + public constructor() + } + + package { + + // signature: test/builder|builder@test.C(kotlin.Function1){}[0] + public final fun test/C.builder(c: @kotlin/ExtensionFunctionType kotlin/Function1): kotlin/Unit + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/kt56018_value_parameters_annotations.kt b/native/native.tests/testData/klib/dump-metadata/kt56018_value_parameters_annotations.kt index 952b5d5498c..a871a66063f 100644 --- a/native/native.tests/testData/klib/dump-metadata/kt56018_value_parameters_annotations.kt +++ b/native/native.tests/testData/klib/dump-metadata/kt56018_value_parameters_annotations.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL package test annotation class Annotation diff --git a/native/native.tests/testData/klib/dump-metadata/kt56018_value_parameters_annotations.txt b/native/native.tests/testData/klib/dump-metadata/kt56018_value_parameters_annotations.txt index e22ed2fa88b..1334dab6bf8 100644 --- a/native/native.tests/testData/klib/dump-metadata/kt56018_value_parameters_annotations.txt +++ b/native/native.tests/testData/klib/dump-metadata/kt56018_value_parameters_annotations.txt @@ -1,4 +1,19 @@ -package test { - annotation class Annotation constructor() : Annotation - fun foo(@Annotation arg: Int) -} \ No newline at end of file +library { + // module name: + + library fragment { + // package name: test + + // class name: test/Annotation + + public final annotation class test/Annotation : kotlin/Annotation { + + public constructor() + } + + package { + + public final fun foo(@test/Annotation arg: kotlin/Int): kotlin/Unit + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/kt56018_value_parameters_annotations.v1.txt b/native/native.tests/testData/klib/dump-metadata/kt56018_value_parameters_annotations.v1.txt index 0c6187e44b8..79c12ec3dd6 100644 --- a/native/native.tests/testData/klib/dump-metadata/kt56018_value_parameters_annotations.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/kt56018_value_parameters_annotations.v1.txt @@ -1,6 +1,22 @@ -package test { - // Signature: test/Annotation|null[0] - annotation class Annotation constructor() : Annotation - // Signature: test/foo|-104159190164110731[0] - fun foo(@Annotation arg: Int) +library { + // module name: + + library fragment { + // package name: test + + // class name: test/Annotation + + // signature: test/Annotation|null[0] + public final annotation class test/Annotation : kotlin/Annotation { + + // signature: test/Annotation.|-5645683436151566731[0] + public constructor() + } + + package { + + // signature: test/foo|-104159190164110731[0] + public final fun foo(@test/Annotation arg: kotlin/Int): kotlin/Unit + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/kt56018_value_parameters_annotations.v2.txt b/native/native.tests/testData/klib/dump-metadata/kt56018_value_parameters_annotations.v2.txt index 71b81cb49ce..e91ec6bac9c 100644 --- a/native/native.tests/testData/klib/dump-metadata/kt56018_value_parameters_annotations.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/kt56018_value_parameters_annotations.v2.txt @@ -1,6 +1,22 @@ -package test { - // Signature: test/Annotation|null[0] - annotation class Annotation constructor() : Annotation - // Signature: test/foo|foo(kotlin.Int){}[0] - fun foo(@Annotation arg: Int) +library { + // module name: + + library fragment { + // package name: test + + // class name: test/Annotation + + // signature: test/Annotation|null[0] + public final annotation class test/Annotation : kotlin/Annotation { + + // signature: test/Annotation.|(){}[0] + public constructor() + } + + package { + + // signature: test/foo|foo(kotlin.Int){}[0] + public final fun foo(@test/Annotation arg: kotlin/Int): kotlin/Unit + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/property_accessors.fir.txt b/native/native.tests/testData/klib/dump-metadata/property_accessors.fir.txt new file mode 100644 index 00000000000..36f40515405 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/property_accessors.fir.txt @@ -0,0 +1,49 @@ +library { + // module name: + + library fragment { + // package name: test + + // class name: test/A + + public abstract class test/A : kotlin/Any { + + public constructor() + + public abstract val a: kotlin/Int + public abstract get + + public abstract var b: kotlin/Int + public abstract get + protected abstract /* non-default */ set(value: kotlin/Int) + + public final val c: kotlin/Int + public final get + + public final val d: kotlin/Int + public final /* non-default */ get + + public final var e: kotlin/Int + public final /* non-default */ get + public final /* non-default */ set(value: kotlin/Int) + + public final var f: kotlin/Int + public final get + private final /* non-default */ set(value: kotlin/Int) + + public open val g: kotlin/Int + public open get + + public open val h: kotlin/Int + public open /* non-default */ get + + public open var k: kotlin/Int + public open /* non-default */ get + public open /* non-default */ set(value: kotlin/Int) + + public open var l: kotlin/Int + public open get + protected open /* non-default */ set(value: kotlin/Int) + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/property_accessors.txt b/native/native.tests/testData/klib/dump-metadata/property_accessors.txt index 8e87b4c9996..30462ee4d84 100644 --- a/native/native.tests/testData/klib/dump-metadata/property_accessors.txt +++ b/native/native.tests/testData/klib/dump-metadata/property_accessors.txt @@ -1,17 +1,49 @@ -package test { - abstract class A constructor() { - abstract val a: Int - abstract var b: Int - protected set - val c: Int - val d: Int - var e: Int - var f: Int - private set - open val g: Int - open val h: Int - open var k: Int - open var l: Int - protected set +library { + // module name: + + library fragment { + // package name: test + + // class name: test/A + + public abstract class test/A : kotlin/Any { + + public constructor() + + public abstract val a: kotlin/Int + public abstract get + + public abstract var b: kotlin/Int + public abstract get + protected abstract /* non-default */ set(: kotlin/Int) + + public final val c: kotlin/Int + public final get + + public final val d: kotlin/Int + public final /* non-default */ get + + public final var e: kotlin/Int + public final /* non-default */ get + public final /* non-default */ set(value: kotlin/Int) + + public final var f: kotlin/Int + public final get + private final /* non-default */ set(: kotlin/Int) + + public open val g: kotlin/Int + public open get + + public open val h: kotlin/Int + public open /* non-default */ get + + public open var k: kotlin/Int + public open /* non-default */ get + public open /* non-default */ set(value: kotlin/Int) + + public open var l: kotlin/Int + public open get + protected open /* non-default */ set(: kotlin/Int) } -} \ No newline at end of file + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/property_accessors.v1.fir.txt b/native/native.tests/testData/klib/dump-metadata/property_accessors.v1.fir.txt new file mode 100644 index 00000000000..742a3d55577 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/property_accessors.v1.fir.txt @@ -0,0 +1,76 @@ +library { + // module name: + + library fragment { + // package name: test + + // class name: test/A + + // signature: test/A|null[0] + public abstract class test/A : kotlin/Any { + + // signature: test/A.|-5645683436151566731[0] + public constructor() + + // signature: test/A.a|-1200697420457237799[0] + public abstract val a: kotlin/Int + // signature: test/A.a.|6785176174175479410[0] + public abstract get + + // signature: test/A.b|772347207915745207[0] + public abstract var b: kotlin/Int + // signature: test/A.b.|812004636995167743[0] + public abstract get + // signature: test/A.b.|393614520529327556[0] + protected abstract /* non-default */ set(value: kotlin/Int) + + // signature: test/A.c|-4416962153448040627[0] + public final val c: kotlin/Int + // signature: test/A.c.|2368736057102379596[0] + public final get + + // signature: test/A.d|5174763769109925331[0] + public final val d: kotlin/Int + // signature: test/A.d.|-6701718004621354461[0] + public final /* non-default */ get + + // signature: test/A.e|-5812214850253973038[0] + public final var e: kotlin/Int + // signature: test/A.e.|-6737887868742748227[0] + public final /* non-default */ get + // signature: test/A.e.|352344213206183027[0] + public final /* non-default */ set(value: kotlin/Int) + + // signature: test/A.f|4026638760133205152[0] + public final var f: kotlin/Int + // signature: test/A.f.|2894053160377864677[0] + public final get + // signature: test/A.f.|3759249595734875908[0] + private final /* non-default */ set(value: kotlin/Int) + + // signature: test/A.g|417398068120208694[0] + public open val g: kotlin/Int + // signature: test/A.g.|-4721857388746086614[0] + public open get + + // signature: test/A.h|1569348114433471852[0] + public open val h: kotlin/Int + // signature: test/A.h.|2790317730163551900[0] + public open /* non-default */ get + + // signature: test/A.k|2162811783424158931[0] + public open var k: kotlin/Int + // signature: test/A.k.|2619553883593572199[0] + public open /* non-default */ get + // signature: test/A.k.|5348632633861416145[0] + public open /* non-default */ set(value: kotlin/Int) + + // signature: test/A.l|3307215303229595169[0] + public open var l: kotlin/Int + // signature: test/A.l.|3795442967620585[0] + public open get + // signature: test/A.l.|2538976218320322727[0] + protected open /* non-default */ set(value: kotlin/Int) + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/property_accessors.v1.txt b/native/native.tests/testData/klib/dump-metadata/property_accessors.v1.txt index a08a65a424f..a4ec46c1df8 100644 --- a/native/native.tests/testData/klib/dump-metadata/property_accessors.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/property_accessors.v1.txt @@ -1,31 +1,76 @@ -package test { - // Signature: test/A|null[0] - abstract class A constructor() { - // Signature: test/A.a|-1200697420457237799[0] - abstract val a: Int - // Signature: test/A.b|772347207915745207[0] - abstract var b: Int - // Signature: test/A.b.|393614520529327556[0] - protected set - // Signature: test/A.c|-4416962153448040627[0] - val c: Int - // Signature: test/A.d|5174763769109925331[0] - val d: Int - // Signature: test/A.e|-5812214850253973038[0] - var e: Int - // Signature: test/A.f|4026638760133205152[0] - var f: Int - // Signature: test/A.f.|3759249595734875908[0] - private set - // Signature: test/A.g|417398068120208694[0] - open val g: Int - // Signature: test/A.h|1569348114433471852[0] - open val h: Int - // Signature: test/A.k|2162811783424158931[0] - open var k: Int - // Signature: test/A.l|3307215303229595169[0] - open var l: Int - // Signature: test/A.l.|2538976218320322727[0] - protected set +library { + // module name: + + library fragment { + // package name: test + + // class name: test/A + + // signature: test/A|null[0] + public abstract class test/A : kotlin/Any { + + // signature: test/A.|-5645683436151566731[0] + public constructor() + + // signature: test/A.a|-1200697420457237799[0] + public abstract val a: kotlin/Int + // signature: test/A.a.|6785176174175479410[0] + public abstract get + + // signature: test/A.b|772347207915745207[0] + public abstract var b: kotlin/Int + // signature: test/A.b.|812004636995167743[0] + public abstract get + // signature: test/A.b.|393614520529327556[0] + protected abstract /* non-default */ set(: kotlin/Int) + + // signature: test/A.c|-4416962153448040627[0] + public final val c: kotlin/Int + // signature: test/A.c.|2368736057102379596[0] + public final get + + // signature: test/A.d|5174763769109925331[0] + public final val d: kotlin/Int + // signature: test/A.d.|-6701718004621354461[0] + public final /* non-default */ get + + // signature: test/A.e|-5812214850253973038[0] + public final var e: kotlin/Int + // signature: test/A.e.|-6737887868742748227[0] + public final /* non-default */ get + // signature: test/A.e.|352344213206183027[0] + public final /* non-default */ set(value: kotlin/Int) + + // signature: test/A.f|4026638760133205152[0] + public final var f: kotlin/Int + // signature: test/A.f.|2894053160377864677[0] + public final get + // signature: test/A.f.|3759249595734875908[0] + private final /* non-default */ set(: kotlin/Int) + + // signature: test/A.g|417398068120208694[0] + public open val g: kotlin/Int + // signature: test/A.g.|-4721857388746086614[0] + public open get + + // signature: test/A.h|1569348114433471852[0] + public open val h: kotlin/Int + // signature: test/A.h.|2790317730163551900[0] + public open /* non-default */ get + + // signature: test/A.k|2162811783424158931[0] + public open var k: kotlin/Int + // signature: test/A.k.|2619553883593572199[0] + public open /* non-default */ get + // signature: test/A.k.|5348632633861416145[0] + public open /* non-default */ set(value: kotlin/Int) + + // signature: test/A.l|3307215303229595169[0] + public open var l: kotlin/Int + // signature: test/A.l.|3795442967620585[0] + public open get + // signature: test/A.l.|2538976218320322727[0] + protected open /* non-default */ set(: kotlin/Int) } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/property_accessors.v2.fir.txt b/native/native.tests/testData/klib/dump-metadata/property_accessors.v2.fir.txt new file mode 100644 index 00000000000..c0079c81c32 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/property_accessors.v2.fir.txt @@ -0,0 +1,76 @@ +library { + // module name: + + library fragment { + // package name: test + + // class name: test/A + + // signature: test/A|null[0] + public abstract class test/A : kotlin/Any { + + // signature: test/A.|(){}[0] + public constructor() + + // signature: test/A.a|{}a[0] + public abstract val a: kotlin/Int + // signature: test/A.a.|(){}[0] + public abstract get + + // signature: test/A.b|{}b[0] + public abstract var b: kotlin/Int + // signature: test/A.b.|(){}[0] + public abstract get + // signature: test/A.b.|(kotlin.Int){}[0] + protected abstract /* non-default */ set(value: kotlin/Int) + + // signature: test/A.c|{}c[0] + public final val c: kotlin/Int + // signature: test/A.c.|(){}[0] + public final get + + // signature: test/A.d|{}d[0] + public final val d: kotlin/Int + // signature: test/A.d.|(){}[0] + public final /* non-default */ get + + // signature: test/A.e|{}e[0] + public final var e: kotlin/Int + // signature: test/A.e.|(){}[0] + public final /* non-default */ get + // signature: test/A.e.|(kotlin.Int){}[0] + public final /* non-default */ set(value: kotlin/Int) + + // signature: test/A.f|{}f[0] + public final var f: kotlin/Int + // signature: test/A.f.|(){}[0] + public final get + // signature: test/A.f.|(kotlin.Int){}[0] + private final /* non-default */ set(value: kotlin/Int) + + // signature: test/A.g|{}g[0] + public open val g: kotlin/Int + // signature: test/A.g.|(){}[0] + public open get + + // signature: test/A.h|{}h[0] + public open val h: kotlin/Int + // signature: test/A.h.|(){}[0] + public open /* non-default */ get + + // signature: test/A.k|{}k[0] + public open var k: kotlin/Int + // signature: test/A.k.|(){}[0] + public open /* non-default */ get + // signature: test/A.k.|(kotlin.Int){}[0] + public open /* non-default */ set(value: kotlin/Int) + + // signature: test/A.l|{}l[0] + public open var l: kotlin/Int + // signature: test/A.l.|(){}[0] + public open get + // signature: test/A.l.|(kotlin.Int){}[0] + protected open /* non-default */ set(value: kotlin/Int) + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/property_accessors.v2.txt b/native/native.tests/testData/klib/dump-metadata/property_accessors.v2.txt index becfcb7471e..74323c38046 100644 --- a/native/native.tests/testData/klib/dump-metadata/property_accessors.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/property_accessors.v2.txt @@ -1,31 +1,76 @@ -package test { - // Signature: test/A|null[0] - abstract class A constructor() { - // Signature: test/A.a|{}a[0] - abstract val a: Int - // Signature: test/A.b|{}b[0] - abstract var b: Int - // Signature: test/A.b.|(kotlin.Int){}[0] - protected set - // Signature: test/A.c|{}c[0] - val c: Int - // Signature: test/A.d|{}d[0] - val d: Int - // Signature: test/A.e|{}e[0] - var e: Int - // Signature: test/A.f|{}f[0] - var f: Int - // Signature: test/A.f.|(kotlin.Int){}[0] - private set - // Signature: test/A.g|{}g[0] - open val g: Int - // Signature: test/A.h|{}h[0] - open val h: Int - // Signature: test/A.k|{}k[0] - open var k: Int - // Signature: test/A.l|{}l[0] - open var l: Int - // Signature: test/A.l.|(kotlin.Int){}[0] - protected set +library { + // module name: + + library fragment { + // package name: test + + // class name: test/A + + // signature: test/A|null[0] + public abstract class test/A : kotlin/Any { + + // signature: test/A.|(){}[0] + public constructor() + + // signature: test/A.a|{}a[0] + public abstract val a: kotlin/Int + // signature: test/A.a.|(){}[0] + public abstract get + + // signature: test/A.b|{}b[0] + public abstract var b: kotlin/Int + // signature: test/A.b.|(){}[0] + public abstract get + // signature: test/A.b.|(kotlin.Int){}[0] + protected abstract /* non-default */ set(: kotlin/Int) + + // signature: test/A.c|{}c[0] + public final val c: kotlin/Int + // signature: test/A.c.|(){}[0] + public final get + + // signature: test/A.d|{}d[0] + public final val d: kotlin/Int + // signature: test/A.d.|(){}[0] + public final /* non-default */ get + + // signature: test/A.e|{}e[0] + public final var e: kotlin/Int + // signature: test/A.e.|(){}[0] + public final /* non-default */ get + // signature: test/A.e.|(kotlin.Int){}[0] + public final /* non-default */ set(value: kotlin/Int) + + // signature: test/A.f|{}f[0] + public final var f: kotlin/Int + // signature: test/A.f.|(){}[0] + public final get + // signature: test/A.f.|(kotlin.Int){}[0] + private final /* non-default */ set(: kotlin/Int) + + // signature: test/A.g|{}g[0] + public open val g: kotlin/Int + // signature: test/A.g.|(){}[0] + public open get + + // signature: test/A.h|{}h[0] + public open val h: kotlin/Int + // signature: test/A.h.|(){}[0] + public open /* non-default */ get + + // signature: test/A.k|{}k[0] + public open var k: kotlin/Int + // signature: test/A.k.|(){}[0] + public open /* non-default */ get + // signature: test/A.k.|(kotlin.Int){}[0] + public open /* non-default */ set(value: kotlin/Int) + + // signature: test/A.l|{}l[0] + public open var l: kotlin/Int + // signature: test/A.l.|(){}[0] + public open get + // signature: test/A.l.|(kotlin.Int){}[0] + protected open /* non-default */ set(: kotlin/Int) } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/type_annotations.kt b/native/native.tests/testData/klib/dump-metadata/type_annotations.kt index c8806612b18..c869b390ff2 100644 --- a/native/native.tests/testData/klib/dump-metadata/type_annotations.kt +++ b/native/native.tests/testData/klib/dump-metadata/type_annotations.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL package test @Retention(AnnotationRetention.RUNTIME) @Target(AnnotationTarget.TYPE) diff --git a/native/native.tests/testData/klib/dump-metadata/type_annotations.txt b/native/native.tests/testData/klib/dump-metadata/type_annotations.txt index a919adee25c..b5e85ff2236 100644 --- a/native/native.tests/testData/klib/dump-metadata/type_annotations.txt +++ b/native/native.tests/testData/klib/dump-metadata/type_annotations.txt @@ -1,8 +1,41 @@ -package test { - @Retention(value = AnnotationRetention.BINARY) @Target(allowedTargets = {AnnotationTarget.TYPE}) annotation class AnnoBinary constructor() : Annotation - @Retention(value = AnnotationRetention.RUNTIME) @Target(allowedTargets = {AnnotationTarget.TYPE}) annotation class AnnoRuntime constructor() : Annotation - @Retention(value = AnnotationRetention.SOURCE) @Target(allowedTargets = {AnnotationTarget.TYPE}) annotation class AnnoSource constructor() : Annotation - fun withBinaryAnnotation(id: @AnnoBinary Int) - fun withRuntimeAnnotation(id: @AnnoRuntime Int) - fun withSourceAnnotation(id: Int) -} \ No newline at end of file +library { + // module name: + + library fragment { + // package name: test + + // class name: test/AnnoBinary + // class name: test/AnnoRuntime + // class name: test/AnnoSource + + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.BINARY) + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.TYPE]) + public final annotation class test/AnnoBinary : kotlin/Annotation { + + public constructor() + } + + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.RUNTIME) + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.TYPE]) + public final annotation class test/AnnoRuntime : kotlin/Annotation { + + public constructor() + } + + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.TYPE]) + public final annotation class test/AnnoSource : kotlin/Annotation { + + public constructor() + } + + package { + + public final fun withBinaryAnnotation(id: @test/AnnoBinary kotlin/Int): kotlin/Unit + + public final fun withRuntimeAnnotation(id: @test/AnnoRuntime kotlin/Int): kotlin/Unit + + public final fun withSourceAnnotation(id: kotlin/Int): kotlin/Unit + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/type_annotations.v1.txt b/native/native.tests/testData/klib/dump-metadata/type_annotations.v1.txt index 29626563a38..d56d1ceda5b 100644 --- a/native/native.tests/testData/klib/dump-metadata/type_annotations.v1.txt +++ b/native/native.tests/testData/klib/dump-metadata/type_annotations.v1.txt @@ -1,14 +1,50 @@ -package test { - // Signature: test/AnnoBinary|null[0] - @Retention(value = AnnotationRetention.BINARY) @Target(allowedTargets = {AnnotationTarget.TYPE}) annotation class AnnoBinary constructor() : Annotation - // Signature: test/AnnoRuntime|null[0] - @Retention(value = AnnotationRetention.RUNTIME) @Target(allowedTargets = {AnnotationTarget.TYPE}) annotation class AnnoRuntime constructor() : Annotation - // Signature: test/AnnoSource|null[0] - @Retention(value = AnnotationRetention.SOURCE) @Target(allowedTargets = {AnnotationTarget.TYPE}) annotation class AnnoSource constructor() : Annotation - // Signature: test/withBinaryAnnotation|-5614294297255841421[0] - fun withBinaryAnnotation(id: @AnnoBinary Int) - // Signature: test/withRuntimeAnnotation|-6394651783725815393[0] - fun withRuntimeAnnotation(id: @AnnoRuntime Int) - // Signature: test/withSourceAnnotation|-44362520776994771[0] - fun withSourceAnnotation(id: Int) +library { + // module name: + + library fragment { + // package name: test + + // class name: test/AnnoBinary + // class name: test/AnnoRuntime + // class name: test/AnnoSource + + // signature: test/AnnoBinary|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.BINARY) + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.TYPE]) + public final annotation class test/AnnoBinary : kotlin/Annotation { + + // signature: test/AnnoBinary.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoRuntime|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.RUNTIME) + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.TYPE]) + public final annotation class test/AnnoRuntime : kotlin/Annotation { + + // signature: test/AnnoRuntime.|-5645683436151566731[0] + public constructor() + } + + // signature: test/AnnoSource|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.TYPE]) + public final annotation class test/AnnoSource : kotlin/Annotation { + + // signature: test/AnnoSource.|-5645683436151566731[0] + public constructor() + } + + package { + + // signature: test/withBinaryAnnotation|-5614294297255841421[0] + public final fun withBinaryAnnotation(id: @test/AnnoBinary kotlin/Int): kotlin/Unit + + // signature: test/withRuntimeAnnotation|-6394651783725815393[0] + public final fun withRuntimeAnnotation(id: @test/AnnoRuntime kotlin/Int): kotlin/Unit + + // signature: test/withSourceAnnotation|-44362520776994771[0] + public final fun withSourceAnnotation(id: kotlin/Int): kotlin/Unit + } + } } diff --git a/native/native.tests/testData/klib/dump-metadata/type_annotations.v2.txt b/native/native.tests/testData/klib/dump-metadata/type_annotations.v2.txt index da207a21d19..73ac59c3db4 100644 --- a/native/native.tests/testData/klib/dump-metadata/type_annotations.v2.txt +++ b/native/native.tests/testData/klib/dump-metadata/type_annotations.v2.txt @@ -1,14 +1,50 @@ -package test { - // Signature: test/AnnoBinary|null[0] - @Retention(value = AnnotationRetention.BINARY) @Target(allowedTargets = {AnnotationTarget.TYPE}) annotation class AnnoBinary constructor() : Annotation - // Signature: test/AnnoRuntime|null[0] - @Retention(value = AnnotationRetention.RUNTIME) @Target(allowedTargets = {AnnotationTarget.TYPE}) annotation class AnnoRuntime constructor() : Annotation - // Signature: test/AnnoSource|null[0] - @Retention(value = AnnotationRetention.SOURCE) @Target(allowedTargets = {AnnotationTarget.TYPE}) annotation class AnnoSource constructor() : Annotation - // Signature: test/withBinaryAnnotation|withBinaryAnnotation(kotlin.Int){}[0] - fun withBinaryAnnotation(id: @AnnoBinary Int) - // Signature: test/withRuntimeAnnotation|withRuntimeAnnotation(kotlin.Int){}[0] - fun withRuntimeAnnotation(id: @AnnoRuntime Int) - // Signature: test/withSourceAnnotation|withSourceAnnotation(kotlin.Int){}[0] - fun withSourceAnnotation(id: Int) +library { + // module name: + + library fragment { + // package name: test + + // class name: test/AnnoBinary + // class name: test/AnnoRuntime + // class name: test/AnnoSource + + // signature: test/AnnoBinary|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.BINARY) + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.TYPE]) + public final annotation class test/AnnoBinary : kotlin/Annotation { + + // signature: test/AnnoBinary.|(){}[0] + public constructor() + } + + // signature: test/AnnoRuntime|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.RUNTIME) + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.TYPE]) + public final annotation class test/AnnoRuntime : kotlin/Annotation { + + // signature: test/AnnoRuntime.|(){}[0] + public constructor() + } + + // signature: test/AnnoSource|null[0] + @kotlin/annotation/Retention(value = kotlin/annotation/AnnotationRetention.SOURCE) + @kotlin/annotation/Target(allowedTargets = [kotlin/annotation/AnnotationTarget.TYPE]) + public final annotation class test/AnnoSource : kotlin/Annotation { + + // signature: test/AnnoSource.|(){}[0] + public constructor() + } + + package { + + // signature: test/withBinaryAnnotation|withBinaryAnnotation(kotlin.Int){}[0] + public final fun withBinaryAnnotation(id: @test/AnnoBinary kotlin/Int): kotlin/Unit + + // signature: test/withRuntimeAnnotation|withRuntimeAnnotation(kotlin.Int){}[0] + public final fun withRuntimeAnnotation(id: @test/AnnoRuntime kotlin/Int): kotlin/Unit + + // signature: test/withSourceAnnotation|withSourceAnnotation(kotlin.Int){}[0] + public final fun withSourceAnnotation(id: kotlin/Int): kotlin/Unit + } + } } diff --git a/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/AbstractNativeKlibDumpMetadataTest.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/AbstractNativeKlibDumpMetadataTest.kt index 71451c844a0..9137ada9e74 100644 --- a/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/AbstractNativeKlibDumpMetadataTest.kt +++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/AbstractNativeKlibDumpMetadataTest.kt @@ -5,7 +5,6 @@ package org.jetbrains.kotlin.konan.test.blackbox -import com.intellij.openapi.util.text.StringUtilRt import com.intellij.testFramework.TestDataFile import org.jetbrains.kotlin.konan.test.blackbox.support.* import org.jetbrains.kotlin.konan.test.blackbox.support.compilation.TestCompilationArtifact.KLIB @@ -14,12 +13,15 @@ import org.jetbrains.kotlin.konan.test.blackbox.support.compilation.TestCompilat import org.jetbrains.kotlin.konan.test.blackbox.support.group.UsePartialLinkage import org.jetbrains.kotlin.konan.test.blackbox.support.runner.TestRunChecks import org.jetbrains.kotlin.konan.test.blackbox.support.settings.KotlinNativeClassLoader +import org.jetbrains.kotlin.konan.test.blackbox.support.settings.PipelineType import org.jetbrains.kotlin.konan.test.blackbox.support.settings.Timeouts import org.jetbrains.kotlin.konan.test.blackbox.support.util.getAbsoluteFile import org.jetbrains.kotlin.konan.test.blackbox.support.util.dumpMetadata import org.jetbrains.kotlin.library.KotlinIrSignatureVersion import org.jetbrains.kotlin.test.services.JUnit5Assertions.assertEqualsToFile +import org.jetbrains.kotlin.test.services.JUnit5Assertions.fail import org.jetbrains.kotlin.test.utils.withSuffixAndExtension +import org.jetbrains.kotlin.utils.addToStdlib.runIf import org.junit.jupiter.api.Tag import java.io.File @@ -37,23 +39,37 @@ abstract class AbstractNativeKlibDumpMetadataTest : AbstractNativeSimpleTest() { val kotlinNativeClassLoader = testRunSettings.get() val klib: KLIB = testCompilationResult.assertSuccess().resultingArtifact + val isFir = testRunSettings.get() == PipelineType.K2 + val isFirIdentical = firIdentical(testPathFull) + (KotlinIrSignatureVersion.CURRENTLY_SUPPORTED_VERSIONS + null).forEach { signatureVersion: KotlinIrSignatureVersion? -> val metadataDump = klib.dumpMetadata( kotlinNativeClassLoader.classLoader, printSignatures = signatureVersion != null, signatureVersion ) - val filteredMetadataDump = StringUtilRt.convertLineSeparators(filterMetadataDump(metadataDump)) - val goldenDataFile = testPathFull.withSuffixAndExtension( - suffix = signatureVersion?.let { ".v${it.number}" } ?: "", - extension = "txt" - ) + val testDataFileK1 = testDataFile(testPathFull, signatureVersion, isFir = false) + val testDataFileK2 = testDataFile(testPathFull, signatureVersion, isFir = true) - assertEqualsToFile(goldenDataFile, filteredMetadataDump) + checkTestDataFilesNotEqual(testPathFull, testDataFileK1, testDataFileK2) + + val testDataFile = if (isFir && !isFirIdentical) testDataFileK2 else testDataFileK1 + + assertEqualsToFile(testDataFile, metadataDump) } } + private fun testDataFile(testPathFull: File, signatureVersion: KotlinIrSignatureVersion?, isFir: Boolean): File { + val versionSpecificSuffix = signatureVersion?.let { ".v${it.number}" }.orEmpty() + val firSpecificSuffix = runIf(isFir) { ".fir" }.orEmpty() + + return testPathFull.withSuffixAndExtension( + suffix = "$versionSpecificSuffix$firSpecificSuffix", + extension = "txt" + ) + } + private fun generateTestCaseWithSingleSource(source: File, extraArgs: List): TestCase { val moduleName: String = source.name val module = TestModule.Exclusive(moduleName, emptySet(), emptySet(), emptySet()) @@ -72,25 +88,27 @@ abstract class AbstractNativeKlibDumpMetadataTest : AbstractNativeSimpleTest() { } } - // Remove intermediate "}\n\npackage ABC {\n" parts. - private fun filterMetadataDump(contents: String): String { - var packageLineMet = false - return contents.lineSequence() - .dropWhile { line -> line.isBlank() } - .filter { line -> - when { - line.isBlank() -> false - line.startsWith("package ") -> { - if (packageLineMet) - false - else { - packageLineMet = true - true - } - } - line == "}" -> false - else -> true + private fun checkTestDataFilesNotEqual(kotlinTestDataFile: File, testDataFileK1: File, testDataFileK2: File) { + if (testDataFileK1.exists() && testDataFileK2.exists()) { + val originalText = testDataFileK1.readText().trimEnd() + val firText = testDataFileK2.readText().trimEnd() + + val sameDumps = originalText == firText + + if (sameDumps) { + testDataFileK2.delete() + + kotlinTestDataFile.writeText("// FIR_IDENTICAL\n" + kotlinTestDataFile.readText()) + + fail { + """ + Dump files are equal. Please re-run the test. + K1: ${testDataFileK1.absolutePath} + K2: ${testDataFileK2.absolutePath} + """.trimIndent() } - }.joinToString(separator = "\n", postfix = "\n}") + } + } } + } diff --git a/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/support/util/TestCompilationArtifacts.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/support/util/TestCompilationArtifacts.kt index 7ad143a34e5..4bf69ec1768 100644 --- a/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/support/util/TestCompilationArtifacts.kt +++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/support/util/TestCompilationArtifacts.kt @@ -29,7 +29,8 @@ internal fun TestCompilationArtifact.KLIB.dumpMetadata( klibFile = klibFile, functionName = "dumpMetadata", /* printSignatures= */ printSignatures, - /* signatureVersion= */ signatureVersion?.let { getSignatureVersionForIsolatedClassLoader(kotlinNativeClassLoader, signatureVersion) } + /* signatureVersion= */ signatureVersion?.let { getSignatureVersionForIsolatedClassLoader(kotlinNativeClassLoader, signatureVersion) }, + /* testMode= */ true ) internal fun TestCompilationArtifact.KLIB.dumpIr(