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
Branches
Tags
1 merge request!135Forbid dangerous(?) implicit conversion to AggregateDataVariant
...@@ -87,7 +87,7 @@ class ASTNodeExpressionListProcessor final : public INodeProcessor ...@@ -87,7 +87,7 @@ class ASTNodeExpressionListProcessor final : public INodeProcessor
} }
Assert(list_values.size() == m_number_of_values); 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()} {} ASTNodeExpressionListProcessor(ASTNode& node) : m_node{node}, m_number_of_values{this->_getNumberOfValues()} {}
......
...@@ -124,7 +124,7 @@ class FunctionProcessor : public INodeProcessor ...@@ -124,7 +124,7 @@ class FunctionProcessor : public INodeProcessor
for (auto& function_expression_processor : m_function_expression_processors) { for (auto& function_expression_processor : m_function_expression_processors) {
list_values.emplace_back(function_expression_processor->execute(context_exec_policy)); 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 ...@@ -204,7 +204,7 @@ class BuiltinFunctionEmbedder<FX(Args...)> : public IBuiltinFunctionEmbedder
std::apply([&](auto&&... result) { ((vector_result.emplace_back(_resultToDataVariant(result))), ...); }, std::apply([&](auto&&... result) { ((vector_result.emplace_back(_resultToDataVariant(result))), ...); },
tuple_result); tuple_result);
return vector_result; return AggregateDataVariant{std::move(vector_result)};
} }
public: public:
...@@ -337,7 +337,7 @@ class BuiltinFunctionEmbedder<FX(void)> : public IBuiltinFunctionEmbedder ...@@ -337,7 +337,7 @@ class BuiltinFunctionEmbedder<FX(void)> : public IBuiltinFunctionEmbedder
std::apply([&](auto&&... result) { ((vector_result.emplace_back(_resultToDataVariant(result))), ...); }, std::apply([&](auto&&... result) { ((vector_result.emplace_back(_resultToDataVariant(result))), ...); },
tuple_result); tuple_result);
return vector_result; return AggregateDataVariant{std::move(vector_result)};
} }
public: public:
......
...@@ -97,7 +97,7 @@ class AggregateDataVariant // LCOV_EXCL_LINE ...@@ -97,7 +97,7 @@ class AggregateDataVariant // LCOV_EXCL_LINE
AggregateDataVariant& operator=(const AggregateDataVariant&) = default; AggregateDataVariant& operator=(const AggregateDataVariant&) = default;
AggregateDataVariant& operator=(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(const AggregateDataVariant&) = default;
AggregateDataVariant(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