diff options
| author | Noah Lev <camelidcamel@gmail.com> | 2022-01-05 17:51:27 -0800 |
|---|---|---|
| committer | Noah Lev <camelidcamel@gmail.com> | 2022-01-06 11:48:47 -0800 |
| commit | 7e3132adb375480aebff297217e3125165cc56b2 (patch) | |
| tree | a00c53260ac2a8ab987b43e3ee3b7de0dbf264d2 | |
| parent | a324fc19d4b4bd6ecb34abf318aea2e65f98c241 (diff) | |
| download | rust-7e3132adb375480aebff297217e3125165cc56b2.tar.gz rust-7e3132adb375480aebff297217e3125165cc56b2.zip | |
Extract function for reporting feature gate error
| -rw-r--r-- | src/librustdoc/passes/collect_intra_doc_links.rs | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/src/librustdoc/passes/collect_intra_doc_links.rs b/src/librustdoc/passes/collect_intra_doc_links.rs index 7c9de76a0b6..ddb9f53c695 100644 --- a/src/librustdoc/passes/collect_intra_doc_links.rs +++ b/src/librustdoc/passes/collect_intra_doc_links.rs @@ -1370,22 +1370,7 @@ impl LinkCollector<'_, '_> { && item.def_id.is_local() && !self.cx.tcx.features().intra_doc_pointers { - let span = super::source_span_for_markdown_range( - self.cx.tcx, - dox, - &ori_link.range, - &item.attrs, - ) - .unwrap_or_else(|| item.attr_span(self.cx.tcx)); - - rustc_session::parse::feature_err( - &self.cx.tcx.sess.parse_sess, - sym::intra_doc_pointers, - span, - "linking to associated items of raw pointers is experimental", - ) - .note("rustdoc does not allow disambiguating between `*const` and `*mut`, and pointers are unstable until it does") - .emit(); + self.report_rawptr_assoc_feature_gate(dox, &ori_link, item); } } else { match disambiguator { @@ -1412,6 +1397,20 @@ impl LinkCollector<'_, '_> { } } + fn report_rawptr_assoc_feature_gate(&self, dox: &str, ori_link: &MarkdownLink, item: &Item) { + let span = + super::source_span_for_markdown_range(self.cx.tcx, dox, &ori_link.range, &item.attrs) + .unwrap_or_else(|| item.attr_span(self.cx.tcx)); + rustc_session::parse::feature_err( + &self.cx.tcx.sess.parse_sess, + sym::intra_doc_pointers, + span, + "linking to associated items of raw pointers is experimental", + ) + .note("rustdoc does not allow disambiguating between `*const` and `*mut`, and pointers are unstable until it does") + .emit(); + } + fn resolve_with_disambiguator_cached( &mut self, key: ResolutionInfo, |
