Rollup merge of #57847 - clarcharr:dbg_no_params, r=Centril
dbg!() without parameters Fixes #57845.
This commit is contained in:
commit
d4ef74b2da
@ -305,10 +305,16 @@ macro_rules! eprintln {
|
||||
/// let _ = dbg!(a); // <-- `a` is moved again; error!
|
||||
/// ```
|
||||
///
|
||||
/// You can also use `dbg!()` without a value to just print the
|
||||
/// file and line whenever it's reached.
|
||||
///
|
||||
/// [stderr]: https://en.wikipedia.org/wiki/Standard_streams#Standard_error_(stderr)
|
||||
#[macro_export]
|
||||
#[stable(feature = "dbg_macro", since = "1.32.0")]
|
||||
macro_rules! dbg {
|
||||
() => {
|
||||
eprintln!("[{}:{}]", file!(), line!());
|
||||
};
|
||||
($val:expr) => {
|
||||
// Use of `match` here is intentional because it affects the lifetimes
|
||||
// of temporaries - https://stackoverflow.com/a/48732525/1063961
|
||||
|
@ -33,6 +33,9 @@ fn test() {
|
||||
// We can move `b` because it's Copy.
|
||||
drop(b);
|
||||
|
||||
// Without parameters works as expected.
|
||||
let _: () = dbg!();
|
||||
|
||||
// Test that we can borrow and that successive applications is still identity.
|
||||
let a = NoCopy(1337);
|
||||
let b: &NoCopy = dbg!(dbg!(&a));
|
||||
@ -69,17 +72,19 @@ fn validate_stderr(stderr: Vec<String>) {
|
||||
" y: 24",
|
||||
"}",
|
||||
|
||||
":38] &a = NoCopy(",
|
||||
":37]",
|
||||
|
||||
":41] &a = NoCopy(",
|
||||
" 1337",
|
||||
")",
|
||||
|
||||
":38] dbg!(& a) = NoCopy(",
|
||||
":41] dbg!(& a) = NoCopy(",
|
||||
" 1337",
|
||||
")",
|
||||
":43] f(&42) = 42",
|
||||
":46] f(&42) = 42",
|
||||
|
||||
"before",
|
||||
":48] { foo += 1; eprintln!(\"before\"); 7331 } = 7331",
|
||||
":51] { foo += 1; eprintln!(\"before\"); 7331 } = 7331",
|
||||
]);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user