diff options
| -rw-r--r-- | library/core/src/macros/mod.rs | 3 | ||||
| -rw-r--r-- | src/test/ui/macros/assert-format-lazy.rs | 12 |
2 files changed, 14 insertions, 1 deletions
diff --git a/library/core/src/macros/mod.rs b/library/core/src/macros/mod.rs index b3802c1abde..97315769957 100644 --- a/library/core/src/macros/mod.rs +++ b/library/core/src/macros/mod.rs @@ -1209,7 +1209,8 @@ pub(crate) mod builtin { /// /// This macro has a second form, where a custom panic message can /// be provided with or without arguments for formatting. See [`std::fmt`] - /// for syntax for this form. + /// for syntax for this form. Expressions used as format arguments will only + /// be evaluated if the assertion fails. /// /// [`std::fmt`]: ../std/fmt/index.html /// diff --git a/src/test/ui/macros/assert-format-lazy.rs b/src/test/ui/macros/assert-format-lazy.rs new file mode 100644 index 00000000000..c7f05d763b7 --- /dev/null +++ b/src/test/ui/macros/assert-format-lazy.rs @@ -0,0 +1,12 @@ +// run-pass +// compile-flags: -C debug_assertions=yes + +#[allow(unreachable_code)] +fn main() { + assert!(true, "Failed: {:?}", panic!("assert! evaluated format expressions")); + debug_assert!(true, "Failed: {:?}", panic!("debug_assert! evaluated format expressions")); + assert_eq!(1, 1, "Failed: {:?}", panic!("assert_eq! evaluated format expressions")); + debug_assert_eq!(1, 1, "Failed: {:?}", panic!("debug_assert_eq! evaluated format expressions")); + assert_ne!(1, 2, "Failed: {:?}", panic!("assert_ne! evaluated format expressions")); + debug_assert_ne!(1, 2, "Failed: {:?}", panic!("debug_assert_ne! evaluated format expressions")); +} |
