[FIR] Add some helper functions for dynamics

This commit is contained in:
Nikolay Lunyak
2022-03-30 14:41:18 +03:00
committed by teamcity
parent da8a8a8988
commit 0bc34a9e5a
@@ -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<FirExpression> 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<FirExpression>?
get() = dynamicVararg?.arguments
inline val FirFunctionCall.isCalleeDynamic: Boolean
get() = (calleeReference.resolvedSymbol?.fir as? FirFunction)?.origin == FirDeclarationOrigin.DynamicScope
inline val FirCall.resolvedArgumentMapping: Map<FirExpression, FirValueParameter>?
get() = when (val argumentList = argumentList) {
is FirResolvedArgumentList -> argumentList.mapping