diff options
Diffstat (limited to 'src/tools/clippy/src/docs/unnecessary_lazy_evaluations.txt')
-rw-r--r-- | src/tools/clippy/src/docs/unnecessary_lazy_evaluations.txt | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/tools/clippy/src/docs/unnecessary_lazy_evaluations.txt b/src/tools/clippy/src/docs/unnecessary_lazy_evaluations.txt new file mode 100644 index 000000000..208188ce9 --- /dev/null +++ b/src/tools/clippy/src/docs/unnecessary_lazy_evaluations.txt @@ -0,0 +1,32 @@ +### What it does +As the counterpart to `or_fun_call`, this lint looks for unnecessary +lazily evaluated closures on `Option` and `Result`. + +This lint suggests changing the following functions, when eager evaluation results in +simpler code: + - `unwrap_or_else` to `unwrap_or` + - `and_then` to `and` + - `or_else` to `or` + - `get_or_insert_with` to `get_or_insert` + - `ok_or_else` to `ok_or` + +### Why is this bad? +Using eager evaluation is shorter and simpler in some cases. + +### Known problems +It is possible, but not recommended for `Deref` and `Index` to have +side effects. Eagerly evaluating them can change the semantics of the program. + +### Example +``` +// example code where clippy issues a warning +let opt: Option<u32> = None; + +opt.unwrap_or_else(|| 42); +``` +Use instead: +``` +let opt: Option<u32> = None; + +opt.unwrap_or(42); +```
\ No newline at end of file |