mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-27 20:42:04 +00:00
Make more precise range macro upmapping
This commit is contained in:
parent
5fd3688018
commit
45ff51ba22
8 changed files with 81 additions and 81 deletions
|
|
@ -146,9 +146,10 @@ pub(crate) fn hover(
|
|||
if let Some(res) = render::keyword(sema, config, &original_token) {
|
||||
return Some(RangeInfo::new(original_token.text_range(), res));
|
||||
}
|
||||
if let res @ Some(_) =
|
||||
descended.iter().find_map(|token| hover_type_fallback(sema, config, token))
|
||||
{
|
||||
let res = descended
|
||||
.iter()
|
||||
.find_map(|token| hover_type_fallback(sema, config, token, &original_token));
|
||||
if let res @ Some(_) = res {
|
||||
return res;
|
||||
}
|
||||
}
|
||||
|
|
@ -230,6 +231,7 @@ fn hover_type_fallback(
|
|||
sema: &Semantics<RootDatabase>,
|
||||
config: &HoverConfig,
|
||||
token: &SyntaxToken,
|
||||
original_token: &SyntaxToken,
|
||||
) -> Option<RangeInfo<HoverResult>> {
|
||||
let node = token
|
||||
.ancestors()
|
||||
|
|
@ -248,7 +250,10 @@ fn hover_type_fallback(
|
|||
};
|
||||
|
||||
let res = render::type_info(sema, config, &expr_or_pat)?;
|
||||
let range = sema.original_range(&node).range;
|
||||
let range = sema
|
||||
.original_range_opt(&node)
|
||||
.map(|frange| frange.range)
|
||||
.unwrap_or_else(|| original_token.text_range());
|
||||
Some(RangeInfo::new(range, res))
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue