[K/JS] Use only single variant of default arguments function wrapper for exported and not-exported functions
This commit is contained in:
@@ -149,8 +149,8 @@ fun IrBuilderWithScope.irSet(variable: IrValueSymbol, value: IrExpression, origi
|
||||
fun IrBuilderWithScope.irSet(variable: IrValueDeclaration, value: IrExpression, origin: IrStatementOrigin = IrStatementOrigin.EQ) =
|
||||
irSet(variable.symbol, value, origin)
|
||||
|
||||
fun IrBuilderWithScope.irGetField(receiver: IrExpression?, field: IrField) =
|
||||
IrGetFieldImpl(startOffset, endOffset, field.symbol, field.type, receiver)
|
||||
fun IrBuilderWithScope.irGetField(receiver: IrExpression?, field: IrField, type: IrType = field.type) =
|
||||
IrGetFieldImpl(startOffset, endOffset, field.symbol, type, receiver)
|
||||
|
||||
fun IrBuilderWithScope.irSetField(receiver: IrExpression?, field: IrField, value: IrExpression, origin: IrStatementOrigin? = null) =
|
||||
IrSetFieldImpl(startOffset, endOffset, field.symbol, receiver, value, context.irBuiltIns.unitType, origin = origin)
|
||||
@@ -161,6 +161,17 @@ fun IrBuilderWithScope.irGetObjectValue(type: IrType, classSymbol: IrClassSymbol
|
||||
fun IrBuilderWithScope.irEqeqeq(arg1: IrExpression, arg2: IrExpression) =
|
||||
context.eqeqeq(startOffset, endOffset, arg1, arg2)
|
||||
|
||||
fun IrBuilderWithScope.irEqeqeqWithoutBox(arg1: IrExpression, arg2: IrExpression) =
|
||||
primitiveOp2(
|
||||
startOffset,
|
||||
endOffset,
|
||||
context.irBuiltIns.eqeqeqSymbol,
|
||||
context.irBuiltIns.booleanType,
|
||||
IrStatementOrigin.SYNTHETIC_NOT_AUTOBOXED_CHECK,
|
||||
arg1,
|
||||
arg2
|
||||
)
|
||||
|
||||
fun IrBuilderWithScope.irNull() =
|
||||
irNull(context.irBuiltIns.nothingNType)
|
||||
|
||||
|
||||
@@ -54,6 +54,10 @@ abstract class IrStatementsBuilder<out T : IrElement>(
|
||||
addStatement(this)
|
||||
}
|
||||
|
||||
operator fun List<IrStatement>.unaryPlus() {
|
||||
forEach(::addStatement)
|
||||
}
|
||||
|
||||
protected abstract fun addStatement(irStatement: IrStatement)
|
||||
abstract fun doBuild(): T
|
||||
}
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
|
||||
package org.jetbrains.kotlin.ir.expressions
|
||||
|
||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOriginImpl
|
||||
|
||||
abstract class IrStatementOriginImpl(val debugName: String) : IrStatementOrigin {
|
||||
override fun toString(): String = debugName
|
||||
}
|
||||
@@ -90,6 +92,8 @@ interface IrStatementOrigin {
|
||||
|
||||
object BRIDGE_DELEGATION : IrStatementOriginImpl("BRIDGE_DELEGATION")
|
||||
|
||||
object SYNTHETIC_NOT_AUTOBOXED_CHECK : IrStatementOriginImpl("SYNTHETIC_NOT_AUTOBOXED_CHECK")
|
||||
|
||||
data class COMPONENT_N private constructor(val index: Int) : IrStatementOriginImpl("COMPONENT_$index") {
|
||||
companion object {
|
||||
private val precreatedComponents = Array(32) { i -> COMPONENT_N(i + 1) }
|
||||
|
||||
Reference in New Issue
Block a user