Skip to content
Snippets Groups Projects
Commit 69332401 authored by Stéphane Del Pino's avatar Stéphane Del Pino
Browse files

Forbid dangerous(?) implicit conversion to AggregateDataVariant

Previously, std::vector<DataVariant> could be converted automatically
to AggregateDataVariant using the move constructor
parent c1967c23
No related branches found
No related tags found
1 merge request!135Forbid dangerous(?) implicit conversion to AggregateDataVariant
......@@ -87,7 +87,7 @@ class ASTNodeExpressionListProcessor final : public INodeProcessor
}
Assert(list_values.size() == m_number_of_values);
return DataVariant{std::move(list_values)};
return AggregateDataVariant{std::move(list_values)};
}
ASTNodeExpressionListProcessor(ASTNode& node) : m_node{node}, m_number_of_values{this->_getNumberOfValues()} {}
......
......@@ -124,7 +124,7 @@ class FunctionProcessor : public INodeProcessor
for (auto& function_expression_processor : m_function_expression_processors) {
list_values.emplace_back(function_expression_processor->execute(context_exec_policy));
}
return DataVariant{std::move(list_values)};
return AggregateDataVariant{std::move(list_values)};
}
}
......
......@@ -204,7 +204,7 @@ class BuiltinFunctionEmbedder<FX(Args...)> : public IBuiltinFunctionEmbedder
std::apply([&](auto&&... result) { ((vector_result.emplace_back(_resultToDataVariant(result))), ...); },
tuple_result);
return vector_result;
return AggregateDataVariant{std::move(vector_result)};
}
public:
......@@ -337,7 +337,7 @@ class BuiltinFunctionEmbedder<FX(void)> : public IBuiltinFunctionEmbedder
std::apply([&](auto&&... result) { ((vector_result.emplace_back(_resultToDataVariant(result))), ...); },
tuple_result);
return vector_result;
return AggregateDataVariant{std::move(vector_result)};
}
public:
......
......@@ -97,7 +97,7 @@ class AggregateDataVariant // LCOV_EXCL_LINE
AggregateDataVariant& operator=(const AggregateDataVariant&) = default;
AggregateDataVariant& operator=(AggregateDataVariant&&) = default;
AggregateDataVariant(std::vector<DataVariant>&& data_vector) : m_data_vector{data_vector} {}
explicit AggregateDataVariant(std::vector<DataVariant>&& data_vector) : m_data_vector{data_vector} {}
AggregateDataVariant(const AggregateDataVariant&) = default;
AggregateDataVariant(AggregateDataVariant&&) = default;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment