diff options
author | John Hodge <tpg@ucc.asn.au> | 2017-11-01 20:46:36 +0800 |
---|---|---|
committer | John Hodge <tpg@ucc.asn.au> | 2017-11-01 20:46:36 +0800 |
commit | cb271f8ea98d1a5c65a5e636a0e73a85710027b4 (patch) | |
tree | 9694427c074c0e0d581cde6e01b6167016e0f844 /src/hir/expr_ptr.hpp | |
parent | 8306f43ccdf0414b48891aa5eb04d8901899c052 (diff) | |
download | mrust-cb271f8ea98d1a5c65a5e636a0e73a85710027b4.tar.gz |
HIR - Refactor enums to only embed a single field (and give variants types)
Diffstat (limited to 'src/hir/expr_ptr.hpp')
-rw-r--r-- | src/hir/expr_ptr.hpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/hir/expr_ptr.hpp b/src/hir/expr_ptr.hpp index 5bedd1da..97991bf2 100644 --- a/src/hir/expr_ptr.hpp +++ b/src/hir/expr_ptr.hpp @@ -8,6 +8,7 @@ #pragma once #include <memory> #include <vector> +#include <cassert> #include <mir/mir_ptr.hpp> @@ -47,10 +48,10 @@ public: this->ptr = p; } - ::HIR::ExprNode& operator*() { return *ptr; } - const ::HIR::ExprNode& operator*() const { return *ptr; } - ::HIR::ExprNode* operator->() { return ptr; } - const ::HIR::ExprNode* operator->() const { return ptr; } + ::HIR::ExprNode& operator*() { assert(ptr); return *ptr; } + const ::HIR::ExprNode& operator*() const { assert(ptr); return *ptr; } + ::HIR::ExprNode* operator->() { assert(ptr); return ptr; } + const ::HIR::ExprNode* operator->() const { assert(ptr); return ptr; } }; class ExprPtr |