From 4dfe5c315498ef816baa3c62e36bc0d72cff50a9 Mon Sep 17 00:00:00 2001 From: John Hodge Date: Sun, 14 Aug 2016 22:09:22 +0800 Subject: HIR - Move borrow ops to their own node type --- src/hir_expand/annotate_value_usage.cpp | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'src/hir_expand/annotate_value_usage.cpp') diff --git a/src/hir_expand/annotate_value_usage.cpp b/src/hir_expand/annotate_value_usage.cpp index ea560bbc..eec4fd86 100644 --- a/src/hir_expand/annotate_value_usage.cpp +++ b/src/hir_expand/annotate_value_usage.cpp @@ -149,18 +149,25 @@ namespace { } void visit(::HIR::ExprNode_UniOp& node) override { - switch(node.m_op) + m_usage.push_back( ::HIR::ValueUsage::Move ); + + this->visit_node_ptr(node.m_value); + + m_usage.pop_back(); + } + void visit(::HIR::ExprNode_Borrow& node) override + { + switch(node.m_type) { - case ::HIR::ExprNode_UniOp::Op::Invert: - case ::HIR::ExprNode_UniOp::Op::Negate: - m_usage.push_back( ::HIR::ValueUsage::Move ); - break; - case ::HIR::ExprNode_UniOp::Op::Ref: + case ::HIR::BorrowType::Shared: m_usage.push_back( ::HIR::ValueUsage::Borrow ); break; - case ::HIR::ExprNode_UniOp::Op::RefMut: + case ::HIR::BorrowType::Unique: m_usage.push_back( ::HIR::ValueUsage::Mutate ); break; + case ::HIR::BorrowType::Owned: + m_usage.push_back( ::HIR::ValueUsage::Move ); + break; } this->visit_node_ptr(node.m_value); -- cgit v1.2.3