diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/FirExpressionUtil.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/FirExpressionUtil.kt index 4da07e16576..dde0520919b 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/FirExpressionUtil.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/FirExpressionUtil.kt @@ -6,6 +6,8 @@ package org.jetbrains.kotlin.fir.expressions import org.jetbrains.kotlin.KtSourceElement +import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin +import org.jetbrains.kotlin.fir.declarations.FirFunction import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.builder.buildConstExpression @@ -45,6 +47,15 @@ inline val FirCall.arguments: List get() = argumentList.arguments inline val FirCall.argument: FirExpression get() = argumentList.arguments.first() +inline val FirCall.dynamicVararg: FirVarargArgumentsExpression? + get() = arguments.firstOrNull() as? FirVarargArgumentsExpression + +inline val FirCall.dynamicVarargArguments: List? + get() = dynamicVararg?.arguments + +inline val FirFunctionCall.isCalleeDynamic: Boolean + get() = (calleeReference.resolvedSymbol?.fir as? FirFunction)?.origin == FirDeclarationOrigin.DynamicScope + inline val FirCall.resolvedArgumentMapping: Map? get() = when (val argumentList = argumentList) { is FirResolvedArgumentList -> argumentList.mapping