[SIR] Add SirTransformerVoid class

This is convenient for cases when the transformer has no context to pass
to each method
This commit is contained in:
Sergej Jaskiewicz
2023-12-11 19:41:19 +01:00
committed by Space Team
parent 1bc2ac2c87
commit 1bed6a063f
9 changed files with 304 additions and 34 deletions
@@ -20,16 +20,10 @@ import org.jetbrains.kotlin.utils.withIndent
internal class TransformerVoidPrinter(
printer: SmartPrinter,
override val visitorType: ClassRef<*>,
) : AbstractTransformerPrinter<Element, Field>(printer) {
) : AbstractTransformerVoidPrinter<Element, Field>(printer) {
override val visitorTypeParameters: List<TypeVariable>
get() = emptyList()
override val visitorSuperType: ClassRef<PositionTypeParameterRef>
get() = elementTransformerType.withArgs(visitorDataType)
override val visitorDataType: TypeRef
get() = StandardTypes.nothing.copy(nullable = true)
override val transformerSuperClass: ClassRef<PositionTypeParameterRef>
get() = elementTransformerType
// IrPackageFragment is treated as transformByChildren in IrElementTransformerVoid for historical reasons.
private val Element.isPackageFragment: Boolean