mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-03 23:25:03 +00:00
spans always come from real file
This commit is contained in:
parent
394d11b0fa
commit
30093a6d81
57 changed files with 1369 additions and 1224 deletions
|
@ -1,4 +1,4 @@
|
|||
use hir::{HirFileIdExt, Semantics};
|
||||
use hir::{HirFileIdExt, InFile, Semantics};
|
||||
use ide_db::{
|
||||
base_db::FileId, helpers::pick_best_token,
|
||||
syntax_helpers::insert_whitespace_into_node::insert_ws_into, RootDatabase,
|
||||
|
@ -49,7 +49,9 @@ pub(crate) fn expand_macro(db: &RootDatabase, position: FilePosition) -> Option<
|
|||
|
||||
let name = descended.parent_ancestors().filter_map(ast::Path::cast).last()?.to_string();
|
||||
// up map out of the #[derive] expansion
|
||||
let token = hir::InFile::new(hir_file, descended).upmap(db)?.value;
|
||||
let InFile { file_id, value: tokens } =
|
||||
hir::InFile::new(hir_file, descended).upmap_once(db)?;
|
||||
let token = sema.parse_or_expand(file_id).covering_element(tokens[0]).into_token()?;
|
||||
let attr = token.parent_ancestors().find_map(ast::Attr::cast)?;
|
||||
let expansions = sema.expand_derive_macro(&attr)?;
|
||||
let idx = attr
|
||||
|
@ -338,8 +340,8 @@ fn main() {
|
|||
expect![[r#"
|
||||
match_ast!
|
||||
{
|
||||
if let Some(it) = ast::TraitDef::cast(container.clone()){}
|
||||
else if let Some(it) = ast::ImplDef::cast(container.clone()){}
|
||||
if let Some(it) = ast::TraitDef::cast((container).clone()){}
|
||||
else if let Some(it) = ast::ImplDef::cast((container).clone()){}
|
||||
else {
|
||||
{
|
||||
continue
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue