diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/buildtool/build_engine/expression/expression_ptr.cpp | 4 | ||||
-rw-r--r-- | src/buildtool/build_engine/expression/expression_ptr.hpp | 3 | ||||
-rw-r--r-- | src/buildtool/build_engine/target_map/target_map.cpp | 2 |
3 files changed, 3 insertions, 6 deletions
diff --git a/src/buildtool/build_engine/expression/expression_ptr.cpp b/src/buildtool/build_engine/expression/expression_ptr.cpp index 9d249412..256e580b 100644 --- a/src/buildtool/build_engine/expression/expression_ptr.cpp +++ b/src/buildtool/build_engine/expression/expression_ptr.cpp @@ -5,10 +5,6 @@ ExpressionPtr::ExpressionPtr() noexcept : ptr_{Expression::kNone.ptr_} {} -auto ExpressionPtr::operator*() && -> Expression { - return *ptr_; -} - auto ExpressionPtr::operator[]( std::string const& key) const& -> ExpressionPtr const& { return (*ptr_)[key]; diff --git a/src/buildtool/build_engine/expression/expression_ptr.hpp b/src/buildtool/build_engine/expression/expression_ptr.hpp index aeca6287..d7e05923 100644 --- a/src/buildtool/build_engine/expression/expression_ptr.hpp +++ b/src/buildtool/build_engine/expression/expression_ptr.hpp @@ -34,8 +34,9 @@ class ExpressionPtr { auto operator=(ExpressionPtr&&) noexcept -> ExpressionPtr& = default; explicit operator bool() const { return static_cast<bool>(ptr_); } + [[nodiscard]] auto operator*() & -> Expression& { return *ptr_; } [[nodiscard]] auto operator*() const& -> Expression const& { return *ptr_; } - [[nodiscard]] auto operator*() && -> Expression; + [[nodiscard]] auto operator*() && -> Expression = delete; [[nodiscard]] auto operator->() const& -> Expression const* { return ptr_.get(); } diff --git a/src/buildtool/build_engine/target_map/target_map.cpp b/src/buildtool/build_engine/target_map/target_map.cpp index d15c1af4..e3f203a9 100644 --- a/src/buildtool/build_engine/target_map/target_map.cpp +++ b/src/buildtool/build_engine/target_map/target_map.cpp @@ -748,7 +748,7 @@ void withDependencies( return; } auto analysis_result = - std::make_shared<AnalysedTarget>((*std::move(result)).Result(), + std::make_shared<AnalysedTarget>(std::move(*result).Result(), std::move(actions), std::move(blobs), std::move(trees), |