Skip to content

Commit 3cd7f08

Browse files
Force callers of resolve_ast_path to deal with Res::Err correctly
1 parent 18130ef commit 3cd7f08

File tree

2 files changed

+9
-10
lines changed

2 files changed

+9
-10
lines changed

Diff for: src/librustc_resolve/lib.rs

+2-10
Original file line numberDiff line numberDiff line change
@@ -1858,16 +1858,8 @@ impl<'a> Resolver<'a> {
18581858
.collect(),
18591859
}
18601860
};
1861-
match self.resolve_ast_path_inner(&path, is_value) {
1862-
Ok(res) => {
1863-
if res == Res::Err {
1864-
Err(())
1865-
} else {
1866-
Ok((path, res))
1867-
}
1868-
}
1869-
Err(_) => Err(()),
1870-
}
1861+
let res = self.resolve_ast_path_inner(&path, is_value).map_err(|_| ())?;
1862+
Ok((path, res))
18711863
}
18721864

18731865
/// Like `resolve_ast_path`, but takes a callback in case there was an error.

Diff for: src/librustdoc/passes/collect_intra_doc_links.rs

+7
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,10 @@ impl<'a, 'tcx> LinkCollector<'a, 'tcx> {
7171
resolver.resolve_str_path_error(DUMMY_SP, &path_str, ns == ValueNS)
7272
})
7373
});
74+
let result = match result {
75+
Ok((_, Res::Err)) => Err(()),
76+
_ => result,
77+
};
7478

7579
if let Ok((_, res)) = result {
7680
let res = res.map_id(|_| panic!("unexpected node_id"));
@@ -134,6 +138,9 @@ impl<'a, 'tcx> LinkCollector<'a, 'tcx> {
134138
let (_, ty_res) = cx.enter_resolver(|resolver| resolver.with_scope(node_id, |resolver| {
135139
resolver.resolve_str_path_error(DUMMY_SP, &path, false)
136140
}))?;
141+
if let Res::Err = ty_res {
142+
return Err(());
143+
}
137144
let ty_res = ty_res.map_id(|_| panic!("unexpected node_id"));
138145
match ty_res {
139146
Res::Def(DefKind::Struct, did)

0 commit comments

Comments
 (0)