FIR2IR: set "external stub" origin for external enum entries

This commit is contained in:
Mikhail Glukhikh
2020-02-26 10:53:01 +03:00
parent 3a3d6e740c
commit 5b3b35cd78
4 changed files with 8 additions and 4 deletions
@@ -967,7 +967,11 @@ class Fir2IrDeclarationStorage(
fun getIrValueSymbol(firVariableSymbol: FirVariableSymbol<*>): IrSymbol {
return when (val firDeclaration = firVariableSymbol.fir) {
is FirEnumEntry -> {
val irEnumEntry = getIrEnumEntry(firDeclaration)
val containingFile = firProvider.getFirCallableContainerFile(firVariableSymbol)
val irEnumEntry = getIrEnumEntry(
firDeclaration,
origin = if (containingFile == null) IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB else IrDeclarationOrigin.DEFINED
)
irSymbolTable.referenceEnumEntry(irEnumEntry.descriptor)
}
is FirValueParameter -> {
@@ -3,7 +3,7 @@ FILE fqName:test fileName:/fileAnnotations.kt
A(x = 'File annotation')
CLASS ANNOTATION_CLASS name:A modality:FINAL visibility:public superTypes:[kotlin.Annotation]
annotations:
Target(allowedTargets = GET_ENUM 'ENUM_ENTRY name:FILE' type=kotlin.annotation.AnnotationTarget)
Target(allowedTargets = GET_ENUM 'ENUM_ENTRY IR_EXTERNAL_DECLARATION_STUB name:FILE' type=kotlin.annotation.AnnotationTarget)
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:test.A
CONSTRUCTOR visibility:public <> (x:kotlin.String) returnType:test.A [primary]
VALUE_PARAMETER name:x index:0 type:kotlin.String
@@ -1,7 +1,7 @@
FILE fqName:<root> fileName:/typeAliasesWithAnnotations.kt
CLASS ANNOTATION_CLASS name:TestAnn modality:FINAL visibility:public superTypes:[kotlin.Annotation]
annotations:
Target(allowedTargets = GET_ENUM 'ENUM_ENTRY name:TYPEALIAS' type=kotlin.annotation.AnnotationTarget)
Target(allowedTargets = GET_ENUM 'ENUM_ENTRY IR_EXTERNAL_DECLARATION_STUB name:TYPEALIAS' type=kotlin.annotation.AnnotationTarget)
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestAnn
CONSTRUCTOR visibility:public <> (x:kotlin.String) returnType:<root>.TestAnn [primary]
VALUE_PARAMETER name:x index:0 type:kotlin.String
@@ -1,7 +1,7 @@
FILE fqName:<root> fileName:/typeParametersWithAnnotations.kt
CLASS ANNOTATION_CLASS name:Anno modality:FINAL visibility:public superTypes:[kotlin.Annotation]
annotations:
Target(allowedTargets = GET_ENUM 'ENUM_ENTRY name:TYPE_PARAMETER' type=kotlin.annotation.AnnotationTarget)
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>.Anno
CONSTRUCTOR visibility:public <> () returnType:<root>.Anno [primary]
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]