aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/nameres.rs
diff options
context:
space:
mode:
authorFlorian Diebold <[email protected]>2019-02-23 11:32:25 +0000
committerFlorian Diebold <[email protected]>2019-02-23 11:37:29 +0000
commit6a04d1f292f14744c6b747fa39f1d1c1c20db0ee (patch)
tree5efa93cfd5c474d70b850ab24cd9b1e90ff79bd0 /crates/ra_hir/src/nameres.rs
parent3d8a0982a12f3aa4b8c193a841f864b15c3cb66e (diff)
Fix resolution of associated method calls across crates
I think it'll be better to make the path resolution the number of unresolved segments, not the first unresolved index; then this error could simply not have happened. But I'll do that separately.
Diffstat (limited to 'crates/ra_hir/src/nameres.rs')
-rw-r--r--crates/ra_hir/src/nameres.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/crates/ra_hir/src/nameres.rs b/crates/ra_hir/src/nameres.rs
index 8067b8415..ac390c5db 100644
--- a/crates/ra_hir/src/nameres.rs
+++ b/crates/ra_hir/src/nameres.rs
@@ -642,7 +642,11 @@ impl ItemMap {
642 log::debug!("resolving {:?} in other crate", path); 642 log::debug!("resolving {:?} in other crate", path);
643 let item_map = db.item_map(module.krate); 643 let item_map = db.item_map(module.krate);
644 let (def, s) = item_map.resolve_path(db, *module, &path); 644 let (def, s) = item_map.resolve_path(db, *module, &path);
645 return ResolvePathResult::with(def, ReachedFixedPoint::Yes, s); 645 return ResolvePathResult::with(
646 def,
647 ReachedFixedPoint::Yes,
648 s.map(|s| s + i),
649 );
646 } 650 }
647 651
648 match self[module.module_id].items.get(&segment.name) { 652 match self[module.module_id].items.get(&segment.name) {