Make isHidden and isAssignable explicit on IrValueParameters.

This make native compatible with change to remove default arguments
for these in the kotlin repo where they were confused.

(cherry picked from commit 706d0d2f618b53fb0d6cce433c65c6523aaf7591)
This commit is contained in:
Mads Ager
2020-11-27 12:14:28 +01:00
committed by Stanislav Erokhin
parent a41e1cb66b
commit 55bbc35a31
6 changed files with 25 additions and 12 deletions
@@ -213,7 +213,8 @@ 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, false, false it.isCrossinline, it.isNoinline,
isHidden = false, isAssignable = false
).also { it.parent = this } ).also { it.parent = this }
} }
if (!isFakeOverride) if (!isFakeOverride)
@@ -272,8 +273,8 @@ internal class BuiltInFictitiousFunctionIrClassFactory(
varargType?.let { toIrType(it) }, varargType?.let { toIrType(it) },
descriptor.isCrossinline, descriptor.isCrossinline,
descriptor.isNoinline, descriptor.isNoinline,
false, isHidden = false,
false isAssignable = false
).also { ).also {
it.parent = this it.parent = this
} }
@@ -56,8 +56,8 @@ internal fun makeEntryPoint(context: Context): IrFunction {
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,
isHidden = false isAssignable = false
).apply { ).apply {
it.bind(this) it.bind(this)
parent = function parent = function
@@ -1142,7 +1142,11 @@ private class ObjCBlockPointerValuePassing(
Name.identifier("blockPointer"), Name.identifier("blockPointer"),
0, 0,
symbols.nativePtrType, symbols.nativePtrType,
varargElementType = null, isCrossinline = false, isNoinline = false, isHidden = false, isAssignable = false varargElementType = null,
isCrossinline = false,
isNoinline = false,
isHidden = false,
isAssignable = false
) )
constructorParameterDescriptor.bind(constructorParameter) constructorParameterDescriptor.bind(constructorParameter)
constructor.valueParameters += constructorParameter constructor.valueParameters += constructorParameter
@@ -1187,8 +1191,11 @@ 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,
isHidden = false, isAssignable = false isCrossinline = false,
isNoinline = false,
isHidden = false,
isAssignable = false
) )
parameterDescriptor.bind(parameter) parameterDescriptor.bind(parameter)
parameter.parent = invokeMethod parameter.parent = invokeMethod
@@ -87,7 +87,11 @@ 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, false, false null,
isCrossinline = false,
isNoinline = false,
isHidden = false,
isAssignable = false
).apply { ).apply {
descriptor.bind(this) descriptor.bind(this)
parent = bridge parent = bridge
@@ -104,8 +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, isHidden = arg.isHidden,
isHidden = arg.isHidden isAssignable = arg.isAssignable
).apply { it.bind(this) } ).apply { it.bind(this) }
} }
} }
@@ -374,7 +374,8 @@ 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, false, false newDescriptor.isCrossinline, newDescriptor.isNoinline,
isHidden = false, isAssignable = false
) )
} }