[IR] Autogenerate IrExternalPackageFragmentImpl

#KT-65773 In Progress
This commit is contained in:
Wojciech Litewka
2024-03-01 14:48:51 +01:00
committed by Space Team
parent f92670024e
commit 2ed0ffd123
5 changed files with 60 additions and 35 deletions
@@ -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.descriptors.ModuleDescriptor
@@ -23,22 +28,19 @@ class IrExternalPackageFragmentImpl(
override val endOffset: Int
get() = UNDEFINED_OFFSET
init {
symbol.bind(this)
}
@UnsafeDuringIrConstructionAPI
override val declarations: MutableList<IrDeclaration> = ArrayList()
companion object {
@Deprecated(
message = "Use org.jetbrains.kotlin.ir.declarations.createEmptyExternalPackageFragment instead",
replaceWith = ReplaceWith(
"createEmptyExternalPackageFragment",
"org.jetbrains.kotlin.ir.declarations.createEmptyExternalPackageFragment"
)
replaceWith = ReplaceWith("createEmptyExternalPackageFragment", "org.jetbrains.kotlin.ir.declarations.createEmptyExternalPackageFragment")
)
fun createEmptyExternalPackageFragment(module: ModuleDescriptor, fqName: FqName): IrExternalPackageFragment =
org.jetbrains.kotlin.ir.declarations.createEmptyExternalPackageFragment(module, fqName)
}
init {
symbol.bind(this)
}
}
@@ -103,9 +103,8 @@ object ImplementationConfigurator : AbstractIrTreeImplementationConfigurator() {
impl(moduleFragment) {
implementation.putImplementationOptInInConstructor = false
additionalImports(ArbitraryImportable(Packages.tree, "UNDEFINED_OFFSET"))
default("startOffset", "UNDEFINED_OFFSET", withGetter = true)
default("endOffset", "UNDEFINED_OFFSET", withGetter = true)
default("startOffset", undefinedOffset(), withGetter = true)
default("endOffset", undefinedOffset(), withGetter = true)
default("name", "descriptor.name", withGetter = true)
}
@@ -120,7 +119,29 @@ object ImplementationConfigurator : AbstractIrTreeImplementationConfigurator() {
}
impl(externalPackageFragment) {
implementation.doPrint = false
implementation.putImplementationOptInInConstructor = false
implementation.constructorParameterOrderOverride = listOf("symbol", "packageFqName")
additionalImports(
ArbitraryImportable(Packages.descriptors, "ModuleDescriptor"),
)
default("startOffset", undefinedOffset(), withGetter = true)
default("endOffset", undefinedOffset(), withGetter = true)
implementation.generationCallback = {
println()
print()
println(
"""
companion object {
@Deprecated(
message = "Use org.jetbrains.kotlin.ir.declarations.createEmptyExternalPackageFragment instead",
replaceWith = ReplaceWith("createEmptyExternalPackageFragment", "org.jetbrains.kotlin.ir.declarations.createEmptyExternalPackageFragment")
)
fun createEmptyExternalPackageFragment(module: ModuleDescriptor, fqName: FqName): IrExternalPackageFragment =
org.jetbrains.kotlin.ir.declarations.createEmptyExternalPackageFragment(module, fqName)
}
""".replaceIndent(currentIndent)
)
}
}
impl(file) {
@@ -1,15 +1,22 @@
/*
* Copyright 2010-2023 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.
*/
package org.jetbrains.kotlin.ir.generator.config
import org.jetbrains.kotlin.generators.tree.ArbitraryImportable
import org.jetbrains.kotlin.generators.tree.config.AbstractImplementationConfigurator
import org.jetbrains.kotlin.ir.generator.Packages
import org.jetbrains.kotlin.ir.generator.model.Element
import org.jetbrains.kotlin.ir.generator.model.Field
import org.jetbrains.kotlin.ir.generator.model.Implementation
abstract class AbstractIrTreeImplementationConfigurator : AbstractImplementationConfigurator<Implementation, Element, Field>() {
override fun createImplementation(element: Element, name: String?) = Implementation(element, name)
protected fun ImplementationContext.undefinedOffset(): String =
"UNDEFINED_OFFSET".also {
additionalImports(ArbitraryImportable(Packages.tree, it))
}
}