summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-08-06 17:27:08 +0800
committerJohn Hodge <tpg@mutabah.net>2016-08-06 17:27:08 +0800
commitd2d53e1daf9c138426ec55b7eef7b407da25eba2 (patch)
treece1911115f7274ba8adb7fb9a1b347b1e0b14f0f
parentddaddbad7227febdfae053dade5f31279ada8a97 (diff)
downloadmrust-d2d53e1daf9c138426ec55b7eef7b407da25eba2.tar.gz
HIR - Start on closure annotations
-rw-r--r--src/hir/expr.hpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/hir/expr.hpp b/src/hir/expr.hpp
index 90ad27a7..47669c3a 100644
--- a/src/hir/expr.hpp
+++ b/src/hir/expr.hpp
@@ -653,6 +653,16 @@ struct ExprNode_Closure:
::HIR::TypeRef m_return;
::HIR::ExprNodeP m_code;
+ enum class Class {
+ Unknown,
+ Shared,
+ Mut,
+ Once,
+ } m_class = Class::Unknown;
+ bool m_is_move = false;
+
+ ::std::vector<unsigned int> m_var_captures;
+
ExprNode_Closure(Span sp, args_t args, ::HIR::TypeRef rv, ::HIR::ExprNodeP code):
ExprNode(mv$(sp)),
m_args( ::std::move(args) ),