[SIR] Fix transformer auto-generation
The default implementation of a transformer method should delegate to `parentInVisitor`
This commit is contained in:
committed by
Space Team
parent
0d2032f3ef
commit
701a48b211
@@ -47,7 +47,7 @@ abstract class SirTransformer<in D> : SirVisitor<SirElement, D>() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
open fun transformForeignDeclaration(foreignDeclaration: SirForeignDeclaration, data: D): SirDeclaration {
|
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 {
|
final override fun visitForeignDeclaration(foreignDeclaration: SirForeignDeclaration, data: D): SirDeclaration {
|
||||||
@@ -56,7 +56,7 @@ abstract class SirTransformer<in D> : SirVisitor<SirElement, D>() {
|
|||||||
|
|
||||||
|
|
||||||
open fun transformNamedDeclaration(namedDeclaration: SirNamedDeclaration, data: D): SirDeclaration {
|
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 {
|
final override fun visitNamedDeclaration(namedDeclaration: SirNamedDeclaration, data: D): SirDeclaration {
|
||||||
@@ -64,7 +64,7 @@ abstract class SirTransformer<in D> : SirVisitor<SirElement, D>() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
open fun transformEnum(enum: SirEnum, data: D): SirDeclaration {
|
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 {
|
final override fun visitEnum(enum: SirEnum, data: D): SirDeclaration {
|
||||||
@@ -72,7 +72,7 @@ abstract class SirTransformer<in D> : SirVisitor<SirElement, D>() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
open fun transformStruct(struct: SirStruct, data: D): SirDeclaration {
|
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 {
|
final override fun visitStruct(struct: SirStruct, data: D): SirDeclaration {
|
||||||
@@ -80,7 +80,7 @@ abstract class SirTransformer<in D> : SirVisitor<SirElement, D>() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
open fun transformCallable(callable: SirCallable, data: D): SirDeclaration {
|
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 {
|
final override fun visitCallable(callable: SirCallable, data: D): SirDeclaration {
|
||||||
@@ -88,7 +88,7 @@ abstract class SirTransformer<in D> : SirVisitor<SirElement, D>() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
open fun transformFunction(function: SirFunction, data: D): SirDeclaration {
|
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 {
|
final override fun visitFunction(function: SirFunction, data: D): SirDeclaration {
|
||||||
@@ -96,7 +96,7 @@ abstract class SirTransformer<in D> : SirVisitor<SirElement, D>() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
open fun transformForeignFunction(foreignFunction: SirForeignFunction, data: D): SirDeclaration {
|
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 {
|
final override fun visitForeignFunction(foreignFunction: SirForeignFunction, data: D): SirDeclaration {
|
||||||
|
|||||||
+2
-2
@@ -53,7 +53,7 @@ internal class TransformerPrinter(
|
|||||||
)
|
)
|
||||||
println()
|
println()
|
||||||
} else {
|
} else {
|
||||||
if (element.parentInVisitor == null) return
|
val parentInVisitor = element.parentInVisitor ?: return
|
||||||
printFunctionWithBlockBody(
|
printFunctionWithBlockBody(
|
||||||
name = "transform" + element.name,
|
name = "transform" + element.name,
|
||||||
parameters = listOf(
|
parameters = listOf(
|
||||||
@@ -64,7 +64,7 @@ internal class TransformerPrinter(
|
|||||||
typeParameters = element.params,
|
typeParameters = element.params,
|
||||||
modality = Modality.OPEN,
|
modality = Modality.OPEN,
|
||||||
) {
|
) {
|
||||||
println("return transformElement(", elementParameterName, ", data)")
|
println("return ", "transform", parentInVisitor.name, "(", elementParameterName, ", data)")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
println()
|
println()
|
||||||
|
|||||||
Reference in New Issue
Block a user