IR: make IrComposite.isTransparentScope an extension
This commit is contained in:
committed by
Space Team
parent
63025030e3
commit
d286409b76
@@ -15,9 +15,6 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
|||||||
* @sample org.jetbrains.kotlin.ir.generator.IrTree.block
|
* @sample org.jetbrains.kotlin.ir.generator.IrTree.block
|
||||||
*/
|
*/
|
||||||
abstract class IrBlock : IrContainerExpression() {
|
abstract class IrBlock : IrContainerExpression() {
|
||||||
override val isTransparentScope: Boolean
|
|
||||||
get() = false
|
|
||||||
|
|
||||||
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.visitBlock(this, data)
|
visitor.visitBlock(this, data)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,9 +15,6 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
|||||||
* @sample org.jetbrains.kotlin.ir.generator.IrTree.composite
|
* @sample org.jetbrains.kotlin.ir.generator.IrTree.composite
|
||||||
*/
|
*/
|
||||||
abstract class IrComposite : IrContainerExpression() {
|
abstract class IrComposite : IrContainerExpression() {
|
||||||
override val isTransparentScope: Boolean
|
|
||||||
get() = true
|
|
||||||
|
|
||||||
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.visitComposite(this, data)
|
visitor.visitComposite(this, data)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,8 +20,6 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
|||||||
abstract class IrContainerExpression : IrExpression(), IrStatementContainer {
|
abstract class IrContainerExpression : IrExpression(), IrStatementContainer {
|
||||||
abstract val origin: IrStatementOrigin?
|
abstract val origin: IrStatementOrigin?
|
||||||
|
|
||||||
abstract val isTransparentScope: Boolean
|
|
||||||
|
|
||||||
override val statements: MutableList<IrStatement> = ArrayList(2)
|
override val statements: MutableList<IrStatement> = ArrayList(2)
|
||||||
|
|
||||||
override fun <D> acceptChildren(visitor: IrElementVisitor<Unit, D>, data: D) {
|
override fun <D> acceptChildren(visitor: IrElementVisitor<Unit, D>, data: D) {
|
||||||
|
|||||||
@@ -48,3 +48,6 @@ fun IrVararg.addElement(varargElement: IrVarargElement) {
|
|||||||
fun IrStringConcatenation.addArgument(argument: IrExpression) {
|
fun IrStringConcatenation.addArgument(argument: IrExpression) {
|
||||||
arguments.add(argument)
|
arguments.add(argument)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val IrContainerExpression.isTransparentScope: Boolean
|
||||||
|
get() = this is IrComposite
|
||||||
|
|||||||
@@ -618,7 +618,6 @@ object IrTree : AbstractTreeBuilder() {
|
|||||||
parent(statementContainer)
|
parent(statementContainer)
|
||||||
|
|
||||||
+field("origin", statementOriginType, nullable = true)
|
+field("origin", statementOriginType, nullable = true)
|
||||||
+field("isTransparentScope", boolean)
|
|
||||||
+listField("statements", statement, mutability = List, isChild = true) {
|
+listField("statements", statement, mutability = List, isChild = true) {
|
||||||
generationCallback = {
|
generationCallback = {
|
||||||
addModifiers(KModifier.OVERRIDE)
|
addModifiers(KModifier.OVERRIDE)
|
||||||
@@ -631,19 +630,11 @@ object IrTree : AbstractTreeBuilder() {
|
|||||||
accept = true
|
accept = true
|
||||||
|
|
||||||
parent(containerExpression)
|
parent(containerExpression)
|
||||||
|
|
||||||
+field("isTransparentScope", boolean) {
|
|
||||||
baseGetter = code("false")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
val composite: ElementConfig by element(Expression) {
|
val composite: ElementConfig by element(Expression) {
|
||||||
visitorParent = containerExpression
|
visitorParent = containerExpression
|
||||||
|
|
||||||
parent(containerExpression)
|
parent(containerExpression)
|
||||||
|
|
||||||
+field("isTransparentScope", boolean) {
|
|
||||||
baseGetter = code("true")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
val returnableBlock: ElementConfig by element(Expression) {
|
val returnableBlock: ElementConfig by element(Expression) {
|
||||||
parent(block)
|
parent(block)
|
||||||
|
|||||||
Reference in New Issue
Block a user