Auto merge of #30487 - jonas-schievink:more-attrs-lint-fixes, r=alexcrichton
`LateContext` already does this, looks like this was just forgotten in #29850. Found while investigating #30326 (but doesn't fix it)
This commit is contained in:
commit
b694d1b1d1
@ -735,7 +735,7 @@ fn level_stack(&mut self) -> &mut Vec<(LintId, LevelSource)> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn enter_attrs(&mut self, attrs: &[ast::Attribute]) {
|
fn enter_attrs(&mut self, attrs: &[ast::Attribute]) {
|
||||||
debug!("early context: exit_attrs({:?})", attrs);
|
debug!("early context: enter_attrs({:?})", attrs);
|
||||||
run_lints!(self, enter_lint_attrs, early_passes, attrs);
|
run_lints!(self, enter_lint_attrs, early_passes, attrs);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -934,8 +934,10 @@ fn visit_pat(&mut self, p: &ast::Pat) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn visit_expr(&mut self, e: &ast::Expr) {
|
fn visit_expr(&mut self, e: &ast::Expr) {
|
||||||
run_lints!(self, check_expr, early_passes, e);
|
self.with_lint_attrs(e.attrs.as_attr_slice(), |cx| {
|
||||||
ast_visit::walk_expr(self, e);
|
run_lints!(cx, check_expr, early_passes, e);
|
||||||
|
ast_visit::walk_expr(cx, e);
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fn visit_stmt(&mut self, s: &ast::Stmt) {
|
fn visit_stmt(&mut self, s: &ast::Stmt) {
|
||||||
@ -990,8 +992,10 @@ fn visit_mod(&mut self, m: &ast::Mod, s: Span, n: ast::NodeId) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn visit_local(&mut self, l: &ast::Local) {
|
fn visit_local(&mut self, l: &ast::Local) {
|
||||||
run_lints!(self, check_local, early_passes, l);
|
self.with_lint_attrs(l.attrs.as_attr_slice(), |cx| {
|
||||||
ast_visit::walk_local(self, l);
|
run_lints!(cx, check_local, early_passes, l);
|
||||||
|
ast_visit::walk_local(cx, l);
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fn visit_block(&mut self, b: &ast::Block) {
|
fn visit_block(&mut self, b: &ast::Block) {
|
||||||
|
22
src/test/run-pass/lint-expr-stmt-attrs-for-early-lints.rs
Normal file
22
src/test/run-pass/lint-expr-stmt-attrs-for-early-lints.rs
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
|
||||||
|
// file at the top-level directory of this distribution and at
|
||||||
|
// http://rust-lang.org/COPYRIGHT.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||||
|
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||||
|
// option. This file may not be copied, modified, or distributed
|
||||||
|
// except according to those terms.
|
||||||
|
|
||||||
|
#![feature(stmt_expr_attributes)]
|
||||||
|
#![deny(unused_parens)]
|
||||||
|
|
||||||
|
// Tests that lint attributes on statements/expressions are
|
||||||
|
// correctly applied to non-builtin early (AST) lints
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
#[allow(unused_parens)]
|
||||||
|
{
|
||||||
|
let _ = (9);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user