auto merge of #15493 : brson/rust/tostr, r=pcwalton
This updates https://github.com/rust-lang/rust/pull/15075. Rename `ToStr::to_str` to `ToString::to_string`. The naive renaming ends up with two `to_string` functions defined on strings in the prelude (the other defined via `collections::str::StrAllocating`). To remedy this I removed `StrAllocating::to_string`, making all conversions from `&str` to `String` go through `Show`. This has a measurable impact on the speed of this conversion, but the sense I get from others is that it's best to go ahead and unify `to_string` and address performance for all `to_string` conversions in `core::fmt`. `String::from_str(...)` still works as a manual fast-path. Note that the patch was done with a script, and ended up renaming a number of other `*_to_str` functions, particularly inside of rustc. All the ones I saw looked correct, and I didn't notice any additional API breakage. Closes #15046.
This commit is contained in:
commit
8bb34a3146
208 changed files with 1557 additions and 1390 deletions
|
|
@ -99,7 +99,7 @@ fn try_inline_def(cx: &core::DocContext,
|
|||
cx.inlined.borrow_mut().get_mut_ref().insert(did);
|
||||
ret.push(clean::Item {
|
||||
source: clean::Span::empty(),
|
||||
name: Some(fqn.last().unwrap().to_str()),
|
||||
name: Some(fqn.last().unwrap().to_string()),
|
||||
attrs: load_attrs(tcx, did),
|
||||
inner: inner,
|
||||
visibility: Some(ast::Public),
|
||||
|
|
@ -136,7 +136,7 @@ pub fn record_extern_fqn(cx: &core::DocContext,
|
|||
match cx.maybe_typed {
|
||||
core::Typed(ref tcx) => {
|
||||
let fqn = csearch::get_item_path(tcx, did);
|
||||
let fqn = fqn.move_iter().map(|i| i.to_str()).collect();
|
||||
let fqn = fqn.move_iter().map(|i| i.to_string()).collect();
|
||||
cx.external_paths.borrow_mut().get_mut_ref().insert(did, (fqn, kind));
|
||||
}
|
||||
core::NotTyped(..) => {}
|
||||
|
|
|
|||
|
|
@ -408,7 +408,7 @@ impl Clean<Attribute> for ast::MetaItem {
|
|||
List(s.get().to_string(), l.clean().move_iter().collect())
|
||||
}
|
||||
ast::MetaNameValue(ref s, ref v) => {
|
||||
NameValue(s.get().to_string(), lit_to_str(v))
|
||||
NameValue(s.get().to_string(), lit_to_string(v))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -539,7 +539,7 @@ impl Clean<TyParamBound> for ty::BuiltinBound {
|
|||
external_path("Share", &empty)),
|
||||
};
|
||||
let fqn = csearch::get_item_path(tcx, did);
|
||||
let fqn = fqn.move_iter().map(|i| i.to_str()).collect();
|
||||
let fqn = fqn.move_iter().map(|i| i.to_string()).collect();
|
||||
cx.external_paths.borrow_mut().get_mut_ref().insert(did,
|
||||
(fqn, TypeTrait));
|
||||
TraitBound(ResolvedPath {
|
||||
|
|
@ -558,7 +558,7 @@ impl Clean<TyParamBound> for ty::TraitRef {
|
|||
core::NotTyped(_) => return RegionBound,
|
||||
};
|
||||
let fqn = csearch::get_item_path(tcx, self.def_id);
|
||||
let fqn = fqn.move_iter().map(|i| i.to_str())
|
||||
let fqn = fqn.move_iter().map(|i| i.to_string())
|
||||
.collect::<Vec<String>>();
|
||||
let path = external_path(fqn.last().unwrap().as_slice(),
|
||||
&self.substs);
|
||||
|
|
@ -1137,7 +1137,7 @@ impl Primitive {
|
|||
return None
|
||||
}
|
||||
|
||||
pub fn to_str(&self) -> &'static str {
|
||||
pub fn to_string(&self) -> &'static str {
|
||||
match *self {
|
||||
Int => "int",
|
||||
I8 => "i8",
|
||||
|
|
@ -1163,7 +1163,7 @@ impl Primitive {
|
|||
pub fn to_url_str(&self) -> &'static str {
|
||||
match *self {
|
||||
Unit => "unit",
|
||||
other => other.to_str(),
|
||||
other => other.to_string(),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1242,7 +1242,7 @@ impl Clean<Type> for ty::t {
|
|||
lifetimes: Vec::new(), type_params: Vec::new()
|
||||
},
|
||||
decl: (ast_util::local_def(0), &fty.sig).clean(),
|
||||
abi: fty.abi.to_str(),
|
||||
abi: fty.abi.to_string(),
|
||||
}),
|
||||
ty::ty_closure(ref fty) => {
|
||||
let decl = box ClosureDecl {
|
||||
|
|
@ -1262,14 +1262,14 @@ impl Clean<Type> for ty::t {
|
|||
ty::ty_trait(box ty::TyTrait { def_id: did, ref substs, .. }) => {
|
||||
let fqn = csearch::get_item_path(get_cx().tcx(), did);
|
||||
let fqn: Vec<String> = fqn.move_iter().map(|i| {
|
||||
i.to_str()
|
||||
i.to_string()
|
||||
}).collect();
|
||||
let kind = match ty::get(*self).sty {
|
||||
ty::ty_struct(..) => TypeStruct,
|
||||
ty::ty_trait(..) => TypeTrait,
|
||||
_ => TypeEnum,
|
||||
};
|
||||
let path = external_path(fqn.last().unwrap().to_str().as_slice(),
|
||||
let path = external_path(fqn.last().unwrap().to_string().as_slice(),
|
||||
substs);
|
||||
get_cx().external_paths.borrow_mut().get_mut_ref()
|
||||
.insert(did, (fqn, kind));
|
||||
|
|
@ -1577,7 +1577,7 @@ impl Clean<PathSegment> for ast::PathSegment {
|
|||
}
|
||||
}
|
||||
|
||||
fn path_to_str(p: &ast::Path) -> String {
|
||||
fn path_to_string(p: &ast::Path) -> String {
|
||||
let mut s = String::new();
|
||||
let mut first = true;
|
||||
for i in p.segments.iter().map(|x| token::get_ident(x.identifier)) {
|
||||
|
|
@ -1643,7 +1643,7 @@ impl Clean<BareFunctionDecl> for ast::BareFnTy {
|
|||
type_params: Vec::new(),
|
||||
},
|
||||
decl: self.decl.clean(),
|
||||
abi: self.abi.to_str(),
|
||||
abi: self.abi.to_string(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1916,7 +1916,7 @@ impl ToSource for syntax::codemap::Span {
|
|||
}
|
||||
}
|
||||
|
||||
fn lit_to_str(lit: &ast::Lit) -> String {
|
||||
fn lit_to_string(lit: &ast::Lit) -> String {
|
||||
match lit.node {
|
||||
ast::LitStr(ref st, _) => st.get().to_string(),
|
||||
ast::LitBinary(ref data) => format!("{:?}", data.as_slice()),
|
||||
|
|
@ -1929,12 +1929,12 @@ fn lit_to_str(lit: &ast::Lit) -> String {
|
|||
res
|
||||
},
|
||||
ast::LitChar(c) => format!("'{}'", c),
|
||||
ast::LitInt(i, _t) => i.to_str(),
|
||||
ast::LitUint(u, _t) => u.to_str(),
|
||||
ast::LitIntUnsuffixed(i) => i.to_str(),
|
||||
ast::LitInt(i, _t) => i.to_string(),
|
||||
ast::LitUint(u, _t) => u.to_string(),
|
||||
ast::LitIntUnsuffixed(i) => i.to_string(),
|
||||
ast::LitFloat(ref f, _t) => f.get().to_string(),
|
||||
ast::LitFloatUnsuffixed(ref f) => f.get().to_string(),
|
||||
ast::LitBool(b) => b.to_str(),
|
||||
ast::LitBool(b) => b.to_string(),
|
||||
ast::LitNil => "".to_string(),
|
||||
}
|
||||
}
|
||||
|
|
@ -1947,7 +1947,7 @@ fn name_from_pat(p: &ast::Pat) -> String {
|
|||
PatWild => "_".to_string(),
|
||||
PatWildMulti => "..".to_string(),
|
||||
PatIdent(_, ref p, _) => token::get_ident(p.node).get().to_string(),
|
||||
PatEnum(ref p, _) => path_to_str(p),
|
||||
PatEnum(ref p, _) => path_to_string(p),
|
||||
PatStruct(..) => fail!("tried to get argument name from pat_struct, \
|
||||
which is not allowed in function arguments"),
|
||||
PatTup(..) => "(tuple arg NYI)".to_string(),
|
||||
|
|
|
|||
|
|
@ -351,7 +351,7 @@ impl fmt::Show for clean::Type {
|
|||
tybounds(f, typarams)
|
||||
}
|
||||
clean::Self(..) => f.write("Self".as_bytes()),
|
||||
clean::Primitive(prim) => primitive_link(f, prim, prim.to_str()),
|
||||
clean::Primitive(prim) => primitive_link(f, prim, prim.to_string()),
|
||||
clean::Closure(ref decl, ref region) => {
|
||||
write!(f, "{style}{lifetimes}|{args}|{bounds}{arrow}",
|
||||
style = FnStyleSpace(decl.fn_style),
|
||||
|
|
@ -405,7 +405,7 @@ impl fmt::Show for clean::Type {
|
|||
} else {
|
||||
let mut m = decl.bounds
|
||||
.iter()
|
||||
.map(|s| s.to_str());
|
||||
.map(|s| s.to_string());
|
||||
format!(
|
||||
": {}",
|
||||
m.collect::<Vec<String>>().connect(" + "))
|
||||
|
|
@ -607,7 +607,7 @@ impl<'a> fmt::Show for Stability<'a> {
|
|||
match *stab {
|
||||
Some(ref stability) => {
|
||||
write!(f, "<a class='stability {lvl}' title='{reason}'>{lvl}</a>",
|
||||
lvl = stability.level.to_str(),
|
||||
lvl = stability.level.to_string(),
|
||||
reason = stability.text)
|
||||
}
|
||||
None => Ok(())
|
||||
|
|
@ -621,7 +621,7 @@ impl<'a> fmt::Show for ConciseStability<'a> {
|
|||
match *stab {
|
||||
Some(ref stability) => {
|
||||
write!(f, "<a class='stability {lvl}' title='{lvl}{colon}{reason}'></a>",
|
||||
lvl = stability.level.to_str(),
|
||||
lvl = stability.level.to_string(),
|
||||
colon = if stability.text.len() > 0 { ": " } else { "" },
|
||||
reason = stability.text)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -229,7 +229,7 @@ pub fn render(w: &mut fmt::Formatter, s: &str, print_toc: bool) -> fmt::Result {
|
|||
// Transform the contents of the header into a hyphenated string
|
||||
let id = s.as_slice().words().map(|s| {
|
||||
match s.to_ascii_opt() {
|
||||
Some(s) => s.to_lower().into_str(),
|
||||
Some(s) => s.to_lower().into_string(),
|
||||
None => s.to_string()
|
||||
}
|
||||
}).collect::<Vec<String>>().connect("-");
|
||||
|
|
|
|||
|
|
@ -428,7 +428,7 @@ fn build_index(krate: &clean::Crate, cache: &mut Cache) -> io::IoResult<String>
|
|||
}
|
||||
try!(write!(&mut w, r#"[{:u},"{}","{}",{}"#,
|
||||
item.ty, item.name, path,
|
||||
item.desc.to_json().to_str()));
|
||||
item.desc.to_json().to_string()));
|
||||
match item.parent {
|
||||
Some(nodeid) => {
|
||||
let pathid = *nodeid_to_pathid.find(&nodeid).unwrap();
|
||||
|
|
|
|||
|
|
@ -367,7 +367,7 @@ fn json_input(input: &str) -> Result<Output, String> {
|
|||
}
|
||||
};
|
||||
match json::from_reader(&mut input) {
|
||||
Err(s) => Err(s.to_str()),
|
||||
Err(s) => Err(s.to_string()),
|
||||
Ok(json::Object(obj)) => {
|
||||
let mut obj = obj;
|
||||
// Make sure the schema is what we expect
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue