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