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 d58d437d36c..7d546c3ec91 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 @@ -17,18 +17,12 @@ import org.jetbrains.kotlin.ir.IrStatement import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET import org.jetbrains.kotlin.ir.builders.* import org.jetbrains.kotlin.ir.declarations.* -import org.jetbrains.kotlin.ir.declarations.impl.IrClassImpl -import org.jetbrains.kotlin.ir.declarations.impl.IrConstructorImpl -import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl -import org.jetbrains.kotlin.ir.declarations.impl.IrValueParameterImpl +import org.jetbrains.kotlin.ir.declarations.impl.* import org.jetbrains.kotlin.ir.expressions.* import org.jetbrains.kotlin.ir.expressions.impl.IrConstImpl import org.jetbrains.kotlin.ir.expressions.impl.IrFunctionReferenceImpl import org.jetbrains.kotlin.ir.symbols.IrClassSymbol -import org.jetbrains.kotlin.ir.symbols.impl.IrClassSymbolImpl -import org.jetbrains.kotlin.ir.symbols.impl.IrConstructorSymbolImpl -import org.jetbrains.kotlin.ir.symbols.impl.IrSimpleFunctionSymbolImpl -import org.jetbrains.kotlin.ir.symbols.impl.IrValueParameterSymbolImpl +import org.jetbrains.kotlin.ir.symbols.impl.* import org.jetbrains.kotlin.ir.types.* import org.jetbrains.kotlin.ir.util.* import org.jetbrains.kotlin.konan.ForeignExceptionMode @@ -1128,13 +1122,18 @@ private class ObjCBlockPointerValuePassing( irClass.superTypes += stubs.irBuiltIns.anyType irClass.superTypes += functionType.makeNotNull() - val blockHolderField = createField( + val blockHolderField = IrFieldImpl( startOffset, endOffset, OBJC_BLOCK_FUNCTION_IMPL, - stubs.irBuiltIns.anyType, + IrFieldSymbolImpl(), Name.identifier("blockHolder"), - isMutable = false, owner = irClass + stubs.irBuiltIns.anyType, + DescriptorVisibilities.PRIVATE, + isFinal = true, + isStatic = false, + isExternal = false ) + irClass.addChild(blockHolderField) val constructor = IrConstructorImpl( startOffset, endOffset, 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 0cf8d5cf9d1..414b3bb92db 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 @@ -160,30 +160,6 @@ fun IrBuilderWithScope.irCatch(type: IrType) = } ) -fun createField( - startOffset: Int, - endOffset: Int, - origin: IrDeclarationOrigin, - type: IrType, - name: Name, - isMutable: Boolean, - owner: IrClass -) = - IrFieldImpl( - startOffset, endOffset, - origin, - IrFieldSymbolImpl(), - name, - type, - DescriptorVisibilities.PRIVATE, - !isMutable, - false, - false, - ).apply { - owner.declarations += this - parent = owner - } - fun IrValueParameter.copy(newDescriptor: ParameterDescriptor): IrValueParameter { // Aggressive use of IrBasedDescriptors during deserialization // makes these types different.