[IR] Mark IrValueParameterImpl with an opt-in annotation
KT-59318
This commit is contained in:
committed by
Space Team
parent
b56a04e796
commit
f482b6a458
+18
-8
@@ -426,14 +426,24 @@ private class ScriptsToClassesLowering(val context: JvmBackendContext, val inner
|
|||||||
add(it)
|
add(it)
|
||||||
++parametersIndex
|
++parametersIndex
|
||||||
}
|
}
|
||||||
addAll(irScript.explicitCallParameters.map {
|
addAll(
|
||||||
IrValueParameterImpl(
|
irScript.explicitCallParameters.map {
|
||||||
it.startOffset, it.endOffset,
|
context.irFactory.createValueParameter(
|
||||||
IrDeclarationOrigin.SCRIPT_CALL_PARAMETER, IrValueParameterSymbolImpl(),
|
startOffset = it.startOffset,
|
||||||
it.name, index = parametersIndex++, type = it.type,
|
endOffset = it.endOffset,
|
||||||
varargElementType = null, isCrossinline = false, isNoinline = false, isHidden = false, isAssignable = false
|
origin = IrDeclarationOrigin.SCRIPT_CALL_PARAMETER,
|
||||||
).also { it.parent = irScript }
|
name = it.name,
|
||||||
})
|
type = it.type,
|
||||||
|
isAssignable = false,
|
||||||
|
symbol = IrValueParameterSymbolImpl(),
|
||||||
|
index = parametersIndex++,
|
||||||
|
varargElementType = null,
|
||||||
|
isCrossinline = false,
|
||||||
|
isNoinline = false,
|
||||||
|
isHidden = false,
|
||||||
|
).also { it.parent = irScript }
|
||||||
|
},
|
||||||
|
)
|
||||||
implicitReceiversFieldsWithParameters.forEach {(_, param) ->
|
implicitReceiversFieldsWithParameters.forEach {(_, param) ->
|
||||||
add(param)
|
add(param)
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-1
@@ -6,6 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.ir.declarations.impl
|
package org.jetbrains.kotlin.ir.declarations.impl
|
||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.ParameterDescriptor
|
import org.jetbrains.kotlin.descriptors.ParameterDescriptor
|
||||||
|
import org.jetbrains.kotlin.ir.IrImplementationDetail
|
||||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent
|
import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent
|
||||||
@@ -17,7 +18,10 @@ import org.jetbrains.kotlin.ir.symbols.IrValueParameterSymbol
|
|||||||
import org.jetbrains.kotlin.ir.types.IrType
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
class IrValueParameterImpl(
|
// IMPORTANT: This class is used in the Compose IDE plugin (platform 233).
|
||||||
|
// Don't rename it or change its constructor's signature so as not to break binary compatibility when an older version of
|
||||||
|
// the Compose IDE plugin is used with a newer version of the Kotlin IDE plugin that vendors the updated compiler version.
|
||||||
|
class IrValueParameterImpl @IrImplementationDetail constructor(
|
||||||
override val startOffset: Int,
|
override val startOffset: Int,
|
||||||
override val endOffset: Int,
|
override val endOffset: Int,
|
||||||
override var origin: IrDeclarationOrigin,
|
override var origin: IrDeclarationOrigin,
|
||||||
|
|||||||
+8
-9
@@ -33,7 +33,6 @@ import org.jetbrains.kotlin.ir.IrStatement
|
|||||||
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
|
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
|
||||||
import org.jetbrains.kotlin.ir.builders.declarations.addValueParameter
|
import org.jetbrains.kotlin.ir.builders.declarations.addValueParameter
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.impl.IrValueParameterImpl
|
|
||||||
import org.jetbrains.kotlin.ir.expressions.*
|
import org.jetbrains.kotlin.ir.expressions.*
|
||||||
import org.jetbrains.kotlin.ir.expressions.impl.*
|
import org.jetbrains.kotlin.ir.expressions.impl.*
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol
|
||||||
@@ -150,19 +149,19 @@ class ComposeLikeDefaultArgumentRewriter(
|
|||||||
declaration.valueParameters.forEach { param ->
|
declaration.valueParameters.forEach { param ->
|
||||||
newParameters.add(
|
newParameters.add(
|
||||||
if (param.defaultValue != null) {
|
if (param.defaultValue != null) {
|
||||||
val result = IrValueParameterImpl(
|
val result = context.irFactory.createValueParameter(
|
||||||
param.startOffset,
|
startOffset = param.startOffset,
|
||||||
param.endOffset,
|
endOffset = param.endOffset,
|
||||||
param.origin,
|
origin = param.origin,
|
||||||
IrValueParameterSymbolImpl(),
|
name = param.name,
|
||||||
param.name,
|
|
||||||
index = param.index,
|
|
||||||
type = defaultParameterType(param),
|
type = defaultParameterType(param),
|
||||||
|
isAssignable = param.defaultValue != null,
|
||||||
|
symbol = IrValueParameterSymbolImpl(),
|
||||||
|
index = param.index,
|
||||||
varargElementType = param.varargElementType,
|
varargElementType = param.varargElementType,
|
||||||
isCrossinline = param.isCrossinline,
|
isCrossinline = param.isCrossinline,
|
||||||
isNoinline = param.isNoinline,
|
isNoinline = param.isNoinline,
|
||||||
isHidden = false,
|
isHidden = false,
|
||||||
isAssignable = param.defaultValue != null
|
|
||||||
).also {
|
).also {
|
||||||
it.defaultValue = param.defaultValue
|
it.defaultValue = param.defaultValue
|
||||||
it.parent = declaration
|
it.parent = declaration
|
||||||
|
|||||||
+25
-19
@@ -14,7 +14,6 @@ import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
|||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
|
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
|
||||||
import org.jetbrains.kotlin.ir.declarations.impl.IrFileImpl
|
import org.jetbrains.kotlin.ir.declarations.impl.IrFileImpl
|
||||||
import org.jetbrains.kotlin.ir.declarations.impl.IrValueParameterImpl
|
|
||||||
import org.jetbrains.kotlin.ir.descriptors.IrAbstractDescriptorBasedFunctionFactory
|
import org.jetbrains.kotlin.ir.descriptors.IrAbstractDescriptorBasedFunctionFactory
|
||||||
import org.jetbrains.kotlin.ir.linkage.IrProvider
|
import org.jetbrains.kotlin.ir.linkage.IrProvider
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
||||||
@@ -264,12 +263,19 @@ internal class BuiltInFictitiousFunctionIrClassFactory(
|
|||||||
).apply {
|
).apply {
|
||||||
parent = functionClass
|
parent = functionClass
|
||||||
valueParameters += invokeFunctionDescriptor.valueParameters.map {
|
valueParameters += invokeFunctionDescriptor.valueParameters.map {
|
||||||
IrValueParameterImpl(
|
symbolTable.irFactory.createValueParameter(
|
||||||
SYNTHETIC_OFFSET, SYNTHETIC_OFFSET, DECLARATION_ORIGIN_FUNCTION_CLASS,
|
startOffset = SYNTHETIC_OFFSET,
|
||||||
IrValueParameterSymbolImpl(it), it.name, it.index,
|
endOffset = SYNTHETIC_OFFSET,
|
||||||
functionClass.typeParameters[it.index].defaultType, null,
|
origin = DECLARATION_ORIGIN_FUNCTION_CLASS,
|
||||||
it.isCrossinline, it.isNoinline,
|
name = it.name,
|
||||||
isHidden = false, isAssignable = false
|
type = functionClass.typeParameters[it.index].defaultType,
|
||||||
|
isAssignable = false,
|
||||||
|
symbol = IrValueParameterSymbolImpl(it),
|
||||||
|
index = it.index,
|
||||||
|
varargElementType = null,
|
||||||
|
isCrossinline = it.isCrossinline,
|
||||||
|
isNoinline = it.isNoinline,
|
||||||
|
isHidden = false,
|
||||||
).also { it.parent = this }
|
).also { it.parent = this }
|
||||||
}
|
}
|
||||||
if (!isFakeOverride)
|
if (!isFakeOverride)
|
||||||
@@ -316,19 +322,19 @@ internal class BuiltInFictitiousFunctionIrClassFactory(
|
|||||||
|
|
||||||
private fun IrFunction.createValueParameter(descriptor: ParameterDescriptor): IrValueParameter {
|
private fun IrFunction.createValueParameter(descriptor: ParameterDescriptor): IrValueParameter {
|
||||||
val varargType = if (descriptor is ValueParameterDescriptor) descriptor.varargElementType else null
|
val varargType = if (descriptor is ValueParameterDescriptor) descriptor.varargElementType else null
|
||||||
return IrValueParameterImpl(
|
return symbolTable.irFactory.createValueParameter(
|
||||||
offset,
|
startOffset = offset,
|
||||||
offset,
|
endOffset = offset,
|
||||||
memberOrigin,
|
origin = memberOrigin,
|
||||||
IrValueParameterSymbolImpl(descriptor),
|
name = descriptor.name,
|
||||||
descriptor.name,
|
type = toIrType(descriptor.type),
|
||||||
descriptor.indexOrMinusOne,
|
isAssignable = false,
|
||||||
toIrType(descriptor.type),
|
symbol = IrValueParameterSymbolImpl(descriptor),
|
||||||
varargType?.let { toIrType(it) },
|
index = descriptor.indexOrMinusOne,
|
||||||
descriptor.isCrossinline,
|
varargElementType = varargType?.let { toIrType(it) },
|
||||||
descriptor.isNoinline,
|
isCrossinline = descriptor.isCrossinline,
|
||||||
|
isNoinline = descriptor.isNoinline,
|
||||||
isHidden = false,
|
isHidden = false,
|
||||||
isAssignable = false
|
|
||||||
).also {
|
).also {
|
||||||
it.parent = this
|
it.parent = this
|
||||||
}
|
}
|
||||||
|
|||||||
+18
-17
@@ -20,7 +20,6 @@ import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
|
|||||||
import org.jetbrains.kotlin.ir.builders.*
|
import org.jetbrains.kotlin.ir.builders.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
|
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
|
||||||
import org.jetbrains.kotlin.ir.declarations.impl.IrValueParameterImpl
|
|
||||||
import org.jetbrains.kotlin.ir.expressions.*
|
import org.jetbrains.kotlin.ir.expressions.*
|
||||||
import org.jetbrains.kotlin.ir.expressions.impl.IrConstImpl
|
import org.jetbrains.kotlin.ir.expressions.impl.IrConstImpl
|
||||||
import org.jetbrains.kotlin.ir.expressions.impl.IrFunctionReferenceImpl
|
import org.jetbrains.kotlin.ir.expressions.impl.IrFunctionReferenceImpl
|
||||||
@@ -1157,18 +1156,19 @@ private class ObjCBlockPointerValuePassing(
|
|||||||
)
|
)
|
||||||
irClass.addChild(constructor)
|
irClass.addChild(constructor)
|
||||||
|
|
||||||
val constructorParameter = IrValueParameterImpl(
|
val constructorParameter = context.irFactory.createValueParameter(
|
||||||
startOffset, endOffset,
|
startOffset = startOffset,
|
||||||
OBJC_BLOCK_FUNCTION_IMPL,
|
endOffset = endOffset,
|
||||||
IrValueParameterSymbolImpl(),
|
origin = OBJC_BLOCK_FUNCTION_IMPL,
|
||||||
Name.identifier("blockPointer"),
|
name = Name.identifier("blockPointer"),
|
||||||
0,
|
type = symbols.nativePtrType,
|
||||||
symbols.nativePtrType,
|
isAssignable = false,
|
||||||
|
symbol = IrValueParameterSymbolImpl(),
|
||||||
|
index = 0,
|
||||||
varargElementType = null,
|
varargElementType = null,
|
||||||
isCrossinline = false,
|
isCrossinline = false,
|
||||||
isNoinline = false,
|
isNoinline = false,
|
||||||
isHidden = false,
|
isHidden = false,
|
||||||
isAssignable = false
|
|
||||||
)
|
)
|
||||||
constructor.valueParameters += constructorParameter
|
constructor.valueParameters += constructorParameter
|
||||||
constructorParameter.parent = constructor
|
constructorParameter.parent = constructor
|
||||||
@@ -1208,18 +1208,19 @@ private class ObjCBlockPointerValuePassing(
|
|||||||
invokeMethod.createDispatchReceiverParameter()
|
invokeMethod.createDispatchReceiverParameter()
|
||||||
|
|
||||||
invokeMethod.valueParameters += (0 until parameterCount).map { index ->
|
invokeMethod.valueParameters += (0 until parameterCount).map { index ->
|
||||||
val parameter = IrValueParameterImpl(
|
val parameter = context.irFactory.createValueParameter(
|
||||||
startOffset, endOffset,
|
startOffset = startOffset,
|
||||||
OBJC_BLOCK_FUNCTION_IMPL,
|
endOffset = endOffset,
|
||||||
IrValueParameterSymbolImpl(),
|
origin = OBJC_BLOCK_FUNCTION_IMPL,
|
||||||
Name.identifier("p$index"),
|
name = Name.identifier("p$index"),
|
||||||
index,
|
type = functionType.arguments[index].typeOrNull!!,
|
||||||
functionType.arguments[index].typeOrNull!!,
|
isAssignable = false,
|
||||||
|
symbol = IrValueParameterSymbolImpl(),
|
||||||
|
index = index,
|
||||||
varargElementType = null,
|
varargElementType = null,
|
||||||
isCrossinline = false,
|
isCrossinline = false,
|
||||||
isNoinline = false,
|
isNoinline = false,
|
||||||
isHidden = false,
|
isHidden = false,
|
||||||
isAssignable = false
|
|
||||||
)
|
)
|
||||||
parameter.parent = invokeMethod
|
parameter.parent = invokeMethod
|
||||||
parameter
|
parameter
|
||||||
|
|||||||
+10
-7
@@ -13,7 +13,6 @@ import org.jetbrains.kotlin.ir.builders.*
|
|||||||
import org.jetbrains.kotlin.ir.builders.declarations.buildVariable
|
import org.jetbrains.kotlin.ir.builders.declarations.buildVariable
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
|
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
|
||||||
import org.jetbrains.kotlin.ir.declarations.impl.IrValueParameterImpl
|
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrMemberAccessExpression
|
import org.jetbrains.kotlin.ir.expressions.IrMemberAccessExpression
|
||||||
import org.jetbrains.kotlin.ir.expressions.impl.IrTryImpl
|
import org.jetbrains.kotlin.ir.expressions.impl.IrTryImpl
|
||||||
@@ -81,15 +80,19 @@ internal class KotlinBridgeBuilder(
|
|||||||
fun addParameter(type: IrType): IrValueParameter {
|
fun addParameter(type: IrType): IrValueParameter {
|
||||||
val index = counter++
|
val index = counter++
|
||||||
|
|
||||||
return IrValueParameterImpl(
|
return irBuilder.context.irFactory.createValueParameter(
|
||||||
bridge.startOffset, bridge.endOffset, bridge.origin,
|
startOffset = bridge.startOffset,
|
||||||
IrValueParameterSymbolImpl(),
|
endOffset = bridge.endOffset,
|
||||||
Name.identifier("p$index"), index, type,
|
origin = bridge.origin,
|
||||||
null,
|
name = Name.identifier("p$index"),
|
||||||
|
type = type,
|
||||||
|
isAssignable = false,
|
||||||
|
symbol = IrValueParameterSymbolImpl(),
|
||||||
|
index = index,
|
||||||
|
varargElementType = null,
|
||||||
isCrossinline = false,
|
isCrossinline = false,
|
||||||
isNoinline = false,
|
isNoinline = false,
|
||||||
isHidden = false,
|
isHidden = false,
|
||||||
isAssignable = false
|
|
||||||
).apply {
|
).apply {
|
||||||
parent = bridge
|
parent = bridge
|
||||||
bridge.valueParameters += this
|
bridge.valueParameters += this
|
||||||
|
|||||||
+8
-8
@@ -21,7 +21,6 @@ import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
|||||||
import org.jetbrains.kotlin.ir.builders.*
|
import org.jetbrains.kotlin.ir.builders.*
|
||||||
import org.jetbrains.kotlin.ir.builders.declarations.buildFun
|
import org.jetbrains.kotlin.ir.builders.declarations.buildFun
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.impl.IrValueParameterImpl
|
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrBlockBody
|
import org.jetbrains.kotlin.ir.expressions.IrBlockBody
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrCall
|
import org.jetbrains.kotlin.ir.expressions.IrCall
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
||||||
@@ -148,18 +147,19 @@ internal class WorkersBridgesBuilding(val context: Context) : DeclarationContain
|
|||||||
)
|
)
|
||||||
|
|
||||||
runtimeJobFunction.valueParameters +=
|
runtimeJobFunction.valueParameters +=
|
||||||
IrValueParameterImpl(
|
context.irFactory.createValueParameter(
|
||||||
startOffset, endOffset,
|
startOffset = startOffset,
|
||||||
IrDeclarationOrigin.DEFINED,
|
endOffset = endOffset,
|
||||||
IrValueParameterSymbolImpl(),
|
origin = IrDeclarationOrigin.DEFINED,
|
||||||
arg.name,
|
name = arg.name,
|
||||||
arg.index,
|
|
||||||
type = context.irBuiltIns.anyNType,
|
type = context.irBuiltIns.anyNType,
|
||||||
|
isAssignable = arg.isAssignable,
|
||||||
|
symbol = IrValueParameterSymbolImpl(),
|
||||||
|
index = arg.index,
|
||||||
varargElementType = null,
|
varargElementType = null,
|
||||||
isCrossinline = arg.isCrossinline,
|
isCrossinline = arg.isCrossinline,
|
||||||
isNoinline = arg.isNoinline,
|
isNoinline = arg.isNoinline,
|
||||||
isHidden = arg.isHidden,
|
isHidden = arg.isHidden,
|
||||||
isAssignable = arg.isAssignable
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
val overriddenJobDescriptor = OverriddenFunctionInfo(jobFunction, runtimeJobFunction)
|
val overriddenJobDescriptor = OverriddenFunctionInfo(jobFunction, runtimeJobFunction)
|
||||||
|
|||||||
+9
-9
@@ -12,7 +12,6 @@ import org.jetbrains.kotlin.descriptors.ClassKind
|
|||||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
|
||||||
import org.jetbrains.kotlin.ir.IrStatement
|
import org.jetbrains.kotlin.ir.IrStatement
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.impl.IrValueParameterImpl
|
|
||||||
import org.jetbrains.kotlin.ir.expressions.*
|
import org.jetbrains.kotlin.ir.expressions.*
|
||||||
import org.jetbrains.kotlin.ir.expressions.impl.*
|
import org.jetbrains.kotlin.ir.expressions.impl.*
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol
|
||||||
@@ -124,18 +123,19 @@ internal class EnumConstructorsLowering(val context: Context) : ClassLoweringPas
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun createSynthesizedValueParameter(index: Int, name: String, type: IrType): IrValueParameter =
|
fun createSynthesizedValueParameter(index: Int, name: String, type: IrType): IrValueParameter =
|
||||||
IrValueParameterImpl(
|
context.irFactory.createValueParameter(
|
||||||
startOffset, endOffset,
|
startOffset = startOffset,
|
||||||
DECLARATION_ORIGIN_ENUM,
|
endOffset = endOffset,
|
||||||
IrValueParameterSymbolImpl(),
|
origin = DECLARATION_ORIGIN_ENUM,
|
||||||
Name.identifier(name),
|
name = Name.identifier(name),
|
||||||
index,
|
type = type,
|
||||||
type,
|
isAssignable = false,
|
||||||
|
symbol = IrValueParameterSymbolImpl(),
|
||||||
|
index = index,
|
||||||
varargElementType = null,
|
varargElementType = null,
|
||||||
isCrossinline = false,
|
isCrossinline = false,
|
||||||
isNoinline = false,
|
isNoinline = false,
|
||||||
isHidden = false,
|
isHidden = false,
|
||||||
isAssignable = false
|
|
||||||
).apply {
|
).apply {
|
||||||
parent = loweredConstructor
|
parent = loweredConstructor
|
||||||
}
|
}
|
||||||
|
|||||||
+9
-9
@@ -29,7 +29,6 @@ import org.jetbrains.kotlin.ir.IrStatement
|
|||||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||||
import org.jetbrains.kotlin.ir.builders.*
|
import org.jetbrains.kotlin.ir.builders.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.impl.IrValueParameterImpl
|
|
||||||
import org.jetbrains.kotlin.ir.expressions.*
|
import org.jetbrains.kotlin.ir.expressions.*
|
||||||
import org.jetbrains.kotlin.ir.expressions.impl.*
|
import org.jetbrains.kotlin.ir.expressions.impl.*
|
||||||
import org.jetbrains.kotlin.ir.objcinterop.*
|
import org.jetbrains.kotlin.ir.objcinterop.*
|
||||||
@@ -387,18 +386,19 @@ private class InteropLoweringPart1(val generationState: NativeGenerationState) :
|
|||||||
)
|
)
|
||||||
|
|
||||||
newFunction.valueParameters += parameterTypes.mapIndexed { index, type ->
|
newFunction.valueParameters += parameterTypes.mapIndexed { index, type ->
|
||||||
IrValueParameterImpl(
|
context.irFactory.createValueParameter(
|
||||||
function.startOffset, function.endOffset,
|
startOffset = function.startOffset,
|
||||||
IrDeclarationOrigin.DEFINED,
|
endOffset = function.endOffset,
|
||||||
IrValueParameterSymbolImpl(),
|
origin = IrDeclarationOrigin.DEFINED,
|
||||||
Name.identifier("p$index"),
|
name = Name.identifier("p$index"),
|
||||||
index,
|
type = type,
|
||||||
type,
|
isAssignable = false,
|
||||||
|
symbol = IrValueParameterSymbolImpl(),
|
||||||
|
index = index,
|
||||||
varargElementType = null,
|
varargElementType = null,
|
||||||
isCrossinline = false,
|
isCrossinline = false,
|
||||||
isNoinline = false,
|
isNoinline = false,
|
||||||
isHidden = false,
|
isHidden = false,
|
||||||
isAssignable = false
|
|
||||||
).apply {
|
).apply {
|
||||||
parent = newFunction
|
parent = newFunction
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user