Hide stageController into the IrFactory

This commit is contained in:
Anton Bannykh
2020-11-05 14:42:48 +03:00
parent 97080c49fc
commit c06b345f3c
59 changed files with 209 additions and 208 deletions
@@ -19,8 +19,10 @@ package org.jetbrains.kotlin.backend.common
import org.jetbrains.kotlin.ir.IrElement
import org.jetbrains.kotlin.ir.IrStatement
import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.expressions.IrBlockBody
import org.jetbrains.kotlin.ir.expressions.IrBody
import org.jetbrains.kotlin.ir.expressions.IrStatementContainer
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
import org.jetbrains.kotlin.ir.util.transformFlat
import org.jetbrains.kotlin.ir.util.transformSubsetFlat
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
@@ -151,8 +153,8 @@ private class BodyLoweringVisitor(
if (allowDeclarationModification) {
loweringPass.lower(body, data!!)
} else {
stageController.bodyLowering {
loweringPass.lower(body, data!!)
data!!.factory.stageController.bodyLowering {
loweringPass.lower(body, data)
}
}
}
@@ -178,7 +180,7 @@ interface DeclarationTransformer : FileLoweringPass {
}
private fun transformFlatRestricted(declaration: IrDeclaration): List<IrDeclaration>? {
return stageController.restrictTo(declaration) {
return declaration.factory.stageController.restrictTo(declaration) {
transformFlat(declaration)
}
}
@@ -355,7 +355,7 @@ fun IrType.remapTypeParameters(
/* Copied from K/N */
fun IrDeclarationContainer.addChild(declaration: IrDeclaration) {
stageController.unrestrictDeclarationListsAccess {
declaration.factory.stageController.unrestrictDeclarationListsAccess {
this.declarations += declaration
}
declaration.setDeclarationsParent(this)
@@ -35,7 +35,7 @@ class InnerClassesLowering(val context: BackendContext, private val innerClasses
override fun transformFlat(declaration: IrDeclaration): List<IrDeclaration>? {
if (declaration is IrClass && declaration.isInner) {
stageController.unrestrictDeclarationListsAccess {
context.irFactory.stageController.unrestrictDeclarationListsAccess {
declaration.declarations += innerClassesSupport.getOuterThisField(declaration)
}
} else if (declaration is IrConstructor) {