Rollup merge of #57847 - clarcharr:dbg_no_params, r=Centril

dbg!() without parameters

Fixes #57845.
This commit is contained in:
Mazdak Farrokhzad 2019-03-19 15:16:46 +01:00 committed by GitHub
commit d4ef74b2da
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 4 deletions

View file

@ -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

View file

@ -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",
]);
}