From 4eba0075bb26fb494e45b993df09412453e898b4 Mon Sep 17 00:00:00 2001 From: Wojciech Litewka Date: Fri, 1 Mar 2024 15:12:54 +0100 Subject: [PATCH] [IR] Autogenerate IrFileImpl #KT-65773 In Progress --- .../kotlin/ir/declarations/IrFile.kt | 2 +- .../kotlin/ir/declarations/impl/IrFileImpl.kt | 25 +++++++++++-------- .../kotlin/ir/generator/CommonTypes.kt | 3 +-- .../generator/ImplementationConfigurator.kt | 15 ++++++++++- .../jetbrains/kotlin/ir/generator/IrTree.kt | 2 +- 5 files changed, 32 insertions(+), 15 deletions(-) diff --git a/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/IrFile.kt b/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/IrFile.kt index 726f3ebba68..e5c4f77e3ee 100644 --- a/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/IrFile.kt +++ b/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/IrFile.kt @@ -17,7 +17,7 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitor /** * Generated from: [org.jetbrains.kotlin.ir.generator.IrTree.file] */ -abstract class IrFile : IrPackageFragment(), IrMetadataSourceOwner, IrMutableAnnotationContainer { +abstract class IrFile : IrPackageFragment(), IrMutableAnnotationContainer, IrMetadataSourceOwner { abstract override val symbol: IrFileSymbol abstract var module: IrModuleFragment diff --git a/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/impl/IrFileImpl.kt b/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/impl/IrFileImpl.kt index e166b7561ee..009eab617ef 100644 --- a/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/impl/IrFileImpl.kt +++ b/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/impl/IrFileImpl.kt @@ -3,6 +3,11 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ +// This file was generated automatically. See compiler/ir/ir.tree/tree-generator/ReadMe.md. +// DO NOT MODIFY IT MANUALLY. + +@file:Suppress("DuplicatedCode") + package org.jetbrains.kotlin.ir.declarations.impl import org.jetbrains.kotlin.ir.IrFileEntry @@ -20,15 +25,6 @@ class IrFileImpl( override val symbol: IrFileSymbol, override var packageFqName: FqName, ) : IrFile() { - init { - symbol.bind(this) - } - - override lateinit var module: IrModuleFragment - - internal val isInsideModule: Boolean - get() = ::module.isInitialized - override val startOffset: Int get() = 0 @@ -41,4 +37,13 @@ class IrFileImpl( override var annotations: List = emptyList() override var metadata: MetadataSource? = null -} \ No newline at end of file + + override lateinit var module: IrModuleFragment + + internal val isInsideModule: Boolean + get() = ::module.isInitialized + + init { + symbol.bind(this) + } +} diff --git a/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/CommonTypes.kt b/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/CommonTypes.kt index 2149b579948..e0f46bcd95c 100644 --- a/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/CommonTypes.kt +++ b/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/CommonTypes.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -33,7 +33,6 @@ val elementVisitorVoidType = type(visitors, "IrElementVisitorVoid") val elementTransformerType = type(visitors, "IrElementTransformer") val elementTransformerVoidType = type(visitors, "IrElementTransformerVoid", TypeKind.Class) val typeTransformerType = type(visitors, "IrTypeTransformer") -val mutableAnnotationContainerType = type(declarations, "IrMutableAnnotationContainer") val irTypeType = type(types, "IrType") val irFactoryType = type(declarations, "IrFactory") val stageControllerType = type(declarations, "StageController", TypeKind.Class) diff --git a/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/ImplementationConfigurator.kt b/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/ImplementationConfigurator.kt index c126671ab7e..c9761e0bf19 100644 --- a/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/ImplementationConfigurator.kt +++ b/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/ImplementationConfigurator.kt @@ -13,6 +13,7 @@ import org.jetbrains.kotlin.generators.tree.printer.printPropertyDeclaration import org.jetbrains.kotlin.ir.generator.config.AbstractIrTreeImplementationConfigurator import org.jetbrains.kotlin.ir.generator.model.Element import org.jetbrains.kotlin.ir.generator.model.ListField +import org.jetbrains.kotlin.utils.withIndent object ImplementationConfigurator : AbstractIrTreeImplementationConfigurator() { override fun configure(model: Model): Unit = with(IrTree) { @@ -145,7 +146,19 @@ object ImplementationConfigurator : AbstractIrTreeImplementationConfigurator() { } impl(file) { - implementation.doPrint = false + implementation.putImplementationOptInInConstructor = false + implementation.constructorParameterOrderOverride = listOf("fileEntry", "symbol", "packageFqName") + default("startOffset", "0", withGetter = true) + default("endOffset", "fileEntry.maxOffset", withGetter = true) + isMutable("module") + isLateinit("module") + implementation.generationCallback = { + println() + println("internal val isInsideModule: Boolean") + withIndent { + println("get() = ::module.isInitialized") + } + } } } diff --git a/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/IrTree.kt b/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/IrTree.kt index 960bc98b324..9177dd02c60 100644 --- a/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/IrTree.kt +++ b/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/IrTree.kt @@ -656,7 +656,7 @@ object IrTree : AbstractTreeBuilder() { generateIrFactoryMethod = false parent(packageFragment) - parent(mutableAnnotationContainerType) + parent(mutableAnnotationContainer) parent(metadataSourceOwner) +symbol(fileSymbolType)