IR: remove type parameter in visitConst

Co-authored-by: mcpiroman <mcpiroman@gmail.com>
This commit is contained in:
Alexander Udalov
2022-01-10 22:20:24 +01:00
parent 81106526b1
commit 6445a29893
15 changed files with 40 additions and 32 deletions
@@ -20,7 +20,6 @@ import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid
import org.jetbrains.kotlin.ir.visitors.acceptVoid
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
import java.util.*
inline fun <reified T : IrElement> T.deepCopyWithSymbols(
initialParent: IrDeclarationParent? = null,
@@ -408,7 +407,7 @@ open class DeepCopyIrTreeWithSymbols(
override fun visitExpression(expression: IrExpression): IrExpression =
throw IllegalArgumentException("Unsupported expression type: $expression")
override fun <T> visitConst(expression: IrConst<T>): IrConst<T> =
override fun visitConst(expression: IrConst<*>): IrConst<*> =
expression.shallowCopy().copyAttributes(expression)
override fun visitConstantObject(expression: IrConstantObject): IrConstantValue =
@@ -560,7 +560,7 @@ class RenderIrElementVisitor(private val normalizeNames: Boolean = false, privat
override fun visitExpression(expression: IrExpression, data: Nothing?): String =
"? ${expression::class.java.simpleName} type=${expression.type.render()}"
override fun <T> visitConst(expression: IrConst<T>, data: Nothing?): String =
override fun visitConst(expression: IrConst<*>, data: Nothing?): String =
"CONST ${expression.kind} type=${expression.type.render()} value=${expression.value?.escapeIfRequired()}"
private fun Any.escapeIfRequired() =
@@ -1180,7 +1180,7 @@ private class KotlinLikeDumper(val p: Printer, val options: KotlinLikeDumpOption
}
}
override fun <T> visitConst(expression: IrConst<T>, data: IrDeclaration?) {
override fun visitConst(expression: IrConst<*>, data: IrDeclaration?) {
val kind = expression.kind
val (prefix, postfix) = when (kind) {
@@ -79,9 +79,9 @@ interface IrElementTransformer<in D> : IrElementVisitor<IrElement, D> {
return expression
}
override fun <T> visitConst(expression: IrConst<T>, data: D) = visitExpression(expression, data)
override fun visitConst(expression: IrConst<*>, data: D) = visitExpression(expression, data)
override fun visitVararg(expression: IrVararg, data: D) = visitExpression(expression, data)
override fun visitConstantValue(expression: IrConstantValue, data: D) : IrConstantValue {
override fun visitConstantValue(expression: IrConstantValue, data: D): IrConstantValue {
expression.transformChildren(this, data)
return expression
}
@@ -134,10 +134,10 @@ abstract class IrElementTransformerVoid : IrElementTransformer<Nothing?> {
final override fun visitExpression(expression: IrExpression, data: Nothing?): IrExpression = visitExpression(expression)
open fun <T> visitConst(expression: IrConst<T>) = visitExpression(expression)
final override fun <T> visitConst(expression: IrConst<T>, data: Nothing?) = visitConst(expression)
open fun visitConst(expression: IrConst<*>) = visitExpression(expression)
final override fun visitConst(expression: IrConst<*>, data: Nothing?) = visitConst(expression)
open fun visitConstantValue(expression: IrConstantValue) : IrConstantValue {
open fun visitConstantValue(expression: IrConstantValue): IrConstantValue {
expression.transformChildren(this, null)
return expression
}
@@ -52,7 +52,7 @@ interface IrElementVisitor<out R, in D> {
fun visitSuspensionPoint(expression: IrSuspensionPoint, data: D) = visitExpression(expression, data)
fun visitExpression(expression: IrExpression, data: D) = visitElement(expression, data)
fun <T> visitConst(expression: IrConst<T>, data: D) = visitExpression(expression, data)
fun visitConst(expression: IrConst<*>, data: D) = visitExpression(expression, data)
fun visitConstantValue(expression: IrConstantValue, data: D) = visitExpression(expression, data)
fun visitConstantObject(expression: IrConstantObject, data: D) = visitConstantValue(expression, data)
fun visitConstantPrimitive(expression: IrConstantPrimitive, data: D) = visitConstantValue(expression, data)
@@ -104,8 +104,8 @@ interface IrElementVisitorVoid : IrElementVisitor<Unit, Nothing?> {
fun visitExpression(expression: IrExpression) = visitElement(expression)
override fun visitExpression(expression: IrExpression, data: Nothing?) = visitExpression(expression)
fun <T> visitConst(expression: IrConst<T>) = visitExpression(expression)
override fun <T> visitConst(expression: IrConst<T>, data: Nothing?) = visitConst(expression)
fun visitConst(expression: IrConst<*>) = visitExpression(expression)
override fun visitConst(expression: IrConst<*>, data: Nothing?) = visitConst(expression)
fun visitConstantValue(expression: IrConstantValue) = visitExpression(expression)
override fun visitConstantValue(expression: IrConstantValue, data: Nothing?) = visitConstantValue(expression)