summaryrefslogtreecommitdiff
path: root/src/hir/from_ast_expr.cpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-08-14 22:09:22 +0800
committerJohn Hodge <tpg@mutabah.net>2016-08-14 22:09:22 +0800
commit4dfe5c315498ef816baa3c62e36bc0d72cff50a9 (patch)
treeaae657d43c099d1709f24931f6185c9a59b73be2 /src/hir/from_ast_expr.cpp
parent6f390a1f245d467ef8f2aa7c9e0ad7b300a4e681 (diff)
downloadmrust-4dfe5c315498ef816baa3c62e36bc0d72cff50a9.tar.gz
HIR - Move borrow ops to their own node type
Diffstat (limited to 'src/hir/from_ast_expr.cpp')
-rw-r--r--src/hir/from_ast_expr.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/hir/from_ast_expr.cpp b/src/hir/from_ast_expr.cpp
index 66617075..f8d3fd69 100644
--- a/src/hir/from_ast_expr.cpp
+++ b/src/hir/from_ast_expr.cpp
@@ -194,8 +194,13 @@ struct LowerHIR_ExprNode_Visitor:
BUG(v.get_pos(), "Encounterd question mark operator (should have been expanded in AST)");
break;
- case ::AST::ExprNode_UniOp::REF: op = ::HIR::ExprNode_UniOp::Op::Ref ; if(0)
- case ::AST::ExprNode_UniOp::REFMUT: op = ::HIR::ExprNode_UniOp::Op::RefMut; if(0)
+ case ::AST::ExprNode_UniOp::REF:
+ m_rv.reset(new ::HIR::ExprNode_Borrow(v.span(), ::HIR::BorrowType::Shared, LowerHIR_ExprNode_Inner( *v.m_value ) ));
+ break;
+ case ::AST::ExprNode_UniOp::REFMUT:
+ m_rv.reset(new ::HIR::ExprNode_Borrow(v.span(), ::HIR::BorrowType::Unique, LowerHIR_ExprNode_Inner( *v.m_value ) ));
+ break;
+
case ::AST::ExprNode_UniOp::INVERT: op = ::HIR::ExprNode_UniOp::Op::Invert; if(0)
case ::AST::ExprNode_UniOp::NEGATE: op = ::HIR::ExprNode_UniOp::Op::Negate;
m_rv.reset( new ::HIR::ExprNode_UniOp( v.span(),