[IR] Unify usages of isArrayOrPrimitiveArray() && isInlineArrayConstructor()
This commit is contained in:
@@ -67,13 +67,7 @@ fun IrStatement.unwrapInlineLambda(): IrFunctionReference? = when (this) {
|
||||
}
|
||||
|
||||
fun IrFunction.isInlineFunctionCall(context: JvmBackendContext): Boolean =
|
||||
(!context.state.isInlineDisabled || typeParameters.any { it.isReified }) && (isInline || isInlineArrayConstructor(context))
|
||||
|
||||
// Constructors can't be marked as inline in metadata, hence this hack.
|
||||
private fun IrFunction.isInlineArrayConstructor(context: JvmBackendContext): Boolean =
|
||||
this is IrConstructor && valueParameters.size == 2 && constructedClass.symbol.let {
|
||||
it == context.irBuiltIns.arrayClass || it in context.irBuiltIns.primitiveArraysToPrimitiveTypes
|
||||
}
|
||||
(!context.state.isInlineDisabled || typeParameters.any { it.isReified }) && (isInline || isInlineArrayConstructor(context.irBuiltIns))
|
||||
|
||||
fun IrDeclaration.isInlineOnly(): Boolean =
|
||||
this is IrFunction && (
|
||||
|
||||
@@ -267,7 +267,7 @@ abstract class DataClassMembersGenerator(
|
||||
?: throw AssertionError("Class: ${irClass.descriptor}: unexpected property descriptor: $property")
|
||||
|
||||
val IrClassifierSymbol?.isArrayOrPrimitiveArray: Boolean
|
||||
get() = this == context.irBuiltIns.arrayClass || this in context.irBuiltIns.primitiveArraysToPrimitiveTypes
|
||||
get() = isArrayOrPrimitiveArray(context.irBuiltIns)
|
||||
|
||||
abstract fun declareSimpleFunction(startOffset: Int, endOffset: Int, functionDescriptor: FunctionDescriptor): IrFunction
|
||||
|
||||
|
||||
Reference in New Issue
Block a user