Rollup merge of #87582 - tmiasko:symbol-printer, r=michaelwoerister
Implement `Printer` for `&mut SymbolPrinter` to avoid passing `SymbolPrinter` by value.
This commit is contained in:
commit
43b7cad3e5
1 changed files with 6 additions and 5 deletions
|
@ -55,7 +55,8 @@ pub(super) fn mangle(
|
||||||
|
|
||||||
let hash = get_symbol_hash(tcx, instance, instance_ty, instantiating_crate);
|
let hash = get_symbol_hash(tcx, instance, instance_ty, instantiating_crate);
|
||||||
|
|
||||||
let mut printer = SymbolPrinter { tcx, path: SymbolPath::new(), keep_within_component: false }
|
let mut printer = SymbolPrinter { tcx, path: SymbolPath::new(), keep_within_component: false };
|
||||||
|
printer
|
||||||
.print_def_path(
|
.print_def_path(
|
||||||
def_id,
|
def_id,
|
||||||
if let ty::InstanceDef::DropGlue(_, _) = instance.def {
|
if let ty::InstanceDef::DropGlue(_, _) = instance.def {
|
||||||
|
@ -198,7 +199,7 @@ struct SymbolPrinter<'tcx> {
|
||||||
// `PrettyPrinter` aka pretty printing of e.g. types in paths,
|
// `PrettyPrinter` aka pretty printing of e.g. types in paths,
|
||||||
// symbol names should have their own printing machinery.
|
// symbol names should have their own printing machinery.
|
||||||
|
|
||||||
impl Printer<'tcx> for SymbolPrinter<'tcx> {
|
impl Printer<'tcx> for &mut SymbolPrinter<'tcx> {
|
||||||
type Error = fmt::Error;
|
type Error = fmt::Error;
|
||||||
|
|
||||||
type Path = Self;
|
type Path = Self;
|
||||||
|
@ -242,7 +243,7 @@ impl Printer<'tcx> for SymbolPrinter<'tcx> {
|
||||||
Ok(self)
|
Ok(self)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn print_const(mut self, ct: &'tcx ty::Const<'tcx>) -> Result<Self::Const, Self::Error> {
|
fn print_const(self, ct: &'tcx ty::Const<'tcx>) -> Result<Self::Const, Self::Error> {
|
||||||
// only print integers
|
// only print integers
|
||||||
if let ty::ConstKind::Value(ConstValue::Scalar(Scalar::Int { .. })) = ct.val {
|
if let ty::ConstKind::Value(ConstValue::Scalar(Scalar::Int { .. })) = ct.val {
|
||||||
if ct.ty.is_integral() {
|
if ct.ty.is_integral() {
|
||||||
|
@ -253,7 +254,7 @@ impl Printer<'tcx> for SymbolPrinter<'tcx> {
|
||||||
Ok(self)
|
Ok(self)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn path_crate(mut self, cnum: CrateNum) -> Result<Self::Path, Self::Error> {
|
fn path_crate(self, cnum: CrateNum) -> Result<Self::Path, Self::Error> {
|
||||||
self.write_str(&self.tcx.crate_name(cnum).as_str())?;
|
self.write_str(&self.tcx.crate_name(cnum).as_str())?;
|
||||||
Ok(self)
|
Ok(self)
|
||||||
}
|
}
|
||||||
|
@ -344,7 +345,7 @@ impl Printer<'tcx> for SymbolPrinter<'tcx> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl PrettyPrinter<'tcx> for SymbolPrinter<'tcx> {
|
impl PrettyPrinter<'tcx> for &mut SymbolPrinter<'tcx> {
|
||||||
fn region_should_not_be_omitted(&self, _region: ty::Region<'_>) -> bool {
|
fn region_should_not_be_omitted(&self, _region: ty::Region<'_>) -> bool {
|
||||||
false
|
false
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue