diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/BuiltInFictitiousFunctionIrClassFactory.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/BuiltInFictitiousFunctionIrClassFactory.kt index 7edfaee4fd3..a12f78d64f5 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/BuiltInFictitiousFunctionIrClassFactory.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/BuiltInFictitiousFunctionIrClassFactory.kt @@ -207,11 +207,10 @@ internal class BuiltInFictitiousFunctionIrClassFactory( parent = functionClass valueParameters += invokeFunctionDescriptor.valueParameters.map { IrValueParameterImpl( - SYNTHETIC_OFFSET, SYNTHETIC_OFFSET, - invokeFunctionOrigin, - it, - functionClass.typeParameters[it.index].defaultType, - null + SYNTHETIC_OFFSET, SYNTHETIC_OFFSET, invokeFunctionOrigin, + IrValueParameterSymbolImpl(it), it.name, it.index, + functionClass.typeParameters[it.index].defaultType, null, + it.isCrossinline, it.isNoinline ).also { it.parent = this } } if (!isFakeOverride) @@ -258,17 +257,18 @@ internal class BuiltInFictitiousFunctionIrClassFactory( } private fun IrFunction.createValueParameter(descriptor: ParameterDescriptor): IrValueParameter { - val symbol = IrValueParameterSymbolImpl(descriptor) val varargType = if (descriptor is ValueParameterDescriptor) descriptor.varargElementType else null return IrValueParameterImpl( offset, offset, memberOrigin, - descriptor, + IrValueParameterSymbolImpl(descriptor), + descriptor.name, + descriptor.indexOrMinusOne, toIrType(descriptor.type), varargType?.let { toIrType(it) }, - descriptor.name, - symbol + descriptor.isCrossinline, + descriptor.isNoinline ).also { it.parent = this } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/ir/util/IrUtils2.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/ir/util/IrUtils2.kt index d79afe36f46..986de94f2f9 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/ir/util/IrUtils2.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/ir/util/IrUtils2.kt @@ -11,29 +11,35 @@ import org.jetbrains.kotlin.backend.konan.KonanBackendContext import org.jetbrains.kotlin.backend.konan.KonanCompilationException import org.jetbrains.kotlin.backend.konan.descriptors.synthesizedName import org.jetbrains.kotlin.backend.konan.ir.buildSimpleAnnotation -import org.jetbrains.kotlin.backend.konan.ir.containsNull import org.jetbrains.kotlin.builtins.KOTLIN_REFLECT_FQ_NAME import org.jetbrains.kotlin.config.LanguageVersionSettings -import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.FunctionDescriptor import org.jetbrains.kotlin.descriptors.ParameterDescriptor +import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.descriptors.impl.PackageFragmentDescriptorImpl import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.SourceManager 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.* +import org.jetbrains.kotlin.ir.declarations.impl.IrFieldImpl +import org.jetbrains.kotlin.ir.declarations.impl.IrFileImpl +import org.jetbrains.kotlin.ir.declarations.impl.IrValueParameterImpl +import org.jetbrains.kotlin.ir.declarations.impl.IrVariableImpl import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns import org.jetbrains.kotlin.ir.descriptors.WrappedFieldDescriptor import org.jetbrains.kotlin.ir.descriptors.WrappedVariableDescriptor import org.jetbrains.kotlin.ir.expressions.* -import org.jetbrains.kotlin.ir.expressions.impl.* +import org.jetbrains.kotlin.ir.expressions.impl.IrCallImpl +import org.jetbrains.kotlin.ir.expressions.impl.IrCatchImpl +import org.jetbrains.kotlin.ir.expressions.impl.IrExpressionBodyImpl +import org.jetbrains.kotlin.ir.expressions.impl.IrVarargImpl import org.jetbrains.kotlin.ir.symbols.IrClassSymbol import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol import org.jetbrains.kotlin.ir.symbols.IrSymbol import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol import org.jetbrains.kotlin.ir.symbols.impl.IrFieldSymbolImpl +import org.jetbrains.kotlin.ir.symbols.impl.IrValueParameterSymbolImpl import org.jetbrains.kotlin.ir.symbols.impl.IrVariableSymbolImpl import org.jetbrains.kotlin.ir.types.* import org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl @@ -44,8 +50,8 @@ import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.resolve.calls.checkers.isRestrictsSuspensionReceiver import org.jetbrains.kotlin.resolve.scopes.MemberScope -import org.jetbrains.kotlin.types.* import org.jetbrains.kotlin.types.KotlinType +import org.jetbrains.kotlin.types.TypeUtils import org.jetbrains.kotlin.types.typeUtil.immediateSupertypes import java.lang.reflect.Proxy @@ -379,12 +385,9 @@ fun IrValueParameter.copy(newDescriptor: ParameterDescriptor): IrValueParameter //} return IrValueParameterImpl( - startOffset, - endOffset, - IrDeclarationOrigin.DEFINED, - newDescriptor, - type, - varargElementType + startOffset, endOffset, IrDeclarationOrigin.DEFINED, IrValueParameterSymbolImpl(newDescriptor), + newDescriptor.name, newDescriptor.indexOrMinusOne, type, varargElementType, + newDescriptor.isCrossinline, newDescriptor.isNoinline ) }