Skip to content

Commit 56ace0a

Browse files
committed
Pass down NodeId to resolve_path
1 parent 8830a03 commit 56ace0a

File tree

3 files changed

+19
-13
lines changed

3 files changed

+19
-13
lines changed

src/librustc_resolve/lib.rs

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1654,11 +1654,12 @@ impl<'a> Resolver<'a> {
16541654
let path: Vec<Ident> = segments.iter()
16551655
.map(|seg| Ident::new(seg.name, span))
16561656
.collect();
1657-
match self.resolve_path(&path, Some(namespace), true, span) {
1657+
// FIXME (Manishearth): Intra doc links won't get warned of epoch changes
1658+
match self.resolve_path(&path, Some(namespace), true, span, None) {
16581659
PathResult::Module(module) => *def = module.def().unwrap(),
16591660
PathResult::NonModule(path_res) if path_res.unresolved_segments() == 0 =>
16601661
*def = path_res.base_def(),
1661-
PathResult::NonModule(..) => match self.resolve_path(&path, None, true, span) {
1662+
PathResult::NonModule(..) => match self.resolve_path(&path, None, true, span, None) {
16621663
PathResult::Failed(span, msg, _) => {
16631664
error_callback(self, span, ResolutionError::FailedToResolve(&msg));
16641665
}
@@ -2360,7 +2361,8 @@ impl<'a> Resolver<'a> {
23602361
if def != Def::Err {
23612362
new_id = Some(def.def_id());
23622363
let span = trait_ref.path.span;
2363-
if let PathResult::Module(module) = self.resolve_path(&path, None, false, span) {
2364+
if let PathResult::Module(module) = self.resolve_path(&path, None, false, span,
2365+
Some(trait_ref.ref_id)) {
23642366
new_val = Some((module, trait_ref.clone()));
23652367
}
23662368
}
@@ -2819,7 +2821,8 @@ impl<'a> Resolver<'a> {
28192821
(format!(""), format!("the crate root"))
28202822
} else {
28212823
let mod_path = &path[..path.len() - 1];
2822-
let mod_prefix = match this.resolve_path(mod_path, Some(TypeNS), false, span) {
2824+
let mod_prefix = match this.resolve_path(mod_path, Some(TypeNS),
2825+
false, span, None) {
28232826
PathResult::Module(module) => module.def(),
28242827
_ => None,
28252828
}.map_or(format!(""), |def| format!("{} ", def.kind_name()));
@@ -3149,7 +3152,7 @@ impl<'a> Resolver<'a> {
31493152
));
31503153
}
31513154

3152-
let result = match self.resolve_path(&path, Some(ns), true, span) {
3155+
let result = match self.resolve_path(&path, Some(ns), true, span, Some(id)) {
31533156
PathResult::NonModule(path_res) => path_res,
31543157
PathResult::Module(module) if !module.is_normal() => {
31553158
PathResolution::new(module.def().unwrap())
@@ -3186,7 +3189,7 @@ impl<'a> Resolver<'a> {
31863189
path[0].name != keywords::CrateRoot.name() &&
31873190
path[0].name != keywords::DollarCrate.name() {
31883191
let unqualified_result = {
3189-
match self.resolve_path(&[*path.last().unwrap()], Some(ns), false, span) {
3192+
match self.resolve_path(&[*path.last().unwrap()], Some(ns), false, span, Some(id)) {
31903193
PathResult::NonModule(path_res) => path_res.base_def(),
31913194
PathResult::Module(module) => module.def().unwrap(),
31923195
_ => return Some(result),
@@ -3205,7 +3208,8 @@ impl<'a> Resolver<'a> {
32053208
path: &[Ident],
32063209
opt_ns: Option<Namespace>, // `None` indicates a module path
32073210
record_used: bool,
3208-
path_span: Span)
3211+
path_span: Span,
3212+
_node_id: Option<NodeId>)
32093213
-> PathResult<'a> {
32103214
let mut module = None;
32113215
let mut allow_super = true;
@@ -3571,7 +3575,7 @@ impl<'a> Resolver<'a> {
35713575
// Search in module.
35723576
let mod_path = &path[..path.len() - 1];
35733577
if let PathResult::Module(module) = self.resolve_path(mod_path, Some(TypeNS),
3574-
false, span) {
3578+
false, span, None) {
35753579
add_module_candidates(module, &mut names);
35763580
}
35773581
}

src/librustc_resolve/macros.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -426,7 +426,7 @@ impl<'a> Resolver<'a> {
426426
return Err(Determinacy::Determined);
427427
}
428428

429-
let def = match self.resolve_path(&path, Some(MacroNS), false, span) {
429+
let def = match self.resolve_path(&path, Some(MacroNS), false, span, None) {
430430
PathResult::NonModule(path_res) => match path_res.base_def() {
431431
Def::Err => Err(Determinacy::Determined),
432432
def @ _ => {
@@ -604,7 +604,7 @@ impl<'a> Resolver<'a> {
604604
pub fn finalize_current_module_macro_resolutions(&mut self) {
605605
let module = self.current_module;
606606
for &(ref path, span) in module.macro_resolutions.borrow().iter() {
607-
match self.resolve_path(&path, Some(MacroNS), true, span) {
607+
match self.resolve_path(&path, Some(MacroNS), true, span, None) {
608608
PathResult::NonModule(_) => {},
609609
PathResult::Failed(span, msg, _) => {
610610
resolve_error(self, span, ResolutionError::FailedToResolve(&msg));

src/librustc_resolve/resolve_imports.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -535,7 +535,8 @@ impl<'a, 'b:'a> ImportResolver<'a, 'b> {
535535
// For better failure detection, pretend that the import will not define any names
536536
// while resolving its module path.
537537
directive.vis.set(ty::Visibility::Invisible);
538-
let result = self.resolve_path(&directive.module_path[..], None, false, directive.span);
538+
let result = self.resolve_path(&directive.module_path[..], None, false,
539+
directive.span, Some(directive.id));
539540
directive.vis.set(vis);
540541

541542
match result {
@@ -663,7 +664,7 @@ impl<'a, 'b:'a> ImportResolver<'a, 'b> {
663664
}
664665
}
665666

666-
let module_result = self.resolve_path(&module_path, None, true, span);
667+
let module_result = self.resolve_path(&module_path, None, true, span, Some(directive.id));
667668
let module = match module_result {
668669
PathResult::Module(module) => module,
669670
PathResult::Failed(span, msg, false) => {
@@ -677,7 +678,8 @@ impl<'a, 'b:'a> ImportResolver<'a, 'b> {
677678
if !self_path.is_empty() && !is_special(self_path[0]) &&
678679
!(self_path.len() > 1 && is_special(self_path[1])) {
679680
self_path[0].name = keywords::SelfValue.name();
680-
self_result = Some(self.resolve_path(&self_path, None, false, span));
681+
self_result = Some(self.resolve_path(&self_path, None, false,
682+
span, Some(directive.id)));
681683
}
682684
return if let Some(PathResult::Module(..)) = self_result {
683685
Some((span, format!("Did you mean `{}`?", names_to_string(&self_path[..]))))

0 commit comments

Comments
 (0)