summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/hir/expr_ptr.cpp5
-rw-r--r--src/hir/expr_ptr.hpp1
2 files changed, 6 insertions, 0 deletions
diff --git a/src/hir/expr_ptr.cpp b/src/hir/expr_ptr.cpp
index dc20f84c..8231239c 100644
--- a/src/hir/expr_ptr.cpp
+++ b/src/hir/expr_ptr.cpp
@@ -21,3 +21,8 @@
this->node = nullptr;
return rv;
}
+void ::HIR::ExprPtr::reset(::HIR::ExprNode* p)
+{
+ delete node;
+ node = p;
+}
diff --git a/src/hir/expr_ptr.hpp b/src/hir/expr_ptr.hpp
index a4c04d2b..d9f0982a 100644
--- a/src/hir/expr_ptr.hpp
+++ b/src/hir/expr_ptr.hpp
@@ -40,6 +40,7 @@ public:
::std::unique_ptr< ::HIR::ExprNode> into_unique();
operator bool () const { return node != nullptr; }
::HIR::ExprNode* get() const { return node; }
+ void reset(::HIR::ExprNode* p);
::HIR::ExprNode& operator*() { return *node; }
const ::HIR::ExprNode& operator*() const { return *node; }