Hide stageController into the IrFactory
This commit is contained in:
+1
@@ -18,6 +18,7 @@ internal fun PersistentIrGenerator.generateAnonymousInitializer() {
|
||||
origin,
|
||||
+"override val symbol: " + IrAnonymousInitializerSymbol,
|
||||
isStatic + " = false",
|
||||
irFactory,
|
||||
).join(separator = ",\n").indent(),
|
||||
+") : " + baseClasses("AnonymousInitializer") + " " + blockSpaced(
|
||||
initBlock,
|
||||
|
||||
+3
-2
@@ -36,6 +36,7 @@ internal fun PersistentIrGenerator.generateClass() {
|
||||
isExpect + " = false",
|
||||
isFun,
|
||||
source,
|
||||
irFactory,
|
||||
).join(separator = ",\n").indent(),
|
||||
+") : " + baseClasses("Class") + " " + blockSpaced(
|
||||
initBlock,
|
||||
@@ -49,12 +50,12 @@ internal fun PersistentIrGenerator.generateClass() {
|
||||
+"override val declarations: MutableList<IrDeclaration> = " + import("ArrayList", "java.util") + "()",
|
||||
lines(
|
||||
+"get() " + block(
|
||||
+"if (createdOn < stageController.currentStage && initialDeclarations == null) " + block(
|
||||
+"if (createdOn < factory.stageController.currentStage && initialDeclarations == null) " + block(
|
||||
+"initialDeclarations = " + import("Collections", "java.util") + ".unmodifiableList(ArrayList(field))"
|
||||
),
|
||||
id,
|
||||
+"""
|
||||
return if (stageController.canAccessDeclarationsOf(this)) {
|
||||
return if (factory.stageController.canAccessDeclarationsOf(this)) {
|
||||
ensureLowered()
|
||||
field
|
||||
} else {
|
||||
|
||||
+1
@@ -33,6 +33,7 @@ internal fun PersistentIrGenerator.generateConstructor() {
|
||||
isPrimary,
|
||||
isExpect,
|
||||
containerSource,
|
||||
irFactory,
|
||||
).join(separator = ",\n").indent(),
|
||||
+") : " + baseClasses("Constructor") + " " + blockSpaced(
|
||||
initBlock,
|
||||
|
||||
+1
@@ -19,6 +19,7 @@ internal fun PersistentIrGenerator.generateEnumEntry() {
|
||||
origin,
|
||||
+"override val symbol: " + irSymbol("IrEnumEntrySymbol"),
|
||||
name,
|
||||
irFactory,
|
||||
).join(separator = ",\n").indent(),
|
||||
+") : " + baseClasses("EnumEntry") + " " + blockSpaced(
|
||||
initBlock,
|
||||
|
||||
+2
-1
@@ -15,7 +15,8 @@ internal fun PersistentIrGenerator.generateErrorDeclaration() {
|
||||
arrayOf(
|
||||
startOffset,
|
||||
endOffset,
|
||||
+"private val _descriptor: " + DeclarationDescriptor + "?"
|
||||
+"private val _descriptor: " + DeclarationDescriptor + "?",
|
||||
irFactory,
|
||||
).join(separator = ",\n").indent(),
|
||||
+") : " + baseClasses("ErrorDeclaration") + " " + block(
|
||||
lines(
|
||||
|
||||
+1
@@ -27,6 +27,7 @@ internal fun PersistentIrGenerator.generateField() {
|
||||
isFinal,
|
||||
isExternal,
|
||||
isStatic,
|
||||
irFactory,
|
||||
).join(separator = ",\n").indent(),
|
||||
+") : " + baseClasses("Field") + " " + blockSpaced(
|
||||
initBlock,
|
||||
|
||||
+1
@@ -39,6 +39,7 @@ internal fun PersistentIrGenerator.generateFunction() {
|
||||
+"override val isInfix: Boolean",
|
||||
isExpect,
|
||||
containerSource + " = null",
|
||||
irFactory,
|
||||
).join(separator = ",\n").indent(),
|
||||
+") : " + baseClasses("Function", baseClass = "IrSimpleFunction") + " " + blockSpaced(
|
||||
commonFields,
|
||||
|
||||
+1
@@ -25,6 +25,7 @@ internal fun PersistentIrGenerator.generateLocalDelegatedProperty() {
|
||||
name,
|
||||
+"type: " + IrType,
|
||||
+"override val isVar: Boolean",
|
||||
irFactory,
|
||||
).join(separator = ",\n").indent(),
|
||||
+") : " + baseClasses("LocalDelegatedProperty") + " " + blockSpaced(
|
||||
initBlock,
|
||||
|
||||
+5
-5
@@ -53,8 +53,6 @@ internal object PersistentIrGenerator {
|
||||
|
||||
val ObsoleteDescriptorBasedAPI = import("ObsoleteDescriptorBasedAPI", "org.jetbrains.kotlin.ir")
|
||||
|
||||
val stageController = import("stageController", "org.jetbrains.kotlin.ir.declarations")
|
||||
|
||||
val IrType = import("IrType", "org.jetbrains.kotlin.ir.types")
|
||||
|
||||
val IrPropertySymbol = irSymbol("IrPropertySymbol")
|
||||
@@ -82,15 +80,17 @@ internal object PersistentIrGenerator {
|
||||
val isPrimary = +"override val isPrimary: Boolean"
|
||||
val containerSource = +"override val containerSource: " + import("DeserializedContainerSource", "org.jetbrains.kotlin.serialization.deserialization.descriptors") + "?"
|
||||
|
||||
val irFactory = +"override val factory: PersistentIrFactory"
|
||||
|
||||
val initBlock = +"init " + block(
|
||||
+"symbol.bind(this)"
|
||||
)
|
||||
|
||||
// Fields
|
||||
val lastModified = +"override var lastModified: Int = " + stageController + ".currentStage"
|
||||
val loweredUpTo = +"override var loweredUpTo: Int = " + stageController + ".currentStage"
|
||||
val lastModified = +"override var lastModified: Int = factory.stageController.currentStage"
|
||||
val loweredUpTo = +"override var loweredUpTo: Int = factory.stageController.currentStage"
|
||||
val values = +"override var values: Array<" + Carrier + ">? = null"
|
||||
val createdOn = +"override val createdOn: Int = " + stageController + ".currentStage"
|
||||
val createdOn = +"override val createdOn: Int = factory.stageController.currentStage"
|
||||
|
||||
val parentField = +"override var parentField: " + IrDeclarationParent + "? = null"
|
||||
val originField = +"override var originField: " + IrDeclarationOrigin + " = origin"
|
||||
|
||||
+2
-1
@@ -29,7 +29,8 @@ internal fun PersistentIrGenerator.generateProperty() {
|
||||
+"override val isDelegated: Boolean",
|
||||
isExternal,
|
||||
isExpect,
|
||||
containerSource
|
||||
containerSource,
|
||||
irFactory,
|
||||
).join(separator = ",\n").indent(),
|
||||
+") : " + baseClasses("Property") + " " + blockSpaced(
|
||||
commonFields,
|
||||
|
||||
+1
@@ -22,6 +22,7 @@ internal fun PersistentIrGenerator.generateTypeAlias() {
|
||||
+"expandedType: " + IrType,
|
||||
+"override val isActual: Boolean",
|
||||
origin,
|
||||
irFactory,
|
||||
).join(separator = ",\n").indent(),
|
||||
+") : " + baseClasses("TypeAlias") + " " + blockSpaced(
|
||||
initBlock,
|
||||
|
||||
+2
-1
@@ -20,7 +20,8 @@ internal fun PersistentIrGenerator.generateTypeParameter() {
|
||||
name,
|
||||
+"override val index: Int",
|
||||
+"override val isReified: Boolean",
|
||||
+"override val variance: " + import("Variance", "org.jetbrains.kotlin.types")
|
||||
+"override val variance: " + import("Variance", "org.jetbrains.kotlin.types"),
|
||||
irFactory,
|
||||
).join(separator = ",\n").indent(),
|
||||
+") : " + baseClasses("TypeParameter") + " " + blockSpaced(
|
||||
initBlock,
|
||||
|
||||
+2
-1
@@ -27,7 +27,8 @@ internal fun PersistentIrGenerator.generateValueParameter() {
|
||||
+"override val isCrossinline: Boolean",
|
||||
+"override val isNoinline: Boolean",
|
||||
+"override val isHidden: Boolean",
|
||||
+"override val isAssignable: Boolean"
|
||||
+"override val isAssignable: Boolean",
|
||||
irFactory,
|
||||
).join(separator = ",\n").indent(),
|
||||
+") : " + baseClasses("ValueParameter") + " " + blockSpaced(
|
||||
descriptor(descriptorType("ParameterDescriptor")),
|
||||
|
||||
Reference in New Issue
Block a user