diff --git a/translator/src/main/kotlin/org/kotlinnative/translator/BlockCodegen.kt b/translator/src/main/kotlin/org/kotlinnative/translator/BlockCodegen.kt index 61f3951449c..c326bd34010 100644 --- a/translator/src/main/kotlin/org/kotlinnative/translator/BlockCodegen.kt +++ b/translator/src/main/kotlin/org/kotlinnative/translator/BlockCodegen.kt @@ -582,33 +582,21 @@ abstract class BlockCodegen(val state: TranslationState, val variableManager: Va return result } - private fun parseArgList(expr: KtCallExpression, scopeDepth: Int): List { - val args = expr.getValueArgumentsInParentheses() - return parseValueArguments(args, scopeDepth) - } + private fun parseArgList(expr: KtCallExpression, scopeDepth: Int): List = + parseValueArguments(expr.getValueArgumentsInParentheses(), scopeDepth) - private fun parseValueArguments(args: List, scopeDepth: Int): List { - val result = ArrayList() + private fun parseValueArguments(args: List, scopeDepth: Int): List = + args.map { parseOneValueArgument(it, scopeDepth) } - for (arg in args) { - result.add(parseOneValueArgument(arg, scopeDepth)) - } - - return result - } - - fun parseOneValueArgument(arg: ValueArgument, scopeDepth: Int): LLVMSingleValue { - return evaluateExpression(arg.getArgumentExpression(), scopeDepth) as LLVMSingleValue - } + fun parseOneValueArgument(arg: ValueArgument, scopeDepth: Int): LLVMSingleValue = + evaluateExpression(arg.getArgumentExpression(), scopeDepth) as LLVMSingleValue private fun parseNamedValueArguments(args: MutableCollection, defaultValues: List, scopeDepth: Int): List = args.mapIndexed(fun(i: Int, value: ResolvedValueArgument): LLVMSingleValue { return when (value) { is DefaultValueArgument -> evaluateExpression(defaultValues[i], scopeDepth)!! - else -> { - val expr = ((value as ExpressionValueArgument).valueArgument as KtValueArgument).getArgumentExpression()!! - evaluateExpression(expr, scopeDepth)!! - } + is ExpressionValueArgument -> evaluateExpression((value.valueArgument as KtValueArgument).getArgumentExpression()!!, scopeDepth)!! + else -> throw UnexpectedException("Wrong parser argument") } }).toList()