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,
IrValueParameterSymbolImpl(it), it.name, it.index,
functionClass.typeParameters[it.index].defaultType, null,
it.isCrossinline, it.isNoinline, false, false
it.isCrossinline, it.isNoinline,
isHidden = false, isAssignable = false
).also { it.parent = this }
}
if (!isFakeOverride)
@@ -272,8 +273,8 @@ internal class BuiltInFictitiousFunctionIrClassFactory(
varargType?.let { toIrType(it) },
descriptor.isCrossinline,
descriptor.isNoinline,
false,
false
isHidden = false,
isAssignable = false
).also {
it.parent = this
}
@@ -56,8 +56,8 @@ internal fun makeEntryPoint(context: Context): IrFunction {
isCrossinline = false,
type = context.irBuiltIns.arrayClass.typeWith(context.irBuiltIns.stringType),
isNoinline = false,
isAssignable = false,
isHidden = false
isHidden = false,
isAssignable = false
).apply {
it.bind(this)
parent = function
@@ -1142,7 +1142,11 @@ private class ObjCBlockPointerValuePassing(
Name.identifier("blockPointer"),
0,
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)
constructor.valueParameters += constructorParameter
@@ -1187,8 +1191,11 @@ private class ObjCBlockPointerValuePassing(
Name.identifier("p$index"),
index,
functionType.arguments[index].typeOrNull!!,
varargElementType = null, isCrossinline = false, isNoinline = false,
isHidden = false, isAssignable = false
varargElementType = null,
isCrossinline = false,
isNoinline = false,
isHidden = false,
isAssignable = false
)
parameterDescriptor.bind(parameter)
parameter.parent = invokeMethod
@@ -87,7 +87,11 @@ internal class KotlinBridgeBuilder(
bridge.startOffset, bridge.endOffset, bridge.origin,
IrValueParameterSymbolImpl(descriptor),
Name.identifier("p$index"), index, type,
null, false, false, false, false
null,
isCrossinline = false,
isNoinline = false,
isHidden = false,
isAssignable = false
).apply {
descriptor.bind(this)
parent = bridge
@@ -104,8 +104,8 @@ internal class WorkersBridgesBuilding(val context: Context) : DeclarationContain
varargElementType = null,
isCrossinline = arg.isCrossinline,
isNoinline = arg.isNoinline,
isAssignable = arg.isAssignable,
isHidden = arg.isHidden
isHidden = arg.isHidden,
isAssignable = arg.isAssignable
).apply { it.bind(this) }
}
}
@@ -374,7 +374,8 @@ fun IrValueParameter.copy(newDescriptor: ParameterDescriptor): IrValueParameter
return IrValueParameterImpl(
startOffset, endOffset, IrDeclarationOrigin.DEFINED, IrValueParameterSymbolImpl(newDescriptor),
newDescriptor.name, newDescriptor.indexOrMinusOne, type, varargElementType,
newDescriptor.isCrossinline, newDescriptor.isNoinline, false, false
newDescriptor.isCrossinline, newDescriptor.isNoinline,
isHidden = false, isAssignable = false
)
}