[IR] Make isHidden and isAssignable explicit on IrValueParameter.
This commit is contained in:
Vasily Levchenko
2020-12-07 07:14:35 +01:00
committed by Stanislav Erokhin
parent 50d708abb5
commit eaa7cf44c8
9 changed files with 26 additions and 12 deletions
@@ -87,7 +87,9 @@ internal val Context.getBoxFunction: (IrClass) -> IrSimpleFunction by Context.la
varargElementType = null, varargElementType = null,
isCrossinline = false, isCrossinline = false,
type = parameterType, type = parameterType,
isNoinline = false isNoinline = false,
isHidden = false,
isAssignable = false
).apply { ).apply {
it.bind(this) it.bind(this)
parent = function parent = function
@@ -142,7 +144,9 @@ internal val Context.getUnboxFunction: (IrClass) -> IrSimpleFunction by Context.
varargElementType = null, varargElementType = null,
isCrossinline = false, isCrossinline = false,
type = parameterType, type = parameterType,
isNoinline = false isNoinline = false,
isHidden = false,
isAssignable = false
).apply { ).apply {
it.bind(this) it.bind(this)
parent = function parent = function
@@ -213,7 +213,7 @@ internal class BuiltInFictitiousFunctionIrClassFactory(
SYNTHETIC_OFFSET, SYNTHETIC_OFFSET, invokeFunctionOrigin, SYNTHETIC_OFFSET, SYNTHETIC_OFFSET, invokeFunctionOrigin,
IrValueParameterSymbolImpl(it), it.name, it.index, IrValueParameterSymbolImpl(it), it.name, it.index,
functionClass.typeParameters[it.index].defaultType, null, functionClass.typeParameters[it.index].defaultType, null,
it.isCrossinline, it.isNoinline it.isCrossinline, it.isNoinline, false, false
).also { it.parent = this } ).also { it.parent = this }
} }
if (!isFakeOverride) if (!isFakeOverride)
@@ -271,7 +271,9 @@ internal class BuiltInFictitiousFunctionIrClassFactory(
toIrType(descriptor.type), toIrType(descriptor.type),
varargType?.let { toIrType(it) }, varargType?.let { toIrType(it) },
descriptor.isCrossinline, descriptor.isCrossinline,
descriptor.isNoinline descriptor.isNoinline,
false,
false
).also { ).also {
it.parent = this it.parent = this
} }
@@ -55,7 +55,9 @@ internal fun makeEntryPoint(context: Context): IrFunction {
varargElementType = null, varargElementType = null,
isCrossinline = false, isCrossinline = false,
type = context.irBuiltIns.arrayClass.typeWith(context.irBuiltIns.stringType), type = context.irBuiltIns.arrayClass.typeWith(context.irBuiltIns.stringType),
isNoinline = false isNoinline = false,
isAssignable = false,
isHidden = false
).apply { ).apply {
it.bind(this) it.bind(this)
parent = function parent = function
@@ -1142,7 +1142,7 @@ private class ObjCBlockPointerValuePassing(
Name.identifier("blockPointer"), Name.identifier("blockPointer"),
0, 0,
symbols.nativePtrType, symbols.nativePtrType,
varargElementType = null, isCrossinline = false, isNoinline = false varargElementType = null, isCrossinline = false, isNoinline = false, isHidden = false, isAssignable = false
) )
constructorParameterDescriptor.bind(constructorParameter) constructorParameterDescriptor.bind(constructorParameter)
constructor.valueParameters += constructorParameter constructor.valueParameters += constructorParameter
@@ -1187,7 +1187,8 @@ private class ObjCBlockPointerValuePassing(
Name.identifier("p$index"), Name.identifier("p$index"),
index, index,
functionType.arguments[index].typeOrNull!!, functionType.arguments[index].typeOrNull!!,
varargElementType = null, isCrossinline = false, isNoinline = false varargElementType = null, isCrossinline = false, isNoinline = false,
isHidden = false, isAssignable = false
) )
parameterDescriptor.bind(parameter) parameterDescriptor.bind(parameter)
parameter.parent = invokeMethod parameter.parent = invokeMethod
@@ -87,7 +87,7 @@ internal class KotlinBridgeBuilder(
bridge.startOffset, bridge.endOffset, bridge.origin, bridge.startOffset, bridge.endOffset, bridge.origin,
IrValueParameterSymbolImpl(descriptor), IrValueParameterSymbolImpl(descriptor),
Name.identifier("p$index"), index, type, Name.identifier("p$index"), index, type,
null, false, false null, false, false, false, false
).apply { ).apply {
descriptor.bind(this) descriptor.bind(this)
parent = bridge parent = bridge
@@ -104,7 +104,8 @@ internal class WorkersBridgesBuilding(val context: Context) : DeclarationContain
varargElementType = null, varargElementType = null,
isCrossinline = arg.isCrossinline, isCrossinline = arg.isCrossinline,
isNoinline = arg.isNoinline, isNoinline = arg.isNoinline,
isAssignable = arg.isAssignable isAssignable = arg.isAssignable,
isHidden = arg.isHidden
).apply { it.bind(this) } ).apply { it.bind(this) }
} }
} }
@@ -141,7 +141,9 @@ internal class EnumConstructorsLowering(val context: Context) : ClassLoweringPas
type, type,
varargElementType = null, varargElementType = null,
isCrossinline = false, isCrossinline = false,
isNoinline = false isNoinline = false,
isHidden = false,
isAssignable = false
).apply { ).apply {
it.bind(this) it.bind(this)
parent = loweredConstructor parent = loweredConstructor
@@ -356,7 +356,9 @@ private class InteropLoweringPart1(val context: Context) : BaseInteropIrTransfor
type, type,
varargElementType = null, varargElementType = null,
isCrossinline = false, isCrossinline = false,
isNoinline = false isNoinline = false,
isHidden = false,
isAssignable = false
).apply { ).apply {
it.bind(this) it.bind(this)
parent = newFunction parent = newFunction
@@ -374,7 +374,7 @@ fun IrValueParameter.copy(newDescriptor: ParameterDescriptor): IrValueParameter
return IrValueParameterImpl( return IrValueParameterImpl(
startOffset, endOffset, IrDeclarationOrigin.DEFINED, IrValueParameterSymbolImpl(newDescriptor), startOffset, endOffset, IrDeclarationOrigin.DEFINED, IrValueParameterSymbolImpl(newDescriptor),
newDescriptor.name, newDescriptor.indexOrMinusOne, type, varargElementType, newDescriptor.name, newDescriptor.indexOrMinusOne, type, varargElementType,
newDescriptor.isCrossinline, newDescriptor.isNoinline newDescriptor.isCrossinline, newDescriptor.isNoinline, false, false
) )
} }