[IR] Move IrGetValue.actualize() to IrUtils and rename it

^KT-62292
This commit is contained in:
Pavel Kunyavskiy
2023-11-14 13:37:04 +01:00
committed by Space Team
parent e80d4b1d60
commit 763d2ec2fe
5 changed files with 39 additions and 44 deletions
@@ -5,16 +5,12 @@
package org.jetbrains.kotlin.backend.common.actualizer
import org.jetbrains.kotlin.backend.common.lower.actualize
import org.jetbrains.kotlin.ir.declarations.IrFunction
import org.jetbrains.kotlin.ir.declarations.copyAttributes
import org.jetbrains.kotlin.ir.expressions.IrGetValue
import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol
import org.jetbrains.kotlin.ir.symbols.IrSymbol
import org.jetbrains.kotlin.ir.util.DeepCopyTypeRemapper
import org.jetbrains.kotlin.ir.util.SymbolRemapper
import org.jetbrains.kotlin.ir.util.TypeRemapper
import org.jetbrains.kotlin.ir.util.deepCopyWithSymbols
import org.jetbrains.kotlin.ir.util.*
internal class FunctionDefaultParametersActualizer(
symbolRemapper: ActualizerSymbolRemapper,
@@ -46,9 +42,9 @@ private class FunctionDefaultParametersActualizerVisitor(private val symbolRemap
override fun visitGetValue(expression: IrGetValue): IrGetValue {
// It performs actualization of dispatch/extension receivers
// It's actual only for default parameter values of expect functions because expect functions don't have bodies
return expression.actualize(
classActualizer = { symbolRemapper.getReferencedClass(it.symbol).owner },
functionActualizer = { symbolRemapper.getReferencedFunction(it.symbol).owner }
return expression.remapSymbolParent(
classRemapper = { symbolRemapper.getReferencedClass(it.symbol).owner },
functionRemapper = { symbolRemapper.getReferencedFunction(it.symbol).owner }
).copyAttributes(expression)
}
}
@@ -6,7 +6,6 @@
package org.jetbrains.kotlin.backend.common.actualizer
import org.jetbrains.kotlin.backend.common.actualizer.checker.areIrExpressionConstValuesEqual
import org.jetbrains.kotlin.backend.common.sourceElement
import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.Visibilities
@@ -540,7 +539,7 @@ internal abstract class IrExpectActualMatchingContext(
override val DeclarationSymbolMarker.hasSourceAnnotationsErased: Boolean
get() {
val ir = asIr()
return ir.sourceElement() == null && ir.origin !is IrDeclarationOrigin.GeneratedByPlugin
return ir.startOffset < 0 && ir.origin !is IrDeclarationOrigin.GeneratedByPlugin
}
// IR checker traverses member scope itself and collects mappings