Fix #66295
This commit is contained in:
parent
4787e97475
commit
3aa9902025
@ -17,7 +17,7 @@
|
||||
use syntax::symbol::{kw, sym};
|
||||
use syntax::symbol::Symbol;
|
||||
use syntax::util::parser;
|
||||
use syntax_pos::{Span, BytePos};
|
||||
use syntax_pos::{MultiSpan, Span, BytePos};
|
||||
|
||||
use log::debug;
|
||||
|
||||
@ -355,7 +355,11 @@ fn check_unused_parens_expr(&self,
|
||||
match value.kind {
|
||||
ast::ExprKind::Paren(ref inner) => {
|
||||
if !Self::is_expr_parens_necessary(inner, followed_by_block) &&
|
||||
value.attrs.is_empty() {
|
||||
value.attrs.is_empty() &&
|
||||
!MultiSpan::from(value.span).primary_span()
|
||||
.map(|span| span.from_expansion())
|
||||
.unwrap_or(false)
|
||||
{
|
||||
let expr_text = if let Ok(snippet) = cx.sess().source_map()
|
||||
.span_to_snippet(value.span) {
|
||||
snippet
|
||||
|
@ -25,6 +25,12 @@ fn passes_unused_parens_lint() -> &'static (dyn Trait) {
|
||||
panic!()
|
||||
}
|
||||
|
||||
macro_rules! baz {
|
||||
($($foo:expr),+) => {
|
||||
($($foo),*)
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
foo();
|
||||
bar((true)); //~ ERROR unnecessary parentheses around function argument
|
||||
@ -55,4 +61,7 @@ fn main() {
|
||||
let mut _a = (0); //~ ERROR unnecessary parentheses around assigned value
|
||||
_a = (0); //~ ERROR unnecessary parentheses around assigned value
|
||||
_a += (1); //~ ERROR unnecessary parentheses around assigned value
|
||||
|
||||
let _a = baz!(3, 4);
|
||||
let _b = baz!(3);
|
||||
}
|
||||
|
@ -23,25 +23,25 @@ LL | fn unused_parens_around_return_type() -> (u32) {
|
||||
| ^^^^^ help: remove these parentheses
|
||||
|
||||
error: unnecessary parentheses around function argument
|
||||
--> $DIR/lint-unnecessary-parens.rs:30:9
|
||||
--> $DIR/lint-unnecessary-parens.rs:36:9
|
||||
|
|
||||
LL | bar((true));
|
||||
| ^^^^^^ help: remove these parentheses
|
||||
|
||||
error: unnecessary parentheses around `if` condition
|
||||
--> $DIR/lint-unnecessary-parens.rs:32:8
|
||||
--> $DIR/lint-unnecessary-parens.rs:38:8
|
||||
|
|
||||
LL | if (true) {}
|
||||
| ^^^^^^ help: remove these parentheses
|
||||
|
||||
error: unnecessary parentheses around `while` condition
|
||||
--> $DIR/lint-unnecessary-parens.rs:33:11
|
||||
--> $DIR/lint-unnecessary-parens.rs:39:11
|
||||
|
|
||||
LL | while (true) {}
|
||||
| ^^^^^^ help: remove these parentheses
|
||||
|
||||
warning: denote infinite loops with `loop { ... }`
|
||||
--> $DIR/lint-unnecessary-parens.rs:33:5
|
||||
--> $DIR/lint-unnecessary-parens.rs:39:5
|
||||
|
|
||||
LL | while (true) {}
|
||||
| ^^^^^^^^^^^^ help: use `loop`
|
||||
@ -49,43 +49,43 @@ LL | while (true) {}
|
||||
= note: `#[warn(while_true)]` on by default
|
||||
|
||||
error: unnecessary parentheses around `match` head expression
|
||||
--> $DIR/lint-unnecessary-parens.rs:35:11
|
||||
--> $DIR/lint-unnecessary-parens.rs:41:11
|
||||
|
|
||||
LL | match (true) {
|
||||
| ^^^^^^ help: remove these parentheses
|
||||
|
||||
error: unnecessary parentheses around `let` head expression
|
||||
--> $DIR/lint-unnecessary-parens.rs:38:16
|
||||
--> $DIR/lint-unnecessary-parens.rs:44:16
|
||||
|
|
||||
LL | if let 1 = (1) {}
|
||||
| ^^^ help: remove these parentheses
|
||||
|
||||
error: unnecessary parentheses around `let` head expression
|
||||
--> $DIR/lint-unnecessary-parens.rs:39:19
|
||||
--> $DIR/lint-unnecessary-parens.rs:45:19
|
||||
|
|
||||
LL | while let 1 = (2) {}
|
||||
| ^^^ help: remove these parentheses
|
||||
|
||||
error: unnecessary parentheses around method argument
|
||||
--> $DIR/lint-unnecessary-parens.rs:53:24
|
||||
--> $DIR/lint-unnecessary-parens.rs:59:24
|
||||
|
|
||||
LL | X { y: false }.foo((true));
|
||||
| ^^^^^^ help: remove these parentheses
|
||||
|
||||
error: unnecessary parentheses around assigned value
|
||||
--> $DIR/lint-unnecessary-parens.rs:55:18
|
||||
--> $DIR/lint-unnecessary-parens.rs:61:18
|
||||
|
|
||||
LL | let mut _a = (0);
|
||||
| ^^^ help: remove these parentheses
|
||||
|
||||
error: unnecessary parentheses around assigned value
|
||||
--> $DIR/lint-unnecessary-parens.rs:56:10
|
||||
--> $DIR/lint-unnecessary-parens.rs:62:10
|
||||
|
|
||||
LL | _a = (0);
|
||||
| ^^^ help: remove these parentheses
|
||||
|
||||
error: unnecessary parentheses around assigned value
|
||||
--> $DIR/lint-unnecessary-parens.rs:57:11
|
||||
--> $DIR/lint-unnecessary-parens.rs:63:11
|
||||
|
|
||||
LL | _a += (1);
|
||||
| ^^^ help: remove these parentheses
|
||||
|
Loading…
Reference in New Issue
Block a user