]> git.lizzy.rs Git - rust.git/commit
Document that `assert!` format arguments are evaluated lazily
authorTeddy Katz <teddy.katz@gmail.com>
Tue, 16 Feb 2021 02:06:00 +0000 (21:06 -0500)
committerTeddy Katz <teddy.katz@gmail.com>
Tue, 16 Feb 2021 05:55:46 +0000 (00:55 -0500)
commitcb653b100c43118beed5bbd84cd8b832362a355f
treef757f0999c3f9622ef81bf8a07a228d48fc810f5
parentd1206f950ffb76c76e1b74a19ae33c2b7d949454
Document that `assert!` format arguments are evaluated lazily

It can be useful to do some computation in `assert!` format arguments, in order to get better error messages. For example:

```rust
assert!(
    some_condition,
    "The state is invalid. Details: {}",
    expensive_call_to_get_debugging_info(),
);
```

It seems like `assert!` only evaluates the format arguments if the assertion fails, which is useful but doesn't appear to be documented anywhere. This PR documents the behavior and adds some tests.
library/core/src/macros/mod.rs
src/test/ui/macros/assert-format-lazy.rs [new file with mode: 0644]