2019-09-25 16:30:27 +00:00
|
|
|
// non rustfixable, see redundant_closure_call_fixable.rs
|
|
|
|
|
2018-07-28 15:34:52 +00:00
|
|
|
#![warn(clippy::redundant_closure_call)]
|
2021-11-18 13:54:49 +00:00
|
|
|
#![allow(clippy::needless_late_init)]
|
2016-03-03 19:14:49 +00:00
|
|
|
|
|
|
|
fn main() {
|
2018-12-09 22:26:16 +00:00
|
|
|
let mut i = 1;
|
2016-03-03 19:14:49 +00:00
|
|
|
|
2020-07-14 18:27:25 +00:00
|
|
|
// don't lint here, the closure is used more than once
|
2018-12-09 22:26:16 +00:00
|
|
|
let closure = |i| i + 1;
|
|
|
|
i = closure(3);
|
|
|
|
i = closure(4);
|
2018-11-14 06:01:39 +00:00
|
|
|
|
2020-07-14 18:27:25 +00:00
|
|
|
// lint here
|
|
|
|
let redun_closure = || 1;
|
|
|
|
i = redun_closure();
|
2023-07-28 19:35:48 +00:00
|
|
|
//~^ ERROR: closure called just once immediately after it was declared
|
|
|
|
//~| NOTE: `-D clippy::redundant-closure-call` implied by `-D warnings`
|
2020-07-14 18:27:25 +00:00
|
|
|
|
2020-07-19 09:47:32 +00:00
|
|
|
// shadowed closures are supported, lint here
|
|
|
|
let shadowed_closure = || 1;
|
|
|
|
i = shadowed_closure();
|
2023-07-28 19:35:48 +00:00
|
|
|
//~^ ERROR: closure called just once immediately after it was declared
|
2020-07-19 09:47:32 +00:00
|
|
|
let shadowed_closure = || 2;
|
|
|
|
i = shadowed_closure();
|
2023-07-28 19:35:48 +00:00
|
|
|
//~^ ERROR: closure called just once immediately after it was declared
|
2020-07-19 09:47:32 +00:00
|
|
|
|
|
|
|
// don't lint here
|
|
|
|
let shadowed_closure = || 2;
|
|
|
|
i = shadowed_closure();
|
|
|
|
i = shadowed_closure();
|
2020-08-18 14:00:21 +00:00
|
|
|
|
|
|
|
// Fix FP in #5916
|
|
|
|
let mut x;
|
|
|
|
let create = || 2 * 2;
|
|
|
|
x = create();
|
|
|
|
fun(move || {
|
|
|
|
x = create();
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
fn fun<T: 'static + FnMut()>(mut f: T) {
|
|
|
|
f();
|
2016-03-03 19:14:49 +00:00
|
|
|
}
|