Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
add tests for unused_braces
  • Loading branch information
lcnr committed Mar 31, 2020
commit bcf35b1d8095625853fa6ae7fa435b662fc3241f
13 changes: 13 additions & 0 deletions src/test/ui/const-generics/unused_braces.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// check-pass
#![warn(unused_braces)]

#![feature(const_generics)]
//~^ WARN the feature `const_generics` is incomplete and may cause the compiler to crash

struct A<const N: usize>;

fn main() {
let _: A<7>; // ok
let _: A<{ 7 }>; //~ WARN unnecessary braces
let _: A<{ 3 + 5 }>; // ok
}
20 changes: 20 additions & 0 deletions src/test/ui/const-generics/unused_braces.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
warning: the feature `const_generics` is incomplete and may cause the compiler to crash
--> $DIR/unused_braces.rs:4:12
|
LL | #![feature(const_generics)]
| ^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default

warning: unnecessary braces around const expression
--> $DIR/unused_braces.rs:11:14
|
LL | let _: A<{ 7 }>;
| ^^^^^ help: remove these braces
|
note: the lint level is defined here
--> $DIR/unused_braces.rs:2:9
|
LL | #![warn(unused_braces)]
| ^^^^^^^^^^^^^

31 changes: 31 additions & 0 deletions src/test/ui/lint/unused_braces.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
// check-pass
#![warn(unused_braces, unused_parens)]

fn main() {
let _ = (7);
//~^WARN unnecessary parentheses

let _ = { 7 };
//~^ WARN unnecessary braces

if let 7 = { 7 } {
//~^ WARN unnecessary braces
}

let _: [u8; { 3 }];
//~^ WARN unnecessary braces

// do not emit error for multiline blocks.
let _ = {
7
};

// do not emit error for unsafe blocks.
let _ = unsafe { 7 };

// do not emit error, as the `{` would then
// be parsed as part of the `return`.
if { return } {

}
}
36 changes: 36 additions & 0 deletions src/test/ui/lint/unused_braces.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
warning: unnecessary parentheses around assigned value
--> $DIR/unused_braces.rs:5:13
|
LL | let _ = (7);
| ^^^ help: remove these parentheses
|
note: the lint level is defined here
--> $DIR/unused_braces.rs:2:24
|
LL | #![warn(unused_braces, unused_parens)]
| ^^^^^^^^^^^^^

warning: unnecessary braces around assigned value
--> $DIR/unused_braces.rs:8:13
|
LL | let _ = { 7 };
| ^^^^^ help: remove these braces
|
note: the lint level is defined here
--> $DIR/unused_braces.rs:2:9
|
LL | #![warn(unused_braces, unused_parens)]
| ^^^^^^^^^^^^^

warning: unnecessary braces around `let` head expression
--> $DIR/unused_braces.rs:11:16
|
LL | if let 7 = { 7 } {
| ^^^^^ help: remove these braces

warning: unnecessary braces around const expression
--> $DIR/unused_braces.rs:15:17
|
LL | let _: [u8; { 3 }];
| ^^^^^ help: remove these braces

22 changes: 22 additions & 0 deletions src/test/ui/lint/unused_parens_borrow.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// check-pass
#![warn(unused_braces)]

// changing `&{ expr }` to `&expr` changes the semantic of the program
// so we should not warn this case

#[repr(packed)]
struct A {
a: u8,
b: u32,
}

fn main() {
let a = A {
a: 42,
b: 1729,
};

let _ = &{ a.b };
let _ = { a.b };
//~^ WARN unnecessary braces
}
12 changes: 12 additions & 0 deletions src/test/ui/lint/unused_parens_borrow.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
warning: unnecessary braces around assigned value
--> $DIR/unused_parens_borrow.rs:20:13
|
LL | let _ = { a.b };
| ^^^^^^^ help: remove these braces
|
note: the lint level is defined here
--> $DIR/unused_parens_borrow.rs:2:9
|
LL | #![warn(unused_braces)]
| ^^^^^^^^^^^^^