[Native] Drop getContainingFile from IrUtils2

We can reuse `fileOrNull` function from common `IrUtils`
This commit is contained in:
Ivan Kylchik
2023-08-15 14:56:17 +02:00
committed by Space Team
parent a437e0378a
commit b10d330cfd
4 changed files with 5 additions and 15 deletions
@@ -467,7 +467,7 @@ internal class ClassLayoutBuilder(val irClass: IrClass, val context: Context) {
val result = mutableMapOf<IrClass, IrClass>()
irClass.annotations.forEach {
val irFile = irClass.getContainingFile()
val irFile = irClass.fileOrNull
val annotationClass = (it.symbol.owner as? IrConstructor)?.constructedClass
?: error(irFile, it, "unexpected annotation")
@@ -1142,11 +1142,11 @@ private fun ObjCExportCodeGenerator.effectiveThrowsClasses(method: IrFunction, s
val throwsVararg = throwsAnnotation.getValueArgument(0)
?: return emptyList()
if (throwsVararg !is IrVararg) error(method.getContainingFile(), throwsVararg, "unexpected vararg")
if (throwsVararg !is IrVararg) error(method.fileOrNull, throwsVararg, "unexpected vararg")
return throwsVararg.elements.map {
(it as? IrClassReference)?.symbol?.owner as? IrClass
?: error(method.getContainingFile(), it, "unexpected @Throws argument")
?: error(method.fileOrNull, it, "unexpected @Throws argument")
}
}
@@ -509,7 +509,7 @@ internal object DataFlowIR {
type.vtable += layoutBuilder.vtableEntries.map {
val implementation = it.getImplementation(context)
?: error(
irClass.getContainingFile(),
irClass.fileOrNull,
irClass,
"""
no implementation found for ${it.overriddenFunction.render()}
@@ -524,7 +524,7 @@ internal object DataFlowIR {
type.itable[iface.classId] = iface.interfaceVTableEntries.map {
val implementation = layoutBuilder.overridingOf(it)
?: error(
irClass.getContainingFile(),
irClass.fileOrNull,
irClass,
"""
no implementation found for ${it.render()}
@@ -97,16 +97,6 @@ inline fun <reified T> stub(name: String): T {
} as T
}
tailrec fun IrDeclaration.getContainingFile(): IrFile? {
val parent = this.parent
return when (parent) {
is IrFile -> parent
is IrDeclaration -> parent.getContainingFile()
else -> null
}
}
fun IrFunctionAccessExpression.addArguments(args: Map<IrValueParameter, IrExpression>) {
val unhandledParameters = args.keys.toMutableSet()
fun getArg(parameter: IrValueParameter) = args[parameter]?.also { unhandledParameters -= parameter }