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 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(
|
||||
def_id,
|
||||
if let ty::InstanceDef::DropGlue(_, _) = instance.def {
|
||||
|
@ -198,7 +199,7 @@ struct SymbolPrinter<'tcx> {
|
|||
// `PrettyPrinter` aka pretty printing of e.g. types in paths,
|
||||
// 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 Path = Self;
|
||||
|
@ -242,7 +243,7 @@ impl Printer<'tcx> for SymbolPrinter<'tcx> {
|
|||
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
|
||||
if let ty::ConstKind::Value(ConstValue::Scalar(Scalar::Int { .. })) = ct.val {
|
||||
if ct.ty.is_integral() {
|
||||
|
@ -253,7 +254,7 @@ impl Printer<'tcx> for SymbolPrinter<'tcx> {
|
|||
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())?;
|
||||
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 {
|
||||
false
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue