diff options
| author | Alex Macleod <alex@macleod.io> | 2022-05-03 13:39:38 +0100 |
|---|---|---|
| committer | Alex Macleod <alex@macleod.io> | 2022-05-03 14:28:27 +0100 |
| commit | d53293d52ac69d238b86a8ec8690e446e7ec789a (patch) | |
| tree | 91d5c780efd702f55f6059b2a91eb21683ab2b6e | |
| parent | 95f8b2600240022f0a82e703b35d4bc14a42eb1b (diff) | |
| download | rust-d53293d52ac69d238b86a8ec8690e446e7ec789a.tar.gz rust-d53293d52ac69d238b86a8ec8690e446e7ec789a.zip | |
Ignore type aliases in `init_numbered_fields`
| -rw-r--r-- | clippy_lints/src/init_numbered_fields.rs | 2 | ||||
| -rw-r--r-- | tests/ui/numbered_fields.fixed | 5 | ||||
| -rw-r--r-- | tests/ui/numbered_fields.rs | 5 |
3 files changed, 12 insertions, 0 deletions
diff --git a/clippy_lints/src/init_numbered_fields.rs b/clippy_lints/src/init_numbered_fields.rs index 9284e002409..7e1548531f1 100644 --- a/clippy_lints/src/init_numbered_fields.rs +++ b/clippy_lints/src/init_numbered_fields.rs @@ -1,6 +1,7 @@ use clippy_utils::diagnostics::span_lint_and_sugg; use clippy_utils::source::snippet_with_applicability; use rustc_errors::Applicability; +use rustc_hir::def::{DefKind, Res}; use rustc_hir::{Expr, ExprKind}; use rustc_lint::{LateContext, LateLintPass}; use rustc_session::{declare_lint_pass, declare_tool_lint}; @@ -49,6 +50,7 @@ impl<'tcx> LateLintPass<'tcx> for NumberedFields { && fields .iter() .all(|f| f.ident.as_str().as_bytes().iter().all(u8::is_ascii_digit)) + && !matches!(cx.qpath_res(path, e.hir_id), Res::Def(DefKind::TyAlias, ..)) { let expr_spans = fields .iter() diff --git a/tests/ui/numbered_fields.fixed b/tests/ui/numbered_fields.fixed index 1da97e96879..3710b3e9c81 100644 --- a/tests/ui/numbered_fields.fixed +++ b/tests/ui/numbered_fields.fixed @@ -30,4 +30,9 @@ fn main() { // Ok because it's in macro let _ = tuple_struct_init!(); + + type Alias = TupleStruct; + + // Aliases can't be tuple constructed #8638 + let _ = Alias { 0: 0, 1: 1, 2: 2 }; } diff --git a/tests/ui/numbered_fields.rs b/tests/ui/numbered_fields.rs index 08ec405a560..2af84bc0642 100644 --- a/tests/ui/numbered_fields.rs +++ b/tests/ui/numbered_fields.rs @@ -38,4 +38,9 @@ fn main() { // Ok because it's in macro let _ = tuple_struct_init!(); + + type Alias = TupleStruct; + + // Aliases can't be tuple constructed #8638 + let _ = Alias { 0: 0, 1: 1, 2: 2 }; } |
