Skip to content

Commit

Permalink
bolster UI test converage for lint suggestions
Browse files Browse the repository at this point in the history
  • Loading branch information
zackmdavis committed Oct 16, 2017
1 parent 38e5a96 commit 8e6ed12
Show file tree
Hide file tree
Showing 2 changed files with 83 additions and 11 deletions.
17 changes: 17 additions & 0 deletions src/test/ui/lint/suggestions.rs
Expand Up @@ -11,10 +11,27 @@
#![warn(unused_mut)] // UI tests pass `-A unused`—see Issue #43896
#![feature(no_debug)]

#[no_mangle] static SHENZHOU: usize = 1; // should suggest `pub`
#[no_mangle] const DISCOVERY: usize = 1; // should suggest `pub static` rather than `const`

#[no_mangle] // should suggest removal (generics can't be no-mangle)
pub fn defiant<T>(_t: T) {}

#[no_mangle]
fn rio_grande() {} // should suggest `pub`

struct Equinox {
warp_factor: f32,
}

#[no_debug] // should suggest removal of deprecated attribute
fn main() {
while true { // should suggest `loop`
let mut a = (1); // should suggest no `mut`, no parens
let d = Equinox { warp_factor: 9.975 };
match d {
Equinox { warp_factor: warp_factor } => {} // should suggest shorthand
}
println!("{}", a);
}
}
77 changes: 66 additions & 11 deletions src/test/ui/lint/suggestions.stderr
@@ -1,23 +1,23 @@
warning: unnecessary parentheses around assigned value
--> $DIR/suggestions.rs:17:21
--> $DIR/suggestions.rs:30:21
|
17 | let mut a = (1); // should suggest no `mut`, no parens
30 | let mut a = (1); // should suggest no `mut`, no parens
| ^^^ help: remove these parentheses
|
= note: #[warn(unused_parens)] on by default

warning: use of deprecated attribute `no_debug`: the `#[no_debug]` attribute was an experimental feature that has been deprecated due to lack of demand. See https://github.com/rust-lang/rust/issues/29721
--> $DIR/suggestions.rs:14:1
--> $DIR/suggestions.rs:27:1
|
14 | #[no_debug] // should suggest removal of deprecated attribute
27 | #[no_debug] // should suggest removal of deprecated attribute
| ^^^^^^^^^^^ help: remove this attribute
|
= note: #[warn(deprecated)] on by default

warning: variable does not need to be mutable
--> $DIR/suggestions.rs:17:13
--> $DIR/suggestions.rs:30:13
|
17 | let mut a = (1); // should suggest no `mut`, no parens
30 | let mut a = (1); // should suggest no `mut`, no parens
| ---^^
| |
| help: remove this `mut`
Expand All @@ -28,18 +28,73 @@ note: lint level defined here
11 | #![warn(unused_mut)] // UI tests pass `-A unused`—see Issue #43896
| ^^^^^^^^^^

warning: static is marked #[no_mangle], but not exported
--> $DIR/suggestions.rs:14:14
|
14 | #[no_mangle] static SHENZHOU: usize = 1; // should suggest `pub`
| -^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
| help: try making it public: `pub `
|
= note: #[warn(private_no_mangle_statics)] on by default

error: const items should never be #[no_mangle]
--> $DIR/suggestions.rs:15:14
|
15 | #[no_mangle] const DISCOVERY: usize = 1; // should suggest `pub static` rather than `const`
| -----^^^^^^^^^^^^^^^^^^^^^^
| |
| help: try a static value: `pub static`
|
= note: #[deny(no_mangle_const_items)] on by default

warning: functions generic over types must be mangled
--> $DIR/suggestions.rs:18:1
|
17 | #[no_mangle] // should suggest removal (generics can't be no-mangle)
| ------------ help: remove this attribute
18 | pub fn defiant<T>(_t: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: #[warn(no_mangle_generic_items)] on by default

warning: function is marked #[no_mangle], but not exported
--> $DIR/suggestions.rs:21:1
|
21 | fn rio_grande() {} // should suggest `pub`
| -^^^^^^^^^^^^^^^^^
| |
| help: try making it public: `pub `
|
= note: #[warn(private_no_mangle_fns)] on by default

warning: denote infinite loops with `loop { ... }`
--> $DIR/suggestions.rs:16:5
--> $DIR/suggestions.rs:29:5
|
16 | while true { // should suggest `loop`
29 | while true { // should suggest `loop`
| ^---------
| |
| _____help: use `loop`
| |
17 | | let mut a = (1); // should suggest no `mut`, no parens
18 | | println!("{}", a);
19 | | }
30 | | let mut a = (1); // should suggest no `mut`, no parens
31 | | let d = Equinox { warp_factor: 9.975 };
32 | | match d {
... |
35 | | println!("{}", a);
36 | | }
| |_____^
|
= note: #[warn(while_true)] on by default

warning: the `warp_factor:` in this pattern is redundant
--> $DIR/suggestions.rs:33:23
|
33 | Equinox { warp_factor: warp_factor } => {} // should suggest shorthand
| ------------^^^^^^^^^^^^
| |
| help: remove this
|
= note: #[warn(non_shorthand_field_patterns)] on by default

error: aborting due to previous error

0 comments on commit 8e6ed12

Please sign in to comment.