diff options
author | Aleksey Kladov <[email protected]> | 2019-09-17 19:04:15 +0100 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2019-09-17 19:04:15 +0100 |
commit | 2890a1450ad4aa54362c6783c790422db193108c (patch) | |
tree | 40d561575c5375543270029ffbf240c9eacc710b /crates/ra_hir/src | |
parent | 9ad2cea25113befd4988785b98f92a6260969dfe (diff) |
remove confusing code
I must confess I don't really understand what this code is trying to
do, but it definitely misreports changes during fixedpoint iteration,
and no tests fail if I remove it, so...
Diffstat (limited to 'crates/ra_hir/src')
-rw-r--r-- | crates/ra_hir/src/nameres/collector.rs | 32 |
1 files changed, 1 insertions, 31 deletions
diff --git a/crates/ra_hir/src/nameres/collector.rs b/crates/ra_hir/src/nameres/collector.rs index 1446c49a0..a6b9b41d0 100644 --- a/crates/ra_hir/src/nameres/collector.rs +++ b/crates/ra_hir/src/nameres/collector.rs | |||
@@ -114,7 +114,7 @@ where | |||
114 | _ => i += 1, | 114 | _ => i += 1, |
115 | } | 115 | } |
116 | if i == 1000 { | 116 | if i == 1000 { |
117 | log::error!("diverging name resolution"); | 117 | log::error!("name resolution is stuck"); |
118 | break; | 118 | break; |
119 | } | 119 | } |
120 | } | 120 | } |
@@ -444,36 +444,6 @@ where | |||
444 | return false; | 444 | return false; |
445 | } | 445 | } |
446 | 446 | ||
447 | if resolved_res.reached_fixedpoint != ReachedFixedPoint::Yes { | ||
448 | let crate_name = &path.segments[0].name; | ||
449 | |||
450 | // FIXME: | ||
451 | // $crate are not handled in resolver right now | ||
452 | if crate_name.to_string() == "$crate" { | ||
453 | return true; | ||
454 | } | ||
455 | |||
456 | // FIXME: | ||
457 | // Currently `#[cfg(test)]` are ignored and cargo-metadata do not insert | ||
458 | // dev-dependencies of dependencies. For example, | ||
459 | // if we depend on parking lot, and parking lot has a dev-dependency on lazy_static. | ||
460 | // Then `lazy_static` wil not included in `CrateGraph` | ||
461 | // We can fix that by proper handling `cfg(test)`. | ||
462 | // | ||
463 | // So right now we set the fixpoint to No only if its crate is in CrateGraph | ||
464 | // See issue #1282 for details | ||
465 | let krate = | ||
466 | match self.def_map.resolve_name_in_extern_prelude(crate_name).take_types() { | ||
467 | Some(ModuleDef::Module(m)) => m.krate(self.db), | ||
468 | _ => return true, | ||
469 | }; | ||
470 | if krate.is_none() { | ||
471 | return true; | ||
472 | } | ||
473 | |||
474 | res = resolved_res.reached_fixedpoint; | ||
475 | } | ||
476 | |||
477 | true | 447 | true |
478 | }); | 448 | }); |
479 | 449 | ||