]> git.lizzy.rs Git - rust.git/blobdiff - src/librustc_typeck/check/regionck.rs
Port a bunch of code new-visitor; all of these ports were
[rust.git] / src / librustc_typeck / check / regionck.rs
index 3cdc9b559446eee1003ebe4644eb1ff2ada5ce53..095dded777022544288671633cb4c5578803e009 100644 (file)
 use std::rc::Rc;
 use syntax::ast;
 use syntax::codemap::Span;
-use rustc_front::visit;
-use rustc_front::visit::Visitor;
+use rustc_front::intravisit::{self, Visitor};
 use rustc_front::hir;
 use rustc_front::util as hir_util;
 
@@ -496,13 +495,11 @@ impl<'a, 'tcx, 'v> Visitor<'v> for Rcx<'a, 'tcx> {
     // hierarchy, and in particular the relationships between free
     // regions, until regionck, as described in #3238.
 
-    fn visit_fn(&mut self, _fk: visit::FnKind<'v>, fd: &'v hir::FnDecl,
+    fn visit_fn(&mut self, _fk: intravisit::FnKind<'v>, fd: &'v hir::FnDecl,
                 b: &'v hir::Block, span: Span, id: ast::NodeId) {
         self.visit_fn_body(id, fd, b, span)
     }
 
-    fn visit_item(&mut self, i: &hir::Item) { visit_item(self, i); }
-
     fn visit_expr(&mut self, ex: &hir::Expr) { visit_expr(self, ex); }
 
     //visit_pat: visit_pat, // (..) see above
@@ -514,12 +511,8 @@ fn visit_fn(&mut self, _fk: visit::FnKind<'v>, fd: &'v hir::FnDecl,
     fn visit_block(&mut self, b: &hir::Block) { visit_block(self, b); }
 }
 
-fn visit_item(_rcx: &mut Rcx, _item: &hir::Item) {
-    // Ignore items
-}
-
 fn visit_block(rcx: &mut Rcx, b: &hir::Block) {
-    visit::walk_block(rcx, b);
+    intravisit::walk_block(rcx, b);
 }
 
 fn visit_arm(rcx: &mut Rcx, arm: &hir::Arm) {
@@ -528,14 +521,14 @@ fn visit_arm(rcx: &mut Rcx, arm: &hir::Arm) {
         constrain_bindings_in_pat(&**p, rcx);
     }
 
-    visit::walk_arm(rcx, arm);
+    intravisit::walk_arm(rcx, arm);
 }
 
 fn visit_local(rcx: &mut Rcx, l: &hir::Local) {
     // see above
     constrain_bindings_in_pat(&*l.pat, rcx);
     link_local(rcx, l);
-    visit::walk_local(rcx, l);
+    intravisit::walk_local(rcx, l);
 }
 
 fn constrain_bindings_in_pat(pat: &hir::Pat, rcx: &mut Rcx) {
@@ -700,14 +693,14 @@ fn visit_expr(rcx: &mut Rcx, expr: &hir::Expr) {
                                args.iter().map(|e| &**e), false);
             }
 
-            visit::walk_expr(rcx, expr);
+            intravisit::walk_expr(rcx, expr);
         }
 
         hir::ExprMethodCall(_, _, ref args) => {
             constrain_call(rcx, expr, Some(&*args[0]),
                            args[1..].iter().map(|e| &**e), false);
 
-            visit::walk_expr(rcx, expr);
+            intravisit::walk_expr(rcx, expr);
         }
 
         hir::ExprAssignOp(_, ref lhs, ref rhs) => {
@@ -716,14 +709,14 @@ fn visit_expr(rcx: &mut Rcx, expr: &hir::Expr) {
                                Some(&**rhs).into_iter(), false);
             }
 
-            visit::walk_expr(rcx, expr);
+            intravisit::walk_expr(rcx, expr);
         }
 
         hir::ExprIndex(ref lhs, ref rhs) if has_method_map => {
             constrain_call(rcx, expr, Some(&**lhs),
                            Some(&**rhs).into_iter(), true);
 
-            visit::walk_expr(rcx, expr);
+            intravisit::walk_expr(rcx, expr);
         },
 
         hir::ExprBinary(op, ref lhs, ref rhs) if has_method_map => {
@@ -736,7 +729,7 @@ fn visit_expr(rcx: &mut Rcx, expr: &hir::Expr) {
             constrain_call(rcx, expr, Some(&**lhs),
                            Some(&**rhs).into_iter(), implicitly_ref_args);
 
-            visit::walk_expr(rcx, expr);
+            intravisit::walk_expr(rcx, expr);
         }
 
         hir::ExprBinary(_, ref lhs, ref rhs) => {
@@ -750,7 +743,7 @@ fn visit_expr(rcx: &mut Rcx, expr: &hir::Expr) {
                                   ty,
                                   expr_region);
             }
-            visit::walk_expr(rcx, expr);
+            intravisit::walk_expr(rcx, expr);
         }
 
         hir::ExprUnary(op, ref lhs) if has_method_map => {
@@ -760,7 +753,7 @@ fn visit_expr(rcx: &mut Rcx, expr: &hir::Expr) {
             constrain_call(rcx, expr, Some(&**lhs),
                            None::<hir::Expr>.iter(), implicitly_ref_args);
 
-            visit::walk_expr(rcx, expr);
+            intravisit::walk_expr(rcx, expr);
         }
 
         hir::ExprUnary(hir::UnDeref, ref base) => {
@@ -781,7 +774,7 @@ fn visit_expr(rcx: &mut Rcx, expr: &hir::Expr) {
                     rcx, expr.span, expr_region, *r_ptr);
             }
 
-            visit::walk_expr(rcx, expr);
+            intravisit::walk_expr(rcx, expr);
         }
 
         hir::ExprIndex(ref vec_expr, _) => {
@@ -789,7 +782,7 @@ fn visit_expr(rcx: &mut Rcx, expr: &hir::Expr) {
             let vec_type = rcx.resolve_expr_type_adjusted(&**vec_expr);
             constrain_index(rcx, expr, vec_type);
 
-            visit::walk_expr(rcx, expr);
+            intravisit::walk_expr(rcx, expr);
         }
 
         hir::ExprCast(ref source, _) => {
@@ -797,7 +790,7 @@ fn visit_expr(rcx: &mut Rcx, expr: &hir::Expr) {
             // instance.  If so, we have to be sure that the type of
             // the source obeys the trait's region bound.
             constrain_cast(rcx, expr, &**source);
-            visit::walk_expr(rcx, expr);
+            intravisit::walk_expr(rcx, expr);
         }
 
         hir::ExprAddrOf(m, ref base) => {
@@ -812,13 +805,13 @@ fn visit_expr(rcx: &mut Rcx, expr: &hir::Expr) {
             // FIXME(#6268) nested method calls requires that this rule change
             let ty0 = rcx.resolve_node_type(expr.id);
             type_must_outlive(rcx, infer::AddrOf(expr.span), ty0, expr_region);
-            visit::walk_expr(rcx, expr);
+            intravisit::walk_expr(rcx, expr);
         }
 
         hir::ExprMatch(ref discr, ref arms, _) => {
             link_match(rcx, &**discr, &arms[..]);
 
-            visit::walk_expr(rcx, expr);
+            intravisit::walk_expr(rcx, expr);
         }
 
         hir::ExprClosure(_, _, ref body) => {
@@ -827,7 +820,7 @@ fn visit_expr(rcx: &mut Rcx, expr: &hir::Expr) {
 
         hir::ExprLoop(ref body, _) => {
             let repeating_scope = rcx.set_repeating_scope(body.id);
-            visit::walk_expr(rcx, expr);
+            intravisit::walk_expr(rcx, expr);
             rcx.set_repeating_scope(repeating_scope);
         }
 
@@ -842,7 +835,7 @@ fn visit_expr(rcx: &mut Rcx, expr: &hir::Expr) {
         }
 
         _ => {
-            visit::walk_expr(rcx, expr);
+            intravisit::walk_expr(rcx, expr);
         }
     }
 }
@@ -897,7 +890,7 @@ fn check_expr_fn_block(rcx: &mut Rcx,
                        expr: &hir::Expr,
                        body: &hir::Block) {
     let repeating_scope = rcx.set_repeating_scope(body.id);
-    visit::walk_expr(rcx, expr);
+    intravisit::walk_expr(rcx, expr);
     rcx.set_repeating_scope(repeating_scope);
 }