about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2017-09-08 12:14:38 -0400
committerNiko Matsakis <niko@alum.mit.edu>2017-10-16 17:32:22 -0400
commit807e157b4cff0bcedb91abe482b876ea1ac3b1e0 (patch)
tree7f0cb268a10b3075675276866bae819f9703f5db /src
parent5c26509405681aa54d57577085810101ed6ac54e (diff)
downloadrust-807e157b4cff0bcedb91abe482b876ea1ac3b1e0.tar.gz
rust-807e157b4cff0bcedb91abe482b876ea1ac3b1e0.zip
invoke const only on body-ids
Diffstat (limited to 'src')
-rw-r--r--src/librustc_passes/consts.rs31
1 files changed, 17 insertions, 14 deletions
diff --git a/src/librustc_passes/consts.rs b/src/librustc_passes/consts.rs
index 547d63fc3d4..54c656e3a51 100644
--- a/src/librustc_passes/consts.rs
+++ b/src/librustc_passes/consts.rs
@@ -53,6 +53,23 @@ use rustc::hir::intravisit::{self, Visitor, NestedVisitorMap};
 use std::collections::hash_map::Entry;
 use std::cmp::Ordering;
 
+pub fn check_crate<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>) {
+    for &body_id in &tcx.hir.krate().body_ids {
+        let visitor = &mut CheckCrateVisitor {
+            tcx,
+            tables: &ty::TypeckTables::empty(None),
+            in_fn: false,
+            in_static: false,
+            promotable: false,
+            mut_rvalue_borrows: NodeSet(),
+            param_env: ty::ParamEnv::empty(Reveal::UserFacing),
+            identity_substs: Substs::empty(),
+        };
+        visitor.visit_nested_body(body_id);
+    }
+    tcx.sess.abort_if_errors();
+}
+
 struct CheckCrateVisitor<'a, 'tcx: 'a> {
     tcx: TyCtxt<'a, 'tcx, 'tcx>,
     in_fn: bool,
@@ -513,20 +530,6 @@ fn check_adjustments<'a, 'tcx>(v: &mut CheckCrateVisitor<'a, 'tcx>, e: &hir::Exp
     }
 }
 
-pub fn check_crate<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>) {
-    tcx.hir.krate().visit_all_item_likes(&mut CheckCrateVisitor {
-        tcx,
-        tables: &ty::TypeckTables::empty(None),
-        in_fn: false,
-        in_static: false,
-        promotable: false,
-        mut_rvalue_borrows: NodeSet(),
-        param_env: ty::ParamEnv::empty(Reveal::UserFacing),
-        identity_substs: Substs::empty(),
-    }.as_deep_visitor());
-    tcx.sess.abort_if_errors();
-}
-
 impl<'a, 'gcx, 'tcx> euv::Delegate<'tcx> for CheckCrateVisitor<'a, 'gcx> {
     fn consume(&mut self,
                _consume_id: ast::NodeId,