IR: drop IrFile.fileAnnotations (it already has annotations anyway)

This commit is contained in:
Dmitry Petrov
2019-03-14 16:10:57 +03:00
parent b42aa39033
commit 110a15d395
8 changed files with 7 additions and 28 deletions
@@ -186,9 +186,6 @@ class RenderIrElementWithDescriptorsVisitor : IrElementVisitor<String, Nothing?>
internal fun IrDeclaration.name(): String = internal fun IrDeclaration.name(): String =
descriptor.let { it.name.toString() } descriptor.let { it.name.toString() }
internal fun IrDeclaration.renderDeclared(): String =
DECLARATION_RENDERER.render(this.descriptor)
internal fun DeclarationDescriptor.ref(): String = internal fun DeclarationDescriptor.ref(): String =
if (this is ReceiverParameterDescriptor) if (this is ReceiverParameterDescriptor)
"<receiver: ${containingDeclaration.ref()}>" "<receiver: ${containingDeclaration.ref()}>"
@@ -198,8 +195,6 @@ class RenderIrElementWithDescriptorsVisitor : IrElementVisitor<String, Nothing?>
internal fun KotlinType.render(): String = internal fun KotlinType.render(): String =
DECLARATION_RENDERER.renderType(this) DECLARATION_RENDERER.renderType(this)
internal fun IrDeclaration.renderOrigin(): String =
if (origin != IrDeclarationOrigin.DEFINED) origin.toString() + " " else ""
} }
} }
@@ -220,11 +215,11 @@ class DumpIrTreeWithDescriptorsVisitor(out: Appendable) : IrElementVisitor<Unit,
override fun visitFile(declaration: IrFile, data: String) { override fun visitFile(declaration: IrFile, data: String) {
declaration.dumpLabeledElementWith(data) { declaration.dumpLabeledElementWith(data) {
if (declaration.fileAnnotations.isNotEmpty()) { if (declaration.annotations.isNotEmpty()) {
printer.println("fileAnnotations:") printer.println("annotations:")
indented { indented {
declaration.fileAnnotations.forEach { declaration.annotations.forEach {
printer.println(ANNOTATIONS_RENDERER.renderAnnotation(it)) it.accept(this, "")
} }
} }
} }
@@ -62,7 +62,6 @@ class ModuleGenerator(override val context: GeneratorContext) : Generator {
for (ktAnnotationEntry in ktFile.annotationEntries) { for (ktAnnotationEntry in ktFile.annotationEntries) {
val annotationDescriptor = getOrFail(BindingContext.ANNOTATION, ktAnnotationEntry) val annotationDescriptor = getOrFail(BindingContext.ANNOTATION, ktAnnotationEntry)
irFile.fileAnnotations.add(annotationDescriptor)
irFile.annotations.add(constantValueGenerator.generateAnnotationConstructorCall(annotationDescriptor)) irFile.annotations.add(constantValueGenerator.generateAnnotationConstructorCall(annotationDescriptor))
} }
@@ -17,9 +17,9 @@
package org.jetbrains.kotlin.ir.declarations package org.jetbrains.kotlin.ir.declarations
import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor
import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor
import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.IrElement
import org.jetbrains.kotlin.ir.SourceManager import org.jetbrains.kotlin.ir.SourceManager
import org.jetbrains.kotlin.ir.expressions.IrCall
import org.jetbrains.kotlin.ir.symbols.IrExternalPackageFragmentSymbol import org.jetbrains.kotlin.ir.symbols.IrExternalPackageFragmentSymbol
import org.jetbrains.kotlin.ir.symbols.IrFileSymbol import org.jetbrains.kotlin.ir.symbols.IrFileSymbol
import org.jetbrains.kotlin.ir.symbols.IrPackageFragmentSymbol import org.jetbrains.kotlin.ir.symbols.IrPackageFragmentSymbol
@@ -42,7 +42,6 @@ interface IrFile : IrPackageFragment, IrAnnotationContainer, IrMetadataSourceOwn
override val symbol: IrFileSymbol override val symbol: IrFileSymbol
val fileEntry: SourceManager.FileEntry val fileEntry: SourceManager.FileEntry
val fileAnnotations: MutableList<AnnotationDescriptor>
override val metadata: MetadataSource.File? override val metadata: MetadataSource.File?
@@ -17,7 +17,6 @@
package org.jetbrains.kotlin.ir.declarations.impl package org.jetbrains.kotlin.ir.declarations.impl
import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor
import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor
import org.jetbrains.kotlin.ir.IrElementBase import org.jetbrains.kotlin.ir.IrElementBase
import org.jetbrains.kotlin.ir.SourceManager import org.jetbrains.kotlin.ir.SourceManager
import org.jetbrains.kotlin.ir.declarations.IrDeclaration import org.jetbrains.kotlin.ir.declarations.IrDeclaration
@@ -29,7 +28,6 @@ import org.jetbrains.kotlin.ir.symbols.impl.IrFileSymbolImpl
import org.jetbrains.kotlin.ir.visitors.IrElementTransformer import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.utils.SmartList
class IrFileImpl( class IrFileImpl(
override val fileEntry: SourceManager.FileEntry, override val fileEntry: SourceManager.FileEntry,
@@ -42,14 +40,12 @@ class IrFileImpl(
constructor( constructor(
fileEntry: SourceManager.FileEntry, fileEntry: SourceManager.FileEntry,
symbol: IrFileSymbol symbol: IrFileSymbol
) : ) : this(fileEntry, symbol, symbol.descriptor.fqName)
this(fileEntry, symbol, symbol.descriptor.fqName)
constructor( constructor(
fileEntry: SourceManager.FileEntry, fileEntry: SourceManager.FileEntry,
packageFragmentDescriptor: PackageFragmentDescriptor packageFragmentDescriptor: PackageFragmentDescriptor
) : ) : this(fileEntry, IrFileSymbolImpl(packageFragmentDescriptor), packageFragmentDescriptor.fqName)
this(fileEntry, IrFileSymbolImpl(packageFragmentDescriptor), packageFragmentDescriptor.fqName)
init { init {
symbol.bind(this) symbol.bind(this)
@@ -57,8 +53,6 @@ class IrFileImpl(
override val packageFragmentDescriptor: PackageFragmentDescriptor get() = symbol.descriptor override val packageFragmentDescriptor: PackageFragmentDescriptor get() = symbol.descriptor
override val fileAnnotations: MutableList<AnnotationDescriptor> = SmartList()
override val declarations: MutableList<IrDeclaration> = ArrayList() override val declarations: MutableList<IrDeclaration> = ArrayList()
override val annotations: MutableList<IrCall> = ArrayList() override val annotations: MutableList<IrCall> = ArrayList()
@@ -110,7 +110,6 @@ open class DeepCopyIrTreeWithSymbols(
symbolRenamer.getFileName(declaration.symbol) symbolRenamer.getFileName(declaration.symbol)
).apply { ).apply {
transformAnnotations(declaration) transformAnnotations(declaration)
fileAnnotations.addAll(declaration.fileAnnotations)
declaration.transformDeclarationsTo(this) declaration.transformDeclarationsTo(this)
} }
@@ -80,9 +80,6 @@ class DumpIrTreeVisitor(
override fun visitFile(declaration: IrFile, data: String) { override fun visitFile(declaration: IrFile, data: String) {
declaration.dumpLabeledElementWith(data) { declaration.dumpLabeledElementWith(data) {
declaration.fileAnnotations.dumpItemsWith("fileAnnotations") {
ANNOTATIONS_RENDERER.renderAnnotation(it)
}
dumpAnnotations(declaration) dumpAnnotations(declaration)
declaration.declarations.dumpElements() declaration.declarations.dumpElements()
} }
@@ -1,6 +1,4 @@
FILE fqName:test fileName:/fileAnnotations.kt FILE fqName:test fileName:/fileAnnotations.kt
fileAnnotations:
@test.A(x = "File annotation")
annotations: annotations:
CALL 'CONSTRUCTOR visibility:public <> (x:kotlin.String) returnType:test.A flags:[primary]' type=test.A origin=null CALL 'CONSTRUCTOR visibility:public <> (x:kotlin.String) returnType:test.A flags:[primary]' type=test.A origin=null
x: CONST String type=kotlin.String value="File annotation" x: CONST String type=kotlin.String value="File annotation"
@@ -1,6 +1,4 @@
FILE fqName:<root> fileName:/fileWithAnnotations.kt FILE fqName:<root> fileName:/fileWithAnnotations.kt
fileAnnotations:
@kotlin.jvm.JvmName(name = "FileWithAnnotations")
annotations: annotations:
CALL 'CONSTRUCTOR IR_EXTERNAL_DECLARATION_STUB visibility:public <> (name:kotlin.String) returnType:kotlin.jvm.JvmName flags:[primary]' type=kotlin.jvm.JvmName origin=null CALL 'CONSTRUCTOR IR_EXTERNAL_DECLARATION_STUB visibility:public <> (name:kotlin.String) returnType:kotlin.jvm.JvmName flags:[primary]' type=kotlin.jvm.JvmName origin=null
name: CONST String type=kotlin.String value="FileWithAnnotations" name: CONST String type=kotlin.String value="FileWithAnnotations"