From 97e2dab9f0e677b9b8bfe778801178d4e6cfb59d Mon Sep 17 00:00:00 2001 From: Wojciech Litewka Date: Fri, 16 Feb 2024 12:47:08 +0100 Subject: [PATCH] [IR] Autogenerate IrScriptImpl ^KT-65773 In Progress --- .../kotlin/ir/declarations/IrScript.kt | 5 ++ .../ir/declarations/impl/IrScriptImpl.kt | 53 +++++++++++-------- .../ir/declarations/impl/IrScriptImpl.kt | 11 ++++ .../generator/ImplementationConfigurator.kt | 9 +++- .../jetbrains/kotlin/ir/generator/IrTree.kt | 1 + 5 files changed, 57 insertions(+), 22 deletions(-) create mode 100644 compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrScriptImpl.kt diff --git a/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/IrScript.kt b/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/IrScript.kt index 1abb0d908cc..34ba905de08 100644 --- a/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/IrScript.kt +++ b/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/IrScript.kt @@ -8,6 +8,8 @@ package org.jetbrains.kotlin.ir.declarations +import org.jetbrains.kotlin.descriptors.ScriptDescriptor +import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.expressions.IrStatementContainer import org.jetbrains.kotlin.ir.symbols.IrClassSymbol import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol @@ -24,6 +26,9 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitor abstract class IrScript : IrDeclarationBase(), IrDeclarationWithName, IrDeclarationParent, IrStatementContainer, IrMetadataSourceOwner { abstract override val symbol: IrScriptSymbol + @ObsoleteDescriptorBasedAPI + abstract override val descriptor: ScriptDescriptor + abstract var thisReceiver: IrValueParameter? abstract var baseClass: IrType? diff --git a/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/impl/IrScriptImpl.kt b/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/impl/IrScriptImpl.kt index 35a103e9068..16b66e72a83 100644 --- a/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/impl/IrScriptImpl.kt +++ b/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/declarations/impl/IrScriptImpl.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", "unused") + package org.jetbrains.kotlin.ir.declarations.impl import org.jetbrains.kotlin.descriptors.ScriptDescriptor @@ -15,10 +20,6 @@ import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol import org.jetbrains.kotlin.ir.symbols.IrScriptSymbol import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.utils.SmartList - -private val SCRIPT_ORIGIN = IrDeclarationOriginImpl("SCRIPT") -val SCRIPT_K2_ORIGIN = IrDeclarationOriginImpl("SCRIPT_K2") class IrScriptImpl( override val symbol: IrScriptSymbol, @@ -27,34 +28,44 @@ class IrScriptImpl( override val startOffset: Int, override val endOffset: Int, ) : IrScript() { + override var annotations: List = emptyList() + override var origin: IrDeclarationOrigin = SCRIPT_ORIGIN override lateinit var parent: IrDeclarationParent - override var annotations: List = SmartList() - - override val statements: MutableList = mutableListOf() + override val statements: MutableList = ArrayList() override var metadata: MetadataSource? = null - override var thisReceiver: IrValueParameter? = null - override var baseClass: IrType? = null - - override lateinit var explicitCallParameters: List - override lateinit var implicitReceiversParameters: List - override lateinit var providedProperties: List - override lateinit var providedPropertiesParameters: List - override var resultProperty: IrPropertySymbol? = null - override var earlierScriptsParameter: IrValueParameter? = null - override var importedScripts: List? = null - override var earlierScripts: List? = null - override var targetClass: IrClassSymbol? = null - override var constructor: IrConstructor? = null - @ObsoleteDescriptorBasedAPI override val descriptor: ScriptDescriptor get() = symbol.descriptor + override var thisReceiver: IrValueParameter? = null + + override var baseClass: IrType? = null + + override lateinit var explicitCallParameters: List + + override lateinit var implicitReceiversParameters: List + + override lateinit var providedProperties: List + + override lateinit var providedPropertiesParameters: List + + override var resultProperty: IrPropertySymbol? = null + + override var earlierScriptsParameter: IrValueParameter? = null + + override var importedScripts: List? = null + + override var earlierScripts: List? = null + + override var targetClass: IrClassSymbol? = null + + override var constructor: IrConstructor? = null + init { symbol.bind(this) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrScriptImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrScriptImpl.kt new file mode 100644 index 00000000000..0df85109e9f --- /dev/null +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrScriptImpl.kt @@ -0,0 +1,11 @@ +/* + * 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.declarations.impl + +import org.jetbrains.kotlin.ir.declarations.IrDeclarationOriginImpl + +internal val SCRIPT_ORIGIN = IrDeclarationOriginImpl("SCRIPT") +val SCRIPT_K2_ORIGIN = IrDeclarationOriginImpl("SCRIPT_K2") \ No newline at end of file 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 f9b8b473af3..06938e8ca12 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 @@ -98,7 +98,14 @@ object ImplementationConfigurator : AbstractIrTreeImplementationConfigurator() { } impl(script) { - implementation.doPrint = false + implementation.putImplementationOptInInConstructor = false + implementation.constructorParameterOrderOverride = listOf("symbol", "name", "factory", "startOffset", "endOffset") + defaultNull( + "thisReceiver", "baseClass", "resultProperty", "earlierScriptsParameter", + "importedScripts", "earlierScripts", "targetClass", "constructor" + ) + isLateinit("explicitCallParameters", "implicitReceiversParameters", "providedProperties", "providedPropertiesParameters") + default("origin", "SCRIPT_ORIGIN") } impl(moduleFragment) { 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 922afe7d871..350e9489539 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 @@ -537,6 +537,7 @@ object IrTree : AbstractTreeBuilder() { parent(metadataSourceOwner) +symbol(scriptSymbolType) + +descriptor("ScriptDescriptor") // NOTE: is the result of the FE conversion, because there script interpreted as a class and has receiver // TODO: consider removing from here and handle appropriately in the lowering +field("thisReceiver", valueParameter, nullable = true) // K1