Enable unused_parens for match arms
This commit is contained in:
parent
c9e134e1b6
commit
8dd44f1af4
@ -377,7 +377,7 @@ fn print_literal(&mut self, lit: &ast::Lit) {
|
|||||||
|
|
||||||
fn print_string(&mut self, st: &str, style: ast::StrStyle) {
|
fn print_string(&mut self, st: &str, style: ast::StrStyle) {
|
||||||
let st = match style {
|
let st = match style {
|
||||||
ast::StrStyle::Cooked => (format!("\"{}\"", st.escape_debug())),
|
ast::StrStyle::Cooked => format!("\"{}\"", st.escape_debug()),
|
||||||
ast::StrStyle::Raw(n) => {
|
ast::StrStyle::Raw(n) => {
|
||||||
format!("r{delim}\"{string}\"{delim}", delim = "#".repeat(n as usize), string = st)
|
format!("r{delim}\"{string}\"{delim}", delim = "#".repeat(n as usize), string = st)
|
||||||
}
|
}
|
||||||
|
@ -839,7 +839,7 @@ fn give_name_if_anonymous_region_appears_in_yield_ty(
|
|||||||
hir::Node::Expr(hir::Expr {
|
hir::Node::Expr(hir::Expr {
|
||||||
kind: hir::ExprKind::Closure(&hir::Closure { fn_decl_span, .. }),
|
kind: hir::ExprKind::Closure(&hir::Closure { fn_decl_span, .. }),
|
||||||
..
|
..
|
||||||
}) => (tcx.sess.source_map().end_point(fn_decl_span)),
|
}) => tcx.sess.source_map().end_point(fn_decl_span),
|
||||||
_ => self.body.span,
|
_ => self.body.span,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -396,6 +396,7 @@ enum UnusedDelimsCtx {
|
|||||||
LetScrutineeExpr,
|
LetScrutineeExpr,
|
||||||
ArrayLenExpr,
|
ArrayLenExpr,
|
||||||
AnonConst,
|
AnonConst,
|
||||||
|
MatchArmExpr,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<UnusedDelimsCtx> for &'static str {
|
impl From<UnusedDelimsCtx> for &'static str {
|
||||||
@ -414,6 +415,7 @@ fn from(ctx: UnusedDelimsCtx) -> &'static str {
|
|||||||
UnusedDelimsCtx::BlockRetValue => "block return value",
|
UnusedDelimsCtx::BlockRetValue => "block return value",
|
||||||
UnusedDelimsCtx::LetScrutineeExpr => "`let` scrutinee expression",
|
UnusedDelimsCtx::LetScrutineeExpr => "`let` scrutinee expression",
|
||||||
UnusedDelimsCtx::ArrayLenExpr | UnusedDelimsCtx::AnonConst => "const expression",
|
UnusedDelimsCtx::ArrayLenExpr | UnusedDelimsCtx::AnonConst => "const expression",
|
||||||
|
UnusedDelimsCtx::MatchArmExpr => "match arm expression",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -805,6 +807,18 @@ fn check_expr(&mut self, cx: &EarlyContext<'_>, e: &ast::Expr) {
|
|||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
ExprKind::Match(ref _expr, ref arm) => {
|
||||||
|
for a in arm {
|
||||||
|
self.check_unused_delims_expr(
|
||||||
|
cx,
|
||||||
|
&a.body,
|
||||||
|
UnusedDelimsCtx::MatchArmExpr,
|
||||||
|
false,
|
||||||
|
None,
|
||||||
|
None,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -617,7 +617,7 @@ fn iter<'a>(&'a self) -> impl Iterator<Item = Slice> + Captures<'a> {
|
|||||||
// The only admissible fixed-length slice is one of the array size. Whether `max_slice`
|
// The only admissible fixed-length slice is one of the array size. Whether `max_slice`
|
||||||
// is fixed-length or variable-length, it will be the only relevant slice to output
|
// is fixed-length or variable-length, it will be the only relevant slice to output
|
||||||
// here.
|
// here.
|
||||||
Some(_) => (0..0), // empty range
|
Some(_) => 0..0, // empty range
|
||||||
// We cover all arities in the range `(self.arity..infinity)`. We split that range into
|
// We cover all arities in the range `(self.arity..infinity)`. We split that range into
|
||||||
// two: lengths smaller than `max_slice.arity()` are treated independently as
|
// two: lengths smaller than `max_slice.arity()` are treated independently as
|
||||||
// fixed-lengths slices, and lengths above are captured by `max_slice`.
|
// fixed-lengths slices, and lengths above are captured by `max_slice`.
|
||||||
|
9
src/test/ui/lint/unused/issue-92751.rs
Normal file
9
src/test/ui/lint/unused/issue-92751.rs
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#[deny(unused)]
|
||||||
|
pub fn broken(x: Option<()>) -> i32 {
|
||||||
|
match x {
|
||||||
|
Some(()) => (1), //~ ERROR unnecessary parentheses around match arm expression
|
||||||
|
None => (2), //~ ERROR unnecessary parentheses around match arm expression
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() { }
|
32
src/test/ui/lint/unused/issue-92751.stderr
Normal file
32
src/test/ui/lint/unused/issue-92751.stderr
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
error: unnecessary parentheses around match arm expression
|
||||||
|
--> $DIR/issue-92751.rs:4:21
|
||||||
|
|
|
||||||
|
LL | Some(()) => (1),
|
||||||
|
| ^ ^
|
||||||
|
|
|
||||||
|
note: the lint level is defined here
|
||||||
|
--> $DIR/issue-92751.rs:1:8
|
||||||
|
|
|
||||||
|
LL | #[deny(unused)]
|
||||||
|
| ^^^^^^
|
||||||
|
= note: `#[deny(unused_parens)]` implied by `#[deny(unused)]`
|
||||||
|
help: remove these parentheses
|
||||||
|
|
|
||||||
|
LL - Some(()) => (1),
|
||||||
|
LL + Some(()) => 1,
|
||||||
|
|
|
||||||
|
|
||||||
|
error: unnecessary parentheses around match arm expression
|
||||||
|
--> $DIR/issue-92751.rs:5:17
|
||||||
|
|
|
||||||
|
LL | None => (2),
|
||||||
|
| ^ ^
|
||||||
|
|
|
||||||
|
help: remove these parentheses
|
||||||
|
|
|
||||||
|
LL - None => (2),
|
||||||
|
LL + None => 2,
|
||||||
|
|
|
||||||
|
|
||||||
|
error: aborting due to 2 previous errors
|
||||||
|
|
Loading…
Reference in New Issue
Block a user