[SIR] Use shorter parameter names for some elements in visitor methods

This commit is contained in:
Sergej Jaskiewicz
2023-12-11 20:11:02 +01:00
committed by Space Team
parent e8459793b7
commit dada4a60bd
7 changed files with 49 additions and 44 deletions
@@ -30,18 +30,18 @@ public class ForeignIntoSwiftFunctionTranslationPass : SirPass<SirElement, Nothi
return element return element
} }
override fun transformForeignFunction(foreignFunction: SirForeignFunction): SirDeclaration { override fun transformForeignFunction(function: SirForeignFunction): SirDeclaration {
val kotlinOrigin = (foreignFunction.origin as? SirOrigin.ForeignEntity)?.entity as? KotlinFunction val kotlinOrigin = (function.origin as? SirOrigin.ForeignEntity)?.entity as? KotlinFunction
?: return foreignFunction ?: return function
return buildFunction { return buildFunction {
origin = foreignFunction.origin origin = function.origin
visibility = foreignFunction.visibility visibility = function.visibility
name = kotlinOrigin.fqName.last() name = kotlinOrigin.fqName.last()
kotlinOrigin.parameters.mapTo(parameters) { it.toSir() } kotlinOrigin.parameters.mapTo(parameters) { it.toSir() }
returnType = kotlinOrigin.returnType.toSir() returnType = kotlinOrigin.returnType.toSir()
}.apply { }.apply {
parent = foreignFunction.parent parent = function.parent
} }
} }
} }
@@ -50,8 +50,8 @@ abstract class SirTransformer<in D> : SirVisitor<SirElement, D>() {
return transformDeclaration(foreignDeclaration, data) return transformDeclaration(foreignDeclaration, data)
} }
final override fun visitForeignDeclaration(foreignDeclaration: SirForeignDeclaration, data: D): SirDeclaration { final override fun visitForeignDeclaration(declaration: SirForeignDeclaration, data: D): SirDeclaration {
return transformForeignDeclaration(foreignDeclaration, data) return transformForeignDeclaration(declaration, data)
} }
@@ -59,8 +59,8 @@ abstract class SirTransformer<in D> : SirVisitor<SirElement, D>() {
return transformDeclaration(namedDeclaration, data) return transformDeclaration(namedDeclaration, data)
} }
final override fun visitNamedDeclaration(namedDeclaration: SirNamedDeclaration, data: D): SirDeclaration { final override fun visitNamedDeclaration(declaration: SirNamedDeclaration, data: D): SirDeclaration {
return transformNamedDeclaration(namedDeclaration, data) return transformNamedDeclaration(declaration, data)
} }
open fun transformEnum(enum: SirEnum, data: D): SirDeclaration { open fun transformEnum(enum: SirEnum, data: D): SirDeclaration {
@@ -99,7 +99,7 @@ abstract class SirTransformer<in D> : SirVisitor<SirElement, D>() {
return transformCallable(foreignFunction, data) return transformCallable(foreignFunction, data)
} }
final override fun visitForeignFunction(foreignFunction: SirForeignFunction, data: D): SirDeclaration { final override fun visitForeignFunction(function: SirForeignFunction, data: D): SirDeclaration {
return transformForeignFunction(foreignFunction, data) return transformForeignFunction(function, data)
} }
} }
@@ -38,17 +38,17 @@ abstract class SirTransformerVoid : SirTransformer<Nothing?>() {
final override fun transformDeclaration(declaration: SirDeclaration, data: Nothing?): SirDeclaration = final override fun transformDeclaration(declaration: SirDeclaration, data: Nothing?): SirDeclaration =
transformDeclaration(declaration) transformDeclaration(declaration)
open fun transformForeignDeclaration(foreignDeclaration: SirForeignDeclaration): SirDeclaration = open fun transformForeignDeclaration(declaration: SirForeignDeclaration): SirDeclaration =
transformDeclaration(foreignDeclaration) transformDeclaration(declaration)
final override fun transformForeignDeclaration(foreignDeclaration: SirForeignDeclaration, data: Nothing?): SirDeclaration = final override fun transformForeignDeclaration(declaration: SirForeignDeclaration, data: Nothing?): SirDeclaration =
transformForeignDeclaration(foreignDeclaration) transformForeignDeclaration(declaration)
open fun transformNamedDeclaration(namedDeclaration: SirNamedDeclaration): SirDeclaration = open fun transformNamedDeclaration(declaration: SirNamedDeclaration): SirDeclaration =
transformDeclaration(namedDeclaration) transformDeclaration(declaration)
final override fun transformNamedDeclaration(namedDeclaration: SirNamedDeclaration, data: Nothing?): SirDeclaration = final override fun transformNamedDeclaration(declaration: SirNamedDeclaration, data: Nothing?): SirDeclaration =
transformNamedDeclaration(namedDeclaration) transformNamedDeclaration(declaration)
open fun transformEnum(enum: SirEnum): SirDeclaration = open fun transformEnum(enum: SirEnum): SirDeclaration =
transformNamedDeclaration(enum) transformNamedDeclaration(enum)
@@ -74,9 +74,9 @@ abstract class SirTransformerVoid : SirTransformer<Nothing?>() {
final override fun transformFunction(function: SirFunction, data: Nothing?): SirDeclaration = final override fun transformFunction(function: SirFunction, data: Nothing?): SirDeclaration =
transformFunction(function) transformFunction(function)
open fun transformForeignFunction(foreignFunction: SirForeignFunction): SirDeclaration = open fun transformForeignFunction(function: SirForeignFunction): SirDeclaration =
transformCallable(foreignFunction) transformCallable(function)
final override fun transformForeignFunction(foreignFunction: SirForeignFunction, data: Nothing?): SirDeclaration = final override fun transformForeignFunction(function: SirForeignFunction, data: Nothing?): SirDeclaration =
transformForeignFunction(foreignFunction) transformForeignFunction(function)
} }
@@ -26,11 +26,11 @@ abstract class SirVisitor<out R, in D> {
open fun visitDeclaration(declaration: SirDeclaration, data: D): R = open fun visitDeclaration(declaration: SirDeclaration, data: D): R =
visitElement(declaration, data) visitElement(declaration, data)
open fun visitForeignDeclaration(foreignDeclaration: SirForeignDeclaration, data: D): R = open fun visitForeignDeclaration(declaration: SirForeignDeclaration, data: D): R =
visitDeclaration(foreignDeclaration, data) visitDeclaration(declaration, data)
open fun visitNamedDeclaration(namedDeclaration: SirNamedDeclaration, data: D): R = open fun visitNamedDeclaration(declaration: SirNamedDeclaration, data: D): R =
visitDeclaration(namedDeclaration, data) visitDeclaration(declaration, data)
open fun visitEnum(enum: SirEnum, data: D): R = open fun visitEnum(enum: SirEnum, data: D): R =
visitNamedDeclaration(enum, data) visitNamedDeclaration(enum, data)
@@ -44,6 +44,6 @@ abstract class SirVisitor<out R, in D> {
open fun visitFunction(function: SirFunction, data: D): R = open fun visitFunction(function: SirFunction, data: D): R =
visitCallable(function, data) visitCallable(function, data)
open fun visitForeignFunction(foreignFunction: SirForeignFunction, data: D): R = open fun visitForeignFunction(function: SirForeignFunction, data: D): R =
visitCallable(foreignFunction, data) visitCallable(function, data)
} }
@@ -46,20 +46,20 @@ abstract class SirVisitorVoid : SirVisitor<Unit, Nothing?>() {
visitElement(declaration) visitElement(declaration)
} }
final override fun visitForeignDeclaration(foreignDeclaration: SirForeignDeclaration, data: Nothing?) { final override fun visitForeignDeclaration(declaration: SirForeignDeclaration, data: Nothing?) {
visitForeignDeclaration(foreignDeclaration) visitForeignDeclaration(declaration)
} }
open fun visitForeignDeclaration(foreignDeclaration: SirForeignDeclaration) { open fun visitForeignDeclaration(declaration: SirForeignDeclaration) {
visitDeclaration(foreignDeclaration) visitDeclaration(declaration)
} }
final override fun visitNamedDeclaration(namedDeclaration: SirNamedDeclaration, data: Nothing?) { final override fun visitNamedDeclaration(declaration: SirNamedDeclaration, data: Nothing?) {
visitNamedDeclaration(namedDeclaration) visitNamedDeclaration(declaration)
} }
open fun visitNamedDeclaration(namedDeclaration: SirNamedDeclaration) { open fun visitNamedDeclaration(declaration: SirNamedDeclaration) {
visitDeclaration(namedDeclaration) visitDeclaration(declaration)
} }
final override fun visitEnum(enum: SirEnum, data: Nothing?) { final override fun visitEnum(enum: SirEnum, data: Nothing?) {
@@ -94,11 +94,11 @@ abstract class SirVisitorVoid : SirVisitor<Unit, Nothing?>() {
visitCallable(function) visitCallable(function)
} }
final override fun visitForeignFunction(foreignFunction: SirForeignFunction, data: Nothing?) { final override fun visitForeignFunction(function: SirForeignFunction, data: Nothing?) {
visitForeignFunction(foreignFunction) visitForeignFunction(function)
} }
open fun visitForeignFunction(foreignFunction: SirForeignFunction) { open fun visitForeignFunction(function: SirForeignFunction) {
visitCallable(foreignFunction) visitCallable(function)
} }
} }
@@ -43,6 +43,8 @@ object SwiftIrTree : AbstractSwiftIrTreeBuilder() {
val foreignDeclaration by sealedElement { val foreignDeclaration by sealedElement {
parent(declaration) parent(declaration)
visitorParameterName = "declaration"
} }
val named by sealedElement { val named by sealedElement {
@@ -53,6 +55,8 @@ object SwiftIrTree : AbstractSwiftIrTreeBuilder() {
customParentInVisitor = declaration customParentInVisitor = declaration
parent(declaration) parent(declaration)
parent(named) parent(named)
visitorParameterName = "declaration"
} }
val enum: Element by element { val enum: Element by element {
@@ -86,5 +90,7 @@ object SwiftIrTree : AbstractSwiftIrTreeBuilder() {
customParentInVisitor = callable customParentInVisitor = callable
parent(callable) parent(callable)
parent(foreignDeclaration) parent(foreignDeclaration)
visitorParameterName = "function"
} }
} }
@@ -20,8 +20,7 @@ class Element(name: String, override val propertyName: String) : AbstractElement
override val otherParents: MutableList<ClassRef<*>> = mutableListOf() override val otherParents: MutableList<ClassRef<*>> = mutableListOf()
override val visitorParameterName: String override var visitorParameterName: String = safeDecapitalizedName
get() = safeDecapitalizedName
override val hasAcceptMethod: Boolean override val hasAcceptMethod: Boolean
get() = true get() = true