[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,
isCrossinline = false,
type = parameterType,
isNoinline = false
isNoinline = false,
isHidden = false,
isAssignable = false
).apply {
it.bind(this)
parent = function
@@ -142,7 +144,9 @@ internal val Context.getUnboxFunction: (IrClass) -> IrSimpleFunction by Context.
varargElementType = null,
isCrossinline = false,
type = parameterType,
isNoinline = false
isNoinline = false,
isHidden = false,
isAssignable = false
).apply {
it.bind(this)
parent = function
@@ -213,7 +213,7 @@ internal class BuiltInFictitiousFunctionIrClassFactory(
SYNTHETIC_OFFSET, SYNTHETIC_OFFSET, invokeFunctionOrigin,
IrValueParameterSymbolImpl(it), it.name, it.index,
functionClass.typeParameters[it.index].defaultType, null,
it.isCrossinline, it.isNoinline
it.isCrossinline, it.isNoinline, false, false
).also { it.parent = this }
}
if (!isFakeOverride)
@@ -271,7 +271,9 @@ internal class BuiltInFictitiousFunctionIrClassFactory(
toIrType(descriptor.type),
varargType?.let { toIrType(it) },
descriptor.isCrossinline,
descriptor.isNoinline
descriptor.isNoinline,
false,
false
).also {
it.parent = this
}
@@ -55,7 +55,9 @@ internal fun makeEntryPoint(context: Context): IrFunction {
varargElementType = null,
isCrossinline = false,
type = context.irBuiltIns.arrayClass.typeWith(context.irBuiltIns.stringType),
isNoinline = false
isNoinline = false,
isAssignable = false,
isHidden = false
).apply {
it.bind(this)
parent = function
@@ -1142,7 +1142,7 @@ private class ObjCBlockPointerValuePassing(
Name.identifier("blockPointer"),
0,
symbols.nativePtrType,
varargElementType = null, isCrossinline = false, isNoinline = false
varargElementType = null, isCrossinline = false, isNoinline = false, isHidden = false, isAssignable = false
)
constructorParameterDescriptor.bind(constructorParameter)
constructor.valueParameters += constructorParameter
@@ -1187,7 +1187,8 @@ private class ObjCBlockPointerValuePassing(
Name.identifier("p$index"),
index,
functionType.arguments[index].typeOrNull!!,
varargElementType = null, isCrossinline = false, isNoinline = false
varargElementType = null, isCrossinline = false, isNoinline = false,
isHidden = false, isAssignable = false
)
parameterDescriptor.bind(parameter)
parameter.parent = invokeMethod
@@ -87,7 +87,7 @@ internal class KotlinBridgeBuilder(
bridge.startOffset, bridge.endOffset, bridge.origin,
IrValueParameterSymbolImpl(descriptor),
Name.identifier("p$index"), index, type,
null, false, false
null, false, false, false, false
).apply {
descriptor.bind(this)
parent = bridge
@@ -104,7 +104,8 @@ internal class WorkersBridgesBuilding(val context: Context) : DeclarationContain
varargElementType = null,
isCrossinline = arg.isCrossinline,
isNoinline = arg.isNoinline,
isAssignable = arg.isAssignable
isAssignable = arg.isAssignable,
isHidden = arg.isHidden
).apply { it.bind(this) }
}
}
@@ -141,7 +141,9 @@ internal class EnumConstructorsLowering(val context: Context) : ClassLoweringPas
type,
varargElementType = null,
isCrossinline = false,
isNoinline = false
isNoinline = false,
isHidden = false,
isAssignable = false
).apply {
it.bind(this)
parent = loweredConstructor
@@ -356,7 +356,9 @@ private class InteropLoweringPart1(val context: Context) : BaseInteropIrTransfor
type,
varargElementType = null,
isCrossinline = false,
isNoinline = false
isNoinline = false,
isHidden = false,
isAssignable = false
).apply {
it.bind(this)
parent = newFunction
@@ -374,7 +374,7 @@ fun IrValueParameter.copy(newDescriptor: ParameterDescriptor): IrValueParameter
return IrValueParameterImpl(
startOffset, endOffset, IrDeclarationOrigin.DEFINED, IrValueParameterSymbolImpl(newDescriptor),
newDescriptor.name, newDescriptor.indexOrMinusOne, type, varargElementType,
newDescriptor.isCrossinline, newDescriptor.isNoinline
newDescriptor.isCrossinline, newDescriptor.isNoinline, false, false
)
}