Skip to content

Commit 5acb1d4

Browse files
authored
Fix empty_with_brackets span handling (#15311)
This is blocking #14724 changelog: none
2 parents ae8ff77 + 1df3b96 commit 5acb1d4

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

clippy_lints/src/empty_with_brackets.rs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,10 @@ impl_lint_pass!(EmptyWithBrackets => [EMPTY_STRUCTS_WITH_BRACKETS, EMPTY_ENUM_VA
9292

9393
impl LateLintPass<'_> for EmptyWithBrackets {
9494
fn check_item(&mut self, cx: &LateContext<'_>, item: &Item<'_>) {
95+
// FIXME: handle `struct $name {}`
9596
if let ItemKind::Struct(ident, _, var_data) = &item.kind
9697
&& !item.span.from_expansion()
98+
&& !ident.span.from_expansion()
9799
&& has_brackets(var_data)
98100
&& let span_after_ident = item.span.with_lo(ident.span.hi())
99101
&& has_no_fields(cx, var_data, span_after_ident)
@@ -116,10 +118,12 @@ impl LateLintPass<'_> for EmptyWithBrackets {
116118
}
117119

118120
fn check_variant(&mut self, cx: &LateContext<'_>, variant: &Variant<'_>) {
119-
// the span of the parentheses/braces
120-
let span_after_ident = variant.span.with_lo(variant.ident.span.hi());
121-
122-
if has_no_fields(cx, &variant.data, span_after_ident) {
121+
// FIXME: handle `$name {}`
122+
if !variant.span.from_expansion()
123+
&& !variant.ident.span.from_expansion()
124+
&& let span_after_ident = variant.span.with_lo(variant.ident.span.hi())
125+
&& has_no_fields(cx, &variant.data, span_after_ident)
126+
{
123127
match variant.data {
124128
VariantData::Struct { .. } => {
125129
// Empty struct variants can be linted immediately

0 commit comments

Comments
 (0)