diff options
| author | bors <bors@rust-lang.org> | 2022-05-04 13:17:35 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-05-04 13:17:35 +0000 |
| commit | 751fd0d735dfb2a8b2d061b496d38fae0c101772 (patch) | |
| tree | 597ac41861c2158cec9c8060383329a03d320467 | |
| parent | a10fe902d2c7afe3d42e9b00627a6983488521d3 (diff) | |
| parent | d53293d52ac69d238b86a8ec8690e446e7ec789a (diff) | |
| download | rust-751fd0d735dfb2a8b2d061b496d38fae0c101772.tar.gz rust-751fd0d735dfb2a8b2d061b496d38fae0c101772.zip | |
Auto merge of #8780 - Alexendoo:init-numbered-field-alias, r=flip1995
Ignore type aliases in `init_numbered_fields` changelog: Ignore type aliases in [`init_numbered_fields`] Fixes #8638
| -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 }; } |
