[PL] Fix: Respect inlined array constructor lambdas
This commit is contained in:
committed by
Space Team
parent
5baeae3bfd
commit
66532d714e
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.ir.*
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrClassifierSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.impl.IrClassPublicSymbolImpl
|
||||
@@ -23,6 +24,13 @@ import java.io.File
|
||||
|
||||
val IrConstructor.constructedClass get() = this.parent as IrClass
|
||||
|
||||
fun IrClassifierSymbol?.isArrayOrPrimitiveArray(builtins: IrBuiltIns): Boolean =
|
||||
this == builtins.arrayClass || this in builtins.primitiveArraysToPrimitiveTypes
|
||||
|
||||
// Constructors can't be marked as inline in metadata, hence this check.
|
||||
fun IrFunction.isInlineArrayConstructor(builtIns: IrBuiltIns): Boolean =
|
||||
this is IrConstructor && valueParameters.size == 2 && constructedClass.symbol.isArrayOrPrimitiveArray(builtIns)
|
||||
|
||||
val IrDeclarationParent.fqNameForIrSerialization: FqName
|
||||
get() = when (this) {
|
||||
is IrPackageFragment -> this.fqName
|
||||
|
||||
Reference in New Issue
Block a user