[IR] Move assert in IrSetValueImpl to factory function

#KT-65773 In Progress
This commit is contained in:
Wojciech Litewka
2024-02-29 11:56:25 +01:00
committed by Space Team
parent 62f546ca0c
commit b032e647f7
@@ -25,12 +25,6 @@ class IrSetValueImpl internal constructor(
) : IrSetValue() { ) : IrSetValue() {
override var attributeOwnerId: IrAttributeContainer = this override var attributeOwnerId: IrAttributeContainer = this
override var originalBeforeInline: IrAttributeContainer? = null override var originalBeforeInline: IrAttributeContainer? = null
init {
if (symbol.isBound) {
assert(symbol.owner.isAssignable) { "Only assignable IrValues can be set" }
}
}
} }
fun IrSetValueImpl( fun IrSetValueImpl(
@@ -40,7 +34,11 @@ fun IrSetValueImpl(
symbol: IrValueSymbol, symbol: IrValueSymbol,
value: IrExpression, value: IrExpression,
origin: IrStatementOrigin?, origin: IrStatementOrigin?,
) = IrSetValueImpl( ): IrSetValueImpl {
if (symbol.isBound) {
assert(symbol.owner.isAssignable) { "Only assignable IrValues can be set" }
}
return IrSetValueImpl(
constructorIndicator = null, constructorIndicator = null,
startOffset = startOffset, startOffset = startOffset,
endOffset = endOffset, endOffset = endOffset,
@@ -49,3 +47,4 @@ fun IrSetValueImpl(
value = value, value = value,
origin = origin, origin = origin,
) )
}