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
|
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.types.IrType
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
@@ -24,8 +23,6 @@ abstract class IrTypeOperatorCall : IrExpression() {
|
|||||||
|
|
||||||
abstract var typeOperand: IrType
|
abstract var typeOperand: IrType
|
||||||
|
|
||||||
abstract val typeOperandClassifier: IrClassifierSymbol
|
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R =
|
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R =
|
||||||
visitor.visitTypeOperator(this, data)
|
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.IrExpression
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrTypeOperator
|
import org.jetbrains.kotlin.ir.expressions.IrTypeOperator
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrTypeOperatorCall
|
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.IrType
|
||||||
import org.jetbrains.kotlin.ir.types.classifierOrFail
|
|
||||||
|
|
||||||
class IrTypeOperatorCallImpl(
|
class IrTypeOperatorCallImpl(
|
||||||
override val startOffset: Int,
|
override val startOffset: Int,
|
||||||
@@ -30,7 +28,4 @@ class IrTypeOperatorCallImpl(
|
|||||||
override val operator: IrTypeOperator,
|
override val operator: IrTypeOperator,
|
||||||
override var typeOperand: IrType,
|
override var typeOperand: IrType,
|
||||||
override var argument: IrExpression,
|
override var argument: IrExpression,
|
||||||
) : IrTypeOperatorCall() {
|
) : IrTypeOperatorCall()
|
||||||
override val typeOperandClassifier: IrClassifierSymbol
|
|
||||||
get() = typeOperand.classifierOrFail
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -973,7 +973,6 @@ object IrTree : AbstractTreeBuilder() {
|
|||||||
+field("operator", type(Packages.exprs, "IrTypeOperator"))
|
+field("operator", type(Packages.exprs, "IrTypeOperator"))
|
||||||
+field("argument", expression, mutable = true, isChild = true)
|
+field("argument", expression, mutable = true, isChild = true)
|
||||||
+field("typeOperand", irTypeType, mutable = true)
|
+field("typeOperand", irTypeType, mutable = true)
|
||||||
+field("typeOperandClassifier", classifierSymbolType)
|
|
||||||
}
|
}
|
||||||
val valueAccessExpression: ElementConfig by element(Expression) {
|
val valueAccessExpression: ElementConfig by element(Expression) {
|
||||||
visitorParent = declarationReference
|
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.IrSimpleType
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
import org.jetbrains.kotlin.ir.types.IrTypeProjection
|
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.Location
|
||||||
import org.jetbrains.kotlin.ir.util.IrMessageLogger.Severity
|
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.ir.visitors.IrElementTransformerVoid
|
||||||
import org.jetbrains.kotlin.utils.addIfNotNull
|
import org.jetbrains.kotlin.utils.addIfNotNull
|
||||||
|
|
||||||
@@ -244,7 +247,7 @@ internal class UnlinkedDeclarationsProcessor(
|
|||||||
override fun visitTypeOperator(expression: IrTypeOperatorCall): IrExpression {
|
override fun visitTypeOperator(expression: IrTypeOperatorCall): IrExpression {
|
||||||
expression.transformChildrenVoid()
|
expression.transformChildrenVoid()
|
||||||
|
|
||||||
val classifierSymbol = expression.typeOperandClassifier
|
val classifierSymbol = expression.typeOperand.classifierOrFail
|
||||||
return if (classifierSymbol.isUnlinked())
|
return if (classifierSymbol.isUnlinked())
|
||||||
IrCompositeImpl(expression.startOffset, expression.endOffset, builtIns.nothingType).apply {
|
IrCompositeImpl(expression.startOffset, expression.endOffset, builtIns.nothingType).apply {
|
||||||
statements += expression.argument
|
statements += expression.argument
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor
|
|||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.expressions.*
|
import org.jetbrains.kotlin.ir.expressions.*
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
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.dump
|
||||||
import org.jetbrains.kotlin.ir.util.render
|
import org.jetbrains.kotlin.ir.util.render
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
|
||||||
@@ -224,7 +225,6 @@ class IrVerifier(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun visitTypeOperator(expression: IrTypeOperatorCall) {
|
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