diff options
| author | bors <bors@rust-lang.org> | 2021-12-19 09:31:37 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-12-19 09:31:37 +0000 |
| commit | a41a6925badac7508d7a72cc1fc20f43dc6ad75e (patch) | |
| tree | 224de9d17e4b466061b457662dd9d2dfc9b9ce14 /src/librustdoc | |
| parent | 8f540619007c1aa62dfc915409d881f52f21dc84 (diff) | |
| parent | b1c934ebb8b881977a93c05c15caa88921792d3b (diff) | |
| download | rust-a41a6925badac7508d7a72cc1fc20f43dc6ad75e.tar.gz rust-a41a6925badac7508d7a72cc1fc20f43dc6ad75e.zip | |
Auto merge of #91957 - nnethercote:rm-SymbolStr, r=oli-obk
Remove `SymbolStr` This was originally proposed in https://github.com/rust-lang/rust/pull/74554#discussion_r466203544. As well as removing the icky `SymbolStr` type, it allows the removal of a lot of `&` and `*` occurrences. Best reviewed one commit at a time. r? `@oli-obk`
Diffstat (limited to 'src/librustdoc')
| -rw-r--r-- | src/librustdoc/clean/cfg.rs | 14 | ||||
| -rw-r--r-- | src/librustdoc/clean/types.rs | 8 | ||||
| -rw-r--r-- | src/librustdoc/clean/utils.rs | 2 | ||||
| -rw-r--r-- | src/librustdoc/formats/cache.rs | 3 | ||||
| -rw-r--r-- | src/librustdoc/formats/renderer.rs | 2 | ||||
| -rw-r--r-- | src/librustdoc/html/format.rs | 28 | ||||
| -rw-r--r-- | src/librustdoc/html/render/context.rs | 16 | ||||
| -rw-r--r-- | src/librustdoc/html/render/mod.rs | 10 | ||||
| -rw-r--r-- | src/librustdoc/html/render/print_item.rs | 18 | ||||
| -rw-r--r-- | src/librustdoc/html/render/write_shared.rs | 6 | ||||
| -rw-r--r-- | src/librustdoc/html/sources.rs | 2 | ||||
| -rw-r--r-- | src/librustdoc/json/conversions.rs | 2 | ||||
| -rw-r--r-- | src/librustdoc/passes/collect_intra_doc_links.rs | 4 |
13 files changed, 54 insertions, 61 deletions
diff --git a/src/librustdoc/clean/cfg.rs b/src/librustdoc/clean/cfg.rs index 9b5ca068486..dfee2b702c1 100644 --- a/src/librustdoc/clean/cfg.rs +++ b/src/librustdoc/clean/cfg.rs @@ -466,7 +466,7 @@ impl<'a> fmt::Display for Display<'a> { (sym::unix, None) => "Unix", (sym::windows, None) => "Windows", (sym::debug_assertions, None) => "debug-assertions enabled", - (sym::target_os, Some(os)) => match &*os.as_str() { + (sym::target_os, Some(os)) => match os.as_str() { "android" => "Android", "dragonfly" => "DragonFly BSD", "emscripten" => "Emscripten", @@ -487,7 +487,7 @@ impl<'a> fmt::Display for Display<'a> { "windows" => "Windows", _ => "", }, - (sym::target_arch, Some(arch)) => match &*arch.as_str() { + (sym::target_arch, Some(arch)) => match arch.as_str() { "aarch64" => "AArch64", "arm" => "ARM", "asmjs" => "JavaScript", @@ -504,14 +504,14 @@ impl<'a> fmt::Display for Display<'a> { "x86_64" => "x86-64", _ => "", }, - (sym::target_vendor, Some(vendor)) => match &*vendor.as_str() { + (sym::target_vendor, Some(vendor)) => match vendor.as_str() { "apple" => "Apple", "pc" => "PC", "sun" => "Sun", "fortanix" => "Fortanix", _ => "", }, - (sym::target_env, Some(env)) => match &*env.as_str() { + (sym::target_env, Some(env)) => match env.as_str() { "gnu" => "GNU", "msvc" => "MSVC", "musl" => "musl", @@ -545,14 +545,14 @@ impl<'a> fmt::Display for Display<'a> { write!( fmt, r#"<code>{}="{}"</code>"#, - Escape(&name.as_str()), - Escape(&v.as_str()) + Escape(name.as_str()), + Escape(v.as_str()) ) } else { write!(fmt, r#"`{}="{}"`"#, name, v) } } else if self.1.is_html() { - write!(fmt, "<code>{}</code>", Escape(&name.as_str())) + write!(fmt, "<code>{}</code>", Escape(name.as_str())) } else { write!(fmt, "`{}`", name) } diff --git a/src/librustdoc/clean/types.rs b/src/librustdoc/clean/types.rs index 2bd90f67cf4..c41617665a8 100644 --- a/src/librustdoc/clean/types.rs +++ b/src/librustdoc/clean/types.rs @@ -25,7 +25,7 @@ use rustc_middle::ty::{self, TyCtxt}; use rustc_session::Session; use rustc_span::hygiene::MacroKind; use rustc_span::source_map::DUMMY_SP; -use rustc_span::symbol::{kw, sym, Ident, Symbol, SymbolStr}; +use rustc_span::symbol::{kw, sym, Ident, Symbol}; use rustc_span::{self, FileName, Loc}; use rustc_target::abi::VariantIdx; use rustc_target::spec::abi::Abi; @@ -200,7 +200,7 @@ impl ExternalCrate { // See if there's documentation generated into the local directory // WARNING: since rustdoc creates these directories as it generates documentation, this check is only accurate before rendering starts. // Make sure to call `location()` by that time. - let local_location = dst.join(&*self.name(tcx).as_str()); + let local_location = dst.join(self.name(tcx).as_str()); if local_location.is_dir() { return Local; } @@ -2009,10 +2009,6 @@ impl Path { self.segments.last().expect("segments were empty").name } - crate fn last_name(&self) -> SymbolStr { - self.segments.last().expect("segments were empty").name.as_str() - } - crate fn whole_name(&self) -> String { self.segments .iter() diff --git a/src/librustdoc/clean/utils.rs b/src/librustdoc/clean/utils.rs index 7f7be246367..4d80abc98c7 100644 --- a/src/librustdoc/clean/utils.rs +++ b/src/librustdoc/clean/utils.rs @@ -162,7 +162,7 @@ crate fn qpath_to_string(p: &hir::QPath<'_>) -> String { s.push_str("::"); } if seg.ident.name != kw::PathRoot { - s.push_str(&seg.ident.as_str()); + s.push_str(seg.ident.as_str()); } } s diff --git a/src/librustdoc/formats/cache.rs b/src/librustdoc/formats/cache.rs index d3831450e1d..5813062ceab 100644 --- a/src/librustdoc/formats/cache.rs +++ b/src/librustdoc/formats/cache.rs @@ -150,8 +150,7 @@ impl Cache { let name = e.name(tcx); let render_options = &cx.render_options; - let extern_url = - render_options.extern_html_root_urls.get(&*name.as_str()).map(|u| &**u); + let extern_url = render_options.extern_html_root_urls.get(name.as_str()).map(|u| &**u); let extern_url_takes_precedence = render_options.extern_html_root_takes_precedence; let dst = &render_options.output; let location = e.location(extern_url, extern_url_takes_precedence, dst, tcx); diff --git a/src/librustdoc/formats/renderer.rs b/src/librustdoc/formats/renderer.rs index b8ef3384c59..b7af8c9801f 100644 --- a/src/librustdoc/formats/renderer.rs +++ b/src/librustdoc/formats/renderer.rs @@ -90,7 +90,7 @@ crate fn run_format<'tcx, T: FormatRenderer<'tcx>>( // FIXME: checking `item.name.is_some()` is very implicit and leads to lots of special // cases. Use an explicit match instead. } else if item.name.is_some() && !item.is_extern_crate() { - prof.generic_activity_with_arg("render_item", &*item.name.unwrap_or(unknown).as_str()) + prof.generic_activity_with_arg("render_item", item.name.unwrap_or(unknown).as_str()) .run(|| cx.item(item))?; } } diff --git a/src/librustdoc/html/format.rs b/src/librustdoc/html/format.rs index f6788e94431..3a2effa625c 100644 --- a/src/librustdoc/html/format.rs +++ b/src/librustdoc/html/format.rs @@ -175,7 +175,7 @@ impl clean::GenericParamDef { Ok(()) } clean::GenericParamDefKind::Type { bounds, default, .. } => { - f.write_str(&*self.name.as_str())?; + f.write_str(self.name.as_str())?; if !bounds.is_empty() { if f.alternate() { @@ -638,7 +638,7 @@ fn resolved_path<'cx>( last.name.to_string() } } else { - anchor(did, &*last.name.as_str(), cx).to_string() + anchor(did, last.name.as_str(), cx).to_string() }; write!(w, "{}{}", path, last.args.print(cx))?; } @@ -667,20 +667,18 @@ fn primitive_link( needs_termination = true; } Some(&def_id) => { - let cname_str; + let cname_sym; let loc = match m.extern_locations[&def_id.krate] { ExternalLocation::Remote(ref s) => { - cname_str = - ExternalCrate { crate_num: def_id.krate }.name(cx.tcx()).as_str(); - Some(vec![s.trim_end_matches('/'), &cname_str[..]]) + cname_sym = ExternalCrate { crate_num: def_id.krate }.name(cx.tcx()); + Some(vec![s.trim_end_matches('/'), cname_sym.as_str()]) } ExternalLocation::Local => { - cname_str = - ExternalCrate { crate_num: def_id.krate }.name(cx.tcx()).as_str(); - Some(if cx.current.first().map(|x| &x[..]) == Some(&cname_str[..]) { + cname_sym = ExternalCrate { crate_num: def_id.krate }.name(cx.tcx()); + Some(if cx.current.first().map(|x| &x[..]) == Some(cname_sym.as_str()) { iter::repeat("..").take(cx.current.len() - 1).collect() } else { - let cname = iter::once(&cname_str[..]); + let cname = iter::once(cname_sym.as_str()); iter::repeat("..").take(cx.current.len()).chain(cname).collect() }) } @@ -775,7 +773,7 @@ fn fmt_type<'cx>( clean::Primitive(clean::PrimitiveType::Never) => { primitive_link(f, PrimitiveType::Never, "!", cx) } - clean::Primitive(prim) => primitive_link(f, prim, &*prim.as_sym().as_str(), cx), + clean::Primitive(prim) => primitive_link(f, prim, prim.as_sym().as_str(), cx), clean::BareFunction(ref decl) => { if f.alternate() { write!( @@ -1271,7 +1269,7 @@ impl clean::Visibility { debug!("path={:?}", path); // modified from `resolved_path()` to work with `DefPathData` let last_name = path.data.last().unwrap().data.get_opt_name().unwrap(); - let anchor = anchor(vis_did, &last_name.as_str(), cx).to_string(); + let anchor = anchor(vis_did, last_name.as_str(), cx).to_string(); let mut s = "pub(in ".to_owned(); for seg in &path.data[..path.data.len() - 1] { @@ -1402,9 +1400,9 @@ impl clean::ImportSource { for seg in &self.path.segments[..self.path.segments.len() - 1] { write!(f, "{}::", seg.name)?; } - let name = self.path.last_name(); + let name = self.path.last(); if let hir::def::Res::PrimTy(p) = self.path.res { - primitive_link(f, PrimitiveType::from(p), &*name, cx)?; + primitive_link(f, PrimitiveType::from(p), name.as_str(), cx)?; } else { write!(f, "{}", name)?; } @@ -1420,7 +1418,7 @@ impl clean::TypeBinding { cx: &'a Context<'tcx>, ) -> impl fmt::Display + 'a + Captures<'tcx> { display_fn(move |f| { - f.write_str(&*self.name.as_str())?; + f.write_str(self.name.as_str())?; match self.kind { clean::TypeBindingKind::Equality { ref ty } => { if f.alternate() { diff --git a/src/librustdoc/html/render/context.rs b/src/librustdoc/html/render/context.rs index 365d959ad9f..c4d326e7711 100644 --- a/src/librustdoc/html/render/context.rs +++ b/src/librustdoc/html/render/context.rs @@ -180,7 +180,7 @@ impl<'tcx> Context<'tcx> { fn render_item(&self, it: &clean::Item, is_module: bool) -> String { let mut title = String::new(); if !is_module { - title.push_str(&it.name.unwrap().as_str()); + title.push_str(it.name.unwrap().as_str()); } if !it.is_primitive() && !it.is_keyword() { if !is_module { @@ -315,7 +315,7 @@ impl<'tcx> Context<'tcx> { }; let file = &file; - let symbol; + let krate_sym; let (krate, path) = if cnum == LOCAL_CRATE { if let Some(path) = self.shared.local_sources.get(file) { (self.shared.layout.krate.as_str(), path) @@ -343,8 +343,8 @@ impl<'tcx> Context<'tcx> { let mut fname = file.file_name().expect("source has no filename").to_os_string(); fname.push(".html"); path.push_str(&fname.to_string_lossy()); - symbol = krate.as_str(); - (&*symbol, &path) + krate_sym = krate; + (krate_sym.as_str(), &path) }; let anchor = if with_lines { @@ -549,7 +549,7 @@ impl<'tcx> FormatRenderer<'tcx> for Context<'tcx> { fn after_krate(&mut self) -> Result<(), Error> { let crate_name = self.tcx().crate_name(LOCAL_CRATE); - let final_file = self.dst.join(&*crate_name.as_str()).join("all.html"); + let final_file = self.dst.join(crate_name.as_str()).join("all.html"); let settings_file = self.dst.join("settings.html"); let mut root_path = self.dst.to_str().expect("invalid path").to_owned(); @@ -619,9 +619,9 @@ impl<'tcx> FormatRenderer<'tcx> for Context<'tcx> { if let Some(ref redirections) = self.shared.redirections { if !redirections.borrow().is_empty() { let redirect_map_path = - self.dst.join(&*crate_name.as_str()).join("redirect-map.json"); + self.dst.join(crate_name.as_str()).join("redirect-map.json"); let paths = serde_json::to_string(&*redirections.borrow()).unwrap(); - self.shared.ensure_dir(&self.dst.join(&*crate_name.as_str()))?; + self.shared.ensure_dir(&self.dst.join(crate_name.as_str()))?; self.shared.fs.write(redirect_map_path, paths)?; } } @@ -703,7 +703,7 @@ impl<'tcx> FormatRenderer<'tcx> for Context<'tcx> { if !buf.is_empty() { let name = item.name.as_ref().unwrap(); let item_type = item.type_(); - let file_name = &item_path(item_type, &name.as_str()); + let file_name = &item_path(item_type, name.as_str()); self.shared.ensure_dir(&self.dst)?; let joint_dst = self.dst.join(file_name); self.shared.fs.write(joint_dst, buf)?; diff --git a/src/librustdoc/html/render/mod.rs b/src/librustdoc/html/render/mod.rs index 2432f5cc085..cd89164a254 100644 --- a/src/librustdoc/html/render/mod.rs +++ b/src/librustdoc/html/render/mod.rs @@ -640,9 +640,9 @@ fn short_item_info( // We display deprecation messages for #[deprecated] and #[rustc_deprecated] // but only display the future-deprecation messages for #[rustc_deprecated]. let mut message = if let Some(since) = since { - let since = &since.as_str(); + let since = since.as_str(); if !stability::deprecation_in_effect(&depr) { - if *since == "TBD" { + if since == "TBD" { String::from("Deprecating in a future Rust version") } else { format!("Deprecating in {}", Escape(since)) @@ -658,7 +658,7 @@ fn short_item_info( let note = note.as_str(); let mut ids = cx.id_map.borrow_mut(); let html = MarkdownHtml( - ¬e, + note, &mut ids, error_codes, cx.shared.edition(), @@ -683,7 +683,7 @@ fn short_item_info( let mut message = "<span class=\"emoji\">🔬</span> This is a nightly-only experimental API.".to_owned(); - let mut feature = format!("<code>{}</code>", Escape(&feature.as_str())); + let mut feature = format!("<code>{}</code>", Escape(feature.as_str())); if let (Some(url), Some(issue)) = (&cx.shared.issue_tracker_base_url, issue) { feature.push_str(&format!( " <a href=\"{url}{issue}\">#{issue}</a>", @@ -1414,7 +1414,7 @@ fn render_impl( let source_id = trait_ .and_then(|trait_| { trait_.items.iter().find(|item| { - item.name.map(|n| n.as_str().eq(&name.as_str())).unwrap_or(false) + item.name.map(|n| n.as_str().eq(name.as_str())).unwrap_or(false) }) }) .map(|item| format!("{}.{}", item.type_(), name)); diff --git a/src/librustdoc/html/render/print_item.rs b/src/librustdoc/html/render/print_item.rs index 9943e23b928..44a9ec5ea42 100644 --- a/src/librustdoc/html/render/print_item.rs +++ b/src/librustdoc/html/render/print_item.rs @@ -136,7 +136,7 @@ pub(super) fn print_item( page: page, static_root_path: page.get_static_root_path(), typ: typ, - name: &item.name.as_ref().unwrap().as_str(), + name: item.name.as_ref().unwrap().as_str(), item_type: &item.type_().to_string(), path_components: path_components, stability_since_raw: &stability_since_raw, @@ -239,9 +239,9 @@ fn item_module(w: &mut Buffer, cx: &Context<'_>, item: &clean::Item, items: &[cl (true, false) => return Ordering::Greater, } } - let lhs = i1.name.unwrap_or(kw::Empty).as_str(); - let rhs = i2.name.unwrap_or(kw::Empty).as_str(); - compare_names(&lhs, &rhs) + let lhs = i1.name.unwrap_or(kw::Empty); + let rhs = i2.name.unwrap_or(kw::Empty); + compare_names(lhs.as_str(), rhs.as_str()) } if cx.shared.sort_modules_alphabetically { @@ -315,7 +315,7 @@ fn item_module(w: &mut Buffer, cx: &Context<'_>, item: &clean::Item, items: &[cl w, "<div class=\"item-left\"><code>{}extern crate {} as {};", myitem.visibility.print_with_space(myitem.def_id, cx), - anchor(myitem.def_id.expect_def_id(), &*src.as_str(), cx), + anchor(myitem.def_id.expect_def_id(), src.as_str(), cx), myitem.name.as_ref().unwrap(), ), None => write!( @@ -324,7 +324,7 @@ fn item_module(w: &mut Buffer, cx: &Context<'_>, item: &clean::Item, items: &[cl myitem.visibility.print_with_space(myitem.def_id, cx), anchor( myitem.def_id.expect_def_id(), - &*myitem.name.as_ref().unwrap().as_str(), + myitem.name.as_ref().unwrap().as_str(), cx ), ), @@ -405,7 +405,7 @@ fn item_module(w: &mut Buffer, cx: &Context<'_>, item: &clean::Item, items: &[cl add = add, stab = stab.unwrap_or_default(), unsafety_flag = unsafety_flag, - href = item_path(myitem.type_(), &myitem.name.unwrap().as_str()), + href = item_path(myitem.type_(), myitem.name.unwrap().as_str()), title = [full_path(cx, myitem), myitem.type_().to_string()] .iter() .filter_map(|s| if !s.is_empty() { Some(s.as_str()) } else { None }) @@ -1308,7 +1308,7 @@ fn item_struct(w: &mut Buffer, cx: &Context<'_>, it: &clean::Item, s: &clean::St document_non_exhaustive(w, it); for (index, (field, ty)) in fields.enumerate() { let field_name = - field.name.map_or_else(|| index.to_string(), |sym| (*sym.as_str()).to_string()); + field.name.map_or_else(|| index.to_string(), |sym| sym.as_str().to_string()); let id = cx.derive_id(format!("{}.{}", ItemType::StructField, field_name)); write!( w, @@ -1410,7 +1410,7 @@ crate fn compare_names(mut lhs: &str, mut rhs: &str) -> Ordering { pub(super) fn full_path(cx: &Context<'_>, item: &clean::Item) -> String { let mut s = cx.current.join("::"); s.push_str("::"); - s.push_str(&item.name.unwrap().as_str()); + s.push_str(item.name.unwrap().as_str()); s } diff --git a/src/librustdoc/html/render/write_shared.rs b/src/librustdoc/html/render/write_shared.rs index 0d5ba8e80d2..563f4ae7385 100644 --- a/src/librustdoc/html/render/write_shared.rs +++ b/src/librustdoc/html/render/write_shared.rs @@ -418,7 +418,7 @@ pub(super) fn write_shared( let dst = cx.dst.join(&format!("source-files{}.js", cx.shared.resource_suffix)); let make_sources = || { let (mut all_sources, _krates) = - try_err!(collect(&dst, &krate.name(cx.tcx()).as_str(), "sourcesIndex"), &dst); + try_err!(collect(&dst, krate.name(cx.tcx()).as_str(), "sourcesIndex"), &dst); all_sources.push(format!( "sourcesIndex[\"{}\"] = {};", &krate.name(cx.tcx()), @@ -437,7 +437,7 @@ pub(super) fn write_shared( // Update the search index and crate list. let dst = cx.dst.join(&format!("search-index{}.js", cx.shared.resource_suffix)); let (mut all_indexes, mut krates) = - try_err!(collect_json(&dst, &krate.name(cx.tcx()).as_str()), &dst); + try_err!(collect_json(&dst, krate.name(cx.tcx()).as_str()), &dst); all_indexes.push(search_index); krates.push(krate.name(cx.tcx()).to_string()); krates.sort(); @@ -575,7 +575,7 @@ pub(super) fn write_shared( mydst.push(&format!("{}.{}.js", remote_item_type, remote_path[remote_path.len() - 1])); let (mut all_implementors, _) = - try_err!(collect(&mydst, &krate.name(cx.tcx()).as_str(), "implementors"), &mydst); + try_err!(collect(&mydst, krate.name(cx.tcx()).as_str(), "implementors"), &mydst); all_implementors.push(implementors); // Sort the implementors by crate so the file will be generated // identically even with rustdoc running in parallel. diff --git a/src/librustdoc/html/sources.rs b/src/librustdoc/html/sources.rs index c8e93374e63..ba70ed8622a 100644 --- a/src/librustdoc/html/sources.rs +++ b/src/librustdoc/html/sources.rs @@ -19,7 +19,7 @@ use std::path::{Component, Path, PathBuf}; crate fn render(cx: &mut Context<'_>, krate: &clean::Crate) -> Result<(), Error> { info!("emitting source files"); - let dst = cx.dst.join("src").join(&*krate.name(cx.tcx()).as_str()); + let dst = cx.dst.join("src").join(krate.name(cx.tcx()).as_str()); cx.shared.ensure_dir(&dst)?; let mut collector = SourceCollector { dst, cx, emitted_local_sources: FxHashSet::default() }; diff --git a/src/librustdoc/json/conversions.rs b/src/librustdoc/json/conversions.rs index ee29bfcc7a4..c8efa4bbbcc 100644 --- a/src/librustdoc/json/conversions.rs +++ b/src/librustdoc/json/conversions.rs @@ -609,7 +609,7 @@ impl FromWithTcx<clean::Import> for Import { }, Glob => Import { source: import.source.path.whole_name(), - name: import.source.path.last_name().to_string(), + name: import.source.path.last().to_string(), id: import.source.did.map(ItemId::from).map(from_item_id), glob: true, }, diff --git a/src/librustdoc/passes/collect_intra_doc_links.rs b/src/librustdoc/passes/collect_intra_doc_links.rs index 2faf7781807..53620669fdd 100644 --- a/src/librustdoc/passes/collect_intra_doc_links.rs +++ b/src/librustdoc/passes/collect_intra_doc_links.rs @@ -2153,8 +2153,8 @@ fn privacy_error(cx: &DocContext<'_>, diag_info: &DiagnosticInfo<'_>, path_str: let sym; let item_name = match diag_info.item.name { Some(name) => { - sym = name.as_str(); - &*sym + sym = name; + sym.as_str() } None => "<unknown>", }; |
