mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-11-27 07:00:55 +00:00
Move test to new UI test system
This commit is contained in:
parent
a3ff21f4d6
commit
bcc335fc9c
3 changed files with 237 additions and 142 deletions
|
@ -1,142 +0,0 @@
|
||||||
#![feature(plugin)]
|
|
||||||
#![feature(const_fn)]
|
|
||||||
#![plugin(clippy)]
|
|
||||||
|
|
||||||
#![deny(clippy_pedantic)]
|
|
||||||
#![allow(unused, missing_docs_in_private_items)]
|
|
||||||
|
|
||||||
fn do_nothing<T>(_: T) {}
|
|
||||||
|
|
||||||
fn diverge<T>(_: T) -> ! {
|
|
||||||
panic!()
|
|
||||||
}
|
|
||||||
|
|
||||||
fn plus_one(value: usize) -> usize {
|
|
||||||
value + 1
|
|
||||||
}
|
|
||||||
|
|
||||||
struct HasOption {
|
|
||||||
field: Option<usize>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl HasOption {
|
|
||||||
fn do_option_nothing(self: &HasOption, value: usize) {}
|
|
||||||
|
|
||||||
fn do_option_plus_one(self: &HasOption, value: usize) -> usize {
|
|
||||||
value + 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg_attr(rustfmt, rustfmt_skip)]
|
|
||||||
fn main() {
|
|
||||||
let x = HasOption { field: Some(10) };
|
|
||||||
|
|
||||||
x.field.map(plus_one);
|
|
||||||
let _ : Option<()> = x.field.map(do_nothing);
|
|
||||||
|
|
||||||
x.field.map(do_nothing);
|
|
||||||
//~^ ERROR called `map(f)` on an Option value where `f` is a nil function
|
|
||||||
//~| HELP try this
|
|
||||||
//~| SUGGESTION if let Some(...) = x.field { do_nothing(...) }
|
|
||||||
|
|
||||||
x.field.map(do_nothing);
|
|
||||||
//~^ ERROR called `map(f)` on an Option value where `f` is a nil function
|
|
||||||
//~| HELP try this
|
|
||||||
//~| SUGGESTION if let Some(...) = x.field { do_nothing(...) }
|
|
||||||
|
|
||||||
x.field.map(diverge);
|
|
||||||
//~^ ERROR called `map(f)` on an Option value where `f` is a nil function
|
|
||||||
//~| HELP try this
|
|
||||||
//~| SUGGESTION if let Some(...) = x.field { diverge(...) }
|
|
||||||
|
|
||||||
let captured = 10;
|
|
||||||
if let Some(value) = x.field { do_nothing(value + captured) };
|
|
||||||
let _ : Option<()> = x.field.map(|value| do_nothing(value + captured));
|
|
||||||
|
|
||||||
x.field.map(|value| x.do_option_nothing(value + captured));
|
|
||||||
//~^ ERROR called `map(f)` on an Option value where `f` is a nil closure
|
|
||||||
//~| HELP try this
|
|
||||||
//~| SUGGESTION if let Some(value) = x.field { x.do_option_nothing(value + captured) }
|
|
||||||
|
|
||||||
x.field.map(|value| { x.do_option_plus_one(value + captured); });
|
|
||||||
//~^ ERROR called `map(f)` on an Option value where `f` is a nil closure
|
|
||||||
//~| HELP try this
|
|
||||||
//~| SUGGESTION if let Some(value) = x.field { x.do_option_plus_one(value + captured); }
|
|
||||||
|
|
||||||
|
|
||||||
x.field.map(|value| do_nothing(value + captured));
|
|
||||||
//~^ ERROR called `map(f)` on an Option value where `f` is a nil closure
|
|
||||||
//~| HELP try this
|
|
||||||
//~| SUGGESTION if let Some(value) = x.field { do_nothing(value + captured) }
|
|
||||||
|
|
||||||
x.field.map(|value| { do_nothing(value + captured) });
|
|
||||||
//~^ ERROR called `map(f)` on an Option value where `f` is a nil closure
|
|
||||||
//~| HELP try this
|
|
||||||
//~| SUGGESTION if let Some(value) = x.field { do_nothing(value + captured) }
|
|
||||||
|
|
||||||
x.field.map(|value| { do_nothing(value + captured); });
|
|
||||||
//~^ ERROR called `map(f)` on an Option value where `f` is a nil closure
|
|
||||||
//~| HELP try this
|
|
||||||
//~| SUGGESTION if let Some(value) = x.field { do_nothing(value + captured) }
|
|
||||||
|
|
||||||
x.field.map(|value| { { do_nothing(value + captured); } });
|
|
||||||
//~^ ERROR called `map(f)` on an Option value where `f` is a nil closure
|
|
||||||
//~| HELP try this
|
|
||||||
//~| SUGGESTION if let Some(value) = x.field { do_nothing(value + captured) }
|
|
||||||
|
|
||||||
|
|
||||||
x.field.map(|value| diverge(value + captured));
|
|
||||||
//~^ ERROR called `map(f)` on an Option value where `f` is a nil closure
|
|
||||||
//~| HELP try this
|
|
||||||
//~| SUGGESTION if let Some(value) = x.field { diverge(value + captured) }
|
|
||||||
|
|
||||||
x.field.map(|value| { diverge(value + captured) });
|
|
||||||
//~^ ERROR called `map(f)` on an Option value where `f` is a nil closure
|
|
||||||
//~| HELP try this
|
|
||||||
//~| SUGGESTION if let Some(value) = x.field { diverge(value + captured) }
|
|
||||||
|
|
||||||
x.field.map(|value| { diverge(value + captured); });
|
|
||||||
//~^ ERROR called `map(f)` on an Option value where `f` is a nil closure
|
|
||||||
//~| HELP try this
|
|
||||||
//~| SUGGESTION if let Some(value) = x.field { diverge(value + captured) }
|
|
||||||
|
|
||||||
x.field.map(|value| { { diverge(value + captured); } });
|
|
||||||
//~^ ERROR called `map(f)` on an Option value where `f` is a nil closure
|
|
||||||
//~| HELP try this
|
|
||||||
//~| SUGGESTION if let Some(value) = x.field { diverge(value + captured) }
|
|
||||||
|
|
||||||
|
|
||||||
x.field.map(|value| plus_one(value + captured));
|
|
||||||
x.field.map(|value| { plus_one(value + captured) });
|
|
||||||
x.field.map(|value| { let y = plus_one(value + captured); });
|
|
||||||
//~^ ERROR called `map(f)` on an Option value where `f` is a nil closure
|
|
||||||
//~| HELP try this
|
|
||||||
//~| SUGGESTION if let Some(value) = x.field { let y = plus_one(value + captured); }
|
|
||||||
|
|
||||||
x.field.map(|value| { plus_one(value + captured); });
|
|
||||||
//~^ ERROR called `map(f)` on an Option value where `f` is a nil closure
|
|
||||||
//~| HELP try this
|
|
||||||
//~| SUGGESTION if let Some(value) = x.field { plus_one(value + captured); }
|
|
||||||
|
|
||||||
x.field.map(|value| { { plus_one(value + captured); } });
|
|
||||||
//~^ ERROR called `map(f)` on an Option value where `f` is a nil closure
|
|
||||||
//~| HELP try this
|
|
||||||
//~| SUGGESTION if let Some(value) = x.field { plus_one(value + captured); }
|
|
||||||
|
|
||||||
|
|
||||||
x.field.map(|ref value| { do_nothing(value + captured) });
|
|
||||||
//~^ ERROR called `map(f)` on an Option value where `f` is a nil closure
|
|
||||||
//~| HELP try this
|
|
||||||
//~| SUGGESTION if let Some(ref value) = x.field { do_nothing(value + captured) }
|
|
||||||
|
|
||||||
|
|
||||||
x.field.map(|value| { do_nothing(value); do_nothing(value) });
|
|
||||||
//~^ ERROR called `map(f)` on an Option value where `f` is a nil closure
|
|
||||||
//~| HELP try this
|
|
||||||
//~| SUGGESTION if let Some(value) = x.field { ... }
|
|
||||||
|
|
||||||
x.field.map(|value| if value > 0 { do_nothing(value); do_nothing(value) });
|
|
||||||
//~^ ERROR called `map(f)` on an Option value where `f` is a nil closure
|
|
||||||
//~| HELP try this
|
|
||||||
//~| SUGGESTION if let Some(value) = x.field { ... }
|
|
||||||
}
|
|
81
tests/ui/option_map_unit_fn.rs
Normal file
81
tests/ui/option_map_unit_fn.rs
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
#![warn(option_map_unit_fn)]
|
||||||
|
#![allow(unused)]
|
||||||
|
|
||||||
|
fn do_nothing<T>(_: T) {}
|
||||||
|
|
||||||
|
fn diverge<T>(_: T) -> ! {
|
||||||
|
panic!()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn plus_one(value: usize) -> usize {
|
||||||
|
value + 1
|
||||||
|
}
|
||||||
|
|
||||||
|
struct HasOption {
|
||||||
|
field: Option<usize>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl HasOption {
|
||||||
|
fn do_option_nothing(self: &Self, value: usize) {}
|
||||||
|
|
||||||
|
fn do_option_plus_one(self: &Self, value: usize) -> usize {
|
||||||
|
value + 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg_attr(rustfmt, rustfmt_skip)]
|
||||||
|
fn main() {
|
||||||
|
let x = HasOption { field: Some(10) };
|
||||||
|
|
||||||
|
x.field.map(plus_one);
|
||||||
|
let _ : Option<()> = x.field.map(do_nothing);
|
||||||
|
|
||||||
|
x.field.map(do_nothing);
|
||||||
|
|
||||||
|
x.field.map(do_nothing);
|
||||||
|
|
||||||
|
x.field.map(diverge);
|
||||||
|
|
||||||
|
let captured = 10;
|
||||||
|
if let Some(value) = x.field { do_nothing(value + captured) };
|
||||||
|
let _ : Option<()> = x.field.map(|value| do_nothing(value + captured));
|
||||||
|
|
||||||
|
x.field.map(|value| x.do_option_nothing(value + captured));
|
||||||
|
|
||||||
|
x.field.map(|value| { x.do_option_plus_one(value + captured); });
|
||||||
|
|
||||||
|
|
||||||
|
x.field.map(|value| do_nothing(value + captured));
|
||||||
|
|
||||||
|
x.field.map(|value| { do_nothing(value + captured) });
|
||||||
|
|
||||||
|
x.field.map(|value| { do_nothing(value + captured); });
|
||||||
|
|
||||||
|
x.field.map(|value| { { do_nothing(value + captured); } });
|
||||||
|
|
||||||
|
|
||||||
|
x.field.map(|value| diverge(value + captured));
|
||||||
|
|
||||||
|
x.field.map(|value| { diverge(value + captured) });
|
||||||
|
|
||||||
|
x.field.map(|value| { diverge(value + captured); });
|
||||||
|
|
||||||
|
x.field.map(|value| { { diverge(value + captured); } });
|
||||||
|
|
||||||
|
|
||||||
|
x.field.map(|value| plus_one(value + captured));
|
||||||
|
x.field.map(|value| { plus_one(value + captured) });
|
||||||
|
x.field.map(|value| { let y = plus_one(value + captured); });
|
||||||
|
|
||||||
|
x.field.map(|value| { plus_one(value + captured); });
|
||||||
|
|
||||||
|
x.field.map(|value| { { plus_one(value + captured); } });
|
||||||
|
|
||||||
|
|
||||||
|
x.field.map(|ref value| { do_nothing(value + captured) });
|
||||||
|
|
||||||
|
|
||||||
|
x.field.map(|value| { do_nothing(value); do_nothing(value) });
|
||||||
|
|
||||||
|
x.field.map(|value| if value > 0 { do_nothing(value); do_nothing(value) });
|
||||||
|
}
|
156
tests/ui/option_map_unit_fn.stderr
Normal file
156
tests/ui/option_map_unit_fn.stderr
Normal file
|
@ -0,0 +1,156 @@
|
||||||
|
error: called `map(f)` on an Option value where `f` is a unit function
|
||||||
|
--> $DIR/option_map_unit_fn.rs:33:5
|
||||||
|
|
|
||||||
|
33 | x.field.map(do_nothing);
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^-
|
||||||
|
| |
|
||||||
|
| help: try this: `if let Some(...) = x.field { do_nothing(...) }`
|
||||||
|
|
|
||||||
|
= note: `-D option-map-unit-fn` implied by `-D warnings`
|
||||||
|
|
||||||
|
error: called `map(f)` on an Option value where `f` is a unit function
|
||||||
|
--> $DIR/option_map_unit_fn.rs:35:5
|
||||||
|
|
|
||||||
|
35 | x.field.map(do_nothing);
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^-
|
||||||
|
| |
|
||||||
|
| help: try this: `if let Some(...) = x.field { do_nothing(...) }`
|
||||||
|
|
||||||
|
error: called `map(f)` on an Option value where `f` is a unit function
|
||||||
|
--> $DIR/option_map_unit_fn.rs:37:5
|
||||||
|
|
|
||||||
|
37 | x.field.map(diverge);
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^-
|
||||||
|
| |
|
||||||
|
| help: try this: `if let Some(...) = x.field { diverge(...) }`
|
||||||
|
|
||||||
|
error: called `map(f)` on an Option value where `f` is a unit closure
|
||||||
|
--> $DIR/option_map_unit_fn.rs:43:5
|
||||||
|
|
|
||||||
|
43 | x.field.map(|value| x.do_option_nothing(value + captured));
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
|
||||||
|
| |
|
||||||
|
| help: try this: `if let Some(value) = x.field { x.do_option_nothing(value + captured) }`
|
||||||
|
|
||||||
|
error: called `map(f)` on an Option value where `f` is a unit closure
|
||||||
|
--> $DIR/option_map_unit_fn.rs:45:5
|
||||||
|
|
|
||||||
|
45 | x.field.map(|value| { x.do_option_plus_one(value + captured); });
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
|
||||||
|
| |
|
||||||
|
| help: try this: `if let Some(value) = x.field { x.do_option_plus_one(value + captured); }`
|
||||||
|
|
||||||
|
error: called `map(f)` on an Option value where `f` is a unit closure
|
||||||
|
--> $DIR/option_map_unit_fn.rs:48:5
|
||||||
|
|
|
||||||
|
48 | x.field.map(|value| do_nothing(value + captured));
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
|
||||||
|
| |
|
||||||
|
| help: try this: `if let Some(value) = x.field { do_nothing(value + captured) }`
|
||||||
|
|
||||||
|
error: called `map(f)` on an Option value where `f` is a unit closure
|
||||||
|
--> $DIR/option_map_unit_fn.rs:50:5
|
||||||
|
|
|
||||||
|
50 | x.field.map(|value| { do_nothing(value + captured) });
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
|
||||||
|
| |
|
||||||
|
| help: try this: `if let Some(value) = x.field { do_nothing(value + captured) }`
|
||||||
|
|
||||||
|
error: called `map(f)` on an Option value where `f` is a unit closure
|
||||||
|
--> $DIR/option_map_unit_fn.rs:52:5
|
||||||
|
|
|
||||||
|
52 | x.field.map(|value| { do_nothing(value + captured); });
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
|
||||||
|
| |
|
||||||
|
| help: try this: `if let Some(value) = x.field { do_nothing(value + captured) }`
|
||||||
|
|
||||||
|
error: called `map(f)` on an Option value where `f` is a unit closure
|
||||||
|
--> $DIR/option_map_unit_fn.rs:54:5
|
||||||
|
|
|
||||||
|
54 | x.field.map(|value| { { do_nothing(value + captured); } });
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
|
||||||
|
| |
|
||||||
|
| help: try this: `if let Some(value) = x.field { do_nothing(value + captured) }`
|
||||||
|
|
||||||
|
error: called `map(f)` on an Option value where `f` is a unit closure
|
||||||
|
--> $DIR/option_map_unit_fn.rs:57:5
|
||||||
|
|
|
||||||
|
57 | x.field.map(|value| diverge(value + captured));
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
|
||||||
|
| |
|
||||||
|
| help: try this: `if let Some(value) = x.field { diverge(value + captured) }`
|
||||||
|
|
||||||
|
error: called `map(f)` on an Option value where `f` is a unit closure
|
||||||
|
--> $DIR/option_map_unit_fn.rs:59:5
|
||||||
|
|
|
||||||
|
59 | x.field.map(|value| { diverge(value + captured) });
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
|
||||||
|
| |
|
||||||
|
| help: try this: `if let Some(value) = x.field { diverge(value + captured) }`
|
||||||
|
|
||||||
|
error: called `map(f)` on an Option value where `f` is a unit closure
|
||||||
|
--> $DIR/option_map_unit_fn.rs:61:5
|
||||||
|
|
|
||||||
|
61 | x.field.map(|value| { diverge(value + captured); });
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
|
||||||
|
| |
|
||||||
|
| help: try this: `if let Some(value) = x.field { diverge(value + captured) }`
|
||||||
|
|
||||||
|
error: called `map(f)` on an Option value where `f` is a unit closure
|
||||||
|
--> $DIR/option_map_unit_fn.rs:63:5
|
||||||
|
|
|
||||||
|
63 | x.field.map(|value| { { diverge(value + captured); } });
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
|
||||||
|
| |
|
||||||
|
| help: try this: `if let Some(value) = x.field { diverge(value + captured) }`
|
||||||
|
|
||||||
|
error: called `map(f)` on an Option value where `f` is a unit closure
|
||||||
|
--> $DIR/option_map_unit_fn.rs:68:5
|
||||||
|
|
|
||||||
|
68 | x.field.map(|value| { let y = plus_one(value + captured); });
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
|
||||||
|
| |
|
||||||
|
| help: try this: `if let Some(value) = x.field { let y = plus_one(value + captured); }`
|
||||||
|
|
||||||
|
error: called `map(f)` on an Option value where `f` is a unit closure
|
||||||
|
--> $DIR/option_map_unit_fn.rs:70:5
|
||||||
|
|
|
||||||
|
70 | x.field.map(|value| { plus_one(value + captured); });
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
|
||||||
|
| |
|
||||||
|
| help: try this: `if let Some(value) = x.field { plus_one(value + captured); }`
|
||||||
|
|
||||||
|
error: called `map(f)` on an Option value where `f` is a unit closure
|
||||||
|
--> $DIR/option_map_unit_fn.rs:72:5
|
||||||
|
|
|
||||||
|
72 | x.field.map(|value| { { plus_one(value + captured); } });
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
|
||||||
|
| |
|
||||||
|
| help: try this: `if let Some(value) = x.field { plus_one(value + captured); }`
|
||||||
|
|
||||||
|
error: called `map(f)` on an Option value where `f` is a unit closure
|
||||||
|
--> $DIR/option_map_unit_fn.rs:75:5
|
||||||
|
|
|
||||||
|
75 | x.field.map(|ref value| { do_nothing(value + captured) });
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
|
||||||
|
| |
|
||||||
|
| help: try this: `if let Some(ref value) = x.field { do_nothing(value + captured) }`
|
||||||
|
|
||||||
|
error: called `map(f)` on an Option value where `f` is a unit closure
|
||||||
|
--> $DIR/option_map_unit_fn.rs:78:5
|
||||||
|
|
|
||||||
|
78 | x.field.map(|value| { do_nothing(value); do_nothing(value) });
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
|
||||||
|
| |
|
||||||
|
| help: try this: `if let Some(value) = x.field { ... }`
|
||||||
|
|
||||||
|
error: called `map(f)` on an Option value where `f` is a unit closure
|
||||||
|
--> $DIR/option_map_unit_fn.rs:80:5
|
||||||
|
|
|
||||||
|
80 | x.field.map(|value| if value > 0 { do_nothing(value); do_nothing(value) });
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
|
||||||
|
| |
|
||||||
|
| help: try this: `if let Some(value) = x.field { ... }`
|
||||||
|
|
||||||
|
error: aborting due to 19 previous errors
|
||||||
|
|
Loading…
Reference in a new issue