[IR] Mark IrFunctionImpl with an opt-in annotation

KT-59318
This commit is contained in:
Sergej Jaskiewicz
2023-12-07 17:43:00 +01:00
committed by Space Team
parent e1d03f6540
commit 41197392f9
10 changed files with 168 additions and 140 deletions
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.ir.declarations.impl
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.ir.IrImplementationDetail
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.descriptors.toIrBasedDescriptor
@@ -21,7 +22,10 @@ import org.jetbrains.kotlin.ir.types.impl.ReturnTypeIsNotInitializedException
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
class IrFunctionImpl(
// 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 IrFunctionImpl @IrImplementationDetail constructor(
override val startOffset: Int,
override val endOffset: Int,
override var origin: IrDeclarationOrigin,
@@ -12,14 +12,17 @@ import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.declarations.impl.*
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
import org.jetbrains.kotlin.ir.declarations.impl.IrFileImpl
import org.jetbrains.kotlin.ir.declarations.impl.IrPropertyImpl
import org.jetbrains.kotlin.ir.declarations.impl.IrValueParameterImpl
import org.jetbrains.kotlin.ir.descriptors.IrAbstractDescriptorBasedFunctionFactory
import org.jetbrains.kotlin.ir.linkage.IrProvider
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol
import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol
import org.jetbrains.kotlin.ir.symbols.IrSymbol
import org.jetbrains.kotlin.ir.symbols.impl.*
import org.jetbrains.kotlin.ir.symbols.impl.IrValueParameterSymbolImpl
import org.jetbrains.kotlin.ir.types.IrType
import org.jetbrains.kotlin.ir.types.SimpleTypeNullability
import org.jetbrains.kotlin.ir.types.classOrNull
@@ -188,9 +191,23 @@ internal class BuiltInFictitiousFunctionIrClassFactory(
): IrSimpleFunction {
val functionFactory: (IrSimpleFunctionSymbol) -> IrSimpleFunction = {
with(descriptor) {
IrFunctionImpl(
SYNTHETIC_OFFSET, SYNTHETIC_OFFSET, origin, it, name, visibility, modality, returnType,
isInline, isExternal, isTailrec, isSuspend, isOperator, isInfix, isExpect, isFakeOverride
symbolTable.irFactory.createSimpleFunction(
SYNTHETIC_OFFSET,
SYNTHETIC_OFFSET,
origin,
name,
visibility,
isInline,
isExpect,
returnType,
modality,
it,
isTailrec,
isSuspend,
isOperator,
isInfix,
isExternal,
isFakeOverride = isFakeOverride,
)
}
}
@@ -329,10 +346,23 @@ internal class BuiltInFictitiousFunctionIrClassFactory(
val functionDeclare = { s: IrSimpleFunctionSymbol ->
descriptor.run {
IrFunctionImpl(
offset, offset, memberOrigin, s, name, visibility, modality, returnType,
isInline, isExternal, isTailrec, isSuspend, isOperator, isInfix, isExpect,
isFakeOverride = true
symbolTable.irFactory.createSimpleFunction(
offset,
offset,
memberOrigin,
name,
visibility,
isInline,
isExpect,
returnType,
modality,
s,
isTailrec,
isSuspend,
isOperator,
isInfix,
isExternal,
isFakeOverride = true,
)
}
}
@@ -3,10 +3,11 @@ package org.jetbrains.kotlin.backend.konan.cgen
import org.jetbrains.kotlin.backend.common.lower.at
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
import org.jetbrains.kotlin.backend.common.lower.irNot
import org.jetbrains.kotlin.backend.konan.*
import org.jetbrains.kotlin.backend.konan.InteropFqNames
import org.jetbrains.kotlin.backend.konan.PrimitiveBinaryType
import org.jetbrains.kotlin.backend.konan.RuntimeNames
import org.jetbrains.kotlin.backend.konan.ir.KonanSymbols
import org.jetbrains.kotlin.backend.konan.ir.buildSimpleAnnotation
import org.jetbrains.kotlin.ir.util.getAnnotationArgumentValue
import org.jetbrains.kotlin.backend.konan.ir.konanLibrary
import org.jetbrains.kotlin.backend.konan.lower.FunctionReferenceLowering
import org.jetbrains.kotlin.descriptors.ClassKind
@@ -18,7 +19,8 @@ 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.*
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.impl.IrConstImpl
import org.jetbrains.kotlin.ir.expressions.impl.IrFunctionReferenceImpl
@@ -573,23 +575,22 @@ private fun KotlinStubs.createFakeKotlinExternalFunction(
cFunctionName: String,
isObjCMethod: Boolean
): IrSimpleFunction {
val bridge = IrFunctionImpl(
val bridge = irBuiltIns.irFactory.createSimpleFunction(
UNDEFINED_OFFSET,
UNDEFINED_OFFSET,
IrDeclarationOrigin.DEFINED,
IrSimpleFunctionSymbolImpl(),
Name.identifier(cFunctionName),
DescriptorVisibilities.PRIVATE,
Modality.FINAL,
signature.returnType,
isInline = false,
isExternal = true,
isExpect = false,
signature.returnType,
Modality.FINAL,
IrSimpleFunctionSymbolImpl(),
isTailrec = false,
isSuspend = false,
isExpect = false,
isFakeOverride = false,
isOperator = false,
isInfix = false
isInfix = false,
isExternal = true,
)
bridge.annotations += buildSimpleAnnotation(irBuiltIns, UNDEFINED_OFFSET, UNDEFINED_OFFSET,
@@ -1186,15 +1187,21 @@ private class ObjCBlockPointerValuePassing(
val overriddenInvokeMethod = (functionType.classifier.owner as IrClass).simpleFunctions()
.single { it.name == OperatorNameConventions.INVOKE }
val invokeMethod = IrFunctionImpl(
startOffset, endOffset,
val invokeMethod = context.irFactory.createSimpleFunction(
startOffset,
endOffset,
OBJC_BLOCK_FUNCTION_IMPL,
IrSimpleFunctionSymbolImpl(),
overriddenInvokeMethod.name,
DescriptorVisibilities.PUBLIC, Modality.FINAL,
DescriptorVisibilities.PUBLIC,
isInline = false,
isExpect = false,
returnType = functionType.arguments.last().typeOrNull!!,
isInline = false, isExternal = false, isTailrec = false, isSuspend = false, isExpect = false,
isFakeOverride = false, isOperator = false, isInfix = false
Modality.FINAL,
IrSimpleFunctionSymbolImpl(),
isTailrec = false,
isSuspend = false,
isOperator = false,
isInfix = false,
)
invokeMethod.overriddenSymbols += overriddenInvokeMethod.symbol
irClass.addChild(invokeMethod)
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.ir.IrStatement
import org.jetbrains.kotlin.ir.builders.*
import org.jetbrains.kotlin.ir.builders.declarations.buildVariable
import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl
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.IrMemberAccessExpression
@@ -112,23 +112,23 @@ private fun createKotlinBridge(
foreignExceptionMode: ForeignExceptionMode.Mode,
origin: IrDeclarationOrigin
): IrFunction {
val bridge = IrFunctionImpl(
val bridge = stubs.irBuiltIns.irFactory.createSimpleFunction(
startOffset,
endOffset,
origin,
IrSimpleFunctionSymbolImpl(),
Name.identifier(cBridgeName),
DescriptorVisibilities.PRIVATE,
Modality.FINAL,
IrUninitializedType,
isInline = false,
isExternal = isExternal,
isExpect = false,
IrUninitializedType,
Modality.FINAL,
IrSimpleFunctionSymbolImpl(),
isTailrec = false,
isSuspend = false,
isExpect = false,
isFakeOverride = false,
isOperator = false,
isInfix = false
isInfix = false,
isExternal = isExternal,
isFakeOverride = false,
)
if (isExternal) {
bridge.annotations += buildSimpleAnnotation(stubs.irBuiltIns, startOffset, endOffset,
@@ -21,10 +21,13 @@ import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
import org.jetbrains.kotlin.ir.builders.*
import org.jetbrains.kotlin.ir.builders.declarations.buildFun
import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl
import org.jetbrains.kotlin.ir.declarations.impl.IrValueParameterImpl
import org.jetbrains.kotlin.ir.expressions.*
import org.jetbrains.kotlin.ir.expressions.impl.*
import org.jetbrains.kotlin.ir.expressions.IrBlockBody
import org.jetbrains.kotlin.ir.expressions.IrCall
import org.jetbrains.kotlin.ir.expressions.IrExpression
import org.jetbrains.kotlin.ir.expressions.IrFunctionReference
import org.jetbrains.kotlin.ir.expressions.impl.IrCallImpl
import org.jetbrains.kotlin.ir.expressions.impl.IrFunctionReferenceImpl
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol
import org.jetbrains.kotlin.ir.symbols.impl.IrSimpleFunctionSymbolImpl
@@ -127,23 +130,22 @@ internal class WorkersBridgesBuilding(val context: Context) : DeclarationContain
val startOffset = jobFunction.startOffset
val endOffset = jobFunction.endOffset
runtimeJobFunction =
IrFunctionImpl(
startOffset, endOffset,
context.irFactory.createSimpleFunction(
startOffset,
endOffset,
IrDeclarationOrigin.DEFINED,
IrSimpleFunctionSymbolImpl(),
jobFunction.name,
jobFunction.visibility,
jobFunction.modality,
isInline = false,
isExternal = false,
isExpect = false,
returnType = context.irBuiltIns.anyNType,
jobFunction.modality,
IrSimpleFunctionSymbolImpl(),
isTailrec = false,
isSuspend = false,
returnType = context.irBuiltIns.anyNType,
isExpect = false,
isFakeOverride = false,
isOperator = false,
isInfix = false
)
isInfix = false,
)
runtimeJobFunction.valueParameters +=
IrValueParameterImpl(
@@ -7,20 +7,15 @@ package org.jetbrains.kotlin.backend.konan.lower
import org.jetbrains.kotlin.backend.common.ClassLoweringPass
import org.jetbrains.kotlin.backend.common.CommonBackendContext
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
import org.jetbrains.kotlin.backend.common.lower.irBlockBody
import org.jetbrains.kotlin.backend.konan.descriptors.synthesizedName
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.ir.IrStatement
import org.jetbrains.kotlin.ir.builders.irDelegatingConstructorCall
import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl
import org.jetbrains.kotlin.ir.expressions.*
import org.jetbrains.kotlin.ir.expressions.impl.*
import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol
import org.jetbrains.kotlin.ir.symbols.impl.IrSimpleFunctionSymbolImpl
import org.jetbrains.kotlin.ir.types.isPrimitiveType
import org.jetbrains.kotlin.ir.types.isString
import org.jetbrains.kotlin.ir.util.*
import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid
import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid
@@ -109,22 +104,21 @@ internal class InitializersLowering(val context: CommonBackendContext) : ClassLo
val startOffset = irClass.startOffset
val endOffset = irClass.endOffset
val initializeFun =
IrFunctionImpl(
startOffset, endOffset,
context.irFactory.createSimpleFunction(
startOffset,
endOffset,
DECLARATION_ORIGIN_ANONYMOUS_INITIALIZER,
IrSimpleFunctionSymbolImpl(),
"INITIALIZER".synthesizedName,
DescriptorVisibilities.PRIVATE,
Modality.FINAL,
context.irBuiltIns.unitType,
isInline = false,
isSuspend = false,
isExternal = false,
isTailrec = false,
isExpect = false,
isFakeOverride = false,
context.irBuiltIns.unitType,
Modality.FINAL,
IrSimpleFunctionSymbolImpl(),
isTailrec = false,
isSuspend = false,
isOperator = false,
isInfix = false
isInfix = false,
).apply {
parent = irClass
irClass.declarations.add(this)
@@ -6,7 +6,6 @@
package org.jetbrains.kotlin.backend.konan.lower
import org.jetbrains.kotlin.backend.common.FileLoweringPass
import org.jetbrains.kotlin.ir.util.inlineFunction
import org.jetbrains.kotlin.backend.common.lower.*
import org.jetbrains.kotlin.backend.common.peek
import org.jetbrains.kotlin.backend.common.pop
@@ -15,7 +14,10 @@ import org.jetbrains.kotlin.backend.konan.*
import org.jetbrains.kotlin.backend.konan.cgen.*
import org.jetbrains.kotlin.backend.konan.descriptors.allOverriddenFunctions
import org.jetbrains.kotlin.backend.konan.descriptors.synthesizedName
import org.jetbrains.kotlin.backend.konan.ir.*
import org.jetbrains.kotlin.backend.konan.ir.buildSimpleAnnotation
import org.jetbrains.kotlin.backend.konan.ir.getSuperClassNotAny
import org.jetbrains.kotlin.backend.konan.ir.isFromInteropLibrary
import org.jetbrains.kotlin.backend.konan.ir.konanLibrary
import org.jetbrains.kotlin.backend.konan.llvm.IntrinsicType
import org.jetbrains.kotlin.backend.konan.llvm.tryGetIntrinsicType
import org.jetbrains.kotlin.descriptors.ClassDescriptor
@@ -27,13 +29,10 @@ import org.jetbrains.kotlin.ir.IrStatement
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
import org.jetbrains.kotlin.ir.builders.*
import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.declarations.impl.IrFieldImpl
import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl
import org.jetbrains.kotlin.ir.declarations.impl.IrValueParameterImpl
import org.jetbrains.kotlin.ir.expressions.*
import org.jetbrains.kotlin.ir.expressions.impl.*
import org.jetbrains.kotlin.ir.objcinterop.*
import org.jetbrains.kotlin.ir.util.toIrConst
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol
import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol
@@ -271,22 +270,21 @@ private class InteropLoweringPart1(val generationState: NativeGenerationState) :
// Generate `override fun init...(...) = this.initBy(...)`:
return IrFunctionImpl(
constructor.startOffset, constructor.endOffset,
return context.irFactory.createSimpleFunction(
constructor.startOffset,
constructor.endOffset,
OVERRIDING_INITIALIZER_BY_CONSTRUCTOR,
IrSimpleFunctionSymbolImpl(),
initMethod.name,
DescriptorVisibilities.PUBLIC,
Modality.OPEN,
irClass.defaultType,
isInline = false,
isExternal = false,
isExpect = false,
irClass.defaultType,
Modality.OPEN,
IrSimpleFunctionSymbolImpl(),
isTailrec = false,
isSuspend = false,
isExpect = false,
isFakeOverride = false,
isOperator = false,
isInfix = false
isInfix = false,
).also { result ->
result.parent = irClass
result.createDispatchReceiverParameter()
@@ -369,24 +367,23 @@ private class InteropLoweringPart1(val generationState: NativeGenerationState) :
function.valueParameters.mapTo(parameterTypes) { nativePtrType }
val newFunction =
IrFunctionImpl(
function.startOffset, function.endOffset,
context.irFactory.createSimpleFunction(
function.startOffset,
function.endOffset,
// The generated function is called by ObjC and contains Kotlin code, so
// it must switch thread state and potentially initialize runtime on this thread.
CBridgeOrigin.C_TO_KOTLIN_BRIDGE,
IrSimpleFunctionSymbolImpl(),
("imp:$selector").synthesizedName,
DescriptorVisibilities.PRIVATE,
Modality.FINAL,
function.returnType,
isInline = false,
isExternal = false,
isExpect = false,
function.returnType,
Modality.FINAL,
IrSimpleFunctionSymbolImpl(),
isTailrec = false,
isSuspend = false,
isExpect = false,
isFakeOverride = false,
isOperator = false,
isInfix = false
isInfix = false,
)
newFunction.valueParameters += parameterTypes.mapIndexed { index, type ->
@@ -5,18 +5,19 @@ import org.jetbrains.kotlin.backend.common.lower.*
import org.jetbrains.kotlin.backend.common.lower.optimizations.LivenessAnalysis
import org.jetbrains.kotlin.backend.konan.Context
import org.jetbrains.kotlin.backend.konan.NativeGenerationState
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.ir.IrElement
import org.jetbrains.kotlin.ir.IrStatement
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
import org.jetbrains.kotlin.ir.builders.*
import org.jetbrains.kotlin.ir.builders.irCall
import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl
import org.jetbrains.kotlin.ir.declarations.impl.IrVariableImpl
import org.jetbrains.kotlin.ir.expressions.*
import org.jetbrains.kotlin.ir.expressions.impl.*
import org.jetbrains.kotlin.ir.expressions.impl.IrGetValueImpl
import org.jetbrains.kotlin.ir.expressions.impl.IrSetValueImpl
import org.jetbrains.kotlin.ir.expressions.impl.IrSuspendableExpressionImpl
import org.jetbrains.kotlin.ir.expressions.impl.IrSuspensionPointImpl
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
import org.jetbrains.kotlin.ir.symbols.IrVariableSymbol
import org.jetbrains.kotlin.ir.symbols.impl.IrSimpleFunctionSymbolImpl
@@ -28,7 +29,6 @@ import org.jetbrains.kotlin.ir.util.*
import org.jetbrains.kotlin.ir.visitors.*
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.resolve.calls.checkers.isRestrictedSuspendFunction
import org.jetbrains.kotlin.resolve.calls.checkers.isRestrictsSuspensionReceiver
internal class NativeSuspendFunctionsLowering(
generationState: NativeGenerationState
@@ -457,42 +457,40 @@ internal class NativeSuspendFunctionsLowering(
// These are marker functions to split up the lowering on two parts.
private val saveState =
IrFunctionImpl(
SYNTHETIC_OFFSET, SYNTHETIC_OFFSET,
context.irFactory.createSimpleFunction(
SYNTHETIC_OFFSET,
SYNTHETIC_OFFSET,
IrDeclarationOrigin.DEFINED,
IrSimpleFunctionSymbolImpl(),
"saveState".synthesizedName,
DescriptorVisibilities.PRIVATE,
Modality.ABSTRACT,
context.irBuiltIns.unitType,
isInline = false,
isExternal = false,
isExpect = false,
context.irBuiltIns.unitType,
Modality.ABSTRACT,
IrSimpleFunctionSymbolImpl(),
isTailrec = false,
isSuspend = false,
isExpect = false,
isFakeOverride = false,
isOperator = false,
isInfix = false
isInfix = false,
)
private val restoreState =
IrFunctionImpl(
SYNTHETIC_OFFSET, SYNTHETIC_OFFSET,
IrDeclarationOrigin.DEFINED,
IrSimpleFunctionSymbolImpl(),
"restoreState".synthesizedName,
DescriptorVisibilities.PRIVATE,
Modality.ABSTRACT,
context.irBuiltIns.unitType,
isInline = false,
isExternal = false,
isTailrec = false,
isSuspend = false,
isExpect = false,
isFakeOverride = false,
isOperator = false,
isInfix = false
)
context.irFactory.createSimpleFunction(
SYNTHETIC_OFFSET,
SYNTHETIC_OFFSET,
IrDeclarationOrigin.DEFINED,
"restoreState".synthesizedName,
DescriptorVisibilities.PRIVATE,
isInline = false,
isExpect = false,
context.irBuiltIns.unitType,
Modality.ABSTRACT,
IrSimpleFunctionSymbolImpl(),
isTailrec = false,
isSuspend = false,
isOperator = false,
isInfix = false,
)
private fun IrBuilderWithScope.irVar(name: Name, type: IrType,
isMutable: Boolean = false,
@@ -21,7 +21,6 @@ import org.jetbrains.kotlin.ir.IrStatement
import org.jetbrains.kotlin.ir.builders.*
import org.jetbrains.kotlin.ir.builders.declarations.buildField
import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl
import org.jetbrains.kotlin.ir.expressions.IrExpression
import org.jetbrains.kotlin.ir.expressions.impl.*
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
@@ -332,22 +331,21 @@ internal class TestProcessor (val context: Context) {
private fun buildObjectGetter(objectSymbol: IrClassSymbol,
owner: IrClass,
getterName: Name): IrSimpleFunction =
IrFunctionImpl(
owner.startOffset, owner.endOffset,
context.irFactory.createSimpleFunction(
owner.startOffset,
owner.endOffset,
TEST_SUITE_GENERATED_MEMBER,
IrSimpleFunctionSymbolImpl(),
getterName,
DescriptorVisibilities.PROTECTED,
Modality.FINAL,
objectSymbol.starProjectedType,
isInline = false,
isExternal = false,
isExpect = false,
objectSymbol.starProjectedType,
Modality.FINAL,
IrSimpleFunctionSymbolImpl(),
isTailrec = false,
isSuspend = false,
isExpect = false,
isFakeOverride = false,
isOperator = false,
isInfix = false
isInfix = false,
).apply {
parent = owner
@@ -370,22 +368,21 @@ internal class TestProcessor (val context: Context) {
private fun buildInstanceGetter(classSymbol: IrClassSymbol,
owner: IrClass,
getterName: Name): IrSimpleFunction =
IrFunctionImpl(
owner.startOffset, owner.endOffset,
context.irFactory.createSimpleFunction(
owner.startOffset,
owner.endOffset,
TEST_SUITE_GENERATED_MEMBER,
IrSimpleFunctionSymbolImpl(),
getterName,
DescriptorVisibilities.PROTECTED,
Modality.FINAL,
classSymbol.starProjectedType,
isInline = false,
isExternal = false,
isExpect = false,
classSymbol.starProjectedType,
Modality.FINAL,
IrSimpleFunctionSymbolImpl(),
isTailrec = false,
isSuspend = false,
isExpect = false,
isFakeOverride = false,
isOperator = false,
isInfix = false
isInfix = false,
).apply {
parent = owner
@@ -21,7 +21,6 @@ import org.jetbrains.kotlin.ir.builders.declarations.buildFun
import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.expressions.*
import org.jetbrains.kotlin.ir.symbols.IrFieldSymbol
import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl
import org.jetbrains.kotlin.ir.symbols.IrReturnableBlockSymbol
import org.jetbrains.kotlin.ir.types.IrType
import org.jetbrains.kotlin.ir.util.*