summaryrefslogtreecommitdiff
path: root/src/mir
diff options
context:
space:
mode:
authorJohn Hodge <tpg@ucc.asn.au>2017-06-25 12:32:52 +0800
committerJohn Hodge <tpg@ucc.asn.au>2017-06-25 12:32:52 +0800
commita6e215ef782b7cc7351989697d9ba189f76b119b (patch)
treee12a560966abaa13427c4cf4eb72666e5ce8fc6d /src/mir
parentbeeda64094e707764db29eabc83ddfee6f5e9c03 (diff)
downloadmrust-a6e215ef782b7cc7351989697d9ba189f76b119b.tar.gz
MIR Helpers - Add a shortcut to check if a LValue is Copy
Diffstat (limited to 'src/mir')
-rw-r--r--src/mir/helpers.cpp5
-rw-r--r--src/mir/helpers.hpp1
2 files changed, 6 insertions, 0 deletions
diff --git a/src/mir/helpers.cpp b/src/mir/helpers.cpp
index 02facac0..7b2fabd5 100644
--- a/src/mir/helpers.cpp
+++ b/src/mir/helpers.cpp
@@ -293,6 +293,11 @@ const ::HIR::TypeRef& ::MIR::TypeResolve::get_lvalue_type(::HIR::TypeRef& tmp, c
)
throw "";
}
+bool ::MIR::TypeResolve::lvalue_is_copy(const ::MIR::LValue& val) const
+{
+ ::HIR::TypeRef tmp;
+ return m_resolve.type_is_copy( this->sp, get_lvalue_type(tmp, val) );
+}
const ::HIR::TypeRef* ::MIR::TypeResolve::is_type_owned_box(const ::HIR::TypeRef& ty) const
{
return m_resolve.is_type_owned_box(ty);
diff --git a/src/mir/helpers.hpp b/src/mir/helpers.hpp
index 091a669f..f241753e 100644
--- a/src/mir/helpers.hpp
+++ b/src/mir/helpers.hpp
@@ -104,6 +104,7 @@ public:
::HIR::TypeRef get_const_type(const ::MIR::Constant& c) const;
+ bool lvalue_is_copy(const ::MIR::LValue& val) const;
const ::HIR::TypeRef* is_type_owned_box(const ::HIR::TypeRef& ty) const;
friend ::std::ostream& operator<<(::std::ostream& os, const TypeResolve& x) {