summaryrefslogtreecommitdiff
path: root/src/hir_expand/closures.cpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-08-14 22:57:12 +0800
committerJohn Hodge <tpg@mutabah.net>2016-08-14 22:57:12 +0800
commit0387a1cd8c8594dc9e111e9c75af812043f7f367 (patch)
tree8282625ba581406aea5462c1618dada71c08c918 /src/hir_expand/closures.cpp
parent4dfe5c315498ef816baa3c62e36bc0d72cff50a9 (diff)
downloadmrust-0387a1cd8c8594dc9e111e9c75af812043f7f367.tar.gz
HIR Expand - Work on doing Deref desugar
Diffstat (limited to 'src/hir_expand/closures.cpp')
-rw-r--r--src/hir_expand/closures.cpp74
1 files changed, 1 insertions, 73 deletions
diff --git a/src/hir_expand/closures.cpp b/src/hir_expand/closures.cpp
index 0a6c2cb6..2ca66da4 100644
--- a/src/hir_expand/closures.cpp
+++ b/src/hir_expand/closures.cpp
@@ -480,54 +480,6 @@ namespace {
::HIR::ExprVisitorDef::visit(node);
}
- void visit(::HIR::ExprNode_Assign& node) override
- {
- // If closure is set, set a flag on the LHS saying it's being mutated, and one on the RHS saying it's being moved.
- if( !m_closure_stack.empty() )
- {
- node.m_slot->visit(*this);
- node.m_value->visit(*this);
- }
- else
- {
- ::HIR::ExprVisitorDef::visit(node);
- }
- }
- void visit(::HIR::ExprNode_UniOp& node) override
- {
- if( !m_closure_stack.empty() )
- {
- node.m_value->visit(*this);
- }
- else
- {
- ::HIR::ExprVisitorDef::visit(node);
- }
- }
- void visit(::HIR::ExprNode_BinOp& node) override
- {
- if( !m_closure_stack.empty() )
- {
- node.m_left ->visit(*this);
- node.m_right->visit(*this);
- }
- else
- {
- ::HIR::ExprVisitorDef::visit(node);
- }
- }
- void visit(::HIR::ExprNode_Field& node) override
- {
- if( !m_closure_stack.empty() )
- {
- node.m_value->visit( *this );
- }
- else
- {
- ::HIR::ExprVisitorDef::visit(node);
- }
- }
-
void visit(::HIR::ExprNode_CallValue& node) override
{
if( !m_closure_stack.empty() )
@@ -560,31 +512,7 @@ namespace {
::HIR::ExprVisitorDef::visit(node);
}
}
- void visit(::HIR::ExprNode_CallMethod& node) override
- {
- if( !m_closure_stack.empty() )
- {
- node.m_value->visit(*this);
- for(auto& arg : node.m_args)
- arg->visit(*this);
- }
- else
- {
- ::HIR::ExprVisitorDef::visit(node);
- }
- }
- void visit(::HIR::ExprNode_CallPath& node) override
- {
- if( !m_closure_stack.empty() )
- {
- for(auto& arg : node.m_args)
- arg->visit(*this);
- }
- else
- {
- ::HIR::ExprVisitorDef::visit(node);
- }
- }
+
private:
bool type_is_copy(const ::HIR::TypeRef& ty) const
{