Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DO NOT MERGE] Tail expr drop order crater run #129607

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

dingxiangfei2009
Copy link
Contributor

I would like to nominate a crater run for a build and test build-and-test.

Through this experiment, we would like to find out the extend of breakage in the ecosystem due to the change in drop order. This will help us evaluate the migration strategy and lint level.

@rustbot
Copy link
Collaborator

rustbot commented Aug 26, 2024

r? @Nadrieril

rustbot has assigned @Nadrieril.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Aug 26, 2024
@dingxiangfei2009
Copy link
Contributor Author

cc @traviscross

@dingxiangfei2009 dingxiangfei2009 changed the title Tail expr drop order crater run [DO NOT MERGE] Tail expr drop order crater run Aug 26, 2024
@jieyouxu
Copy link
Member

r? jieyouxu

@rustbot rustbot assigned jieyouxu and unassigned Nadrieril Aug 26, 2024
if visitor.tcx.features().shorter_tail_lifetimes
&& blk.span.edition().at_least_rust_2024()
{
if blk.span.edition().at_least_rust_2021() {
Copy link
Member

@jieyouxu jieyouxu Aug 26, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question: note that this will limit your analysis of breakage to crates that are edition=2021 and beyond. Does previous editions have tail expr drop changes? Or should this not be gated on editions at all?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Forgot to say. I think not and the drop order should have been consistent before and including Edition 2021.

@traviscross
Copy link
Contributor

In side discussion, I've suggested revising this PR such that it will both have the new lint fire at deny-by-default and will enable the new behavior. That way, we'll get a full list of all crates affected in any way. We can then do more targeted and faster crater runs against that list then, if needed.

@dingxiangfei2009 is working on that.

@dingxiangfei2009
Copy link
Contributor Author

@jieyouxu for context, let's do a build-and-test with +rustflags=-Dtail-expr-drop-order

Does this craterbot flag make sense @traviscross ?

@jieyouxu
Copy link
Member

TC can also run crater so yeah whatever makes sense

@rust-log-analyzer

This comment has been minimized.

@dingxiangfei2009
Copy link
Contributor Author

@jieyouxu a few adjustments

Given that it is possible to migration code straight from Edition 2015 to 2024, I will drop the the edition gate everywhere the feature touches, to maximise the coverage of this change on more crates.

@jieyouxu
Copy link
Member

I suspect you'll also need to temporarily ignore a few tests so the try job can build

@rust-log-analyzer

This comment has been minimized.

@jieyouxu
Copy link
Member

the gnu-tools failure looks genuine, but the heavy macro usage makes it hard to tell the root cause

@jieyouxu
Copy link
Member

Locally:

error[E0716]: temporary value dropped while borrowed
    --> /home/gh-jieyouxu/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:2327:17
     |
584  |   macro_rules! event {
     |   ------------------
     |   |
     |   in this expansion of `$crate::event!` (#2)
     |   in this expansion of `$crate::event!` (#3)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
664  | |                 $crate::Event::dispatch(
...    |
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     | |________________------------------------------------------------------------- borrow later used here
     |                  |
     |                  in this macro invocation (#4)
...
683  | /         $crate::event!(
684  | |             target: $target,
685  | |             $lvl,
686  | |             { message = format_args!($($arg)+), $($fields)* }
687  | |         )
     | |_________- in this macro invocation (#3)
...
1691 |   macro_rules! warn {
     |   ----------------- in this expansion of `warn!` (#1)
...
1860 | /         $crate::event!(
1861 | |             target: module_path!(),
1862 | |             $crate::Level::WARN,
1863 | |             {},
1864 | |             $($arg)+
1865 | |         )
     | |_________- in this macro invocation (#2)
...
2180 |   macro_rules! valueset {
     |   --------------------- in this expansion of `$crate::valueset!` (#4)
...
2327 |                   iter.next().expect("FieldSet corrupted (this is a bug)"),
     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2328 |                   $($kvs)+
2329 |               ))
     |                - temporary value is freed at the end of this statement
     |
    ::: compiler/rustc_data_structures/src/profiling.rs:596:17
     |
596  | /                 warn!(
597  | |                     "Unknown self-profiler events specified: {}. Available options are: {}.",
598  | |                     unknown_events.join(", "),
599  | |                     EVENT_FILTERS_BY_NAME
...    |
603  | |                         .join(", ")
604  | |                 );
     | |_________________- in this macro invocation (#1)
     |
     = note: consider using a `let` binding to create a longer lived value

For more information about this error, try `rustc --explain E0716`.

@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-tools failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     | |____________________________________________________________________________- borrow later used here
...
686  |               { message = format_args!($($arg)+), $($fields)* }
     |                           |
     |                           creates a temporary value which is freed while still in use
     |                           in this macro invocation (#3)
...
---
     |                - temporary value is freed at the end of this statement
     |
    ::: compiler/rustc_data_structures/src/graph/implementation/mod.rs:136:9
     |
136  |           debug!("graph: add_edge({:?}, {:?}, {:?})", source, target, data);
     |
    ::: /checkout/library/core/src/macros/mod.rs:1030:5
     |
1030 |       macro_rules! format_args {
---
     |   |
     |   in this expansion of `$crate::event!` (#2)
     |   in this expansion of `$crate::event!` (#3)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#4)
...
683  | /         $crate::event!(
683  | /         $crate::event!(
684  | |             target: $target,
685  | |             $lvl,
686  | |             { message = format_args!($($arg)+), $($fields)* }
     | |_________- in this macro invocation (#3)
...
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
---
     |   in this expansion of `$crate::valueset!` (#4)
     |   in this expansion of `$crate::valueset!` (#5)
     |   in this expansion of `$crate::valueset!` (#6)
...
2184 |           &[ $($val),* ]
     |            ^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2209 | /         $crate::valueset!(
2209 | /         $crate::valueset!(
2210 | |             @ { $($out),*, (&$next, Some(&$val as &dyn Value)) },
2211 | |             $next,
2212 | |             $($rest)*
     | |_________- in this macro invocation (#6)
...
...
2325 |               $fields.value_set($crate::valueset!(
     |  _______________________________-
2326 | |                 @ { },
2327 | |                 iter.next().expect("FieldSet corrupted (this is a bug)"),
2328 | |                 $($kvs)+
     | |             -- temporary value is freed at the end of this statement
     | |_____________|
     |               in this macro invocation (#5)
     |
     |
    ::: compiler/rustc_data_structures/src/graph/implementation/mod.rs:136:9
     |
136  |           debug!("graph: add_edge({:?}, {:?}, {:?})", source, target, data);
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
---
     |   |
     |   in this expansion of `$crate::event!` (#2)
     |   in this expansion of `$crate::event!` (#3)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#4)
...
683  | /         $crate::event!(
683  | /         $crate::event!(
684  | |             target: $target,
685  | |             $lvl,
686  | |             { message = format_args!($($arg)+), $($fields)* }
     | |_________- in this macro invocation (#3)
...
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
---
...
2180 |   macro_rules! valueset {
     |   --------------------- in this expansion of `$crate::valueset!` (#4)
...
2327 |                   iter.next().expect("FieldSet corrupted (this is a bug)"),
     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2328 |                   $($kvs)+
     |                - temporary value is freed at the end of this statement
     |
    ::: compiler/rustc_data_structures/src/graph/implementation/mod.rs:136:9
     |
     |
136  |           debug!("graph: add_edge({:?}, {:?}, {:?})", source, target, data);
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
error[E0716]: temporary value dropped while borrowed
    --> compiler/rustc_data_structures/src/graph/scc/mod.rs:206:13
     |
206  |               self.len(),
     |               ^^^^^^^^^^ creates a temporary value which is freed while still in use
     |
    ::: /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:661:13
     |
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     | |____________________________________________________________________________- borrow later used here
2329 |               ))
     |                - temporary value is freed at the end of this statement
     |
     = note: consider using a `let` binding to create a longer lived value
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
    --> compiler/rustc_data_structures/src/graph/scc/mod.rs:207:13
     |
207  |               &self.all_successors[all_successors_start..all_successors_end],
     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
    ::: /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:661:13
     |
     |
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     | |____________________________________________________________________________- borrow later used here
2329 |               ))
     |                - temporary value is freed at the end of this statement
     |
     = note: consider using a `let` binding to create a longer lived value
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
    --> /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:686:25
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     | |____________________________________________________________________________- borrow later used here
...
686  |               { message = format_args!($($arg)+), $($fields)* }
     |                           |
     |                           creates a temporary value which is freed while still in use
     |                           in this macro invocation (#3)
...
---
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:204:9
     |
204  | /         debug!(
205  | |             "create_scc({:?}) successors={:?}, annotation={:?}",
206  | |             self.len(),
207  | |             &self.all_successors[all_successors_start..all_successors_end],
209  | |         );
     | |_________- in this macro invocation (#1)
     |
     = note: consider using a `let` binding to create a longer lived value
---
     |   |
     |   in this expansion of `$crate::event!` (#2)
     |   in this expansion of `$crate::event!` (#3)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#4)
...
683  | /         $crate::event!(
683  | /         $crate::event!(
684  | |             target: $target,
685  | |             $lvl,
686  | |             { message = format_args!($($arg)+), $($fields)* }
     | |_________- in this macro invocation (#3)
...
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
---
     |   in this expansion of `$crate::valueset!` (#4)
     |   in this expansion of `$crate::valueset!` (#5)
     |   in this expansion of `$crate::valueset!` (#6)
...
2184 |           &[ $($val),* ]
     |            ^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2209 | /         $crate::valueset!(
2209 | /         $crate::valueset!(
2210 | |             @ { $($out),*, (&$next, Some(&$val as &dyn Value)) },
2211 | |             $next,
2212 | |             $($rest)*
     | |_________- in this macro invocation (#6)
...
...
2325 |               $fields.value_set($crate::valueset!(
     |  _______________________________-
2326 | |                 @ { },
2327 | |                 iter.next().expect("FieldSet corrupted (this is a bug)"),
2328 | |                 $($kvs)+
     | |             -- temporary value is freed at the end of this statement
     | |_____________|
     |               in this macro invocation (#5)
     |
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:204:9
     |
204  | /         debug!(
205  | |             "create_scc({:?}) successors={:?}, annotation={:?}",
206  | |             self.len(),
207  | |             &self.all_successors[all_successors_start..all_successors_end],
209  | |         );
     | |_________- in this macro invocation (#1)
     |
     = note: consider using a `let` binding to create a longer lived value
---
     |   |
     |   in this expansion of `$crate::event!` (#2)
     |   in this expansion of `$crate::event!` (#3)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#4)
...
683  | /         $crate::event!(
683  | /         $crate::event!(
684  | |             target: $target,
685  | |             $lvl,
686  | |             { message = format_args!($($arg)+), $($fields)* }
     | |_________- in this macro invocation (#3)
...
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
---
...
2180 |   macro_rules! valueset {
     |   --------------------- in this expansion of `$crate::valueset!` (#4)
...
2327 |                   iter.next().expect("FieldSet corrupted (this is a bug)"),
     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2328 |                   $($kvs)+
     |                - temporary value is freed at the end of this statement
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:204:9
     |
     |
204  | /         debug!(
205  | |             "create_scc({:?}) successors={:?}, annotation={:?}",
206  | |             self.len(),
207  | |             &self.all_successors[all_successors_start..all_successors_end],
209  | |         );
     | |_________- in this macro invocation (#1)
     |
     = note: consider using a `let` binding to create a longer lived value
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
    --> /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:686:25
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     | |____________________________________________________________________________- borrow later used here
...
686  |               { message = format_args!($($arg)+), $($fields)* }
     |                           |
     |                           creates a temporary value which is freed while still in use
     |                           in this macro invocation (#3)
...
---
     |                - temporary value is freed at the end of this statement
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:411:17
     |
411  |                   debug!("find_state(r = {node:?} in state {:?})", self.node_states[node]);
     |
    ::: /checkout/library/core/src/macros/mod.rs:1030:5
     |
1030 |       macro_rules! format_args {
---
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     | |____________________________________________________________________________- borrow later used here
...
686  |               { message = format_args!($($arg)+), $($fields)* }
     |                           |
     |                           creates a temporary value which is freed while still in use
     |                           in this macro invocation (#3)
...
---
     |                - temporary value is freed at the end of this statement
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:485:13
     |
485  |               debug!("Compressing {node:?} down to {previous_node:?} with state {assigned_state:?}");
     |
    ::: /checkout/library/core/src/macros/mod.rs:1030:5
     |
1030 |       macro_rules! format_args {
---
     |   |
     |   in this expansion of `$crate::event!` (#2)
     |   in this expansion of `$crate::event!` (#3)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#4)
...
683  | /         $crate::event!(
683  | /         $crate::event!(
684  | |             target: $target,
685  | |             $lvl,
686  | |             { message = format_args!($($arg)+), $($fields)* }
     | |_________- in this macro invocation (#3)
...
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
---
     |   in this expansion of `$crate::valueset!` (#4)
     |   in this expansion of `$crate::valueset!` (#5)
     |   in this expansion of `$crate::valueset!` (#6)
...
2184 |           &[ $($val),* ]
     |            ^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2209 | /         $crate::valueset!(
2209 | /         $crate::valueset!(
2210 | |             @ { $($out),*, (&$next, Some(&$val as &dyn Value)) },
2211 | |             $next,
2212 | |             $($rest)*
     | |_________- in this macro invocation (#6)
...
...
2325 |               $fields.value_set($crate::valueset!(
     |  _______________________________-
2326 | |                 @ { },
2327 | |                 iter.next().expect("FieldSet corrupted (this is a bug)"),
2328 | |                 $($kvs)+
     | |             -- temporary value is freed at the end of this statement
     | |_____________|
     |               in this macro invocation (#5)
     |
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:411:17
     |
411  |                   debug!("find_state(r = {node:?} in state {:?})", self.node_states[node]);
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
---
     |   |
     |   in this expansion of `$crate::event!` (#2)
     |   in this expansion of `$crate::event!` (#3)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#4)
...
683  | /         $crate::event!(
683  | /         $crate::event!(
684  | |             target: $target,
685  | |             $lvl,
686  | |             { message = format_args!($($arg)+), $($fields)* }
     | |_________- in this macro invocation (#3)
...
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
---
     |   in this expansion of `$crate::valueset!` (#4)
     |   in this expansion of `$crate::valueset!` (#5)
     |   in this expansion of `$crate::valueset!` (#6)
...
2184 |           &[ $($val),* ]
     |            ^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2209 | /         $crate::valueset!(
2209 | /         $crate::valueset!(
2210 | |             @ { $($out),*, (&$next, Some(&$val as &dyn Value)) },
2211 | |             $next,
2212 | |             $($rest)*
     | |_________- in this macro invocation (#6)
...
...
2325 |               $fields.value_set($crate::valueset!(
     |  _______________________________-
2326 | |                 @ { },
2327 | |                 iter.next().expect("FieldSet corrupted (this is a bug)"),
2328 | |                 $($kvs)+
     | |             -- temporary value is freed at the end of this statement
     | |_____________|
     |               in this macro invocation (#5)
     |
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:485:13
     |
485  |               debug!("Compressing {node:?} down to {previous_node:?} with state {assigned_state:?}");
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
---
     |   |
     |   in this expansion of `$crate::event!` (#2)
     |   in this expansion of `$crate::event!` (#3)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#4)
...
683  | /         $crate::event!(
683  | /         $crate::event!(
684  | |             target: $target,
685  | |             $lvl,
686  | |             { message = format_args!($($arg)+), $($fields)* }
     | |_________- in this macro invocation (#3)
...
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
---
...
2180 |   macro_rules! valueset {
     |   --------------------- in this expansion of `$crate::valueset!` (#4)
...
2327 |                   iter.next().expect("FieldSet corrupted (this is a bug)"),
     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2328 |                   $($kvs)+
     |                - temporary value is freed at the end of this statement
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:411:17
     |
     |
411  |                   debug!("find_state(r = {node:?} in state {:?})", self.node_states[node]);
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
---
     |   |
     |   in this expansion of `$crate::event!` (#2)
     |   in this expansion of `$crate::event!` (#3)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#4)
...
683  | /         $crate::event!(
683  | /         $crate::event!(
684  | |             target: $target,
685  | |             $lvl,
686  | |             { message = format_args!($($arg)+), $($fields)* }
     | |_________- in this macro invocation (#3)
...
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
---
...
2180 |   macro_rules! valueset {
     |   --------------------- in this expansion of `$crate::valueset!` (#4)
...
2327 |                   iter.next().expect("FieldSet corrupted (this is a bug)"),
     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2328 |                   $($kvs)+
     |                - temporary value is freed at the end of this statement
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:485:13
     |
     |
485  |               debug!("Compressing {node:?} down to {previous_node:?} with state {assigned_state:?}");
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
error[E0716]: temporary value dropped while borrowed
    --> /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:2184:10
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#3)
...
1274 |   macro_rules! debug {
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
...
1408 | /         $crate::event!(
1409 | |             target: module_path!(),
1410 | |             $crate::Level::DEBUG,
1411 | |             { ?$($k).+, $($field)*}
     | |_________- in this macro invocation (#2)
...
2180 |   macro_rules! valueset {
     |   ---------------------
     |   ---------------------
     |   |
     |   in this expansion of `$crate::valueset!` (#3)
     |   in this expansion of `$crate::valueset!` (#4)
     |   in this expansion of `$crate::valueset!` (#5)
     |   in this expansion of `$crate::valueset!` (#6)
...
2184 |           &[ $($val),* ]
     |            ^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2223 | /         $crate::valueset!(
2223 | /         $crate::valueset!(
2224 | |             @ { $($out),*, (&$next, Some(&debug(&$($k).+) as &dyn Value)) },
2225 | |             $next,
2226 | |             $($rest)*
     | |_________- in this macro invocation (#5)
...
2261 | /         $crate::valueset!(
2261 | /         $crate::valueset!(
2262 | |             @ { $($out),*, (&$next, Some(&debug(&$($k).+) as &dyn Value)) },
2263 | |             $next,
     | |_________- in this macro invocation (#6)
...
...
2325 |               $fields.value_set($crate::valueset!(
     |  _______________________________-
2326 | |                 @ { },
2327 | |                 iter.next().expect("FieldSet corrupted (this is a bug)"),
2328 | |                 $($kvs)+
     | |             -- temporary value is freed at the end of this statement
     | |_____________|
     |               in this macro invocation (#4)
     |
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:601:17
     |
601  |                   debug!(?node, ?successor_node);
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
error[E0716]: temporary value dropped while borrowed
    --> /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:2224:43
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#3)
...
1274 |   macro_rules! debug {
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
...
1408 | /         $crate::event!(
1409 | |             target: module_path!(),
1410 | |             $crate::Level::DEBUG,
1411 | |             { ?$($k).+, $($field)*}
     | |_________- in this macro invocation (#2)
...
2180 |   macro_rules! valueset {
     |   ---------------------
     |   ---------------------
     |   |
     |   in this expansion of `$crate::valueset!` (#3)
     |   in this expansion of `$crate::valueset!` (#4)
...
2224 |               @ { $($out),*, (&$next, Some(&debug(&$($k).+) as &dyn Value)) },
     |                                             ^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
...
2325 |               $fields.value_set($crate::valueset!(
     |  _______________________________-
2326 | |                 @ { },
2327 | |                 iter.next().expect("FieldSet corrupted (this is a bug)"),
2328 | |                 $($kvs)+
     | |             -- temporary value is freed at the end of this statement
     | |_____________|
     |               in this macro invocation (#4)
     |
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:601:17
     |
601  |                   debug!(?node, ?successor_node);
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
error[E0716]: temporary value dropped while borrowed
    --> /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:2262:43
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#3)
...
1274 |   macro_rules! debug {
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
...
1408 | /         $crate::event!(
1409 | |             target: module_path!(),
1410 | |             $crate::Level::DEBUG,
1411 | |             { ?$($k).+, $($field)*}
     | |_________- in this macro invocation (#2)
...
2180 |   macro_rules! valueset {
     |   ---------------------
     |   ---------------------
     |   |
     |   in this expansion of `$crate::valueset!` (#3)
     |   in this expansion of `$crate::valueset!` (#4)
     |   in this expansion of `$crate::valueset!` (#5)
...
2223 | /         $crate::valueset!(
2224 | |             @ { $($out),*, (&$next, Some(&debug(&$($k).+) as &dyn Value)) },
2225 | |             $next,
2226 | |             $($rest)*
     | |_________- in this macro invocation (#5)
...
...
2262 |               @ { $($out),*, (&$next, Some(&debug(&$($k).+) as &dyn Value)) },
     |                                             ^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
...
2325 |               $fields.value_set($crate::valueset!(
     |  _______________________________-
2326 | |                 @ { },
2327 | |                 iter.next().expect("FieldSet corrupted (this is a bug)"),
2328 | |                 $($kvs)+
     | |             -- temporary value is freed at the end of this statement
     | |_____________|
     |               in this macro invocation (#4)
     |
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:601:17
     |
601  |                   debug!(?node, ?successor_node);
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
error[E0716]: temporary value dropped while borrowed
    --> /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:2327:17
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#3)
...
1274 |   macro_rules! debug {
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
...
1408 | /         $crate::event!(
1409 | |             target: module_path!(),
1410 | |             $crate::Level::DEBUG,
1411 | |             { ?$($k).+, $($field)*}
     | |_________- in this macro invocation (#2)
...
2180 |   macro_rules! valueset {
     |   --------------------- in this expansion of `$crate::valueset!` (#3)
     |   --------------------- in this expansion of `$crate::valueset!` (#3)
...
2327 |                   iter.next().expect("FieldSet corrupted (this is a bug)"),
     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2328 |                   $($kvs)+
     |                - temporary value is freed at the end of this statement
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:601:17
     |
     |
601  |                   debug!(?node, ?successor_node);
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
error[E0716]: temporary value dropped while borrowed
    --> /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:686:25
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     | |____________________________________________________________________________- borrow later used here
...
686  |               { message = format_args!($($arg)+), $($fields)* }
     |                           |
     |                           creates a temporary value which is freed while still in use
     |                           in this macro invocation (#3)
...
---
     |                - temporary value is freed at the end of this statement
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:512:9
     |
512  |           debug!("Walk unvisited node: {initial:?}");
     |
    ::: /checkout/library/core/src/macros/mod.rs:1030:5
     |
1030 |       macro_rules! format_args {
---
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     | |____________________________________________________________________________- borrow later used here
...
686  |               { message = format_args!($($arg)+), $($fields)* }
     |                           |
     |                           creates a temporary value which is freed while still in use
     |                           in this macro invocation (#3)
...
---
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:563:13
     |
563  | /             debug!(
564  | |                 "Visiting {node:?} at depth {depth:?}, annotation: {current_component_annotation:?}"
     | |_____________- in this macro invocation (#1)
     |
     = note: consider using a `let` binding to create a longer lived value


error[E0716]: temporary value dropped while borrowed
    --> /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:686:25
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     | |____________________________________________________________________________- borrow later used here
...
686  |               { message = format_args!($($arg)+), $($fields)* }
     |                           |
     |                           creates a temporary value which is freed while still in use
     |                           in this macro invocation (#3)
...
---
     |                - temporary value is freed at the end of this statement
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:662:13
     |
662  |               debug!("Finished walk from {node:?} with annotation: {current_component_annotation:?}");
     |
    ::: /checkout/library/core/src/macros/mod.rs:1030:5
     |
1030 |       macro_rules! format_args {
---
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     | |____________________________________________________________________________- borrow later used here
...
686  |               { message = format_args!($($arg)+), $($fields)* }
     |                           |
     |                           creates a temporary value which is freed while still in use
     |                           in this macro invocation (#3)
...
---
     |                - temporary value is freed at the end of this statement
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:692:17
     |
692  |                   debug!("Creating SCC rooted in {node:?} with successor {:?}", frame.successor_node);
     |
    ::: /checkout/library/core/src/macros/mod.rs:1030:5
     |
1030 |       macro_rules! format_args {
---
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     | |____________________________________________________________________________- borrow later used here
...
686  |               { message = format_args!($($arg)+), $($fields)* }
     |                           |
     |                           creates a temporary value which is freed while still in use
     |                           in this macro invocation (#3)
...
---
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:612:25
     |
612  | /                         debug!(
613  | |                             "Cycle found from {node:?}, minimum depth: {successor_min_depth:?}, annotation: {successor_annotation:?}"
     | |_________________________- in this macro invocation (#1)
     |
     = note: consider using a `let` binding to create a longer lived value


error[E0716]: temporary value dropped while borrowed
    --> /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:686:25
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     | |____________________________________________________________________________- borrow later used here
...
686  |               { message = format_args!($($arg)+), $($fields)* }
     |                           |
     |                           creates a temporary value which is freed while still in use
     |                           in this macro invocation (#3)
...
---
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:630:25
     |
630  | / ...   debug!(
631  | | ...       "Complete; {node:?} is root of complete-visited SCC idx {successor_scc_index:?} with annotation {successor_annotation:?}"
     | |_______- in this macro invocation (#1)
     |
     = note: consider using a `let` binding to create a longer lived value


error[E0716]: temporary value dropped while borrowed
    --> /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:686:25
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     | |____________________________________________________________________________- borrow later used here
...
686  |               { message = format_args!($($arg)+), $($fields)* }
     |                           |
     |                           creates a temporary value which is freed while still in use
     |                           in this macro invocation (#3)
...
---
     |                - temporary value is freed at the end of this statement
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:642:25
     |
642  |                           debug!("Recursing down into {successor_node:?} at depth {depth:?}");
     |
    ::: /checkout/library/core/src/macros/mod.rs:1030:5
     |
1030 |       macro_rules! format_args {
---
     |   |
     |   in this expansion of `$crate::event!` (#2)
     |   in this expansion of `$crate::event!` (#3)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#4)
...
683  | /         $crate::event!(
683  | /         $crate::event!(
684  | |             target: $target,
685  | |             $lvl,
686  | |             { message = format_args!($($arg)+), $($fields)* }
     | |_________- in this macro invocation (#3)
...
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
---
     |   in this expansion of `$crate::valueset!` (#4)
     |   in this expansion of `$crate::valueset!` (#5)
     |   in this expansion of `$crate::valueset!` (#6)
...
2184 |           &[ $($val),* ]
     |            ^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2209 | /         $crate::valueset!(
2209 | /         $crate::valueset!(
2210 | |             @ { $($out),*, (&$next, Some(&$val as &dyn Value)) },
2211 | |             $next,
2212 | |             $($rest)*
     | |_________- in this macro invocation (#6)
...
...
2325 |               $fields.value_set($crate::valueset!(
     |  _______________________________-
2326 | |                 @ { },
2327 | |                 iter.next().expect("FieldSet corrupted (this is a bug)"),
2328 | |                 $($kvs)+
     | |             -- temporary value is freed at the end of this statement
     | |_____________|
     |               in this macro invocation (#5)
     |
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:512:9
     |
512  |           debug!("Walk unvisited node: {initial:?}");
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
---
     |   |
     |   in this expansion of `$crate::event!` (#2)
     |   in this expansion of `$crate::event!` (#3)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#4)
...
683  | /         $crate::event!(
683  | /         $crate::event!(
684  | |             target: $target,
685  | |             $lvl,
686  | |             { message = format_args!($($arg)+), $($fields)* }
     | |_________- in this macro invocation (#3)
...
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
---
     |   in this expansion of `$crate::valueset!` (#4)
     |   in this expansion of `$crate::valueset!` (#5)
     |   in this expansion of `$crate::valueset!` (#6)
...
2184 |           &[ $($val),* ]
     |            ^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2209 | /         $crate::valueset!(
2209 | /         $crate::valueset!(
2210 | |             @ { $($out),*, (&$next, Some(&$val as &dyn Value)) },
2211 | |             $next,
2212 | |             $($rest)*
     | |_________- in this macro invocation (#6)
...
...
2325 |               $fields.value_set($crate::valueset!(
     |  _______________________________-
2326 | |                 @ { },
2327 | |                 iter.next().expect("FieldSet corrupted (this is a bug)"),
2328 | |                 $($kvs)+
     | |             -- temporary value is freed at the end of this statement
     | |_____________|
     |               in this macro invocation (#5)
     |
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:563:13
     |
563  | /             debug!(
564  | |                 "Visiting {node:?} at depth {depth:?}, annotation: {current_component_annotation:?}"
     | |_____________- in this macro invocation (#1)
     |
     = note: consider using a `let` binding to create a longer lived value


error[E0716]: temporary value dropped while borrowed
    --> /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:2184:10
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#3)
...
1274 |   macro_rules! debug {
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
...
1408 | /         $crate::event!(
1409 | |             target: module_path!(),
1410 | |             $crate::Level::DEBUG,
1411 | |             { ?$($k).+, $($field)*}
     | |_________- in this macro invocation (#2)
...
2180 |   macro_rules! valueset {
     |   ---------------------
     |   ---------------------
     |   |
     |   in this expansion of `$crate::valueset!` (#3)
     |   in this expansion of `$crate::valueset!` (#4)
     |   in this expansion of `$crate::valueset!` (#5)
     |   in this expansion of `$crate::valueset!` (#6)
...
2184 |           &[ $($val),* ]
     |            ^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2223 | /         $crate::valueset!(
2223 | /         $crate::valueset!(
2224 | |             @ { $($out),*, (&$next, Some(&debug(&$($k).+) as &dyn Value)) },
2225 | |             $next,
2226 | |             $($rest)*
     | |_________- in this macro invocation (#5)
...
2261 | /         $crate::valueset!(
2261 | /         $crate::valueset!(
2262 | |             @ { $($out),*, (&$next, Some(&debug(&$($k).+) as &dyn Value)) },
2263 | |             $next,
     | |_________- in this macro invocation (#6)
...
...
2325 |               $fields.value_set($crate::valueset!(
     |  _______________________________-
2326 | |                 @ { },
2327 | |                 iter.next().expect("FieldSet corrupted (this is a bug)"),
2328 | |                 $($kvs)+
     | |             -- temporary value is freed at the end of this statement
     | |_____________|
     |               in this macro invocation (#4)
     |
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:571:21
     |
571  |                       debug!(?depth, ?node);
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
---
     |   |
     |   in this expansion of `$crate::event!` (#2)
     |   in this expansion of `$crate::event!` (#3)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#4)
...
683  | /         $crate::event!(
683  | /         $crate::event!(
684  | |             target: $target,
685  | |             $lvl,
686  | |             { message = format_args!($($arg)+), $($fields)* }
     | |_________- in this macro invocation (#3)
...
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
---
     |   in this expansion of `$crate::valueset!` (#4)
     |   in this expansion of `$crate::valueset!` (#5)
     |   in this expansion of `$crate::valueset!` (#6)
...
2184 |           &[ $($val),* ]
     |            ^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2209 | /         $crate::valueset!(
2209 | /         $crate::valueset!(
2210 | |             @ { $($out),*, (&$next, Some(&$val as &dyn Value)) },
2211 | |             $next,
2212 | |             $($rest)*
     | |_________- in this macro invocation (#6)
...
...
2325 |               $fields.value_set($crate::valueset!(
     |  _______________________________-
2326 | |                 @ { },
2327 | |                 iter.next().expect("FieldSet corrupted (this is a bug)"),
2328 | |                 $($kvs)+
     | |             -- temporary value is freed at the end of this statement
     | |_____________|
     |               in this macro invocation (#5)
     |
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:662:13
     |
662  |               debug!("Finished walk from {node:?} with annotation: {current_component_annotation:?}");
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
---
     |   |
     |   in this expansion of `$crate::event!` (#2)
     |   in this expansion of `$crate::event!` (#3)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#4)
...
683  | /         $crate::event!(
683  | /         $crate::event!(
684  | |             target: $target,
685  | |             $lvl,
686  | |             { message = format_args!($($arg)+), $($fields)* }
     | |_________- in this macro invocation (#3)
...
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
---
     |   in this expansion of `$crate::valueset!` (#4)
     |   in this expansion of `$crate::valueset!` (#5)
     |   in this expansion of `$crate::valueset!` (#6)
...
2184 |           &[ $($val),* ]
     |            ^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2209 | /         $crate::valueset!(
2209 | /         $crate::valueset!(
2210 | |             @ { $($out),*, (&$next, Some(&$val as &dyn Value)) },
2211 | |             $next,
2212 | |             $($rest)*
     | |_________- in this macro invocation (#6)
...
...
2325 |               $fields.value_set($crate::valueset!(
     |  _______________________________-
2326 | |                 @ { },
2327 | |                 iter.next().expect("FieldSet corrupted (this is a bug)"),
2328 | |                 $($kvs)+
     | |             -- temporary value is freed at the end of this statement
     | |_____________|
     |               in this macro invocation (#5)
     |
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:692:17
     |
692  |                   debug!("Creating SCC rooted in {node:?} with successor {:?}", frame.successor_node);
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
---
     |   |
     |   in this expansion of `$crate::event!` (#2)
     |   in this expansion of `$crate::event!` (#3)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#4)
...
683  | /         $crate::event!(
683  | /         $crate::event!(
684  | |             target: $target,
685  | |             $lvl,
686  | |             { message = format_args!($($arg)+), $($fields)* }
     | |_________- in this macro invocation (#3)
...
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
---
     |   in this expansion of `$crate::valueset!` (#4)
     |   in this expansion of `$crate::valueset!` (#5)
     |   in this expansion of `$crate::valueset!` (#6)
...
2184 |           &[ $($val),* ]
     |            ^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2209 | /         $crate::valueset!(
2209 | /         $crate::valueset!(
2210 | |             @ { $($out),*, (&$next, Some(&$val as &dyn Value)) },
2211 | |             $next,
2212 | |             $($rest)*
     | |_________- in this macro invocation (#6)
...
...
2325 |               $fields.value_set($crate::valueset!(
     |  _______________________________-
2326 | |                 @ { },
2327 | |                 iter.next().expect("FieldSet corrupted (this is a bug)"),
2328 | |                 $($kvs)+
     | |             -- temporary value is freed at the end of this statement
     | |_____________|
     |               in this macro invocation (#5)
     |
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:612:25
     |
612  | /                         debug!(
613  | |                             "Cycle found from {node:?}, minimum depth: {successor_min_depth:?}, annotation: {successor_annotation:?}"
     | |_________________________- in this macro invocation (#1)
     |
     = note: consider using a `let` binding to create a longer lived value


error[E0716]: temporary value dropped while borrowed
    --> /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:2184:10
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#3)
...
1274 |   macro_rules! debug {
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
...
1408 | /         $crate::event!(
1409 | |             target: module_path!(),
1410 | |             $crate::Level::DEBUG,
1411 | |             { ?$($k).+, $($field)*}
     | |_________- in this macro invocation (#2)
...
2180 |   macro_rules! valueset {
     |   ---------------------
     |   ---------------------
     |   |
     |   in this expansion of `$crate::valueset!` (#3)
     |   in this expansion of `$crate::valueset!` (#4)
     |   in this expansion of `$crate::valueset!` (#5)
     |   in this expansion of `$crate::valueset!` (#6)
...
2184 |           &[ $($val),* ]
     |            ^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2223 | /         $crate::valueset!(
2223 | /         $crate::valueset!(
2224 | |             @ { $($out),*, (&$next, Some(&debug(&$($k).+) as &dyn Value)) },
2225 | |             $next,
2226 | |             $($rest)*
     | |_________- in this macro invocation (#5)
...
2261 | /         $crate::valueset!(
2261 | /         $crate::valueset!(
2262 | |             @ { $($out),*, (&$next, Some(&debug(&$($k).+) as &dyn Value)) },
2263 | |             $next,
     | |_________- in this macro invocation (#6)
...
...
2325 |               $fields.value_set($crate::valueset!(
     |  _______________________________-
2326 | |                 @ { },
2327 | |                 iter.next().expect("FieldSet corrupted (this is a bug)"),
2328 | |                 $($kvs)+
     | |             -- temporary value is freed at the end of this statement
     | |_____________|
     |               in this macro invocation (#4)
     |
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:618:29
     |
618  |   ...                   debug!(?node, ?successor_min_depth);
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
---
     |   |
     |   in this expansion of `$crate::event!` (#2)
     |   in this expansion of `$crate::event!` (#3)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#4)
...
683  | /         $crate::event!(
683  | /         $crate::event!(
684  | |             target: $target,
685  | |             $lvl,
686  | |             { message = format_args!($($arg)+), $($fields)* }
     | |_________- in this macro invocation (#3)
...
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
---
     |   in this expansion of `$crate::valueset!` (#4)
     |   in this expansion of `$crate::valueset!` (#5)
     |   in this expansion of `$crate::valueset!` (#6)
...
2184 |           &[ $($val),* ]
     |            ^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2209 | /         $crate::valueset!(
2209 | /         $crate::valueset!(
2210 | |             @ { $($out),*, (&$next, Some(&$val as &dyn Value)) },
2211 | |             $next,
2212 | |             $($rest)*
     | |_________- in this macro invocation (#6)
...
...
2325 |               $fields.value_set($crate::valueset!(
     |  _______________________________-
2326 | |                 @ { },
2327 | |                 iter.next().expect("FieldSet corrupted (this is a bug)"),
2328 | |                 $($kvs)+
     | |             -- temporary value is freed at the end of this statement
     | |_____________|
     |               in this macro invocation (#5)
     |
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:630:25
     |
630  | / ...   debug!(
631  | | ...       "Complete; {node:?} is root of complete-visited SCC idx {successor_scc_index:?} with annotation {successor_annotation:?}"
     | |_______- in this macro invocation (#1)
     |
     = note: consider using a `let` binding to create a longer lived value


error[E0716]: temporary value dropped while borrowed
    --> /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:2184:10
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#3)
...
1274 |   macro_rules! debug {
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
...
1408 | /         $crate::event!(
1409 | |             target: module_path!(),
1410 | |             $crate::Level::DEBUG,
1411 | |             { ?$($k).+, $($field)*}
     | |_________- in this macro invocation (#2)
...
2180 |   macro_rules! valueset {
     |   ---------------------
     |   ---------------------
     |   |
     |   in this expansion of `$crate::valueset!` (#3)
     |   in this expansion of `$crate::valueset!` (#4)
     |   in this expansion of `$crate::valueset!` (#5)
     |   in this expansion of `$crate::valueset!` (#6)
...
2184 |           &[ $($val),* ]
     |            ^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2223 | /         $crate::valueset!(
2223 | /         $crate::valueset!(
2224 | |             @ { $($out),*, (&$next, Some(&debug(&$($k).+) as &dyn Value)) },
2225 | |             $next,
2226 | |             $($rest)*
     | |_________- in this macro invocation (#5)
...
2261 | /         $crate::valueset!(
2261 | /         $crate::valueset!(
2262 | |             @ { $($out),*, (&$next, Some(&debug(&$($k).+) as &dyn Value)) },
2263 | |             $next,
     | |_________- in this macro invocation (#6)
...
...
2325 |               $fields.value_set($crate::valueset!(
     |  _______________________________-
2326 | |                 @ { },
2327 | |                 iter.next().expect("FieldSet corrupted (this is a bug)"),
2328 | |                 $($kvs)+
     | |             -- temporary value is freed at the end of this statement
     | |_____________|
     |               in this macro invocation (#4)
     |
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:635:25
     |
635  |                           debug!(?node, ?successor_scc_index);
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
---
     |   |
     |   in this expansion of `$crate::event!` (#2)
     |   in this expansion of `$crate::event!` (#3)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#4)
...
683  | /         $crate::event!(
683  | /         $crate::event!(
684  | |             target: $target,
685  | |             $lvl,
686  | |             { message = format_args!($($arg)+), $($fields)* }
     | |_________- in this macro invocation (#3)
...
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
---
     |   in this expansion of `$crate::valueset!` (#4)
     |   in this expansion of `$crate::valueset!` (#5)
     |   in this expansion of `$crate::valueset!` (#6)
...
2184 |           &[ $($val),* ]
     |            ^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2209 | /         $crate::valueset!(
2209 | /         $crate::valueset!(
2210 | |             @ { $($out),*, (&$next, Some(&$val as &dyn Value)) },
2211 | |             $next,
2212 | |             $($rest)*
     | |_________- in this macro invocation (#6)
...
...
2325 |               $fields.value_set($crate::valueset!(
     |  _______________________________-
2326 | |                 @ { },
2327 | |                 iter.next().expect("FieldSet corrupted (this is a bug)"),
2328 | |                 $($kvs)+
     | |             -- temporary value is freed at the end of this statement
     | |_____________|
     |               in this macro invocation (#5)
     |
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:642:25
     |
642  |                           debug!("Recursing down into {successor_node:?} at depth {depth:?}");
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
error[E0716]: temporary value dropped while borrowed
    --> /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:2184:10
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#3)
...
1274 |   macro_rules! debug {
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
...
1408 | /         $crate::event!(
1409 | |             target: module_path!(),
1410 | |             $crate::Level::DEBUG,
1411 | |             { ?$($k).+, $($field)*}
     | |_________- in this macro invocation (#2)
...
2180 |   macro_rules! valueset {
     |   ---------------------
     |   ---------------------
     |   |
     |   in this expansion of `$crate::valueset!` (#3)
     |   in this expansion of `$crate::valueset!` (#4)
     |   in this expansion of `$crate::valueset!` (#5)
     |   in this expansion of `$crate::valueset!` (#6)
...
2184 |           &[ $($val),* ]
     |            ^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2223 | /         $crate::valueset!(
2223 | /         $crate::valueset!(
2224 | |             @ { $($out),*, (&$next, Some(&debug(&$($k).+) as &dyn Value)) },
2225 | |             $next,
2226 | |             $($rest)*
     | |_________- in this macro invocation (#5)
...
2261 | /         $crate::valueset!(
2261 | /         $crate::valueset!(
2262 | |             @ { $($out),*, (&$next, Some(&debug(&$($k).+) as &dyn Value)) },
2263 | |             $next,
     | |_________- in this macro invocation (#6)
...
...
2325 |               $fields.value_set($crate::valueset!(
     |  _______________________________-
2326 | |                 @ { },
2327 | |                 iter.next().expect("FieldSet corrupted (this is a bug)"),
2328 | |                 $($kvs)+
     | |             -- temporary value is freed at the end of this statement
     | |_____________|
     |               in this macro invocation (#4)
     |
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:643:25
     |
643  |                           debug!(?depth, ?successor_node);
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
error[E0716]: temporary value dropped while borrowed
    --> /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:2224:43
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#3)
...
1274 |   macro_rules! debug {
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
...
1408 | /         $crate::event!(
1409 | |             target: module_path!(),
1410 | |             $crate::Level::DEBUG,
1411 | |             { ?$($k).+, $($field)*}
     | |_________- in this macro invocation (#2)
...
2180 |   macro_rules! valueset {
     |   ---------------------
     |   ---------------------
     |   |
     |   in this expansion of `$crate::valueset!` (#3)
     |   in this expansion of `$crate::valueset!` (#4)
...
2224 |               @ { $($out),*, (&$next, Some(&debug(&$($k).+) as &dyn Value)) },
     |                                             ^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
...
2325 |               $fields.value_set($crate::valueset!(
     |  _______________________________-
2326 | |                 @ { },
2327 | |                 iter.next().expect("FieldSet corrupted (this is a bug)"),
2328 | |                 $($kvs)+
     | |             -- temporary value is freed at the end of this statement
     | |_____________|
     |               in this macro invocation (#4)
     |
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:571:21
     |
571  |                       debug!(?depth, ?node);
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
error[E0716]: temporary value dropped while borrowed
    --> /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:2224:43
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#3)
...
1274 |   macro_rules! debug {
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
...
1408 | /         $crate::event!(
1409 | |             target: module_path!(),
1410 | |             $crate::Level::DEBUG,
1411 | |             { ?$($k).+, $($field)*}
     | |_________- in this macro invocation (#2)
...
2180 |   macro_rules! valueset {
     |   ---------------------
     |   ---------------------
     |   |
     |   in this expansion of `$crate::valueset!` (#3)
     |   in this expansion of `$crate::valueset!` (#4)
...
2224 |               @ { $($out),*, (&$next, Some(&debug(&$($k).+) as &dyn Value)) },
     |                                             ^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
...
2325 |               $fields.value_set($crate::valueset!(
     |  _______________________________-
2326 | |                 @ { },
2327 | |                 iter.next().expect("FieldSet corrupted (this is a bug)"),
2328 | |                 $($kvs)+
     | |             -- temporary value is freed at the end of this statement
     | |_____________|
     |               in this macro invocation (#4)
     |
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:618:29
     |
618  |   ...                   debug!(?node, ?successor_min_depth);
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
error[E0716]: temporary value dropped while borrowed
    --> /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:2224:43
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#3)
...
1274 |   macro_rules! debug {
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
...
1408 | /         $crate::event!(
1409 | |             target: module_path!(),
1410 | |             $crate::Level::DEBUG,
1411 | |             { ?$($k).+, $($field)*}
     | |_________- in this macro invocation (#2)
...
2180 |   macro_rules! valueset {
     |   ---------------------
     |   ---------------------
     |   |
     |   in this expansion of `$crate::valueset!` (#3)
     |   in this expansion of `$crate::valueset!` (#4)
...
2224 |               @ { $($out),*, (&$next, Some(&debug(&$($k).+) as &dyn Value)) },
     |                                             ^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
...
2325 |               $fields.value_set($crate::valueset!(
     |  _______________________________-
2326 | |                 @ { },
2327 | |                 iter.next().expect("FieldSet corrupted (this is a bug)"),
2328 | |                 $($kvs)+
     | |             -- temporary value is freed at the end of this statement
     | |_____________|
     |               in this macro invocation (#4)
     |
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:635:25
     |
635  |                           debug!(?node, ?successor_scc_index);
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
error[E0716]: temporary value dropped while borrowed
    --> /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:2224:43
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#3)
...
1274 |   macro_rules! debug {
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
...
1408 | /         $crate::event!(
1409 | |             target: module_path!(),
1410 | |             $crate::Level::DEBUG,
1411 | |             { ?$($k).+, $($field)*}
     | |_________- in this macro invocation (#2)
...
2180 |   macro_rules! valueset {
     |   ---------------------
     |   ---------------------
     |   |
     |   in this expansion of `$crate::valueset!` (#3)
     |   in this expansion of `$crate::valueset!` (#4)
...
2224 |               @ { $($out),*, (&$next, Some(&debug(&$($k).+) as &dyn Value)) },
     |                                             ^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
...
2325 |               $fields.value_set($crate::valueset!(
     |  _______________________________-
2326 | |                 @ { },
2327 | |                 iter.next().expect("FieldSet corrupted (this is a bug)"),
2328 | |                 $($kvs)+
     | |             -- temporary value is freed at the end of this statement
     | |_____________|
     |               in this macro invocation (#4)
     |
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:643:25
     |
643  |                           debug!(?depth, ?successor_node);
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
error[E0716]: temporary value dropped while borrowed
    --> /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:2262:43
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#3)
...
1274 |   macro_rules! debug {
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
...
1408 | /         $crate::event!(
1409 | |             target: module_path!(),
1410 | |             $crate::Level::DEBUG,
1411 | |             { ?$($k).+, $($field)*}
     | |_________- in this macro invocation (#2)
...
2180 |   macro_rules! valueset {
     |   ---------------------
     |   ---------------------
     |   |
     |   in this expansion of `$crate::valueset!` (#3)
     |   in this expansion of `$crate::valueset!` (#4)
     |   in this expansion of `$crate::valueset!` (#5)
...
2223 | /         $crate::valueset!(
2224 | |             @ { $($out),*, (&$next, Some(&debug(&$($k).+) as &dyn Value)) },
2225 | |             $next,
2226 | |             $($rest)*
     | |_________- in this macro invocation (#5)
...
...
2262 |               @ { $($out),*, (&$next, Some(&debug(&$($k).+) as &dyn Value)) },
     |                                             ^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
...
2325 |               $fields.value_set($crate::valueset!(
     |  _______________________________-
2326 | |                 @ { },
2327 | |                 iter.next().expect("FieldSet corrupted (this is a bug)"),
2328 | |                 $($kvs)+
     | |             -- temporary value is freed at the end of this statement
     | |_____________|
     |               in this macro invocation (#4)
     |
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:571:21
     |
571  |                       debug!(?depth, ?node);
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
error[E0716]: temporary value dropped while borrowed
    --> /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:2262:43
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#3)
...
1274 |   macro_rules! debug {
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
...
1408 | /         $crate::event!(
1409 | |             target: module_path!(),
1410 | |             $crate::Level::DEBUG,
1411 | |             { ?$($k).+, $($field)*}
     | |_________- in this macro invocation (#2)
...
2180 |   macro_rules! valueset {
     |   ---------------------
     |   ---------------------
     |   |
     |   in this expansion of `$crate::valueset!` (#3)
     |   in this expansion of `$crate::valueset!` (#4)
     |   in this expansion of `$crate::valueset!` (#5)
...
2223 | /         $crate::valueset!(
2224 | |             @ { $($out),*, (&$next, Some(&debug(&$($k).+) as &dyn Value)) },
2225 | |             $next,
2226 | |             $($rest)*
     | |_________- in this macro invocation (#5)
...
...
2262 |               @ { $($out),*, (&$next, Some(&debug(&$($k).+) as &dyn Value)) },
     |                                             ^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
...
2325 |               $fields.value_set($crate::valueset!(
     |  _______________________________-
2326 | |                 @ { },
2327 | |                 iter.next().expect("FieldSet corrupted (this is a bug)"),
2328 | |                 $($kvs)+
     | |             -- temporary value is freed at the end of this statement
     | |_____________|
     |               in this macro invocation (#4)
     |
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:618:29
     |
618  |   ...                   debug!(?node, ?successor_min_depth);
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
error[E0716]: temporary value dropped while borrowed
    --> /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:2262:43
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#3)
...
1274 |   macro_rules! debug {
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
...
1408 | /         $crate::event!(
1409 | |             target: module_path!(),
1410 | |             $crate::Level::DEBUG,
1411 | |             { ?$($k).+, $($field)*}
     | |_________- in this macro invocation (#2)
...
2180 |   macro_rules! valueset {
     |   ---------------------
     |   ---------------------
     |   |
     |   in this expansion of `$crate::valueset!` (#3)
     |   in this expansion of `$crate::valueset!` (#4)
     |   in this expansion of `$crate::valueset!` (#5)
...
2223 | /         $crate::valueset!(
2224 | |             @ { $($out),*, (&$next, Some(&debug(&$($k).+) as &dyn Value)) },
2225 | |             $next,
2226 | |             $($rest)*
     | |_________- in this macro invocation (#5)
...
...
2262 |               @ { $($out),*, (&$next, Some(&debug(&$($k).+) as &dyn Value)) },
     |                                             ^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
...
2325 |               $fields.value_set($crate::valueset!(
     |  _______________________________-
2326 | |                 @ { },
2327 | |                 iter.next().expect("FieldSet corrupted (this is a bug)"),
2328 | |                 $($kvs)+
     | |             -- temporary value is freed at the end of this statement
     | |_____________|
     |               in this macro invocation (#4)
     |
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:635:25
     |
635  |                           debug!(?node, ?successor_scc_index);
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
error[E0716]: temporary value dropped while borrowed
    --> /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:2262:43
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
---
     |   |
     |   in this expansion of `$crate::event!` (#2)
     |   in this expansion of `$crate::event!` (#3)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#4)
...
683  | /         $crate::event!(
683  | /         $crate::event!(
684  | |             target: $target,
685  | |             $lvl,
686  | |             { message = format_args!($($arg)+), $($fields)* }
     | |_________- in this macro invocation (#3)
...
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
---
...
2180 |   macro_rules! valueset {
     |   --------------------- in this expansion of `$crate::valueset!` (#4)
...
2327 |                   iter.next().expect("FieldSet corrupted (this is a bug)"),
     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2328 |                   $($kvs)+
     |                - temporary value is freed at the end of this statement
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:512:9
     |
     |
512  |           debug!("Walk unvisited node: {initial:?}");
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
---
     |   |
     |   in this expansion of `$crate::event!` (#2)
     |   in this expansion of `$crate::event!` (#3)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#4)
...
683  | /         $crate::event!(
683  | /         $crate::event!(
684  | |             target: $target,
685  | |             $lvl,
686  | |             { message = format_args!($($arg)+), $($fields)* }
     | |_________- in this macro invocation (#3)
...
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
---
...
2180 |   macro_rules! valueset {
     |   --------------------- in this expansion of `$crate::valueset!` (#4)
...
2327 |                   iter.next().expect("FieldSet corrupted (this is a bug)"),
     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2328 |                   $($kvs)+
     |                - temporary value is freed at the end of this statement
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:563:13
     |
     |
563  | /             debug!(
564  | |                 "Visiting {node:?} at depth {depth:?}, annotation: {current_component_annotation:?}"
     | |_____________- in this macro invocation (#1)
     |
     = note: consider using a `let` binding to create a longer lived value


error[E0716]: temporary value dropped while borrowed
    --> /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:2327:17
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#3)
...
1274 |   macro_rules! debug {
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
...
1408 | /         $crate::event!(
1409 | |             target: module_path!(),
1410 | |             $crate::Level::DEBUG,
1411 | |             { ?$($k).+, $($field)*}
     | |_________- in this macro invocation (#2)
...
2180 |   macro_rules! valueset {
     |   --------------------- in this expansion of `$crate::valueset!` (#3)
     |   --------------------- in this expansion of `$crate::valueset!` (#3)
...
2327 |                   iter.next().expect("FieldSet corrupted (this is a bug)"),
     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2328 |                   $($kvs)+
     |                - temporary value is freed at the end of this statement
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:571:21
     |
     |
571  |                       debug!(?depth, ?node);
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
---
     |   |
     |   in this expansion of `$crate::event!` (#2)
     |   in this expansion of `$crate::event!` (#3)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#4)
...
683  | /         $crate::event!(
683  | /         $crate::event!(
684  | |             target: $target,
685  | |             $lvl,
686  | |             { message = format_args!($($arg)+), $($fields)* }
     | |_________- in this macro invocation (#3)
...
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
---
...
2180 |   macro_rules! valueset {
     |   --------------------- in this expansion of `$crate::valueset!` (#4)
...
2327 |                   iter.next().expect("FieldSet corrupted (this is a bug)"),
     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2328 |                   $($kvs)+
     |                - temporary value is freed at the end of this statement
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:662:13
     |
     |
662  |               debug!("Finished walk from {node:?} with annotation: {current_component_annotation:?}");
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
---
     |   |
     |   in this expansion of `$crate::event!` (#2)
     |   in this expansion of `$crate::event!` (#3)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#4)
...
683  | /         $crate::event!(
683  | /         $crate::event!(
684  | |             target: $target,
685  | |             $lvl,
686  | |             { message = format_args!($($arg)+), $($fields)* }
     | |_________- in this macro invocation (#3)
...
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
---
...
2180 |   macro_rules! valueset {
     |   --------------------- in this expansion of `$crate::valueset!` (#4)
...
2327 |                   iter.next().expect("FieldSet corrupted (this is a bug)"),
     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2328 |                   $($kvs)+
     |                - temporary value is freed at the end of this statement
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:692:17
     |
     |
692  |                   debug!("Creating SCC rooted in {node:?} with successor {:?}", frame.successor_node);
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
---
     |   |
     |   in this expansion of `$crate::event!` (#2)
     |   in this expansion of `$crate::event!` (#3)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#4)
...
683  | /         $crate::event!(
683  | /         $crate::event!(
684  | |             target: $target,
685  | |             $lvl,
686  | |             { message = format_args!($($arg)+), $($fields)* }
     | |_________- in this macro invocation (#3)
...
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
---
...
2180 |   macro_rules! valueset {
     |   --------------------- in this expansion of `$crate::valueset!` (#4)
...
2327 |                   iter.next().expect("FieldSet corrupted (this is a bug)"),
     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2328 |                   $($kvs)+
     |                - temporary value is freed at the end of this statement
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:612:25
     |
     |
612  | /                         debug!(
613  | |                             "Cycle found from {node:?}, minimum depth: {successor_min_depth:?}, annotation: {successor_annotation:?}"
     | |_________________________- in this macro invocation (#1)
     |
     = note: consider using a `let` binding to create a longer lived value


error[E0716]: temporary value dropped while borrowed
    --> /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:2327:17
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#3)
...
1274 |   macro_rules! debug {
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
...
1408 | /         $crate::event!(
1409 | |             target: module_path!(),
1410 | |             $crate::Level::DEBUG,
1411 | |             { ?$($k).+, $($field)*}
     | |_________- in this macro invocation (#2)
...
2180 |   macro_rules! valueset {
     |   --------------------- in this expansion of `$crate::valueset!` (#3)
     |   --------------------- in this expansion of `$crate::valueset!` (#3)
...
2327 |                   iter.next().expect("FieldSet corrupted (this is a bug)"),
     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2328 |                   $($kvs)+
     |                - temporary value is freed at the end of this statement
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:618:29
     |
     |
618  |   ...                   debug!(?node, ?successor_min_depth);
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
---
     |   |
     |   in this expansion of `$crate::event!` (#2)
     |   in this expansion of `$crate::event!` (#3)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#4)
...
683  | /         $crate::event!(
683  | /         $crate::event!(
684  | |             target: $target,
685  | |             $lvl,
686  | |             { message = format_args!($($arg)+), $($fields)* }
     | |_________- in this macro invocation (#3)
...
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
---
...
2180 |   macro_rules! valueset {
     |   --------------------- in this expansion of `$crate::valueset!` (#4)
...
2327 |                   iter.next().expect("FieldSet corrupted (this is a bug)"),
     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2328 |                   $($kvs)+
     |                - temporary value is freed at the end of this statement
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:630:25
     |
     |
630  | / ...   debug!(
631  | | ...       "Complete; {node:?} is root of complete-visited SCC idx {successor_scc_index:?} with annotation {successor_annotation:?}"
     | |_______- in this macro invocation (#1)
     |
     = note: consider using a `let` binding to create a longer lived value


error[E0716]: temporary value dropped while borrowed
    --> /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:2327:17
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#3)
...
1274 |   macro_rules! debug {
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
...
1408 | /         $crate::event!(
1409 | |             target: module_path!(),
1410 | |             $crate::Level::DEBUG,
1411 | |             { ?$($k).+, $($field)*}
     | |_________- in this macro invocation (#2)
...
2180 |   macro_rules! valueset {
     |   --------------------- in this expansion of `$crate::valueset!` (#3)
     |   --------------------- in this expansion of `$crate::valueset!` (#3)
...
2327 |                   iter.next().expect("FieldSet corrupted (this is a bug)"),
     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2328 |                   $($kvs)+
     |                - temporary value is freed at the end of this statement
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:635:25
     |
     |
635  |                           debug!(?node, ?successor_scc_index);
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
---
     |   |
     |   in this expansion of `$crate::event!` (#2)
     |   in this expansion of `$crate::event!` (#3)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#4)
...
683  | /         $crate::event!(
683  | /         $crate::event!(
684  | |             target: $target,
685  | |             $lvl,
686  | |             { message = format_args!($($arg)+), $($fields)* }
     | |_________- in this macro invocation (#3)
...
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
---
...
2180 |   macro_rules! valueset {
     |   --------------------- in this expansion of `$crate::valueset!` (#4)
...
2327 |                   iter.next().expect("FieldSet corrupted (this is a bug)"),
     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2328 |                   $($kvs)+
     |                - temporary value is freed at the end of this statement
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:642:25
     |
     |
642  |                           debug!("Recursing down into {successor_node:?} at depth {depth:?}");
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
error[E0716]: temporary value dropped while borrowed
    --> /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:2327:17
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#3)
...
1274 |   macro_rules! debug {
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
...
1408 | /         $crate::event!(
1409 | |             target: module_path!(),
1410 | |             $crate::Level::DEBUG,
1411 | |             { ?$($k).+, $($field)*}
     | |_________- in this macro invocation (#2)
...
2180 |   macro_rules! valueset {
     |   --------------------- in this expansion of `$crate::valueset!` (#3)
     |   --------------------- in this expansion of `$crate::valueset!` (#3)
...
2327 |                   iter.next().expect("FieldSet corrupted (this is a bug)"),
     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2328 |                   $($kvs)+
     |                - temporary value is freed at the end of this statement
     |
    ::: compiler/rustc_data_structures/src/graph/scc/mod.rs:643:25
     |
     |
643  |                           debug!(?depth, ?successor_node);
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
error[E0716]: temporary value dropped while borrowed
    --> /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:686:25
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     | |____________________________________________________________________________- borrow later used here
...
686  |               { message = format_args!($($arg)+), $($fields)* }
     |                           |
     |                           creates a temporary value which is freed while still in use
     |                           in this macro invocation (#3)
...
---
     |                - temporary value is freed at the end of this statement
     |
    ::: compiler/rustc_data_structures/src/obligation_forest/mod.rs:348:13
     |
348  |               debug!("register_obligation_at: ignoring already done obligation: {:?}", obligation);
     |
    ::: /checkout/library/core/src/macros/mod.rs:1030:5
     |
1030 |       macro_rules! format_args {
---
     |   |
     |   in this expansion of `$crate::event!` (#2)
     |   in this expansion of `$crate::event!` (#3)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#4)
...
683  | /         $crate::event!(
683  | /         $crate::event!(
684  | |             target: $target,
685  | |             $lvl,
686  | |             { message = format_args!($($arg)+), $($fields)* }
     | |_________- in this macro invocation (#3)
...
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
---
     |   in this expansion of `$crate::valueset!` (#4)
     |   in this expansion of `$crate::valueset!` (#5)
     |   in this expansion of `$crate::valueset!` (#6)
...
2184 |           &[ $($val),* ]
     |            ^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2209 | /         $crate::valueset!(
2209 | /         $crate::valueset!(
2210 | |             @ { $($out),*, (&$next, Some(&$val as &dyn Value)) },
2211 | |             $next,
2212 | |             $($rest)*
     | |_________- in this macro invocation (#6)
...
...
2325 |               $fields.value_set($crate::valueset!(
     |  _______________________________-
2326 | |                 @ { },
2327 | |                 iter.next().expect("FieldSet corrupted (this is a bug)"),
2328 | |                 $($kvs)+
     | |             -- temporary value is freed at the end of this statement
     | |_____________|
     |               in this macro invocation (#5)
     |
     |
    ::: compiler/rustc_data_structures/src/obligation_forest/mod.rs:348:13
     |
348  |               debug!("register_obligation_at: ignoring already done obligation: {:?}", obligation);
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
---
     |   |
     |   in this expansion of `$crate::event!` (#2)
     |   in this expansion of `$crate::event!` (#3)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#4)
...
683  | /         $crate::event!(
683  | /         $crate::event!(
684  | |             target: $target,
685  | |             $lvl,
686  | |             { message = format_args!($($arg)+), $($fields)* }
     | |_________- in this macro invocation (#3)
...
1274 |   macro_rules! debug {
     |   ------------------ in this expansion of `debug!` (#1)
---
...
2180 |   macro_rules! valueset {
     |   --------------------- in this expansion of `$crate::valueset!` (#4)
...
2327 |                   iter.next().expect("FieldSet corrupted (this is a bug)"),
     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2328 |                   $($kvs)+
     |                - temporary value is freed at the end of this statement
     |
    ::: compiler/rustc_data_structures/src/obligation_forest/mod.rs:348:13
     |
     |
348  |               debug!("register_obligation_at: ignoring already done obligation: {:?}", obligation);
     |
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
error[E0716]: temporary value dropped while borrowed
    --> compiler/rustc_data_structures/src/profiling.rs:598:21
     |
598  |                       unknown_events.join(", "),
     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
    ::: /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:661:13
     |
     |
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     | |____________________________________________________________________________- borrow later used here
2329 |               ))
     |                - temporary value is freed at the end of this statement
     |
     = note: consider using a `let` binding to create a longer lived value
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
    --> compiler/rustc_data_structures/src/profiling.rs:599:21
     |
599  | /                     EVENT_FILTERS_BY_NAME
600  | |                         .iter()
601  | |                         .map(|&(name, _)| name.to_string())
602  | |                         .collect::<Vec<_>>()
603  | |                         .join(", ")
     | |___________________________________^ creates a temporary value which is freed while still in use
    ::: /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:661:13
     |
     |
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     | |____________________________________________________________________________- borrow later used here
2329 |               ))
     |                - temporary value is freed at the end of this statement
     |
     = note: consider using a `let` binding to create a longer lived value
     = note: consider using a `let` binding to create a longer lived value

error[E0716]: temporary value dropped while borrowed
    --> /cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.37/src/macros.rs:686:25
     |
584  |   macro_rules! event {
     |   ------------------ in this expansion of `$crate::event!` (#2)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     | |____________________________________________________________________________- borrow later used here
...
686  |               { message = format_args!($($arg)+), $($fields)* }
     |                           |
     |                           creates a temporary value which is freed while still in use
     |                           in this macro invocation (#3)
...
---
     |       ------------------------ in this expansion of `format_args!` (#3)
     |
    ::: compiler/rustc_data_structures/src/profiling.rs:596:17
     |
596  | /                 warn!(
597  | |                     "Unknown self-profiler events specified: {}. Available options are: {}.",
598  | |                     unknown_events.join(", "),
599  | |                     EVENT_FILTERS_BY_NAME
...    |
603  | |                         .join(", ")
     | |_________________- in this macro invocation (#1)
     |
     = note: consider using a `let` binding to create a longer lived value

---
     |   |
     |   in this expansion of `$crate::event!` (#2)
     |   in this expansion of `$crate::event!` (#3)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#4)
...
683  | /         $crate::event!(
683  | /         $crate::event!(
684  | |             target: $target,
685  | |             $lvl,
686  | |             { message = format_args!($($arg)+), $($fields)* }
     | |_________- in this macro invocation (#3)
...
1691 |   macro_rules! warn {
     |   ----------------- in this expansion of `warn!` (#1)
---
     |   in this expansion of `$crate::valueset!` (#4)
     |   in this expansion of `$crate::valueset!` (#5)
     |   in this expansion of `$crate::valueset!` (#6)
...
2184 |           &[ $($val),* ]
     |            ^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2209 | /         $crate::valueset!(
2209 | /         $crate::valueset!(
2210 | |             @ { $($out),*, (&$next, Some(&$val as &dyn Value)) },
2211 | |             $next,
2212 | |             $($rest)*
     | |_________- in this macro invocation (#6)
...
...
2325 |               $fields.value_set($crate::valueset!(
     |  _______________________________-
2326 | |                 @ { },
2327 | |                 iter.next().expect("FieldSet corrupted (this is a bug)"),
2328 | |                 $($kvs)+
     | |             -- temporary value is freed at the end of this statement
     | |_____________|
     |               in this macro invocation (#5)
     |
     |
    ::: compiler/rustc_data_structures/src/profiling.rs:596:17
     |
596  | /                 warn!(
597  | |                     "Unknown self-profiler events specified: {}. Available options are: {}.",
598  | |                     unknown_events.join(", "),
599  | |                     EVENT_FILTERS_BY_NAME
...    |
603  | |                         .join(", ")
     | |_________________- in this macro invocation (#1)
     |
     = note: consider using a `let` binding to create a longer lived value

---
     |   |
     |   in this expansion of `$crate::event!` (#2)
     |   in this expansion of `$crate::event!` (#3)
...
661  | /             (|value_set: $crate::field::ValueSet| {
662  | |                 let meta = CALLSITE.metadata();
663  | |                 // event with contextual parent
...    |
672  | |                 );
672  | |                 );
673  | |             })($crate::valueset!(CALLSITE.metadata().fields(), $($fields)*));
     |                  |
     |                  in this macro invocation (#4)
...
683  | /         $crate::event!(
683  | /         $crate::event!(
684  | |             target: $target,
685  | |             $lvl,
686  | |             { message = format_args!($($arg)+), $($fields)* }
     | |_________- in this macro invocation (#3)
...
1691 |   macro_rules! warn {
     |   ----------------- in this expansion of `warn!` (#1)
---
...
2180 |   macro_rules! valueset {
     |   --------------------- in this expansion of `$crate::valueset!` (#4)
...
2327 |                   iter.next().expect("FieldSet corrupted (this is a bug)"),
     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
2328 |                   $($kvs)+
     |                - temporary value is freed at the end of this statement
     |
    ::: compiler/rustc_data_structures/src/profiling.rs:596:17
     |
     |
596  | /                 warn!(
597  | |                     "Unknown self-profiler events specified: {}. Available options are: {}.",
598  | |                     unknown_events.join(", "),
599  | |                     EVENT_FILTERS_BY_NAME
...    |
603  | |                         .join(", ")
     | |_________________- in this macro invocation (#1)
     |
     = note: consider using a `let` binding to create a longer lived value

@dingxiangfei2009
Copy link
Contributor Author

@jieyouxu Ah good ol' time. Yes, we found out this tracing case back in April and that is why gating by Edition 2024 is very necessary.

@traviscross Given that we can't really remove the edition gate on the feature, does it still make sense to do the crater run? Maybe it is just sufficient to just run the crater on the lint itself?

@traviscross
Copy link
Contributor

traviscross commented Aug 26, 2024

If we haven't yet, it'd be definitely worth making a PR to tracing and any other known widely-used crates affected by this.

Presumably what we'd be looking for, by enabling the behavior in all editions in this run, would be any crates that are broken but for which the lint doesn't fire. That seems worth knowing, if possible.

If that's too tricky to do, though, and we're confident that the lint catches the important cases, then just doing a crater run on the lint is probably sufficient.

@dingxiangfei2009
Copy link
Contributor Author

dingxiangfei2009 commented Aug 26, 2024

@traviscross I am working on a tracing PR but it will take a while. Basically, I need to take good care of semantics such as not realising the expressions in the logging directives when the logging is unnecessary.

I just got to know that tracing is still written in Edition 2018 which is interesting.

I feel like that we should give the lint the go ahead first.

@dingxiangfei2009
Copy link
Contributor Author

@traviscross I managed to fix the crate, juhu! tokio-rs/tracing#3066

Whether this gets checked in will be at their mercy. 🤞

@jieyouxu jieyouxu added S-experimental Status: Ongoing experiment that does not require reviewing and won't be merged in its current state. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Oct 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-experimental Status: Ongoing experiment that does not require reviewing and won't be merged in its current state. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants