Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir/src/source_analyzer.rs')
| -rw-r--r-- | crates/hir/src/source_analyzer.rs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/crates/hir/src/source_analyzer.rs b/crates/hir/src/source_analyzer.rs index 0ae30604a8..d624d37577 100644 --- a/crates/hir/src/source_analyzer.rs +++ b/crates/hir/src/source_analyzer.rs @@ -67,7 +67,10 @@ impl SourceAnalyzer { let scopes = db.expr_scopes(def); let scope = match offset { None => scope_for(&scopes, &source_map, node), - Some(offset) => scope_for_offset(db, &scopes, &source_map, node.with_value(offset)), + Some(offset) => { + let file_id = node.file_id.original_file(db.upcast()); + scope_for_offset(db, &scopes, &source_map, InFile::new(file_id.into(), offset)) + } }; let resolver = resolver_for_scope(db.upcast(), def, scope); SourceAnalyzer { @@ -88,7 +91,10 @@ impl SourceAnalyzer { let scopes = db.expr_scopes(def); let scope = match offset { None => scope_for(&scopes, &source_map, node), - Some(offset) => scope_for_offset(db, &scopes, &source_map, node.with_value(offset)), + Some(offset) => { + let file_id = node.file_id.original_file(db.upcast()); + scope_for_offset(db, &scopes, &source_map, InFile::new(file_id.into(), offset)) + } }; let resolver = resolver_for_scope(db.upcast(), def, scope); SourceAnalyzer { resolver, def: Some((def, body, source_map)), infer: None, file_id } |