[FIR/IR generator] Make InterfaceAndAbstractClassConfigurator open
This commit is contained in:
committed by
Space Team
parent
d5fa755e63
commit
0465c6d0ee
+2
-2
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.tree.generator
|
||||
|
||||
import org.jetbrains.kotlin.fir.tree.generator.context.AbstractFirTreeBuilder
|
||||
import org.jetbrains.kotlin.fir.tree.generator.printer.generateElements
|
||||
import org.jetbrains.kotlin.fir.tree.generator.util.configureInterfacesAndAbstractClasses
|
||||
import org.jetbrains.kotlin.fir.tree.generator.util.FirInterfaceAndAbstractClassConfigurator
|
||||
import org.jetbrains.kotlin.generators.tree.Model
|
||||
import org.jetbrains.kotlin.generators.tree.detectBaseTransformerTypes
|
||||
import org.jetbrains.kotlin.generators.tree.addPureAbstractElement
|
||||
@@ -25,7 +25,7 @@ fun main(args: Array<String>) {
|
||||
val model = Model(FirTreeBuilder.elements, AbstractFirTreeBuilder.baseFirElement)
|
||||
detectBaseTransformerTypes(model)
|
||||
ImplementationConfigurator.configureImplementations()
|
||||
configureInterfacesAndAbstractClasses(FirTreeBuilder)
|
||||
FirInterfaceAndAbstractClassConfigurator(FirTreeBuilder).configureInterfacesAndAbstractClasses()
|
||||
addPureAbstractElement(FirTreeBuilder.elements, pureAbstractElementType)
|
||||
BuilderConfigurator.configureBuilders()
|
||||
val previouslyGeneratedFiles = collectPreviouslyGeneratedFiles(generationPath)
|
||||
|
||||
+3
-7
@@ -10,14 +10,10 @@ import org.jetbrains.kotlin.fir.tree.generator.model.Implementation
|
||||
import org.jetbrains.kotlin.generators.tree.ImplementationKindOwner
|
||||
import org.jetbrains.kotlin.generators.tree.InterfaceAndAbstractClassConfigurator
|
||||
|
||||
private class FirInterfaceAndAbstractClassConfigurator(builder: AbstractFirTreeBuilder) : InterfaceAndAbstractClassConfigurator() {
|
||||
|
||||
override val elements: List<ImplementationKindOwner> = (builder.elements + builder.elements.flatMap { it.allImplementations })
|
||||
|
||||
internal class FirInterfaceAndAbstractClassConfigurator(builder: AbstractFirTreeBuilder) : InterfaceAndAbstractClassConfigurator(
|
||||
elements = (builder.elements + builder.elements.flatMap { it.allImplementations })
|
||||
) {
|
||||
override fun shouldBeFinalClass(element: ImplementationKindOwner, allParents: Set<ImplementationKindOwner>): Boolean =
|
||||
element is Implementation && element !in allParents
|
||||
}
|
||||
|
||||
fun configureInterfacesAndAbstractClasses(builder: AbstractFirTreeBuilder) {
|
||||
FirInterfaceAndAbstractClassConfigurator(builder).configureInterfacesAndAbstractClasses()
|
||||
}
|
||||
Reference in New Issue
Block a user