diff --git a/crates/ra_analysis/src/imp.rs b/crates/ra_analysis/src/imp.rs index 6c1a4749abc..b24b5cfdc4c 100644 --- a/crates/ra_analysis/src/imp.rs +++ b/crates/ra_analysis/src/imp.rs @@ -438,9 +438,10 @@ impl AnalysisImpl { // Resolve the function's NameRef (NOTE: this isn't entirely accurate). let file_symbols = self.index_resolve(name_ref)?; - for (_, fs) in file_symbols { + for (fn_fiel_id, fs) in file_symbols { if fs.kind == FN_DEF { - if let Some(fn_def) = find_node_at_offset(syntax, fs.node_range.start()) { + let fn_file = self.db.file_syntax(fn_fiel_id); + if let Some(fn_def) = find_node_at_offset(fn_file.syntax(), fs.node_range.start()) { if let Some(descriptor) = FnDescriptor::new(fn_def) { // If we have a calling expression let's find which argument we are on let mut current_parameter = None; diff --git a/crates/ra_lsp_server/src/path_map.rs b/crates/ra_lsp_server/src/path_map.rs index b3d1dc3db8b..d5957d67352 100644 --- a/crates/ra_lsp_server/src/path_map.rs +++ b/crates/ra_lsp_server/src/path_map.rs @@ -1,4 +1,7 @@ -use std::path::{Component, Path, PathBuf}; +use std::{ + fmt, + path::{Component, Path, PathBuf}, +}; use im; use ra_analysis::{FileId, FileResolver}; @@ -10,7 +13,7 @@ pub enum Root { Lib, } -#[derive(Debug, Default, Clone)] +#[derive(Default, Clone)] pub struct PathMap { next_id: u32, path2id: im::HashMap, @@ -18,6 +21,12 @@ pub struct PathMap { id2root: im::HashMap, } +impl fmt::Debug for PathMap { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + f.write_str("PathMap { ... }") + } +} + impl PathMap { pub fn new() -> PathMap { Default::default()