From 16ae7651a2adf7fb722bf08d4de3061d863a47fc Mon Sep 17 00:00:00 2001 From: Wojciech Litewka Date: Thu, 29 Feb 2024 13:56:16 +0100 Subject: [PATCH] [IR] Simplify IrErrorDeclarationImpl for autogeneration #KT-65773 In Progress --- .../ir/declarations/impl/IrErrorDeclarationImpl.kt | 12 ++++-------- .../kotlin/ir/declarations/impl/IrFactoryImpl.kt | 11 +++++++---- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrErrorDeclarationImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrErrorDeclarationImpl.kt index 498728a91dc..f1b39637e45 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrErrorDeclarationImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrErrorDeclarationImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2022 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. */ @@ -8,11 +8,10 @@ package org.jetbrains.kotlin.ir.declarations.impl import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.ir.IrImplementationDetail import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI -import org.jetbrains.kotlin.ir.declarations.IrFactory import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent import org.jetbrains.kotlin.ir.declarations.IrErrorDeclaration -import org.jetbrains.kotlin.ir.descriptors.toIrBasedDescriptor +import org.jetbrains.kotlin.ir.declarations.IrFactory import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.symbols.IrSymbol @@ -20,16 +19,13 @@ import org.jetbrains.kotlin.ir.symbols.IrSymbol class IrErrorDeclarationImpl @IrImplementationDetail constructor( override val startOffset: Int, override val endOffset: Int, - private val _descriptor: DeclarationDescriptor?, override val factory: IrFactory, + override var origin: IrDeclarationOrigin, ) : IrErrorDeclaration() { - override val descriptor: DeclarationDescriptor - get() = _descriptor ?: this.toIrBasedDescriptor() - override val symbol: IrSymbol get() = error("Should never be called") - override var origin: IrDeclarationOrigin = IrDeclarationOrigin.DEFINED + override lateinit var descriptor: DeclarationDescriptor override lateinit var parent: IrDeclarationParent override var annotations: List = emptyList() diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFactoryImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFactoryImpl.kt index ff9be25f828..d4428c162e6 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFactoryImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFactoryImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2022 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. */ @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.ir.declarations.impl import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.ir.IrImplementationDetail import org.jetbrains.kotlin.ir.declarations.* +import org.jetbrains.kotlin.ir.descriptors.toIrBasedDescriptor import org.jetbrains.kotlin.ir.expressions.IrBlockBody import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.expressions.IrExpressionBody @@ -141,9 +142,11 @@ abstract class AbstractIrFactoryImpl : IrFactory { IrErrorDeclarationImpl( startOffset = startOffset, endOffset = endOffset, - _descriptor = descriptor, - factory = this - ) + factory = this, + origin = IrDeclarationOrigin.DEFINED, + ).apply { + this.descriptor = descriptor ?: this.toIrBasedDescriptor() + } override fun createField( startOffset: Int,