diff options
| author | Kyle Lin <minecraft.kyle.train@gmail.com> | 2023-07-02 23:32:46 +0800 |
|---|---|---|
| committer | Kyle Lin <minecraft.kyle.train@gmail.com> | 2023-08-18 15:19:22 +0800 |
| commit | ecb26376e5d4a03bc5f536b315161d5450bd914e (patch) | |
| tree | 3567807ce134dd2af638bc05f681f6221b3dc3e3 /compiler/rustc_resolve/src/rustdoc.rs | |
| parent | 78c85f439f04f2aa484a9f1be3133d74bda87c7d (diff) | |
| download | rust-ecb26376e5d4a03bc5f536b315161d5450bd914e.tar.gz rust-ecb26376e5d4a03bc5f536b315161d5450bd914e.zip | |
narrow down the lint trigger constraint
Diffstat (limited to 'compiler/rustc_resolve/src/rustdoc.rs')
| -rw-r--r-- | compiler/rustc_resolve/src/rustdoc.rs | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/compiler/rustc_resolve/src/rustdoc.rs b/compiler/rustc_resolve/src/rustdoc.rs index cbda0535c89..ba7417b6dda 100644 --- a/compiler/rustc_resolve/src/rustdoc.rs +++ b/compiler/rustc_resolve/src/rustdoc.rs @@ -1,4 +1,4 @@ -use pulldown_cmark::{BrokenLink, Event, LinkType, Options, Parser, Tag}; +use pulldown_cmark::{BrokenLink, CowStr, Event, LinkType, Options, Parser, Tag}; use rustc_ast as ast; use rustc_ast::util::comments::beautify_doc_string; use rustc_data_structures::fx::FxHashMap; @@ -436,15 +436,22 @@ fn parse_links<'md>(doc: &'md str) -> Vec<Box<str>> { fn collect_link_data<'input, 'callback>( event_iter: &mut Parser<'input, 'callback>, ) -> Option<Box<str>> { - let mut display_text = None; + let mut display_text: Option<String> = None; + let mut append_text = |text: CowStr<'_>| { + if let Some(display_text) = &mut display_text { + display_text.push_str(&text); + } else { + display_text = Some(text.to_string()); + } + }; while let Some(event) = event_iter.next() { match event { - Event::Text(code) => { - display_text = Some(code.to_string().into_boxed_str()); + Event::Text(text) => { + append_text(text); } Event::Code(code) => { - display_text = Some(code.to_string().into_boxed_str()); + append_text(code); } Event::End(_) => { break; @@ -453,5 +460,5 @@ fn collect_link_data<'input, 'callback>( } } - display_text + display_text.map(String::into_boxed_str) } |
