mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 23:04:33 +00:00
Rollup merge of #127978 - nyurik:lib-refs, r=workingjubilee
Avoid ref when using format! for perf Clean up a few minor refs in `format!` macro, as it has a performance cost. Apparently the compiler is unable to inline `format!("{}", &variable)`, and does a run-time double-reference instead (format macro already does one level referencing). Inlining format args prevents accidental `&` misuse.
This commit is contained in:
commit
e28be0d168
@ -1026,7 +1026,7 @@ impl<'a, 'b: 'a> DebugMap<'a, 'b> {
|
||||
/// assert_eq!(format!("{}", value), "a");
|
||||
/// assert_eq!(format!("{:?}", value), "'a'");
|
||||
///
|
||||
/// let wrapped = fmt::FormatterFn(|f| write!(f, "{:?}", &value));
|
||||
/// let wrapped = fmt::FormatterFn(|f| write!(f, "{value:?}"));
|
||||
/// assert_eq!(format!("{}", wrapped), "'a'");
|
||||
/// assert_eq!(format!("{:?}", wrapped), "'a'");
|
||||
/// ```
|
||||
|
@ -56,7 +56,7 @@ fn test_join() {
|
||||
|
||||
let y = String::new();
|
||||
let x = join!(async {
|
||||
println!("{}", &y);
|
||||
println!("{y}");
|
||||
1
|
||||
})
|
||||
.await;
|
||||
|
@ -1544,10 +1544,10 @@ impl fmt::Debug for Literal {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
f.debug_struct("Literal")
|
||||
// format the kind on one line even in {:#?} mode
|
||||
.field("kind", &format_args!("{:?}", &self.0.kind))
|
||||
.field("kind", &format_args!("{:?}", self.0.kind))
|
||||
.field("symbol", &self.0.symbol)
|
||||
// format `Some("...")` on one line even in {:#?} mode
|
||||
.field("suffix", &format_args!("{:?}", &self.0.suffix))
|
||||
.field("suffix", &format_args!("{:?}", self.0.suffix))
|
||||
.field("span", &self.0.span)
|
||||
.finish()
|
||||
}
|
||||
|
@ -683,7 +683,7 @@ fn recursive_rmdir_toctou() {
|
||||
let drop_canary_arc = Arc::new(());
|
||||
let drop_canary_weak = Arc::downgrade(&drop_canary_arc);
|
||||
|
||||
eprintln!("x: {:?}", &victim_del_path);
|
||||
eprintln!("x: {victim_del_path:?}");
|
||||
|
||||
// victim just continuously removes `victim_del`
|
||||
thread::spawn(move || {
|
||||
|
@ -775,7 +775,7 @@ impl Error {
|
||||
///
|
||||
/// impl Display for MyError {
|
||||
/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
/// write!(f, "MyError: {}", &self.v)
|
||||
/// write!(f, "MyError: {}", self.v)
|
||||
/// }
|
||||
/// }
|
||||
///
|
||||
|
Loading…
Reference in New Issue
Block a user