From 701a48b2111eeb8c503f9b1b4e807be83e02d479 Mon Sep 17 00:00:00 2001 From: Sergej Jaskiewicz Date: Wed, 6 Dec 2023 13:46:49 +0100 Subject: [PATCH] [SIR] Fix transformer auto-generation The default implementation of a transformer method should delegate to `parentInVisitor` --- .../kotlin/sir/visitors/SirTransformer.kt | 14 +++++++------- .../tree/generator/printer/TransformerPrinter.kt | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/native/swift/sir/gen/org/jetbrains/kotlin/sir/visitors/SirTransformer.kt b/native/swift/sir/gen/org/jetbrains/kotlin/sir/visitors/SirTransformer.kt index 9b5eed5fd3e..b8d15128eae 100644 --- a/native/swift/sir/gen/org/jetbrains/kotlin/sir/visitors/SirTransformer.kt +++ b/native/swift/sir/gen/org/jetbrains/kotlin/sir/visitors/SirTransformer.kt @@ -47,7 +47,7 @@ abstract class SirTransformer : SirVisitor() { } open fun transformForeignDeclaration(foreignDeclaration: SirForeignDeclaration, data: D): SirDeclaration { - return transformElement(foreignDeclaration, data) + return transformDeclaration(foreignDeclaration, data) } final override fun visitForeignDeclaration(foreignDeclaration: SirForeignDeclaration, data: D): SirDeclaration { @@ -56,7 +56,7 @@ abstract class SirTransformer : SirVisitor() { open fun transformNamedDeclaration(namedDeclaration: SirNamedDeclaration, data: D): SirDeclaration { - return transformElement(namedDeclaration, data) + return transformDeclaration(namedDeclaration, data) } final override fun visitNamedDeclaration(namedDeclaration: SirNamedDeclaration, data: D): SirDeclaration { @@ -64,7 +64,7 @@ abstract class SirTransformer : SirVisitor() { } open fun transformEnum(enum: SirEnum, data: D): SirDeclaration { - return transformElement(enum, data) + return transformNamedDeclaration(enum, data) } final override fun visitEnum(enum: SirEnum, data: D): SirDeclaration { @@ -72,7 +72,7 @@ abstract class SirTransformer : SirVisitor() { } open fun transformStruct(struct: SirStruct, data: D): SirDeclaration { - return transformElement(struct, data) + return transformNamedDeclaration(struct, data) } final override fun visitStruct(struct: SirStruct, data: D): SirDeclaration { @@ -80,7 +80,7 @@ abstract class SirTransformer : SirVisitor() { } open fun transformCallable(callable: SirCallable, data: D): SirDeclaration { - return transformElement(callable, data) + return transformDeclaration(callable, data) } final override fun visitCallable(callable: SirCallable, data: D): SirDeclaration { @@ -88,7 +88,7 @@ abstract class SirTransformer : SirVisitor() { } open fun transformFunction(function: SirFunction, data: D): SirDeclaration { - return transformElement(function, data) + return transformCallable(function, data) } final override fun visitFunction(function: SirFunction, data: D): SirDeclaration { @@ -96,7 +96,7 @@ abstract class SirTransformer : SirVisitor() { } open fun transformForeignFunction(foreignFunction: SirForeignFunction, data: D): SirDeclaration { - return transformElement(foreignFunction, data) + return transformCallable(foreignFunction, data) } final override fun visitForeignFunction(foreignFunction: SirForeignFunction, data: D): SirDeclaration { diff --git a/native/swift/sir/tree-generator/src/org/jetbrains/kotlin/sir/tree/generator/printer/TransformerPrinter.kt b/native/swift/sir/tree-generator/src/org/jetbrains/kotlin/sir/tree/generator/printer/TransformerPrinter.kt index 31a3665d389..656f6c04213 100644 --- a/native/swift/sir/tree-generator/src/org/jetbrains/kotlin/sir/tree/generator/printer/TransformerPrinter.kt +++ b/native/swift/sir/tree-generator/src/org/jetbrains/kotlin/sir/tree/generator/printer/TransformerPrinter.kt @@ -53,7 +53,7 @@ internal class TransformerPrinter( ) println() } else { - if (element.parentInVisitor == null) return + val parentInVisitor = element.parentInVisitor ?: return printFunctionWithBlockBody( name = "transform" + element.name, parameters = listOf( @@ -64,7 +64,7 @@ internal class TransformerPrinter( typeParameters = element.params, modality = Modality.OPEN, ) { - println("return transformElement(", elementParameterName, ", data)") + println("return ", "transform", parentInVisitor.name, "(", elementParameterName, ", data)") } } println()