Generate IR for annotation class constructors.

This commit is contained in:
Pavel Kunyavskiy
2021-09-14 19:09:12 +03:00
committed by Space
parent 773c82ae48
commit a40022efcd
100 changed files with 743 additions and 244 deletions
@@ -1,13 +1,23 @@
annotation class Storage : Annotation {
constructor(value: String) /* primary */
open annotation class Storage : Annotation {
constructor(value: String) /* primary */ {
super/*Any*/()
/* <init>() */
}
val value: String
field = value
get
}
annotation class State : Annotation {
constructor(name: String, storages: Array<Storage>) /* primary */
open annotation class State : Annotation {
constructor(name: String, storages: Array<Storage>) /* primary */ {
super/*Any*/()
/* <init>() */
}
val name: String
field = name
get
@@ -27,4 +37,3 @@ class Test {
}
}
@@ -1,8 +1,11 @@
FILE fqName:<root> fileName:/AnnotationInAnnotation.kt
CLASS ANNOTATION_CLASS name:Storage modality:FINAL visibility:public superTypes:[kotlin.Annotation]
CLASS ANNOTATION_CLASS name:Storage modality:OPEN visibility:public superTypes:[kotlin.Annotation]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Storage
CONSTRUCTOR visibility:public <> (value:kotlin.String) returnType:<root>.Storage [primary]
VALUE_PARAMETER name:value index:0 type:kotlin.String
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ANNOTATION_CLASS name:Storage modality:OPEN visibility:public superTypes:[kotlin.Annotation]'
PROPERTY name:value visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:value type:kotlin.String visibility:private [final]
EXPRESSION_BODY
@@ -27,11 +30,14 @@ FILE fqName:<root> fileName:/AnnotationInAnnotation.kt
overridden:
public open fun toString (): kotlin.String [fake_override] declared in kotlin.Annotation
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS ANNOTATION_CLASS name:State modality:FINAL visibility:public superTypes:[kotlin.Annotation]
CLASS ANNOTATION_CLASS name:State modality:OPEN visibility:public superTypes:[kotlin.Annotation]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.State
CONSTRUCTOR visibility:public <> (name:kotlin.String, storages:kotlin.Array<<root>.Storage>) returnType:<root>.State [primary]
VALUE_PARAMETER name:name index:0 type:kotlin.String
VALUE_PARAMETER name:storages index:1 type:kotlin.Array<<root>.Storage>
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ANNOTATION_CLASS name:State modality:OPEN visibility:public superTypes:[kotlin.Annotation]'
PROPERTY name:name visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:name type:kotlin.String visibility:private [final]
EXPRESSION_BODY
@@ -1,6 +1,11 @@
@Target(allowedTargets = [AnnotationTarget.TYPE])
annotation class TypeAnn : Annotation {
constructor(name: String) /* primary */
open annotation class TypeAnn : Annotation {
constructor(name: String) /* primary */ {
super/*Any*/()
/* <init>() */
}
val name: String
field = name
get
@@ -8,15 +13,23 @@ annotation class TypeAnn : Annotation {
}
@Target(allowedTargets = [AnnotationTarget.TYPE_PARAMETER])
annotation class TypeParameterAnn : Annotation {
constructor() /* primary */
open annotation class TypeParameterAnn : Annotation {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
@Target(allowedTargets = [AnnotationTarget.TYPE_PARAMETER])
@Retention(value = AnnotationRetention.BINARY)
annotation class TypeParameterAnnBinary : Annotation {
constructor() /* primary */
open annotation class TypeParameterAnnBinary : Annotation {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
@@ -1,10 +1,13 @@
FILE fqName:<root> fileName:/TypeParameterBounds.kt
CLASS ANNOTATION_CLASS name:TypeAnn modality:FINAL visibility:public superTypes:[kotlin.Annotation]
CLASS ANNOTATION_CLASS name:TypeAnn modality:OPEN visibility:public superTypes:[kotlin.Annotation]
annotations:
Target(allowedTargets = [GET_ENUM 'ENUM_ENTRY IR_EXTERNAL_DECLARATION_STUB name:TYPE' type=kotlin.annotation.AnnotationTarget])
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TypeAnn
CONSTRUCTOR visibility:public <> (name:kotlin.String) returnType:<root>.TypeAnn [primary]
VALUE_PARAMETER name:name index:0 type:kotlin.String
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ANNOTATION_CLASS name:TypeAnn modality:OPEN visibility:public superTypes:[kotlin.Annotation]'
PROPERTY name:name visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:name type:kotlin.String visibility:private [final]
EXPRESSION_BODY
@@ -29,11 +32,14 @@ FILE fqName:<root> fileName:/TypeParameterBounds.kt
overridden:
public open fun toString (): kotlin.String [fake_override] declared in kotlin.Annotation
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS ANNOTATION_CLASS name:TypeParameterAnn modality:FINAL visibility:public superTypes:[kotlin.Annotation]
CLASS ANNOTATION_CLASS name:TypeParameterAnn modality:OPEN visibility:public superTypes:[kotlin.Annotation]
annotations:
Target(allowedTargets = [GET_ENUM 'ENUM_ENTRY IR_EXTERNAL_DECLARATION_STUB name:TYPE_PARAMETER' type=kotlin.annotation.AnnotationTarget])
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TypeParameterAnn
CONSTRUCTOR visibility:public <> () returnType:<root>.TypeParameterAnn [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ANNOTATION_CLASS name:TypeParameterAnn modality:OPEN visibility:public superTypes:[kotlin.Annotation]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in kotlin.Annotation
@@ -47,12 +53,15 @@ FILE fqName:<root> fileName:/TypeParameterBounds.kt
overridden:
public open fun toString (): kotlin.String [fake_override] declared in kotlin.Annotation
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS ANNOTATION_CLASS name:TypeParameterAnnBinary modality:FINAL visibility:public superTypes:[kotlin.Annotation]
CLASS ANNOTATION_CLASS name:TypeParameterAnnBinary modality:OPEN visibility:public superTypes:[kotlin.Annotation]
annotations:
Target(allowedTargets = [GET_ENUM 'ENUM_ENTRY IR_EXTERNAL_DECLARATION_STUB name:TYPE_PARAMETER' type=kotlin.annotation.AnnotationTarget])
Retention(value = GET_ENUM 'ENUM_ENTRY IR_EXTERNAL_DECLARATION_STUB name:BINARY' type=kotlin.annotation.AnnotationRetention)
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TypeParameterAnnBinary
CONSTRUCTOR visibility:public <> () returnType:<root>.TypeParameterAnnBinary [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ANNOTATION_CLASS name:TypeParameterAnnBinary modality:OPEN visibility:public superTypes:[kotlin.Annotation]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in kotlin.Annotation