Skip to content

Commit b58b491

Browse files
committed
inconsistent_struct_constructor: Check HIR tree first.
1 parent 3869e93 commit b58b491

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

clippy_lints/src/inconsistent_struct_constructor.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,13 +65,13 @@ declare_lint_pass!(InconsistentStructConstructor => [INCONSISTENT_STRUCT_CONSTRU
6565

6666
impl<'tcx> LateLintPass<'tcx> for InconsistentStructConstructor {
6767
fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx hir::Expr<'_>) {
68-
if !expr.span.from_expansion()
69-
&& let ExprKind::Struct(qpath, fields, base) = expr.kind
68+
if let ExprKind::Struct(qpath, fields, base) = expr.kind
69+
&& fields.iter().all(|f| f.is_shorthand)
70+
&& !expr.span.from_expansion()
7071
&& let ty = cx.typeck_results().expr_ty(expr)
7172
&& let Some(adt_def) = ty.ty_adt_def()
7273
&& adt_def.is_struct()
7374
&& let Some(variant) = adt_def.variants().iter().next()
74-
&& fields.iter().all(|f| f.is_shorthand)
7575
{
7676
let mut def_order_map = FxHashMap::default();
7777
for (idx, field) in variant.fields.iter().enumerate() {

0 commit comments

Comments
 (0)