Auto merge of #94062 - Mark-Simulacrum:drop-print-cfg, r=oli-obk
Move ty::print methods to Drop-based scope guards Primary goal is reducing codegen of the TLS access for each closure, which shaves ~3 seconds of bootstrap time over rustc as a whole.
This commit is contained in:
commit
523a1b1d38
30 changed files with 142 additions and 142 deletions
|
@ -53,7 +53,7 @@ fn eval_body_using_ecx<'mir, 'tcx>(
|
|||
|
||||
trace!(
|
||||
"eval_body_using_ecx: pushing stack frame for global: {}{}",
|
||||
with_no_trimmed_paths(|| ty::tls::with(|tcx| tcx.def_path_str(cid.instance.def_id()))),
|
||||
with_no_trimmed_paths!(ty::tls::with(|tcx| tcx.def_path_str(cid.instance.def_id()))),
|
||||
cid.promoted.map_or_else(String::new, |p| format!("::promoted[{:?}]", p))
|
||||
);
|
||||
|
||||
|
@ -274,7 +274,7 @@ pub fn eval_to_allocation_raw_provider<'tcx>(
|
|||
// The next two lines concatenated contain some discussion:
|
||||
// https://rust-lang.zulipchat.com/#narrow/stream/146212-t-compiler.2Fconst-eval/
|
||||
// subject/anon_const_instance_printing/near/135980032
|
||||
let instance = with_no_trimmed_paths(|| key.value.instance.to_string());
|
||||
let instance = with_no_trimmed_paths!(key.value.instance.to_string());
|
||||
trace!("const eval: {:?} ({})", key, instance);
|
||||
}
|
||||
|
||||
|
@ -317,7 +317,7 @@ pub fn eval_to_allocation_raw_provider<'tcx>(
|
|||
// the expression, leading to the const eval error.
|
||||
let instance = &key.value.instance;
|
||||
if !instance.substs.is_empty() {
|
||||
let instance = with_no_trimmed_paths(|| instance.to_string());
|
||||
let instance = with_no_trimmed_paths!(instance.to_string());
|
||||
let msg = format!("evaluation of `{}` failed", instance);
|
||||
Cow::from(msg)
|
||||
} else {
|
||||
|
|
|
@ -33,7 +33,7 @@ macro_rules! throw_validation_failure {
|
|||
msg.push_str(", but expected ");
|
||||
write!(&mut msg, $($expected_fmt),+).unwrap();
|
||||
)?
|
||||
let path = rustc_middle::ty::print::with_no_trimmed_paths(|| {
|
||||
let path = rustc_middle::ty::print::with_no_trimmed_paths!({
|
||||
let where_ = &$where;
|
||||
if !where_.is_empty() {
|
||||
let mut path = String::new();
|
||||
|
|
|
@ -108,9 +108,10 @@ impl<'tcx> NonConstOp<'tcx> for FnCallNonConst<'tcx> {
|
|||
.as_ref()
|
||||
.and_then(|node| node.generics())
|
||||
{
|
||||
let constraint = with_no_trimmed_paths(|| {
|
||||
format!("~const {}", trait_ref.print_only_trait_path())
|
||||
});
|
||||
let constraint = with_no_trimmed_paths!(format!(
|
||||
"~const {}",
|
||||
trait_ref.print_only_trait_path()
|
||||
));
|
||||
suggest_constraining_type_param(
|
||||
tcx,
|
||||
generics,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue