Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-expand/src/db.rs')
| -rw-r--r-- | crates/hir-expand/src/db.rs | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/crates/hir-expand/src/db.rs b/crates/hir-expand/src/db.rs index ed04582cb0..2f8c0951b1 100644 --- a/crates/hir-expand/src/db.rs +++ b/crates/hir-expand/src/db.rs @@ -218,6 +218,9 @@ pub fn real_span_map(db: &dyn ExpandDatabase, file_id: FileId) -> Arc<RealSpanMa let mut pairs = vec![(syntax::TextSize::new(0), span::ROOT_ERASED_FILE_AST_ID)]; let ast_id_map = db.ast_id_map(file_id.into()); let tree = db.parse(file_id).tree(); + // FIXME: Descend into modules and other item containing items that are not annotated with attributes + // and allocate pairs for those as well. This gives us finer grained span anchors resulting in + // better incrementality pairs.extend( tree.items() .map(|item| (item.syntax().text_range().start(), ast_id_map.ast_id(&item).erase())), @@ -630,8 +633,8 @@ fn decl_macro_expander( map.as_ref(), map.span_for_range(macro_rules.macro_rules_token().unwrap().text_range()), ); - let mac = mbe::DeclarativeMacro::parse_macro_rules(&tt, is_2021, new_meta_vars); - mac + + mbe::DeclarativeMacro::parse_macro_rules(&tt, is_2021, new_meta_vars) } None => mbe::DeclarativeMacro::from_err( mbe::ParseError::Expected("expected a token tree".into()), @@ -648,8 +651,8 @@ fn decl_macro_expander( map.as_ref(), map.span_for_range(macro_def.macro_token().unwrap().text_range()), ); - let mac = mbe::DeclarativeMacro::parse_macro2(&tt, is_2021, new_meta_vars); - mac + + mbe::DeclarativeMacro::parse_macro2(&tt, is_2021, new_meta_vars) } None => mbe::DeclarativeMacro::from_err( mbe::ParseError::Expected("expected a token tree".into()), @@ -719,7 +722,7 @@ fn macro_expand( db.decl_macro_expander(loc.def.krate, id).expand(db, arg.clone(), macro_call_id) } MacroDefKind::BuiltIn(it, _) => { - it.expand(db, macro_call_id, &arg).map_err(Into::into) + it.expand(db, macro_call_id, arg).map_err(Into::into) } // This might look a bit odd, but we do not expand the inputs to eager macros here. // Eager macros inputs are expanded, well, eagerly when we collect the macro calls. @@ -743,10 +746,10 @@ fn macro_expand( }; } MacroDefKind::BuiltInEager(it, _) => { - it.expand(db, macro_call_id, &arg).map_err(Into::into) + it.expand(db, macro_call_id, arg).map_err(Into::into) } MacroDefKind::BuiltInAttr(it, _) => { - let mut res = it.expand(db, macro_call_id, &arg); + let mut res = it.expand(db, macro_call_id, arg); fixup::reverse_fixups(&mut res.value, &undo_info); res } |