Minor: small refactorings in IrElementTransformerVoid

This commit is contained in:
Dmitry Petrov
2017-05-02 15:57:01 +03:00
parent 0203ba4dff
commit 7bd75df1f1
2 changed files with 13 additions and 14 deletions
@@ -39,17 +39,6 @@ fun insertImplicitCasts(builtIns: KotlinBuiltIns, element: IrElement) {
}
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 =
expression.transformPostfix {
transformReceiverArguments()
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.expressions.*
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()
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)
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)
open fun visitDelegatingConstructorCall(expression: IrDelegatingConstructorCall) = visitMemberAccess(expression)
@@ -209,7 +209,7 @@ abstract class IrElementTransformerVoid : IrElementTransformer<Nothing?> {
open fun visitTry(aTry: IrTry) = visitExpression(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)
open fun visitBreakContinue(jump: IrBreakContinue) = visitExpression(jump)
@@ -235,6 +235,16 @@ abstract class IrElementTransformerVoid : IrElementTransformer<Nothing?> {
open fun visitErrorCallExpression(expression: IrErrorCallExpression) = visitErrorExpression(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) {