diff --git a/crates/mun_hir/src/name_resolution/path_resolution.rs b/crates/mun_hir/src/name_resolution/path_resolution.rs index b7bd51a95..c3031c42f 100644 --- a/crates/mun_hir/src/name_resolution/path_resolution.rs +++ b/crates/mun_hir/src/name_resolution/path_resolution.rs @@ -110,11 +110,7 @@ impl PackageDefs { } .into(), Visibility::Public, - )), - PathKind::Abs => { - // TODO: How do we get here? - return ResolvePathResult::empty(ReachedFixedPoint::No); // extern crate declarations can add to the extern prelude - } + )) }; for (i, segment) in segments { diff --git a/crates/mun_hir/src/path.rs b/crates/mun_hir/src/path.rs index e01ed3df6..c7f79ed60 100644 --- a/crates/mun_hir/src/path.rs +++ b/crates/mun_hir/src/path.rs @@ -13,7 +13,6 @@ pub enum PathKind { // `self` is Super(0) Super(u8), Package, - Abs, } impl Path { @@ -24,10 +23,6 @@ impl Path { loop { let segment = path.segment()?; - if segment.has_colon_colon() { - kind = PathKind::Abs; - } - match segment.kind()? { ast::PathSegmentKind::Name(name) => { segments.push(name.as_name()); diff --git a/crates/mun_syntax/src/parsing/grammar/paths.rs b/crates/mun_syntax/src/parsing/grammar/paths.rs index feef4658e..a7c1fe49b 100644 --- a/crates/mun_syntax/src/parsing/grammar/paths.rs +++ b/crates/mun_syntax/src/parsing/grammar/paths.rs @@ -22,14 +22,14 @@ enum Mode { fn path(p: &mut Parser, mode: Mode) { let path = p.start(); - path_segment(p, mode, true); + path_segment(p, mode); let mut qualifier = path.complete(p, PATH); loop { let import_tree = matches!(p.nth(1), T![*] | T!['{']); if p.at(T![::]) && !import_tree { let path = qualifier.precede(p); p.bump(T![::]); - path_segment(p, mode, false); + path_segment(p, mode); let path = path.complete(p, PATH); qualifier = path; } else { @@ -38,11 +38,8 @@ fn path(p: &mut Parser, mode: Mode) { } } -fn path_segment(p: &mut Parser, _mode: Mode, first: bool) { +fn path_segment(p: &mut Parser, _mode: Mode) { let m = p.start(); - if first { - p.eat(T![::]); - } match p.current() { IDENT => { name_ref(p);