diff --git a/compiler/rustc_lint/src/unused.rs b/compiler/rustc_lint/src/unused.rs index c431c048ca01c..2b580452a60eb 100644 --- a/compiler/rustc_lint/src/unused.rs +++ b/compiler/rustc_lint/src/unused.rs @@ -161,7 +161,15 @@ impl<'tcx> LateLintPass<'tcx> for UnusedResults { if let Some(must_use_op) = must_use_op { cx.struct_span_lint(UNUSED_MUST_USE, expr.span, |lint| { - lint.build(&format!("unused {} that must be used", must_use_op)).emit() + let mut lint = lint.build(&format!("unused {} that must be used", must_use_op)); + lint.span_label(expr.span, &format!("the {} produces a value", must_use_op)); + lint.span_suggestion_verbose( + expr.span.shrink_to_lo(), + "use `let _ = ...` to ignore the resulting value", + "let _ = ".to_string(), + Applicability::MachineApplicable, + ); + lint.emit(); }); op_warned = true; } diff --git a/src/test/ui/lint/fn_must_use.stderr b/src/test/ui/lint/fn_must_use.stderr index d6b1cf3ae1f83..6a5fdac4d914b 100644 --- a/src/test/ui/lint/fn_must_use.stderr +++ b/src/test/ui/lint/fn_must_use.stderr @@ -47,13 +47,23 @@ warning: unused comparison that must be used --> $DIR/fn_must_use.rs:74:5 | LL | 2 == 3; - | ^^^^^^ + | ^^^^^^ the comparison produces a value + | +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = 2 == 3; + | ^^^^^^^ warning: unused comparison that must be used --> $DIR/fn_must_use.rs:75:5 | LL | m == n; - | ^^^^^^ + | ^^^^^^ the comparison produces a value + | +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = m == n; + | ^^^^^^^ warning: 8 warnings emitted diff --git a/src/test/ui/lint/must-use-ops.stderr b/src/test/ui/lint/must-use-ops.stderr deleted file mode 100644 index 3fb80f7e79881..0000000000000 --- a/src/test/ui/lint/must-use-ops.stderr +++ /dev/null @@ -1,134 +0,0 @@ -warning: unused comparison that must be used - --> $DIR/must-use-ops.rs:12:5 - | -LL | val == 1; - | ^^^^^^^^ - | -note: the lint level is defined here - --> $DIR/must-use-ops.rs:5:9 - | -LL | #![warn(unused_must_use)] - | ^^^^^^^^^^^^^^^ - -warning: unused comparison that must be used - --> $DIR/must-use-ops.rs:13:5 - | -LL | val < 1; - | ^^^^^^^ - -warning: unused comparison that must be used - --> $DIR/must-use-ops.rs:14:5 - | -LL | val <= 1; - | ^^^^^^^^ - -warning: unused comparison that must be used - --> $DIR/must-use-ops.rs:15:5 - | -LL | val != 1; - | ^^^^^^^^ - -warning: unused comparison that must be used - --> $DIR/must-use-ops.rs:16:5 - | -LL | val >= 1; - | ^^^^^^^^ - -warning: unused comparison that must be used - --> $DIR/must-use-ops.rs:17:5 - | -LL | val > 1; - | ^^^^^^^ - -warning: unused arithmetic operation that must be used - --> $DIR/must-use-ops.rs:20:5 - | -LL | val + 2; - | ^^^^^^^ - -warning: unused arithmetic operation that must be used - --> $DIR/must-use-ops.rs:21:5 - | -LL | val - 2; - | ^^^^^^^ - -warning: unused arithmetic operation that must be used - --> $DIR/must-use-ops.rs:22:5 - | -LL | val / 2; - | ^^^^^^^ - -warning: unused arithmetic operation that must be used - --> $DIR/must-use-ops.rs:23:5 - | -LL | val * 2; - | ^^^^^^^ - -warning: unused arithmetic operation that must be used - --> $DIR/must-use-ops.rs:24:5 - | -LL | val % 2; - | ^^^^^^^ - -warning: unused logical operation that must be used - --> $DIR/must-use-ops.rs:27:5 - | -LL | true && true; - | ^^^^^^^^^^^^ - -warning: unused logical operation that must be used - --> $DIR/must-use-ops.rs:28:5 - | -LL | false || true; - | ^^^^^^^^^^^^^ - -warning: unused bitwise operation that must be used - --> $DIR/must-use-ops.rs:31:5 - | -LL | 5 ^ val; - | ^^^^^^^ - -warning: unused bitwise operation that must be used - --> $DIR/must-use-ops.rs:32:5 - | -LL | 5 & val; - | ^^^^^^^ - -warning: unused bitwise operation that must be used - --> $DIR/must-use-ops.rs:33:5 - | -LL | 5 | val; - | ^^^^^^^ - -warning: unused bitwise operation that must be used - --> $DIR/must-use-ops.rs:34:5 - | -LL | 5 << val; - | ^^^^^^^^ - -warning: unused bitwise operation that must be used - --> $DIR/must-use-ops.rs:35:5 - | -LL | 5 >> val; - | ^^^^^^^^ - -warning: unused unary operation that must be used - --> $DIR/must-use-ops.rs:38:5 - | -LL | !val; - | ^^^^ - -warning: unused unary operation that must be used - --> $DIR/must-use-ops.rs:39:5 - | -LL | -val; - | ^^^^ - -warning: unused unary operation that must be used - --> $DIR/must-use-ops.rs:40:5 - | -LL | *val_pointer; - | ^^^^^^^^^^^^ - -warning: 21 warnings emitted - diff --git a/src/test/ui/lint/unused-borrows.stderr b/src/test/ui/lint/unused-borrows.stderr index 24899fe992b9f..e91e02df4764d 100644 --- a/src/test/ui/lint/unused-borrows.stderr +++ b/src/test/ui/lint/unused-borrows.stderr @@ -2,43 +2,72 @@ error: unused borrow that must be used --> $DIR/unused-borrows.rs:6:5 | LL | &42; - | ^^^ + | ^^^ the borrow produces a value | note: the lint level is defined here --> $DIR/unused-borrows.rs:1:9 | LL | #![deny(unused_must_use)] | ^^^^^^^^^^^^^^^ +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = &42; + | ^^^^^^^ error: unused borrow that must be used --> $DIR/unused-borrows.rs:9:5 | LL | &mut foo(42); - | ^^^^^^^^^^^^ + | ^^^^^^^^^^^^ the borrow produces a value + | +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = &mut foo(42); + | ^^^^^^^ error: unused borrow that must be used --> $DIR/unused-borrows.rs:12:5 | LL | &&42; - | ^^^^ + | ^^^^ the borrow produces a value + | +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = &&42; + | ^^^^^^^ error: unused borrow that must be used --> $DIR/unused-borrows.rs:15:5 | LL | &&mut 42; - | ^^^^^^^^ + | ^^^^^^^^ the borrow produces a value + | +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = &&mut 42; + | ^^^^^^^ error: unused borrow that must be used --> $DIR/unused-borrows.rs:18:5 | LL | &mut &42; - | ^^^^^^^^ + | ^^^^^^^^ the borrow produces a value + | +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = &mut &42; + | ^^^^^^^ error: unused borrow that must be used --> $DIR/unused-borrows.rs:23:5 | LL | && foo(42); - | ^^^^^^^^^^ + | ^^^^^^^^^^ the borrow produces a value + | +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = && foo(42); + | ^^^^^^^ error: aborting due to 6 previous errors diff --git a/src/test/ui/lint/auxiliary/lint_unused_extern_crate.rs b/src/test/ui/lint/unused/auxiliary/lint_unused_extern_crate.rs similarity index 100% rename from src/test/ui/lint/auxiliary/lint_unused_extern_crate.rs rename to src/test/ui/lint/unused/auxiliary/lint_unused_extern_crate.rs diff --git a/src/test/ui/lint/auxiliary/lint_unused_extern_crate2.rs b/src/test/ui/lint/unused/auxiliary/lint_unused_extern_crate2.rs similarity index 100% rename from src/test/ui/lint/auxiliary/lint_unused_extern_crate2.rs rename to src/test/ui/lint/unused/auxiliary/lint_unused_extern_crate2.rs diff --git a/src/test/ui/lint/auxiliary/lint_unused_extern_crate3.rs b/src/test/ui/lint/unused/auxiliary/lint_unused_extern_crate3.rs similarity index 100% rename from src/test/ui/lint/auxiliary/lint_unused_extern_crate3.rs rename to src/test/ui/lint/unused/auxiliary/lint_unused_extern_crate3.rs diff --git a/src/test/ui/lint/auxiliary/lint_unused_extern_crate4.rs b/src/test/ui/lint/unused/auxiliary/lint_unused_extern_crate4.rs similarity index 100% rename from src/test/ui/lint/auxiliary/lint_unused_extern_crate4.rs rename to src/test/ui/lint/unused/auxiliary/lint_unused_extern_crate4.rs diff --git a/src/test/ui/lint/auxiliary/lint_unused_extern_crate5.rs b/src/test/ui/lint/unused/auxiliary/lint_unused_extern_crate5.rs similarity index 100% rename from src/test/ui/lint/auxiliary/lint_unused_extern_crate5.rs rename to src/test/ui/lint/unused/auxiliary/lint_unused_extern_crate5.rs diff --git a/src/test/ui/unused/issue-30730.rs b/src/test/ui/lint/unused/issue-30730.rs similarity index 100% rename from src/test/ui/unused/issue-30730.rs rename to src/test/ui/lint/unused/issue-30730.rs diff --git a/src/test/ui/unused/issue-30730.stderr b/src/test/ui/lint/unused/issue-30730.stderr similarity index 100% rename from src/test/ui/unused/issue-30730.stderr rename to src/test/ui/lint/unused/issue-30730.stderr diff --git a/src/test/ui/unused/issue-46576.rs b/src/test/ui/lint/unused/issue-46576.rs similarity index 100% rename from src/test/ui/unused/issue-46576.rs rename to src/test/ui/lint/unused/issue-46576.rs diff --git a/src/test/ui/unused/issue-46576.stderr b/src/test/ui/lint/unused/issue-46576.stderr similarity index 100% rename from src/test/ui/unused/issue-46576.stderr rename to src/test/ui/lint/unused/issue-46576.stderr diff --git a/src/test/ui/lint/issue-47390-unused-variable-in-struct-pattern.rs b/src/test/ui/lint/unused/issue-47390-unused-variable-in-struct-pattern.rs similarity index 100% rename from src/test/ui/lint/issue-47390-unused-variable-in-struct-pattern.rs rename to src/test/ui/lint/unused/issue-47390-unused-variable-in-struct-pattern.rs diff --git a/src/test/ui/lint/issue-47390-unused-variable-in-struct-pattern.stderr b/src/test/ui/lint/unused/issue-47390-unused-variable-in-struct-pattern.stderr similarity index 100% rename from src/test/ui/lint/issue-47390-unused-variable-in-struct-pattern.stderr rename to src/test/ui/lint/unused/issue-47390-unused-variable-in-struct-pattern.stderr diff --git a/src/test/ui/lint/issue-54180-unused-ref-field.fixed b/src/test/ui/lint/unused/issue-54180-unused-ref-field.fixed similarity index 100% rename from src/test/ui/lint/issue-54180-unused-ref-field.fixed rename to src/test/ui/lint/unused/issue-54180-unused-ref-field.fixed diff --git a/src/test/ui/lint/issue-54180-unused-ref-field.rs b/src/test/ui/lint/unused/issue-54180-unused-ref-field.rs similarity index 100% rename from src/test/ui/lint/issue-54180-unused-ref-field.rs rename to src/test/ui/lint/unused/issue-54180-unused-ref-field.rs diff --git a/src/test/ui/lint/issue-54180-unused-ref-field.stderr b/src/test/ui/lint/unused/issue-54180-unused-ref-field.stderr similarity index 100% rename from src/test/ui/lint/issue-54180-unused-ref-field.stderr rename to src/test/ui/lint/unused/issue-54180-unused-ref-field.stderr diff --git a/src/test/ui/lint/issue-54538-unused-parens-lint.fixed b/src/test/ui/lint/unused/issue-54538-unused-parens-lint.fixed similarity index 100% rename from src/test/ui/lint/issue-54538-unused-parens-lint.fixed rename to src/test/ui/lint/unused/issue-54538-unused-parens-lint.fixed diff --git a/src/test/ui/lint/issue-54538-unused-parens-lint.rs b/src/test/ui/lint/unused/issue-54538-unused-parens-lint.rs similarity index 100% rename from src/test/ui/lint/issue-54538-unused-parens-lint.rs rename to src/test/ui/lint/unused/issue-54538-unused-parens-lint.rs diff --git a/src/test/ui/lint/issue-54538-unused-parens-lint.stderr b/src/test/ui/lint/unused/issue-54538-unused-parens-lint.stderr similarity index 100% rename from src/test/ui/lint/issue-54538-unused-parens-lint.stderr rename to src/test/ui/lint/unused/issue-54538-unused-parens-lint.stderr diff --git a/src/test/ui/unused/issue-59896.rs b/src/test/ui/lint/unused/issue-59896.rs similarity index 100% rename from src/test/ui/unused/issue-59896.rs rename to src/test/ui/lint/unused/issue-59896.rs diff --git a/src/test/ui/unused/issue-59896.stderr b/src/test/ui/lint/unused/issue-59896.stderr similarity index 100% rename from src/test/ui/unused/issue-59896.stderr rename to src/test/ui/lint/unused/issue-59896.stderr diff --git a/src/test/ui/lint/issue-67691-unused-field-in-or-pattern.rs b/src/test/ui/lint/unused/issue-67691-unused-field-in-or-pattern.rs similarity index 100% rename from src/test/ui/lint/issue-67691-unused-field-in-or-pattern.rs rename to src/test/ui/lint/unused/issue-67691-unused-field-in-or-pattern.rs diff --git a/src/test/ui/lint/issue-67691-unused-field-in-or-pattern.stderr b/src/test/ui/lint/unused/issue-67691-unused-field-in-or-pattern.stderr similarity index 100% rename from src/test/ui/lint/issue-67691-unused-field-in-or-pattern.stderr rename to src/test/ui/lint/unused/issue-67691-unused-field-in-or-pattern.stderr diff --git a/src/test/ui/unused/issue-70041.rs b/src/test/ui/lint/unused/issue-70041.rs similarity index 100% rename from src/test/ui/unused/issue-70041.rs rename to src/test/ui/lint/unused/issue-70041.rs diff --git a/src/test/ui/unused/issue-70041.stderr b/src/test/ui/lint/unused/issue-70041.stderr similarity index 100% rename from src/test/ui/unused/issue-70041.stderr rename to src/test/ui/lint/unused/issue-70041.stderr diff --git a/src/test/ui/lint/issue-71290-unused-paren-binop.rs b/src/test/ui/lint/unused/issue-71290-unused-paren-binop.rs similarity index 100% rename from src/test/ui/lint/issue-71290-unused-paren-binop.rs rename to src/test/ui/lint/unused/issue-71290-unused-paren-binop.rs diff --git a/src/test/ui/lint/issue-74883-unused-paren-baren-yield.rs b/src/test/ui/lint/unused/issue-74883-unused-paren-baren-yield.rs similarity index 100% rename from src/test/ui/lint/issue-74883-unused-paren-baren-yield.rs rename to src/test/ui/lint/unused/issue-74883-unused-paren-baren-yield.rs diff --git a/src/test/ui/lint/issue-74883-unused-paren-baren-yield.stderr b/src/test/ui/lint/unused/issue-74883-unused-paren-baren-yield.stderr similarity index 100% rename from src/test/ui/lint/issue-74883-unused-paren-baren-yield.stderr rename to src/test/ui/lint/unused/issue-74883-unused-paren-baren-yield.stderr diff --git a/src/test/ui/lint/issue-81314-unused-span-ident.fixed b/src/test/ui/lint/unused/issue-81314-unused-span-ident.fixed similarity index 100% rename from src/test/ui/lint/issue-81314-unused-span-ident.fixed rename to src/test/ui/lint/unused/issue-81314-unused-span-ident.fixed diff --git a/src/test/ui/lint/issue-81314-unused-span-ident.rs b/src/test/ui/lint/unused/issue-81314-unused-span-ident.rs similarity index 100% rename from src/test/ui/lint/issue-81314-unused-span-ident.rs rename to src/test/ui/lint/unused/issue-81314-unused-span-ident.rs diff --git a/src/test/ui/lint/issue-81314-unused-span-ident.stderr b/src/test/ui/lint/unused/issue-81314-unused-span-ident.stderr similarity index 100% rename from src/test/ui/lint/issue-81314-unused-span-ident.stderr rename to src/test/ui/lint/unused/issue-81314-unused-span-ident.stderr diff --git a/src/test/ui/lint/unused/issue-85913.rs b/src/test/ui/lint/unused/issue-85913.rs new file mode 100644 index 0000000000000..7f3817b6ef1cc --- /dev/null +++ b/src/test/ui/lint/unused/issue-85913.rs @@ -0,0 +1,13 @@ +#![deny(unused_must_use)] + +pub fn fun() -> i32 { + function() && return 1; + //~^ ERROR: unused logical operation that must be used + return 0; +} + +fn function() -> bool { + true +} + +fn main() {} diff --git a/src/test/ui/lint/unused/issue-85913.stderr b/src/test/ui/lint/unused/issue-85913.stderr new file mode 100644 index 0000000000000..4835cfae46fdc --- /dev/null +++ b/src/test/ui/lint/unused/issue-85913.stderr @@ -0,0 +1,18 @@ +error: unused logical operation that must be used + --> $DIR/issue-85913.rs:4:5 + | +LL | function() && return 1; + | ^^^^^^^^^^^^^^^^^^^^^^ the logical operation produces a value + | +note: the lint level is defined here + --> $DIR/issue-85913.rs:1:9 + | +LL | #![deny(unused_must_use)] + | ^^^^^^^^^^^^^^^ +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = function() && return 1; + | ^^^^^^^ + +error: aborting due to previous error + diff --git a/src/test/ui/lint/lint-unused-extern-crate.rs b/src/test/ui/lint/unused/lint-unused-extern-crate.rs similarity index 100% rename from src/test/ui/lint/lint-unused-extern-crate.rs rename to src/test/ui/lint/unused/lint-unused-extern-crate.rs diff --git a/src/test/ui/lint/lint-unused-extern-crate.stderr b/src/test/ui/lint/unused/lint-unused-extern-crate.stderr similarity index 100% rename from src/test/ui/lint/lint-unused-extern-crate.stderr rename to src/test/ui/lint/unused/lint-unused-extern-crate.stderr diff --git a/src/test/ui/lint/lint-unused-imports.rs b/src/test/ui/lint/unused/lint-unused-imports.rs similarity index 100% rename from src/test/ui/lint/lint-unused-imports.rs rename to src/test/ui/lint/unused/lint-unused-imports.rs diff --git a/src/test/ui/lint/lint-unused-imports.stderr b/src/test/ui/lint/unused/lint-unused-imports.stderr similarity index 100% rename from src/test/ui/lint/lint-unused-imports.stderr rename to src/test/ui/lint/unused/lint-unused-imports.stderr diff --git a/src/test/ui/lint/lint-unused-mut-self.fixed b/src/test/ui/lint/unused/lint-unused-mut-self.fixed similarity index 100% rename from src/test/ui/lint/lint-unused-mut-self.fixed rename to src/test/ui/lint/unused/lint-unused-mut-self.fixed diff --git a/src/test/ui/lint/lint-unused-mut-self.rs b/src/test/ui/lint/unused/lint-unused-mut-self.rs similarity index 100% rename from src/test/ui/lint/lint-unused-mut-self.rs rename to src/test/ui/lint/unused/lint-unused-mut-self.rs diff --git a/src/test/ui/lint/lint-unused-mut-self.stderr b/src/test/ui/lint/unused/lint-unused-mut-self.stderr similarity index 100% rename from src/test/ui/lint/lint-unused-mut-self.stderr rename to src/test/ui/lint/unused/lint-unused-mut-self.stderr diff --git a/src/test/ui/lint/lint-unused-mut-variables.rs b/src/test/ui/lint/unused/lint-unused-mut-variables.rs similarity index 100% rename from src/test/ui/lint/lint-unused-mut-variables.rs rename to src/test/ui/lint/unused/lint-unused-mut-variables.rs diff --git a/src/test/ui/lint/lint-unused-mut-variables.stderr b/src/test/ui/lint/unused/lint-unused-mut-variables.stderr similarity index 100% rename from src/test/ui/lint/lint-unused-mut-variables.stderr rename to src/test/ui/lint/unused/lint-unused-mut-variables.stderr diff --git a/src/test/ui/lint/lint-unused-variables.rs b/src/test/ui/lint/unused/lint-unused-variables.rs similarity index 100% rename from src/test/ui/lint/lint-unused-variables.rs rename to src/test/ui/lint/unused/lint-unused-variables.rs diff --git a/src/test/ui/lint/lint-unused-variables.stderr b/src/test/ui/lint/unused/lint-unused-variables.stderr similarity index 100% rename from src/test/ui/lint/lint-unused-variables.stderr rename to src/test/ui/lint/unused/lint-unused-variables.stderr diff --git a/src/test/ui/lint/must-use-ops.rs b/src/test/ui/lint/unused/must-use-ops.rs similarity index 100% rename from src/test/ui/lint/must-use-ops.rs rename to src/test/ui/lint/unused/must-use-ops.rs diff --git a/src/test/ui/lint/unused/must-use-ops.stderr b/src/test/ui/lint/unused/must-use-ops.stderr new file mode 100644 index 0000000000000..4dd739088b99f --- /dev/null +++ b/src/test/ui/lint/unused/must-use-ops.stderr @@ -0,0 +1,238 @@ +warning: unused comparison that must be used + --> $DIR/must-use-ops.rs:12:5 + | +LL | val == 1; + | ^^^^^^^^ the comparison produces a value + | +note: the lint level is defined here + --> $DIR/must-use-ops.rs:5:9 + | +LL | #![warn(unused_must_use)] + | ^^^^^^^^^^^^^^^ +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = val == 1; + | ^^^^^^^ + +warning: unused comparison that must be used + --> $DIR/must-use-ops.rs:13:5 + | +LL | val < 1; + | ^^^^^^^ the comparison produces a value + | +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = val < 1; + | ^^^^^^^ + +warning: unused comparison that must be used + --> $DIR/must-use-ops.rs:14:5 + | +LL | val <= 1; + | ^^^^^^^^ the comparison produces a value + | +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = val <= 1; + | ^^^^^^^ + +warning: unused comparison that must be used + --> $DIR/must-use-ops.rs:15:5 + | +LL | val != 1; + | ^^^^^^^^ the comparison produces a value + | +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = val != 1; + | ^^^^^^^ + +warning: unused comparison that must be used + --> $DIR/must-use-ops.rs:16:5 + | +LL | val >= 1; + | ^^^^^^^^ the comparison produces a value + | +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = val >= 1; + | ^^^^^^^ + +warning: unused comparison that must be used + --> $DIR/must-use-ops.rs:17:5 + | +LL | val > 1; + | ^^^^^^^ the comparison produces a value + | +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = val > 1; + | ^^^^^^^ + +warning: unused arithmetic operation that must be used + --> $DIR/must-use-ops.rs:20:5 + | +LL | val + 2; + | ^^^^^^^ the arithmetic operation produces a value + | +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = val + 2; + | ^^^^^^^ + +warning: unused arithmetic operation that must be used + --> $DIR/must-use-ops.rs:21:5 + | +LL | val - 2; + | ^^^^^^^ the arithmetic operation produces a value + | +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = val - 2; + | ^^^^^^^ + +warning: unused arithmetic operation that must be used + --> $DIR/must-use-ops.rs:22:5 + | +LL | val / 2; + | ^^^^^^^ the arithmetic operation produces a value + | +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = val / 2; + | ^^^^^^^ + +warning: unused arithmetic operation that must be used + --> $DIR/must-use-ops.rs:23:5 + | +LL | val * 2; + | ^^^^^^^ the arithmetic operation produces a value + | +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = val * 2; + | ^^^^^^^ + +warning: unused arithmetic operation that must be used + --> $DIR/must-use-ops.rs:24:5 + | +LL | val % 2; + | ^^^^^^^ the arithmetic operation produces a value + | +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = val % 2; + | ^^^^^^^ + +warning: unused logical operation that must be used + --> $DIR/must-use-ops.rs:27:5 + | +LL | true && true; + | ^^^^^^^^^^^^ the logical operation produces a value + | +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = true && true; + | ^^^^^^^ + +warning: unused logical operation that must be used + --> $DIR/must-use-ops.rs:28:5 + | +LL | false || true; + | ^^^^^^^^^^^^^ the logical operation produces a value + | +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = false || true; + | ^^^^^^^ + +warning: unused bitwise operation that must be used + --> $DIR/must-use-ops.rs:31:5 + | +LL | 5 ^ val; + | ^^^^^^^ the bitwise operation produces a value + | +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = 5 ^ val; + | ^^^^^^^ + +warning: unused bitwise operation that must be used + --> $DIR/must-use-ops.rs:32:5 + | +LL | 5 & val; + | ^^^^^^^ the bitwise operation produces a value + | +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = 5 & val; + | ^^^^^^^ + +warning: unused bitwise operation that must be used + --> $DIR/must-use-ops.rs:33:5 + | +LL | 5 | val; + | ^^^^^^^ the bitwise operation produces a value + | +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = 5 | val; + | ^^^^^^^ + +warning: unused bitwise operation that must be used + --> $DIR/must-use-ops.rs:34:5 + | +LL | 5 << val; + | ^^^^^^^^ the bitwise operation produces a value + | +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = 5 << val; + | ^^^^^^^ + +warning: unused bitwise operation that must be used + --> $DIR/must-use-ops.rs:35:5 + | +LL | 5 >> val; + | ^^^^^^^^ the bitwise operation produces a value + | +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = 5 >> val; + | ^^^^^^^ + +warning: unused unary operation that must be used + --> $DIR/must-use-ops.rs:38:5 + | +LL | !val; + | ^^^^ the unary operation produces a value + | +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = !val; + | ^^^^^^^ + +warning: unused unary operation that must be used + --> $DIR/must-use-ops.rs:39:5 + | +LL | -val; + | ^^^^ the unary operation produces a value + | +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = -val; + | ^^^^^^^ + +warning: unused unary operation that must be used + --> $DIR/must-use-ops.rs:40:5 + | +LL | *val_pointer; + | ^^^^^^^^^^^^ the unary operation produces a value + | +help: use `let _ = ...` to ignore the resulting value + | +LL | let _ = *val_pointer; + | ^^^^^^^ + +warning: 21 warnings emitted + diff --git a/src/test/ui/lint/must_use-array.rs b/src/test/ui/lint/unused/must_use-array.rs similarity index 100% rename from src/test/ui/lint/must_use-array.rs rename to src/test/ui/lint/unused/must_use-array.rs diff --git a/src/test/ui/lint/must_use-array.stderr b/src/test/ui/lint/unused/must_use-array.stderr similarity index 100% rename from src/test/ui/lint/must_use-array.stderr rename to src/test/ui/lint/unused/must_use-array.stderr diff --git a/src/test/ui/lint/must_use-in-stdlib-traits.rs b/src/test/ui/lint/unused/must_use-in-stdlib-traits.rs similarity index 100% rename from src/test/ui/lint/must_use-in-stdlib-traits.rs rename to src/test/ui/lint/unused/must_use-in-stdlib-traits.rs diff --git a/src/test/ui/lint/must_use-in-stdlib-traits.stderr b/src/test/ui/lint/unused/must_use-in-stdlib-traits.stderr similarity index 100% rename from src/test/ui/lint/must_use-in-stdlib-traits.stderr rename to src/test/ui/lint/unused/must_use-in-stdlib-traits.stderr diff --git a/src/test/ui/lint/must_use-trait.rs b/src/test/ui/lint/unused/must_use-trait.rs similarity index 100% rename from src/test/ui/lint/must_use-trait.rs rename to src/test/ui/lint/unused/must_use-trait.rs diff --git a/src/test/ui/lint/must_use-trait.stderr b/src/test/ui/lint/unused/must_use-trait.stderr similarity index 100% rename from src/test/ui/lint/must_use-trait.stderr rename to src/test/ui/lint/unused/must_use-trait.stderr diff --git a/src/test/ui/lint/must_use-tuple.rs b/src/test/ui/lint/unused/must_use-tuple.rs similarity index 100% rename from src/test/ui/lint/must_use-tuple.rs rename to src/test/ui/lint/unused/must_use-tuple.rs diff --git a/src/test/ui/lint/must_use-tuple.stderr b/src/test/ui/lint/unused/must_use-tuple.stderr similarity index 100% rename from src/test/ui/lint/must_use-tuple.stderr rename to src/test/ui/lint/unused/must_use-tuple.stderr diff --git a/src/test/ui/lint/must_use-unit.rs b/src/test/ui/lint/unused/must_use-unit.rs similarity index 100% rename from src/test/ui/lint/must_use-unit.rs rename to src/test/ui/lint/unused/must_use-unit.rs diff --git a/src/test/ui/lint/must_use-unit.stderr b/src/test/ui/lint/unused/must_use-unit.stderr similarity index 100% rename from src/test/ui/lint/must_use-unit.stderr rename to src/test/ui/lint/unused/must_use-unit.stderr diff --git a/src/test/ui/lint/no-unused-parens-return-block.rs b/src/test/ui/lint/unused/no-unused-parens-return-block.rs similarity index 100% rename from src/test/ui/lint/no-unused-parens-return-block.rs rename to src/test/ui/lint/unused/no-unused-parens-return-block.rs diff --git a/src/test/ui/unused/unused-attr-macro-rules.rs b/src/test/ui/lint/unused/unused-attr-macro-rules.rs similarity index 100% rename from src/test/ui/unused/unused-attr-macro-rules.rs rename to src/test/ui/lint/unused/unused-attr-macro-rules.rs diff --git a/src/test/ui/unused/unused-attr-macro-rules.stderr b/src/test/ui/lint/unused/unused-attr-macro-rules.stderr similarity index 100% rename from src/test/ui/unused/unused-attr-macro-rules.stderr rename to src/test/ui/lint/unused/unused-attr-macro-rules.stderr diff --git a/src/test/ui/unused/unused-attr.rs b/src/test/ui/lint/unused/unused-attr.rs similarity index 100% rename from src/test/ui/unused/unused-attr.rs rename to src/test/ui/lint/unused/unused-attr.rs diff --git a/src/test/ui/unused/unused-attr.stderr b/src/test/ui/lint/unused/unused-attr.stderr similarity index 100% rename from src/test/ui/unused/unused-attr.stderr rename to src/test/ui/lint/unused/unused-attr.stderr diff --git a/src/test/ui/unused/unused-closure.rs b/src/test/ui/lint/unused/unused-closure.rs similarity index 100% rename from src/test/ui/unused/unused-closure.rs rename to src/test/ui/lint/unused/unused-closure.rs diff --git a/src/test/ui/unused/unused-closure.stderr b/src/test/ui/lint/unused/unused-closure.stderr similarity index 100% rename from src/test/ui/unused/unused-closure.stderr rename to src/test/ui/lint/unused/unused-closure.stderr diff --git a/src/test/ui/unused/unused-doc-comments-edge-cases.rs b/src/test/ui/lint/unused/unused-doc-comments-edge-cases.rs similarity index 100% rename from src/test/ui/unused/unused-doc-comments-edge-cases.rs rename to src/test/ui/lint/unused/unused-doc-comments-edge-cases.rs diff --git a/src/test/ui/unused/unused-doc-comments-edge-cases.stderr b/src/test/ui/lint/unused/unused-doc-comments-edge-cases.stderr similarity index 100% rename from src/test/ui/unused/unused-doc-comments-edge-cases.stderr rename to src/test/ui/lint/unused/unused-doc-comments-edge-cases.stderr diff --git a/src/test/ui/unused/unused-doc-comments-for-macros.rs b/src/test/ui/lint/unused/unused-doc-comments-for-macros.rs similarity index 100% rename from src/test/ui/unused/unused-doc-comments-for-macros.rs rename to src/test/ui/lint/unused/unused-doc-comments-for-macros.rs diff --git a/src/test/ui/unused/unused-doc-comments-for-macros.stderr b/src/test/ui/lint/unused/unused-doc-comments-for-macros.stderr similarity index 100% rename from src/test/ui/unused/unused-doc-comments-for-macros.stderr rename to src/test/ui/lint/unused/unused-doc-comments-for-macros.stderr diff --git a/src/test/ui/unused/unused-macro-rules.rs b/src/test/ui/lint/unused/unused-macro-rules.rs similarity index 100% rename from src/test/ui/unused/unused-macro-rules.rs rename to src/test/ui/lint/unused/unused-macro-rules.rs diff --git a/src/test/ui/unused/unused-macro-rules.stderr b/src/test/ui/lint/unused/unused-macro-rules.stderr similarity index 100% rename from src/test/ui/unused/unused-macro-rules.stderr rename to src/test/ui/lint/unused/unused-macro-rules.stderr diff --git a/src/test/ui/unused/unused-macro-with-bad-frag-spec.rs b/src/test/ui/lint/unused/unused-macro-with-bad-frag-spec.rs similarity index 100% rename from src/test/ui/unused/unused-macro-with-bad-frag-spec.rs rename to src/test/ui/lint/unused/unused-macro-with-bad-frag-spec.rs diff --git a/src/test/ui/unused/unused-macro-with-bad-frag-spec.stderr b/src/test/ui/lint/unused/unused-macro-with-bad-frag-spec.stderr similarity index 100% rename from src/test/ui/unused/unused-macro-with-bad-frag-spec.stderr rename to src/test/ui/lint/unused/unused-macro-with-bad-frag-spec.stderr diff --git a/src/test/ui/unused/unused-macro-with-follow-violation.rs b/src/test/ui/lint/unused/unused-macro-with-follow-violation.rs similarity index 100% rename from src/test/ui/unused/unused-macro-with-follow-violation.rs rename to src/test/ui/lint/unused/unused-macro-with-follow-violation.rs diff --git a/src/test/ui/unused/unused-macro-with-follow-violation.stderr b/src/test/ui/lint/unused/unused-macro-with-follow-violation.stderr similarity index 100% rename from src/test/ui/unused/unused-macro-with-follow-violation.stderr rename to src/test/ui/lint/unused/unused-macro-with-follow-violation.stderr diff --git a/src/test/ui/unused/unused-macro.rs b/src/test/ui/lint/unused/unused-macro.rs similarity index 100% rename from src/test/ui/unused/unused-macro.rs rename to src/test/ui/lint/unused/unused-macro.rs diff --git a/src/test/ui/unused/unused-macro.stderr b/src/test/ui/lint/unused/unused-macro.stderr similarity index 100% rename from src/test/ui/unused/unused-macro.stderr rename to src/test/ui/lint/unused/unused-macro.stderr diff --git a/src/test/ui/unused/unused-mut-warning-captured-var.fixed b/src/test/ui/lint/unused/unused-mut-warning-captured-var.fixed similarity index 100% rename from src/test/ui/unused/unused-mut-warning-captured-var.fixed rename to src/test/ui/lint/unused/unused-mut-warning-captured-var.fixed diff --git a/src/test/ui/unused/unused-mut-warning-captured-var.rs b/src/test/ui/lint/unused/unused-mut-warning-captured-var.rs similarity index 100% rename from src/test/ui/unused/unused-mut-warning-captured-var.rs rename to src/test/ui/lint/unused/unused-mut-warning-captured-var.rs diff --git a/src/test/ui/unused/unused-mut-warning-captured-var.stderr b/src/test/ui/lint/unused/unused-mut-warning-captured-var.stderr similarity index 100% rename from src/test/ui/unused/unused-mut-warning-captured-var.stderr rename to src/test/ui/lint/unused/unused-mut-warning-captured-var.stderr diff --git a/src/test/ui/unused/unused-result.rs b/src/test/ui/lint/unused/unused-result.rs similarity index 100% rename from src/test/ui/unused/unused-result.rs rename to src/test/ui/lint/unused/unused-result.rs diff --git a/src/test/ui/unused/unused-result.stderr b/src/test/ui/lint/unused/unused-result.stderr similarity index 100% rename from src/test/ui/unused/unused-result.stderr rename to src/test/ui/lint/unused/unused-result.stderr diff --git a/src/test/ui/unused/useless-comment.rs b/src/test/ui/lint/unused/useless-comment.rs similarity index 100% rename from src/test/ui/unused/useless-comment.rs rename to src/test/ui/lint/unused/useless-comment.rs diff --git a/src/test/ui/unused/useless-comment.stderr b/src/test/ui/lint/unused/useless-comment.stderr similarity index 100% rename from src/test/ui/unused/useless-comment.stderr rename to src/test/ui/lint/unused/useless-comment.stderr