[FIR/IR generator] Remove visitSuperTypeByDefault from visitor printers

This property is FIR-specific, no need to use it in the generic printer.
This commit is contained in:
Sergej Jaskiewicz
2023-11-14 16:26:28 +01:00
committed by Space Team
parent a5b5492b2d
commit 4307e76f15
5 changed files with 20 additions and 22 deletions
@@ -18,7 +18,7 @@ import java.io.File
private class TransformerPrinter(
printer: SmartPrinter,
) : AbstractVisitorPrinter<Element, Field>(printer, visitSuperTypeByDefault = false) {
) : AbstractVisitorPrinter<Element, Field>(printer) {
override val visitorType: ClassRef<*>
get() = firTransformerType
@@ -21,8 +21,8 @@ import java.io.File
private class VisitorPrinter(
printer: SmartPrinter,
override val visitorType: ClassRef<*>,
visitSuperTypeByDefault: Boolean,
) : AbstractVisitorPrinter<Element, Field>(printer, visitSuperTypeByDefault) {
private val visitSuperTypeByDefault: Boolean,
) : AbstractVisitorPrinter<Element, Field>(printer) {
override val visitorTypeParameters: List<TypeVariable>
get() = listOf(resultTypeVariable, dataTypeVariable)
@@ -38,6 +38,8 @@ private class VisitorPrinter(
override val allowTypeParametersInVisitorMethods: Boolean
get() = true
override fun skipElement(element: Element): Boolean = visitSuperTypeByDefault && element.isRootElement
override fun parentInVisitor(element: Element): Element? = when {
element.isRootElement -> null
visitSuperTypeByDefault -> element.parentInVisitor
@@ -57,7 +59,7 @@ fun printVisitor(elements: List<Element>, generationPath: File, visitSuperTypeBy
private class VisitorVoidPrinter(
printer: SmartPrinter,
override val visitorType: ClassRef<*>,
) : AbstractVisitorVoidPrinter<Element, Field>(printer, visitSuperTypeByDefault = false) {
) : AbstractVisitorVoidPrinter<Element, Field>(printer) {
override val visitorSuperClass: ClassRef<PositionTypeParameterRef>
get() = firVisitorType
@@ -80,7 +82,7 @@ fun printVisitorVoid(elements: List<Element>, generationPath: File) =
private class DefaultVisitorVoidPrinter(
printer: SmartPrinter,
override val visitorType: ClassRef<*>,
) : AbstractVisitorPrinter<Element, Field>(printer, visitSuperTypeByDefault = true) {
) : AbstractVisitorPrinter<Element, Field>(printer) {
override val visitorTypeParameters: List<TypeVariable>
get() = emptyList()
@@ -98,13 +100,14 @@ private class DefaultVisitorVoidPrinter(
context(ImportCollector)
override fun printMethodsForElement(element: Element) {
val parentInVisitor = element.parentInVisitor ?: return
printer.run {
printVisitMethodDeclaration(
element,
hasDataParameter = false,
override = true,
)
println(" = ", element.parentInVisitor!!.visitFunctionName, "(", element.visitorParameterName, ")")
println(" = ", parentInVisitor.visitFunctionName, "(", element.visitorParameterName, ")")
println()
}
}