about summary refs log tree commit diff
diff options
context:
space:
mode:
authorllogiq <bogusandre@gmail.com>2016-02-11 05:58:09 +0100
committerllogiq <bogusandre@gmail.com>2016-02-11 05:59:26 +0100
commita8fa8410cdda074f37dd948dc48efc20137d4d62 (patch)
tree127d4278713eadfa78ebb241a235d0a333110b6b
parent3f4227af139f1da30710a9f07dc28e5a3ccc6fe5 (diff)
downloadrust-a8fa8410cdda074f37dd948dc48efc20137d4d62.tar.gz
rust-a8fa8410cdda074f37dd948dc48efc20137d4d62.zip
Add _post methods for blocks and crates
-rw-r--r--src/librustc/lint/context.rs6
-rw-r--r--src/librustc/lint/mod.rs4
2 files changed, 10 insertions, 0 deletions
diff --git a/src/librustc/lint/context.rs b/src/librustc/lint/context.rs
index 55782041be6..a9acbeb46c4 100644
--- a/src/librustc/lint/context.rs
+++ b/src/librustc/lint/context.rs
@@ -846,6 +846,7 @@ impl<'a, 'tcx, 'v> hir_visit::Visitor<'v> for LateContext<'a, 'tcx> {
     fn visit_block(&mut self, b: &hir::Block) {
         run_lints!(self, check_block, late_passes, b);
         hir_visit::walk_block(self, b);
+        run_lints!(self, check_block_post, late_passes, b);
     }
 
     fn visit_arm(&mut self, a: &hir::Arm) {
@@ -1001,6 +1002,7 @@ impl<'a, 'v> ast_visit::Visitor<'v> for EarlyContext<'a> {
     fn visit_block(&mut self, b: &ast::Block) {
         run_lints!(self, check_block, early_passes, b);
         ast_visit::walk_block(self, b);
+        run_lints!(self, check_block_post, early_passes, b);
     }
 
     fn visit_arm(&mut self, a: &ast::Arm) {
@@ -1253,6 +1255,8 @@ pub fn check_crate(tcx: &ty::ctxt, access_levels: &AccessLevels) {
         run_lints!(cx, check_crate, late_passes, krate);
 
         hir_visit::walk_crate(cx, krate);
+
+        run_lints!(cx, check_crate_post, late_passes, krate);
     });
 
     // If we missed any lints added to the session, then there's a bug somewhere
@@ -1284,6 +1288,8 @@ pub fn check_ast_crate(sess: &Session, krate: &ast::Crate) {
         run_lints!(cx, check_crate, early_passes, krate);
 
         ast_visit::walk_crate(cx, krate);
+
+        run_lints!(cx, check_crate_post, early_passes, krate);
     });
 
     // Put the lint store back in the session.
diff --git a/src/librustc/lint/mod.rs b/src/librustc/lint/mod.rs
index 6061525ef39..612b23ff98e 100644
--- a/src/librustc/lint/mod.rs
+++ b/src/librustc/lint/mod.rs
@@ -132,11 +132,13 @@ pub trait LintPass {
 pub trait LateLintPass: LintPass {
     fn check_name(&mut self, _: &LateContext, _: Span, _: ast::Name) { }
     fn check_crate(&mut self, _: &LateContext, _: &hir::Crate) { }
+    fn check_crate_post(&mut self, _: &LateContext, _: &hir::Crate) { }
     fn check_mod(&mut self, _: &LateContext, _: &hir::Mod, _: Span, _: ast::NodeId) { }
     fn check_foreign_item(&mut self, _: &LateContext, _: &hir::ForeignItem) { }
     fn check_item(&mut self, _: &LateContext, _: &hir::Item) { }
     fn check_local(&mut self, _: &LateContext, _: &hir::Local) { }
     fn check_block(&mut self, _: &LateContext, _: &hir::Block) { }
+    fn check_block_post(&mut self, _: &LateContext, _: &hir::Block) { }
     fn check_stmt(&mut self, _: &LateContext, _: &hir::Stmt) { }
     fn check_arm(&mut self, _: &LateContext, _: &hir::Arm) { }
     fn check_pat(&mut self, _: &LateContext, _: &hir::Pat) { }
@@ -174,11 +176,13 @@ pub trait LateLintPass: LintPass {
 pub trait EarlyLintPass: LintPass {
     fn check_ident(&mut self, _: &EarlyContext, _: Span, _: ast::Ident) { }
     fn check_crate(&mut self, _: &EarlyContext, _: &ast::Crate) { }
+    fn check_crate_post(&mut self, _: &EarlyContext, _: &ast::Crate) { }
     fn check_mod(&mut self, _: &EarlyContext, _: &ast::Mod, _: Span, _: ast::NodeId) { }
     fn check_foreign_item(&mut self, _: &EarlyContext, _: &ast::ForeignItem) { }
     fn check_item(&mut self, _: &EarlyContext, _: &ast::Item) { }
     fn check_local(&mut self, _: &EarlyContext, _: &ast::Local) { }
     fn check_block(&mut self, _: &EarlyContext, _: &ast::Block) { }
+    fn check_block_post(&mut self, _: &EarlyContext, _: &ast::Block) { }
     fn check_stmt(&mut self, _: &EarlyContext, _: &ast::Stmt) { }
     fn check_arm(&mut self, _: &EarlyContext, _: &ast::Arm) { }
     fn check_pat(&mut self, _: &EarlyContext, _: &ast::Pat) { }