diff options
| author | Noah Lev <camelidcamel@gmail.com> | 2022-01-05 16:50:20 -0800 |
|---|---|---|
| committer | Noah Lev <camelidcamel@gmail.com> | 2022-01-06 11:40:36 -0800 |
| commit | f89e2dd935d86bf2da3e4181e47ecaf56b5de026 (patch) | |
| tree | 5a7119190132d42c22e00ed983b7832f23fdcee0 /src | |
| parent | cfa4ac66c194046f631ce076c75516ecfdeb77ee (diff) | |
| download | rust-f89e2dd935d86bf2da3e4181e47ecaf56b5de026.tar.gz rust-f89e2dd935d86bf2da3e4181e47ecaf56b5de026.zip | |
Move anchor conflict check to call site
I think it makes the code easier to understand.
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustdoc/passes/collect_intra_doc_links.rs | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/librustdoc/passes/collect_intra_doc_links.rs b/src/librustdoc/passes/collect_intra_doc_links.rs index 79530086282..40b3cb8641c 100644 --- a/src/librustdoc/passes/collect_intra_doc_links.rs +++ b/src/librustdoc/passes/collect_intra_doc_links.rs @@ -514,7 +514,14 @@ impl<'a, 'tcx> LinkCollector<'a, 'tcx> { Res::Def(DefKind::AssocFn | DefKind::AssocConst, _) => assert_eq!(ns, ValueNS), Res::Def(DefKind::AssocTy, _) => assert_eq!(ns, TypeNS), Res::Def(DefKind::Variant, _) => { - return handle_variant(self.cx, res, extra_fragment); + if extra_fragment.is_some() { + // NOTE: `res` can never be a primitive since this match arm means + // `tcx.def_kind(res) == DefKind::Variant`. + return Err(ErrorKind::AnchorFailure( + AnchorFailure::RustdocAnchorConflict(res), + )); + } + return handle_variant(self.cx, res); } // Not a trait item; just return what we found. _ => return Ok((res, extra_fragment.clone())), @@ -2272,14 +2279,9 @@ fn privacy_error(cx: &DocContext<'_>, diag_info: &DiagnosticInfo<'_>, path_str: fn handle_variant( cx: &DocContext<'_>, res: Res, - extra_fragment: &Option<UrlFragment>, ) -> Result<(Res, Option<UrlFragment>), ErrorKind<'static>> { use rustc_middle::ty::DefIdTree; - if extra_fragment.is_some() { - // NOTE: `res` can never be a primitive since this function is only called when `tcx.def_kind(res) == DefKind::Variant`. - return Err(ErrorKind::AnchorFailure(AnchorFailure::RustdocAnchorConflict(res))); - } cx.tcx .parent(res.def_id(cx.tcx)) .map(|parent| { |
