diff --git a/src/language/node_processor/FunctionProcessor.hpp b/src/language/node_processor/FunctionProcessor.hpp index 41e856d47b78f3a5a0b5c60885bf13cbdecdc3e8..be95d2affcd106307762c68f4cecf1ecc49d3ea4 100644 --- a/src/language/node_processor/FunctionProcessor.hpp +++ b/src/language/node_processor/FunctionProcessor.hpp @@ -100,15 +100,15 @@ class FunctionProcessor : public INodeProcessor std::make_shared<ExecutionPolicy::Context::Values>( m_context_size)}}; - if (m_argument_node.is_type<language::function_argument_list>()) { + if (m_argument_converters.size() == 1) { + m_argument_converters[0]->convert(context_exec_policy, m_argument_node.execute(context_exec_policy)); + } else { AggregateDataVariant argument_values{ std::get<AggregateDataVariant>(m_argument_node.execute(context_exec_policy))}; for (size_t i = 0; i < m_argument_converters.size(); ++i) { m_argument_converters[i]->convert(context_exec_policy, std::move(argument_values[i])); } - } else { - m_argument_converters[0]->convert(context_exec_policy, m_argument_node.execute(context_exec_policy)); } if (m_function_expression_processors.size() == 1) {