[IR] Mark IrExpressionBodyImpl with an opt-in annotation
KT-59318
This commit is contained in:
committed by
Space Team
parent
2096d22e18
commit
1b557c1657
+11
-9
@@ -129,15 +129,17 @@ internal class CEnumClassGenerator(
|
||||
)
|
||||
val constructorSymbol = symbolTable.descriptorExtension.referenceConstructor(enumDescriptor.unsubstitutedPrimaryConstructor!!)
|
||||
postLinkageSteps.add {
|
||||
enumEntry.initializerExpression = IrExpressionBodyImpl(IrEnumConstructorCallImpl(
|
||||
SYNTHETIC_OFFSET, SYNTHETIC_OFFSET,
|
||||
type = irBuiltIns.unitType,
|
||||
symbol = constructorSymbol,
|
||||
typeArgumentsCount = 0,
|
||||
valueArgumentsCount = constructorSymbol.owner.valueParameters.size
|
||||
).also {
|
||||
it.putValueArgument(0, extractEnumEntryValue(entryDescriptor))
|
||||
})
|
||||
enumEntry.initializerExpression = context.irFactory.createExpressionBody(
|
||||
IrEnumConstructorCallImpl(
|
||||
SYNTHETIC_OFFSET, SYNTHETIC_OFFSET,
|
||||
type = irBuiltIns.unitType,
|
||||
symbol = constructorSymbol,
|
||||
typeArgumentsCount = 0,
|
||||
valueArgumentsCount = constructorSymbol.owner.valueParameters.size,
|
||||
).also {
|
||||
it.putValueArgument(0, extractEnumEntryValue(entryDescriptor))
|
||||
},
|
||||
)
|
||||
}
|
||||
return enumEntry
|
||||
}
|
||||
|
||||
+2
-2
@@ -14,8 +14,8 @@ import org.jetbrains.kotlin.descriptors.MemberDescriptor
|
||||
import org.jetbrains.kotlin.ir.IrElement
|
||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
|
||||
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
||||
import org.jetbrains.kotlin.ir.expressions.impl.IrExpressionBodyImpl
|
||||
import org.jetbrains.kotlin.ir.symbols.*
|
||||
import org.jetbrains.kotlin.ir.util.*
|
||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
|
||||
@@ -83,7 +83,7 @@ internal class ExpectToActualDefaultValueCopier(private val irModule: IrModuleFr
|
||||
|
||||
val actualForExpected = function.findActualForExpected()
|
||||
actualForExpected.valueParameters[index].defaultValue =
|
||||
IrExpressionBodyImpl(
|
||||
irModule.irBuiltins.irFactory.createExpressionBody(
|
||||
defaultValue.startOffset, defaultValue.endOffset,
|
||||
defaultValue.expression.remapExpectValueSymbols().patchDeclarationParents(actualForExpected)
|
||||
)
|
||||
|
||||
+1
-1
@@ -81,7 +81,7 @@ internal class InitializersLowering(val context: CommonBackendContext) : ClassLo
|
||||
// We shall keep initializer for constants for compile-time instantiation.
|
||||
// We suppose that if the property is const, then its initializer is IrConst.
|
||||
// If this requirement isn't satisfied, then PropertyAccessorInlineLowering can fail.
|
||||
declaration.initializer = if (isConst) IrExpressionBodyImpl(initExpression.shallowCopy()) else null
|
||||
declaration.initializer = if (isConst) context.irFactory.createExpressionBody(initExpression.shallowCopy()) else null
|
||||
|
||||
return declaration
|
||||
}
|
||||
|
||||
+1
-1
@@ -186,7 +186,7 @@ private class InteropLoweringPart1(val generationState: NativeGenerationState) :
|
||||
if (eager)
|
||||
annotations += buildSimpleAnnotation(context.irBuiltIns, startOffset, endOffset, context.ir.symbols.eagerInitialization.owner)
|
||||
|
||||
initializer = IrExpressionBodyImpl(startOffset, endOffset, expression)
|
||||
initializer = context.irFactory.createExpressionBody(startOffset, endOffset, expression)
|
||||
}
|
||||
addChild(irField)
|
||||
}
|
||||
|
||||
+1
-1
@@ -617,7 +617,7 @@ internal class TestProcessor (val context: Context) {
|
||||
annotations += buildSimpleAnnotation(context.irBuiltIns, startOffset, endOffset, context.ir.symbols.eagerInitialization.owner)
|
||||
annotations += buildSimpleAnnotation(context.irBuiltIns, startOffset, endOffset, context.ir.symbols.threadLocal.owner)
|
||||
statements.forEach { it.accept(SetDeclarationsParentVisitor, this) }
|
||||
initializer = IrExpressionBodyImpl(SYNTHETIC_OFFSET, SYNTHETIC_OFFSET,
|
||||
initializer = context.irFactory.createExpressionBody(SYNTHETIC_OFFSET, SYNTHETIC_OFFSET,
|
||||
IrCompositeImpl(SYNTHETIC_OFFSET, SYNTHETIC_OFFSET, context.irBuiltIns.unitType, null, statements)
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user