summaryrefslogtreecommitdiff
path: root/src/hir/expr_ptr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/hir/expr_ptr.cpp')
-rw-r--r--src/hir/expr_ptr.cpp32
1 files changed, 19 insertions, 13 deletions
diff --git a/src/hir/expr_ptr.cpp b/src/hir/expr_ptr.cpp
index 8231239c..1f4cb1c3 100644
--- a/src/hir/expr_ptr.cpp
+++ b/src/hir/expr_ptr.cpp
@@ -1,28 +1,34 @@
/*
+ * MRustC - Rust Compiler
+ * - By John Hodge (Mutabah/thePowersGang)
+ *
+ * hir/expr_ptr.cpp
+ * - HIR Expression
*/
#include <hir/expr_ptr.hpp>
#include <hir/expr.hpp>
-::HIR::ExprPtr::ExprPtr():
- node(nullptr)
+::HIR::ExprPtr::ExprPtr(::std::unique_ptr< ::HIR::ExprNode> v):
+ node( mv$(v) )
{
}
-::HIR::ExprPtr::ExprPtr(::std::unique_ptr< ::HIR::ExprNode> v):
- node( v.release() )
+::std::unique_ptr< ::HIR::ExprNode> HIR::ExprPtr::into_unique()
{
+ return node.into_unique();
}
-::HIR::ExprPtr::~ExprPtr()
+
+
+::HIR::ExprPtrInner::ExprPtrInner(::std::unique_ptr< ::HIR::ExprNode> v):
+ ptr( v.release() )
{
- delete node;
}
-::std::unique_ptr< ::HIR::ExprNode> HIR::ExprPtr::into_unique()
+::HIR::ExprPtrInner::~ExprPtrInner()
{
- ::std::unique_ptr< ::HIR::ExprNode> rv( this->node );
- this->node = nullptr;
- return rv;
+ delete ptr;
}
-void ::HIR::ExprPtr::reset(::HIR::ExprNode* p)
+::std::unique_ptr< ::HIR::ExprNode> HIR::ExprPtrInner::into_unique()
{
- delete node;
- node = p;
+ ::std::unique_ptr< ::HIR::ExprNode> rv( this->ptr );
+ this->ptr = nullptr;
+ return rv;
}