Add macro check to used_underscore

This commit is contained in:
Manish Goregaokar 2015-12-20 04:45:31 +05:30
parent a65a7770b3
commit 4a32445aa7
3 changed files with 7 additions and 5 deletions

View file

@ -1,6 +1,6 @@
[package] [package]
name = "clippy" name = "clippy"
version = "0.0.31" version = "0.0.32"
authors = [ authors = [
"Manish Goregaokar <manishsmail@gmail.com>", "Manish Goregaokar <manishsmail@gmail.com>",
"Andre Bogus <bogusandre@gmail.com>", "Andre Bogus <bogusandre@gmail.com>",

View file

@ -10,9 +10,8 @@ use rustc::middle::const_eval::ConstVal::Float;
use rustc::middle::const_eval::eval_const_expr_partial; use rustc::middle::const_eval::eval_const_expr_partial;
use rustc::middle::const_eval::EvalHint::ExprTypeChecked; use rustc::middle::const_eval::EvalHint::ExprTypeChecked;
use utils::{get_item_name, match_path, snippet, get_parent_expr, span_lint, walk_ptrs_ty, use utils::{get_item_name, match_path, snippet, get_parent_expr, span_lint};
is_integer_literal}; use utils::{span_help_and_lint, in_external_macro, walk_ptrs_ty, is_integer_literal};
use utils::span_help_and_lint;
/// **What it does:** This lint checks for function arguments and let bindings denoted as `ref`. It is `Warn` by default. /// **What it does:** This lint checks for function arguments and let bindings denoted as `ref`. It is `Warn` by default.
/// ///
@ -363,6 +362,9 @@ impl LateLintPass for UsedUnderscoreBinding {
}, },
_ => false _ => false
}; };
if in_external_macro(cx, expr.span) {
return
}
if needs_lint { if needs_lint {
cx.span_lint(USED_UNDERSCORE_BINDING, expr.span, cx.span_lint(USED_UNDERSCORE_BINDING, expr.span,
"used binding which is prefixed with an underscore. A leading underscore \ "used binding which is prefixed with an underscore. A leading underscore \

View file

@ -9,7 +9,7 @@ fn prefix_underscore(_foo: u32) -> u32 {
/// Test that we lint even if the use is within a macro expansion /// Test that we lint even if the use is within a macro expansion
fn in_macro(_foo: u32) { fn in_macro(_foo: u32) {
println!("{}", _foo); //~ ERROR used binding which is prefixed with an underscore println!("{}", _foo); // doesn't warn, nut should #507
} }
// Struct for testing use of fields prefixed with an underscore // Struct for testing use of fields prefixed with an underscore