Move test to new UI test system

This commit is contained in:
Philipp Hansch 2018-04-09 08:20:46 +02:00
parent a3ff21f4d6
commit bcc335fc9c
No known key found for this signature in database
GPG Key ID: B6FA06A6E0E2665B
3 changed files with 237 additions and 142 deletions

View File

@ -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 { ... }
}

View 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) });
}

View 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