Skip to content

Commit cfd00f9

Browse files
committed
Remove ImplicitObjectLifetimeDefault case from suggestion.
It has no effect on anything in the test suite. This means it can also be rewritten as a neater pairwise `match`.
1 parent c6d8d65 commit cfd00f9

File tree

1 file changed

+10
-15
lines changed

1 file changed

+10
-15
lines changed

compiler/rustc_hir/src/hir.rs

+10-15
Original file line numberDiff line numberDiff line change
@@ -151,23 +151,18 @@ impl Lifetime {
151151
pub fn suggestion(&self, new_lifetime: &str) -> (Span, String) {
152152
debug_assert!(new_lifetime.starts_with('\''));
153153

154-
if self.ident.name == kw::Empty {
155-
if self.ident.span.is_empty() {
156-
// The user wrote `Path<T>`, and omitted the `'_,`.
157-
(self.ident.span, format!("{new_lifetime}, "))
158-
} else {
159-
// The user wrote `Path` and omitted the `<'_>`.
160-
(self.ident.span.shrink_to_hi(), format!("<{new_lifetime}>"))
161-
}
162-
} else if self.res == LifetimeName::ImplicitObjectLifetimeDefault {
163-
// The user wrote `dyn Trait` and omitted the `+ '_`.
164-
(self.ident.span, format!("+ {new_lifetime}"))
165-
} else if self.ident.span.is_empty() {
154+
match (self.ident.name.is_empty(), self.ident.span.is_empty()) {
155+
// The user wrote `Path<T>`, and omitted the `'_,`.
156+
(true, true) => (self.ident.span, format!("{new_lifetime}, ")),
157+
158+
// The user wrote `Path` and omitted the `<'_>`.
159+
(true, false) => (self.ident.span.shrink_to_hi(), format!("<{new_lifetime}>")),
160+
166161
// The user wrote `&type` or `&mut type`.
167-
(self.ident.span, format!("{new_lifetime} "))
168-
} else {
162+
(false, true) => (self.ident.span, format!("{new_lifetime} ")),
163+
169164
// The user wrote `'a` or `'_`.
170-
(self.ident.span, format!("{new_lifetime}"))
165+
(false, false) => (self.ident.span, format!("{new_lifetime}")),
171166
}
172167
}
173168
}

0 commit comments

Comments
 (0)