From 55bbc35a31af0de501e77697fb03f740daab438b Mon Sep 17 00:00:00 2001 From: Mads Ager Date: Fri, 27 Nov 2020 12:14:28 +0100 Subject: [PATCH] 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) --- .../BuiltInFictitiousFunctionIrClassFactory.kt | 7 ++++--- .../jetbrains/kotlin/backend/konan/EntryPoint.kt | 4 ++-- .../kotlin/backend/konan/cgen/CBridgeGen.kt | 13 ++++++++++--- .../kotlin/backend/konan/cgen/CBridgeGenUtils.kt | 6 +++++- .../kotlin/backend/konan/lower/BridgesBuilding.kt | 4 ++-- .../src/org/jetbrains/kotlin/ir/util/IrUtils2.kt | 3 ++- 6 files changed, 25 insertions(+), 12 deletions(-) diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/BuiltInFictitiousFunctionIrClassFactory.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/BuiltInFictitiousFunctionIrClassFactory.kt index 2c0c4bdccc8..ef10bbadf85 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/BuiltInFictitiousFunctionIrClassFactory.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/BuiltInFictitiousFunctionIrClassFactory.kt @@ -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 } diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/EntryPoint.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/EntryPoint.kt index 433abae593d..f9b866a6735 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/EntryPoint.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/EntryPoint.kt @@ -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 diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt index c0ba2c18396..a0fdba3551b 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt @@ -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 diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGenUtils.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGenUtils.kt index 09bf3a26deb..9219a076a54 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGenUtils.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGenUtils.kt @@ -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 diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/BridgesBuilding.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/BridgesBuilding.kt index 95695631ea7..1a7f6d64717 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/BridgesBuilding.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/BridgesBuilding.kt @@ -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) } } } diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/ir/util/IrUtils2.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/ir/util/IrUtils2.kt index 0e8fd7ae9d1..f53fcf0075f 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/ir/util/IrUtils2.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/ir/util/IrUtils2.kt @@ -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 ) }