Rollup merge of #84466 - jyn514:prim-str, r=GuillaumeGomez
rustdoc: Remove `PrimitiveType::{to_url_str, as_str}` These can easily be rewritten in terms of `as_sym`, and this avoids bugs where the two get out of sync. I don't expect this to have a perf impact, but I'll start a perf run just in case.
This commit is contained in:
commit
74c744e54a
4 changed files with 10 additions and 45 deletions
|
@ -1767,37 +1767,6 @@ impl PrimitiveType {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
crate fn as_str(&self) -> &'static str {
|
|
||||||
use self::PrimitiveType::*;
|
|
||||||
match *self {
|
|
||||||
Isize => "isize",
|
|
||||||
I8 => "i8",
|
|
||||||
I16 => "i16",
|
|
||||||
I32 => "i32",
|
|
||||||
I64 => "i64",
|
|
||||||
I128 => "i128",
|
|
||||||
Usize => "usize",
|
|
||||||
U8 => "u8",
|
|
||||||
U16 => "u16",
|
|
||||||
U32 => "u32",
|
|
||||||
U64 => "u64",
|
|
||||||
U128 => "u128",
|
|
||||||
F32 => "f32",
|
|
||||||
F64 => "f64",
|
|
||||||
Str => "str",
|
|
||||||
Bool => "bool",
|
|
||||||
Char => "char",
|
|
||||||
Array => "array",
|
|
||||||
Slice => "slice",
|
|
||||||
Tuple => "tuple",
|
|
||||||
Unit => "unit",
|
|
||||||
RawPointer => "pointer",
|
|
||||||
Reference => "reference",
|
|
||||||
Fn => "fn",
|
|
||||||
Never => "never",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
crate fn impls(&self, tcx: TyCtxt<'_>) -> &'static ArrayVec<DefId, 4> {
|
crate fn impls(&self, tcx: TyCtxt<'_>) -> &'static ArrayVec<DefId, 4> {
|
||||||
Self::all_impls(tcx).get(self).expect("missing impl for primitive type")
|
Self::all_impls(tcx).get(self).expect("missing impl for primitive type")
|
||||||
}
|
}
|
||||||
|
@ -1860,10 +1829,6 @@ impl PrimitiveType {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
crate fn to_url_str(&self) -> &'static str {
|
|
||||||
self.as_str()
|
|
||||||
}
|
|
||||||
|
|
||||||
crate fn as_sym(&self) -> Symbol {
|
crate fn as_sym(&self) -> Symbol {
|
||||||
use PrimitiveType::*;
|
use PrimitiveType::*;
|
||||||
match self {
|
match self {
|
||||||
|
|
|
@ -574,7 +574,7 @@ fn primitive_link(
|
||||||
f,
|
f,
|
||||||
"<a class=\"primitive\" href=\"{}primitive.{}.html\">",
|
"<a class=\"primitive\" href=\"{}primitive.{}.html\">",
|
||||||
"../".repeat(len),
|
"../".repeat(len),
|
||||||
prim.to_url_str()
|
prim.as_sym()
|
||||||
)?;
|
)?;
|
||||||
needs_termination = true;
|
needs_termination = true;
|
||||||
}
|
}
|
||||||
|
@ -603,7 +603,7 @@ fn primitive_link(
|
||||||
f,
|
f,
|
||||||
"<a class=\"primitive\" href=\"{}/primitive.{}.html\">",
|
"<a class=\"primitive\" href=\"{}/primitive.{}.html\">",
|
||||||
loc.join("/"),
|
loc.join("/"),
|
||||||
prim.to_url_str()
|
prim.as_sym()
|
||||||
)?;
|
)?;
|
||||||
needs_termination = true;
|
needs_termination = true;
|
||||||
}
|
}
|
||||||
|
@ -677,7 +677,7 @@ fn fmt_type<'cx>(
|
||||||
fmt::Display::fmt(&tybounds(param_names, cx), f)
|
fmt::Display::fmt(&tybounds(param_names, cx), f)
|
||||||
}
|
}
|
||||||
clean::Infer => write!(f, "_"),
|
clean::Infer => write!(f, "_"),
|
||||||
clean::Primitive(prim) => primitive_link(f, prim, prim.as_str(), cx),
|
clean::Primitive(prim) => primitive_link(f, prim, &*prim.as_sym().as_str(), cx),
|
||||||
clean::BareFunction(ref decl) => {
|
clean::BareFunction(ref decl) => {
|
||||||
if f.alternate() {
|
if f.alternate() {
|
||||||
write!(
|
write!(
|
||||||
|
|
|
@ -379,7 +379,7 @@ impl FromWithTcx<clean::Type> for Type {
|
||||||
.unwrap_or_default(),
|
.unwrap_or_default(),
|
||||||
},
|
},
|
||||||
Generic(s) => Type::Generic(s.to_string()),
|
Generic(s) => Type::Generic(s.to_string()),
|
||||||
Primitive(p) => Type::Primitive(p.as_str().to_string()),
|
Primitive(p) => Type::Primitive(p.as_sym().to_string()),
|
||||||
BareFunction(f) => Type::FunctionPointer(Box::new((*f).into_tcx(tcx))),
|
BareFunction(f) => Type::FunctionPointer(Box::new((*f).into_tcx(tcx))),
|
||||||
Tuple(t) => Type::Tuple(t.into_iter().map(|x| x.into_tcx(tcx)).collect()),
|
Tuple(t) => Type::Tuple(t.into_iter().map(|x| x.into_tcx(tcx)).collect()),
|
||||||
Slice(t) => Type::Slice(Box::new((*t).into_tcx(tcx))),
|
Slice(t) => Type::Slice(Box::new((*t).into_tcx(tcx))),
|
||||||
|
|
|
@ -91,10 +91,10 @@ impl Res {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn name(self, tcx: TyCtxt<'_>) -> String {
|
fn name(self, tcx: TyCtxt<'_>) -> Symbol {
|
||||||
match self {
|
match self {
|
||||||
Res::Def(_, id) => tcx.item_name(id).to_string(),
|
Res::Def(_, id) => tcx.item_name(id),
|
||||||
Res::Primitive(prim) => prim.as_str().to_string(),
|
Res::Primitive(prim) => prim.as_sym(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -388,7 +388,7 @@ impl<'a, 'tcx> LinkCollector<'a, 'tcx> {
|
||||||
ty::AssocKind::Const => "associatedconstant",
|
ty::AssocKind::Const => "associatedconstant",
|
||||||
ty::AssocKind::Type => "associatedtype",
|
ty::AssocKind::Type => "associatedtype",
|
||||||
};
|
};
|
||||||
let fragment = format!("{}#{}.{}", prim_ty.as_str(), out, item_name);
|
let fragment = format!("{}#{}.{}", prim_ty.as_sym(), out, item_name);
|
||||||
(Res::Primitive(prim_ty), fragment, Some((kind.as_def_kind(), item.def_id)))
|
(Res::Primitive(prim_ty), fragment, Some((kind.as_def_kind(), item.def_id)))
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@ -481,7 +481,7 @@ impl<'a, 'tcx> LinkCollector<'a, 'tcx> {
|
||||||
AnchorFailure::RustdocAnchorConflict(res),
|
AnchorFailure::RustdocAnchorConflict(res),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
return Ok((res, Some(ty.as_str().to_owned())));
|
return Ok((res, Some(ty.as_sym().to_string())));
|
||||||
}
|
}
|
||||||
_ => return Ok((res, extra_fragment.clone())),
|
_ => return Ok((res, extra_fragment.clone())),
|
||||||
}
|
}
|
||||||
|
@ -1148,7 +1148,7 @@ impl LinkCollector<'_, '_> {
|
||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
res = prim;
|
res = prim;
|
||||||
fragment = Some(prim.name(self.cx.tcx));
|
fragment = Some(prim.name(self.cx.tcx).to_string());
|
||||||
} else {
|
} else {
|
||||||
// `[char]` when a `char` module is in scope
|
// `[char]` when a `char` module is in scope
|
||||||
let candidates = vec![res, prim];
|
let candidates = vec![res, prim];
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue