From d2938e732a98d885c151dffec7647491c2b7fbba Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Mon, 13 Feb 2023 14:43:17 +0100 Subject: [PATCH] IR: remove IrTypeOperatorCall.typeOperandClassifier --- .../jetbrains/kotlin/ir/expressions/IrTypeOperatorCall.kt | 3 --- .../kotlin/ir/expressions/impl/IrTypeOperatorCallImpl.kt | 7 +------ .../src/org/jetbrains/kotlin/ir/generator/IrTree.kt | 1 - .../unlinked/UnlinkedDeclarationsProcessor.kt | 7 +++++-- .../tests/org/jetbrains/kotlin/ir/IrVerifier.kt | 4 ++-- 5 files changed, 8 insertions(+), 14 deletions(-) diff --git a/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/expressions/IrTypeOperatorCall.kt b/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/expressions/IrTypeOperatorCall.kt index 8acebf233ba..77226786bb8 100644 --- a/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/expressions/IrTypeOperatorCall.kt +++ b/compiler/ir/ir.tree/gen/org/jetbrains/kotlin/ir/expressions/IrTypeOperatorCall.kt @@ -8,7 +8,6 @@ package org.jetbrains.kotlin.ir.expressions -import org.jetbrains.kotlin.ir.symbols.IrClassifierSymbol import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.visitors.IrElementTransformer import org.jetbrains.kotlin.ir.visitors.IrElementVisitor @@ -24,8 +23,6 @@ abstract class IrTypeOperatorCall : IrExpression() { abstract var typeOperand: IrType - abstract val typeOperandClassifier: IrClassifierSymbol - override fun accept(visitor: IrElementVisitor, data: D): R = visitor.visitTypeOperator(this, data) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrTypeOperatorCallImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrTypeOperatorCallImpl.kt index fea22e13b1f..ae04ed00c7f 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrTypeOperatorCallImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrTypeOperatorCallImpl.kt @@ -19,9 +19,7 @@ package org.jetbrains.kotlin.ir.expressions.impl import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.expressions.IrTypeOperator import org.jetbrains.kotlin.ir.expressions.IrTypeOperatorCall -import org.jetbrains.kotlin.ir.symbols.IrClassifierSymbol import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.types.classifierOrFail class IrTypeOperatorCallImpl( override val startOffset: Int, @@ -30,7 +28,4 @@ class IrTypeOperatorCallImpl( override val operator: IrTypeOperator, override var typeOperand: IrType, override var argument: IrExpression, -) : IrTypeOperatorCall() { - override val typeOperandClassifier: IrClassifierSymbol - get() = typeOperand.classifierOrFail -} +) : IrTypeOperatorCall() 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 4bdee733d68..89458018414 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 @@ -973,7 +973,6 @@ object IrTree : AbstractTreeBuilder() { +field("operator", type(Packages.exprs, "IrTypeOperator")) +field("argument", expression, mutable = true, isChild = true) +field("typeOperand", irTypeType, mutable = true) - +field("typeOperandClassifier", classifierSymbolType) } val valueAccessExpression: ElementConfig by element(Expression) { visitorParent = declarationReference diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/UnlinkedDeclarationsProcessor.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/UnlinkedDeclarationsProcessor.kt index 752361bd0df..2d5354c98d8 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/UnlinkedDeclarationsProcessor.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/UnlinkedDeclarationsProcessor.kt @@ -23,9 +23,12 @@ import org.jetbrains.kotlin.ir.symbols.impl.IrAnonymousInitializerSymbolImpl import org.jetbrains.kotlin.ir.types.IrSimpleType import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.types.IrTypeProjection -import org.jetbrains.kotlin.ir.util.* +import org.jetbrains.kotlin.ir.types.classifierOrFail +import org.jetbrains.kotlin.ir.util.IrMessageLogger import org.jetbrains.kotlin.ir.util.IrMessageLogger.Location import org.jetbrains.kotlin.ir.util.IrMessageLogger.Severity +import org.jetbrains.kotlin.ir.util.fileOrNull +import org.jetbrains.kotlin.ir.util.parentAsClass import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid import org.jetbrains.kotlin.utils.addIfNotNull @@ -244,7 +247,7 @@ internal class UnlinkedDeclarationsProcessor( override fun visitTypeOperator(expression: IrTypeOperatorCall): IrExpression { expression.transformChildrenVoid() - val classifierSymbol = expression.typeOperandClassifier + val classifierSymbol = expression.typeOperand.classifierOrFail return if (classifierSymbol.isUnlinked()) IrCompositeImpl(expression.startOffset, expression.endOffset, builtIns.nothingType).apply { statements += expression.argument diff --git a/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/ir/IrVerifier.kt b/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/ir/IrVerifier.kt index 2b1248c4406..1262210bac2 100644 --- a/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/ir/IrVerifier.kt +++ b/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/ir/IrVerifier.kt @@ -10,6 +10,7 @@ import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.expressions.* import org.jetbrains.kotlin.ir.symbols.IrSymbol +import org.jetbrains.kotlin.ir.types.classifierOrFail import org.jetbrains.kotlin.ir.util.dump import org.jetbrains.kotlin.ir.util.render import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid @@ -224,7 +225,6 @@ class IrVerifier( } override fun visitTypeOperator(expression: IrTypeOperatorCall) { - expression.typeOperandClassifier.checkBinding("type operand", expression) + expression.typeOperand.classifierOrFail.checkBinding("type operand", expression) } } -