Make must_use lint cover all binary/unary operators

This commit is contained in:
Aaron Aaeng 2018-04-21 16:06:48 -06:00
parent 222551f3f3
commit 91aa267eda
6 changed files with 224 additions and 15 deletions

View file

@ -0,0 +1,52 @@
// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// Issue #50124 - Test warning for unused operator expressions
// compile-pass
#![feature(fn_must_use)]
#![warn(unused_must_use)]
fn main() {
let val = 1;
let val_pointer = &val;
// Comparison Operators
val == 1;
val < 1;
val <= 1;
val != 1;
val >= 1;
val > 1;
// Arithmetic Operators
val + 2;
val - 2;
val / 2;
val * 2;
val % 2;
// Logical Operators
true && true;
false || true;
// Bitwise Operators
5 ^ val;
5 & val;
5 | val;
5 << val;
5 >> val;
// Unary Operators
!val;
-val;
*val_pointer;
}

View file

@ -0,0 +1,132 @@
warning: unused comparison which must be used
--> $DIR/must-use-ops.rs:23:5
|
LL | val == 1;
| ^^^^^^^^
|
note: lint level defined here
--> $DIR/must-use-ops.rs:16:9
|
LL | #![warn(unused_must_use)]
| ^^^^^^^^^^^^^^^
warning: unused comparison which must be used
--> $DIR/must-use-ops.rs:24:5
|
LL | val < 1;
| ^^^^^^^
warning: unused comparison which must be used
--> $DIR/must-use-ops.rs:25:5
|
LL | val <= 1;
| ^^^^^^^^
warning: unused comparison which must be used
--> $DIR/must-use-ops.rs:26:5
|
LL | val != 1;
| ^^^^^^^^
warning: unused comparison which must be used
--> $DIR/must-use-ops.rs:27:5
|
LL | val >= 1;
| ^^^^^^^^
warning: unused comparison which must be used
--> $DIR/must-use-ops.rs:28:5
|
LL | val > 1;
| ^^^^^^^
warning: unused arithmetic operation which must be used
--> $DIR/must-use-ops.rs:31:5
|
LL | val + 2;
| ^^^^^^^
warning: unused arithmetic operation which must be used
--> $DIR/must-use-ops.rs:32:5
|
LL | val - 2;
| ^^^^^^^
warning: unused arithmetic operation which must be used
--> $DIR/must-use-ops.rs:33:5
|
LL | val / 2;
| ^^^^^^^
warning: unused arithmetic operation which must be used
--> $DIR/must-use-ops.rs:34:5
|
LL | val * 2;
| ^^^^^^^
warning: unused arithmetic operation which must be used
--> $DIR/must-use-ops.rs:35:5
|
LL | val % 2;
| ^^^^^^^
warning: unused logical operation which must be used
--> $DIR/must-use-ops.rs:38:5
|
LL | true && true;
| ^^^^^^^^^^^^
warning: unused logical operation which must be used
--> $DIR/must-use-ops.rs:39:5
|
LL | false || true;
| ^^^^^^^^^^^^^
warning: unused bitwise operation which must be used
--> $DIR/must-use-ops.rs:42:5
|
LL | 5 ^ val;
| ^^^^^^^
warning: unused bitwise operation which must be used
--> $DIR/must-use-ops.rs:43:5
|
LL | 5 & val;
| ^^^^^^^
warning: unused bitwise operation which must be used
--> $DIR/must-use-ops.rs:44:5
|
LL | 5 | val;
| ^^^^^^^
warning: unused bitwise operation which must be used
--> $DIR/must-use-ops.rs:45:5
|
LL | 5 << val;
| ^^^^^^^^
warning: unused bitwise operation which must be used
--> $DIR/must-use-ops.rs:46:5
|
LL | 5 >> val;
| ^^^^^^^^
warning: unused unary operation which must be used
--> $DIR/must-use-ops.rs:49:5
|
LL | !val;
| ^^^^
warning: unused unary operation which must be used
--> $DIR/must-use-ops.rs:50:5
|
LL | -val;
| ^^^^
warning: unused unary operation which must be used
--> $DIR/must-use-ops.rs:51:5
|
LL | *val_pointer;
| ^^^^^^^^^^^^