IR: remove IrTypeOperatorCall.typeOperandClassifier
This commit is contained in:
committed by
Space Team
parent
42daeaaa80
commit
d2938e732a
@@ -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 <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R =
|
||||
visitor.visitTypeOperator(this, data)
|
||||
|
||||
|
||||
+1
-6
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
+5
-2
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user