mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-27 12:29:21 +00:00
Map attribute input tokens correctly
This commit is contained in:
parent
cee02673d1
commit
177c70128c
8 changed files with 158 additions and 61 deletions
|
@ -441,7 +441,7 @@ impl<'db> SemanticsImpl<'db> {
|
|||
.entry(file_id)
|
||||
.or_insert_with(|| file_id.expansion_info(self.db.upcast()))
|
||||
.as_ref()?
|
||||
.map_token_down(token.as_ref())?;
|
||||
.map_token_down(self.db.upcast(), None, token.as_ref())?;
|
||||
|
||||
if let Some(parent) = token.value.parent() {
|
||||
self.cache(find_root(&parent), token.file_id);
|
||||
|
@ -450,24 +450,21 @@ impl<'db> SemanticsImpl<'db> {
|
|||
return Some(token);
|
||||
},
|
||||
ast::Item(item) => {
|
||||
match self.with_ctx(|ctx| ctx.item_to_macro_call(token.with_value(item))) {
|
||||
Some(call_id) => {
|
||||
let file_id = call_id.as_file();
|
||||
let token = self
|
||||
.expansion_info_cache
|
||||
.borrow_mut()
|
||||
.entry(file_id)
|
||||
.or_insert_with(|| file_id.expansion_info(self.db.upcast()))
|
||||
.as_ref()?
|
||||
.map_token_down(token.as_ref())?;
|
||||
if let Some(call_id) = self.with_ctx(|ctx| ctx.item_to_macro_call(token.with_value(item.clone()))) {
|
||||
let file_id = call_id.as_file();
|
||||
let token = self
|
||||
.expansion_info_cache
|
||||
.borrow_mut()
|
||||
.entry(file_id)
|
||||
.or_insert_with(|| file_id.expansion_info(self.db.upcast()))
|
||||
.as_ref()?
|
||||
.map_token_down(self.db.upcast(), Some(item), token.as_ref())?;
|
||||
|
||||
if let Some(parent) = token.value.parent() {
|
||||
self.cache(find_root(&parent), token.file_id);
|
||||
}
|
||||
|
||||
return Some(token);
|
||||
if let Some(parent) = token.value.parent() {
|
||||
self.cache(find_root(&parent), token.file_id);
|
||||
}
|
||||
None => {}
|
||||
|
||||
return Some(token);
|
||||
}
|
||||
},
|
||||
_ => {}
|
||||
|
@ -479,7 +476,6 @@ impl<'db> SemanticsImpl<'db> {
|
|||
})
|
||||
.last()
|
||||
.unwrap();
|
||||
|
||||
token.value
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue