Minor: small refactorings in IrElementTransformerVoid
This commit is contained in:
-11
@@ -39,17 +39,6 @@ fun insertImplicitCasts(builtIns: KotlinBuiltIns, element: IrElement) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class InsertImplicitCasts(val builtIns: KotlinBuiltIns): IrElementTransformerVoid() {
|
class InsertImplicitCasts(val builtIns: KotlinBuiltIns): IrElementTransformerVoid() {
|
||||||
private inline fun <T : IrElement> T.transformPostfix(body: T.() -> Unit): T {
|
|
||||||
transformChildrenVoid(this@InsertImplicitCasts)
|
|
||||||
this.body()
|
|
||||||
return this
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun visitElement(element: IrElement): IrElement {
|
|
||||||
element.transformChildrenVoid(this)
|
|
||||||
return element
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun visitCallableReference(expression: IrCallableReference): IrExpression =
|
override fun visitCallableReference(expression: IrCallableReference): IrExpression =
|
||||||
expression.transformPostfix {
|
expression.transformPostfix {
|
||||||
transformReceiverArguments()
|
transformReceiverArguments()
|
||||||
|
|||||||
+13
-3
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.ir.declarations.*
|
|||||||
import org.jetbrains.kotlin.ir.expressions.*
|
import org.jetbrains.kotlin.ir.expressions.*
|
||||||
|
|
||||||
abstract class IrElementTransformerVoid : IrElementTransformer<Nothing?> {
|
abstract class IrElementTransformerVoid : IrElementTransformer<Nothing?> {
|
||||||
private fun <T : IrElement> T.transformChildren() = apply { transformChildrenVoid(this@IrElementTransformerVoid) }
|
protected fun <T : IrElement> T.transformChildren() = apply { transformChildrenVoid() }
|
||||||
|
|
||||||
open fun visitElement(element: IrElement): IrElement = element.transformChildren()
|
open fun visitElement(element: IrElement): IrElement = element.transformChildren()
|
||||||
override final fun visitElement(element: IrElement, data: Nothing?): IrElement = visitElement(element)
|
override final fun visitElement(element: IrElement, data: Nothing?): IrElement = visitElement(element)
|
||||||
@@ -154,7 +154,7 @@ abstract class IrElementTransformerVoid : IrElementTransformer<Nothing?> {
|
|||||||
open fun visitFunctionAccess(expression: IrFunctionAccessExpression) = visitMemberAccess(expression)
|
open fun visitFunctionAccess(expression: IrFunctionAccessExpression) = visitMemberAccess(expression)
|
||||||
override fun visitFunctionAccess(expression: IrFunctionAccessExpression, data: Nothing?) = visitFunctionAccess(expression)
|
override fun visitFunctionAccess(expression: IrFunctionAccessExpression, data: Nothing?) = visitFunctionAccess(expression)
|
||||||
|
|
||||||
open fun visitCall(expression: IrCall) = visitMemberAccess(expression)
|
open fun visitCall(expression: IrCall) = visitFunctionAccess(expression)
|
||||||
override final fun visitCall(expression: IrCall, data: Nothing?) = visitCall(expression)
|
override final fun visitCall(expression: IrCall, data: Nothing?) = visitCall(expression)
|
||||||
|
|
||||||
open fun visitDelegatingConstructorCall(expression: IrDelegatingConstructorCall) = visitMemberAccess(expression)
|
open fun visitDelegatingConstructorCall(expression: IrDelegatingConstructorCall) = visitMemberAccess(expression)
|
||||||
@@ -209,7 +209,7 @@ abstract class IrElementTransformerVoid : IrElementTransformer<Nothing?> {
|
|||||||
open fun visitTry(aTry: IrTry) = visitExpression(aTry)
|
open fun visitTry(aTry: IrTry) = visitExpression(aTry)
|
||||||
override final fun visitTry(aTry: IrTry, data: Nothing?) = visitTry(aTry)
|
override final fun visitTry(aTry: IrTry, data: Nothing?) = visitTry(aTry)
|
||||||
|
|
||||||
open fun visitCatch(aCatch: IrCatch): IrCatch = aCatch.apply { transformChildrenVoid(this@IrElementTransformerVoid) }
|
open fun visitCatch(aCatch: IrCatch): IrCatch = aCatch.apply { transformChildrenVoid() }
|
||||||
override final fun visitCatch(aCatch: IrCatch, data: Nothing?): IrCatch = visitCatch(aCatch)
|
override final fun visitCatch(aCatch: IrCatch, data: Nothing?): IrCatch = visitCatch(aCatch)
|
||||||
|
|
||||||
open fun visitBreakContinue(jump: IrBreakContinue) = visitExpression(jump)
|
open fun visitBreakContinue(jump: IrBreakContinue) = visitExpression(jump)
|
||||||
@@ -235,6 +235,16 @@ abstract class IrElementTransformerVoid : IrElementTransformer<Nothing?> {
|
|||||||
|
|
||||||
open fun visitErrorCallExpression(expression: IrErrorCallExpression) = visitErrorExpression(expression)
|
open fun visitErrorCallExpression(expression: IrErrorCallExpression) = visitErrorExpression(expression)
|
||||||
override final fun visitErrorCallExpression(expression: IrErrorCallExpression, data: Nothing?) = visitErrorCallExpression(expression)
|
override final fun visitErrorCallExpression(expression: IrErrorCallExpression, data: Nothing?) = visitErrorCallExpression(expression)
|
||||||
|
|
||||||
|
protected inline fun <T : IrElement> T.transformPostfix(body: T.() -> Unit): T {
|
||||||
|
transformChildrenVoid()
|
||||||
|
this.body()
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
protected fun IrElement.transformChildrenVoid() {
|
||||||
|
transformChildrenVoid(this@IrElementTransformerVoid)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun IrElement.transformChildrenVoid(transformer: IrElementTransformerVoid) {
|
fun IrElement.transformChildrenVoid(transformer: IrElementTransformerVoid) {
|
||||||
|
|||||||
Reference in New Issue
Block a user