diff --git a/crates/hir/src/semantics.rs b/crates/hir/src/semantics.rs index f3d8550a87..1070a26c26 100644 --- a/crates/hir/src/semantics.rs +++ b/crates/hir/src/semantics.rs @@ -448,8 +448,8 @@ impl<'db> SemanticsImpl<'db> { } fn resolve_derive_macro(&self, attr: &ast::Attr) -> Option> { - let macro_call_ids = self.derive_macro_calls(attr)?; - let res = macro_call_ids + let res = self + .derive_macro_calls(attr)? .iter() .map(|&call| { let loc: MacroCallLoc = self.db.lookup_intern_macro_call(call); @@ -460,9 +460,8 @@ impl<'db> SemanticsImpl<'db> { } fn expand_derive_macro(&self, attr: &ast::Attr) -> Option> { - let macro_call_ids = self.derive_macro_calls(attr)?; - - let expansions: Vec<_> = macro_call_ids + let res: Vec<_> = self + .derive_macro_calls(attr)? .iter() .map(|call| call.as_file()) .flat_map(|file_id| { @@ -471,12 +470,7 @@ impl<'db> SemanticsImpl<'db> { Some(node) }) .collect(); - - if expansions.is_empty() { - None - } else { - Some(expansions) - } + Some(res) } fn derive_macro_calls(&self, attr: &ast::Attr) -> Option> {