diff --git a/crates/ra_hir/src/nameres/collector.rs b/crates/ra_hir/src/nameres/collector.rs index 1446c49a02..a6b9b41d02 100644 --- a/crates/ra_hir/src/nameres/collector.rs +++ b/crates/ra_hir/src/nameres/collector.rs @@ -114,7 +114,7 @@ where _ => i += 1, } if i == 1000 { - log::error!("diverging name resolution"); + log::error!("name resolution is stuck"); break; } } @@ -444,36 +444,6 @@ where return false; } - if resolved_res.reached_fixedpoint != ReachedFixedPoint::Yes { - let crate_name = &path.segments[0].name; - - // FIXME: - // $crate are not handled in resolver right now - if crate_name.to_string() == "$crate" { - return true; - } - - // FIXME: - // Currently `#[cfg(test)]` are ignored and cargo-metadata do not insert - // dev-dependencies of dependencies. For example, - // if we depend on parking lot, and parking lot has a dev-dependency on lazy_static. - // Then `lazy_static` wil not included in `CrateGraph` - // We can fix that by proper handling `cfg(test)`. - // - // So right now we set the fixpoint to No only if its crate is in CrateGraph - // See issue #1282 for details - let krate = - match self.def_map.resolve_name_in_extern_prelude(crate_name).take_types() { - Some(ModuleDef::Module(m)) => m.krate(self.db), - _ => return true, - }; - if krate.is_none() { - return true; - } - - res = resolved_res.reached_fixedpoint; - } - true });