mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-11-27 07:00:55 +00:00
Ignore all macros in redundant_field_names
This commit is contained in:
parent
6776e5123a
commit
ed769a3bc4
4 changed files with 29 additions and 20 deletions
|
@ -49,6 +49,7 @@ lazy_static = "1.0"
|
|||
serde_derive = "1.0"
|
||||
clippy-mini-macro-test = { version = "0.2", path = "mini-macro" }
|
||||
serde = "1.0"
|
||||
derive-new = "0.5"
|
||||
|
||||
[features]
|
||||
debugging = []
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
use rustc::lint::*;
|
||||
use rustc::hir::*;
|
||||
use utils::{is_range_expression, match_var, span_lint_and_sugg};
|
||||
use utils::{in_macro, is_range_expression, match_var, span_lint_and_sugg};
|
||||
|
||||
/// **What it does:** Checks for fields in struct literals where shorthands
|
||||
/// could be used.
|
||||
|
@ -39,7 +39,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for RedundantFieldNames {
|
|||
// Do not care about range expressions.
|
||||
// They could have redundant field name when desugared to structs.
|
||||
// e.g. `start..end` is desugared to `Range { start: start, end: end }`
|
||||
if is_range_expression(expr.span) {
|
||||
if in_macro(expr.span) || is_range_expression(expr.span) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,9 @@
|
|||
#![allow(unused_variables)]
|
||||
#![feature(inclusive_range, inclusive_range_syntax)]
|
||||
|
||||
#[macro_use]
|
||||
extern crate derive_new;
|
||||
|
||||
use std::ops::{Range, RangeFrom, RangeTo, RangeInclusive, RangeToInclusive};
|
||||
|
||||
mod foo {
|
||||
|
@ -16,6 +19,11 @@ struct Person {
|
|||
foo: u8,
|
||||
}
|
||||
|
||||
#[derive(new)]
|
||||
pub struct S {
|
||||
v: String,
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let gender: u8 = 42;
|
||||
let age = 0;
|
||||
|
|
|
@ -1,57 +1,57 @@
|
|||
error: redundant field names in struct initialization
|
||||
--> $DIR/redundant_field_names.rs:26:9
|
||||
--> $DIR/redundant_field_names.rs:34:9
|
||||
|
|
||||
26 | gender: gender,
|
||||
34 | gender: gender,
|
||||
| ^^^^^^^^^^^^^^ help: replace it with: `gender`
|
||||
|
|
||||
= note: `-D redundant-field-names` implied by `-D warnings`
|
||||
|
||||
error: redundant field names in struct initialization
|
||||
--> $DIR/redundant_field_names.rs:27:9
|
||||
--> $DIR/redundant_field_names.rs:35:9
|
||||
|
|
||||
27 | age: age,
|
||||
35 | age: age,
|
||||
| ^^^^^^^^ help: replace it with: `age`
|
||||
|
||||
error: redundant field names in struct initialization
|
||||
--> $DIR/redundant_field_names.rs:45:25
|
||||
--> $DIR/redundant_field_names.rs:53:25
|
||||
|
|
||||
45 | let _ = RangeFrom { start: start };
|
||||
53 | let _ = RangeFrom { start: start };
|
||||
| ^^^^^^^^^^^^ help: replace it with: `start`
|
||||
|
||||
error: redundant field names in struct initialization
|
||||
--> $DIR/redundant_field_names.rs:46:23
|
||||
--> $DIR/redundant_field_names.rs:54:23
|
||||
|
|
||||
46 | let _ = RangeTo { end: end };
|
||||
54 | let _ = RangeTo { end: end };
|
||||
| ^^^^^^^^ help: replace it with: `end`
|
||||
|
||||
error: redundant field names in struct initialization
|
||||
--> $DIR/redundant_field_names.rs:47:21
|
||||
--> $DIR/redundant_field_names.rs:55:21
|
||||
|
|
||||
47 | let _ = Range { start: start, end: end };
|
||||
55 | let _ = Range { start: start, end: end };
|
||||
| ^^^^^^^^^^^^ help: replace it with: `start`
|
||||
|
||||
error: redundant field names in struct initialization
|
||||
--> $DIR/redundant_field_names.rs:47:35
|
||||
--> $DIR/redundant_field_names.rs:55:35
|
||||
|
|
||||
47 | let _ = Range { start: start, end: end };
|
||||
55 | let _ = Range { start: start, end: end };
|
||||
| ^^^^^^^^ help: replace it with: `end`
|
||||
|
||||
error: redundant field names in struct initialization
|
||||
--> $DIR/redundant_field_names.rs:48:30
|
||||
--> $DIR/redundant_field_names.rs:56:30
|
||||
|
|
||||
48 | let _ = RangeInclusive { start: start, end: end };
|
||||
56 | let _ = RangeInclusive { start: start, end: end };
|
||||
| ^^^^^^^^^^^^ help: replace it with: `start`
|
||||
|
||||
error: redundant field names in struct initialization
|
||||
--> $DIR/redundant_field_names.rs:48:44
|
||||
--> $DIR/redundant_field_names.rs:56:44
|
||||
|
|
||||
48 | let _ = RangeInclusive { start: start, end: end };
|
||||
56 | let _ = RangeInclusive { start: start, end: end };
|
||||
| ^^^^^^^^ help: replace it with: `end`
|
||||
|
||||
error: redundant field names in struct initialization
|
||||
--> $DIR/redundant_field_names.rs:49:32
|
||||
--> $DIR/redundant_field_names.rs:57:32
|
||||
|
|
||||
49 | let _ = RangeToInclusive { end: end };
|
||||
57 | let _ = RangeToInclusive { end: end };
|
||||
| ^^^^^^^^ help: replace it with: `end`
|
||||
|
||||
error: aborting due to 9 previous errors
|
||||
|
|
Loading…
Reference in a new issue