From: Seiichi Uchida Date: Tue, 6 Mar 2018 11:05:47 +0000 (+0900) Subject: Support parentheses in patterns X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=3f0b630845b7d083db8a7a195f6aa019ab7bf51b;p=rust.git Support parentheses in patterns --- diff --git a/src/expr.rs b/src/expr.rs index 337080f6c99..0179d00b919 100644 --- a/src/expr.rs +++ b/src/expr.rs @@ -1536,7 +1536,9 @@ fn is_short_pattern_inner(pat: &ast::Pat) -> bool { ast::PatKind::TupleStruct(ref path, ref subpats, _) => { path.segments.len() <= 1 && subpats.len() <= 1 } - ast::PatKind::Box(ref p) | ast::PatKind::Ref(ref p, _) => is_short_pattern_inner(&*p), + ast::PatKind::Box(ref p) | ast::PatKind::Ref(ref p, _) | ast::PatKind::Paren(ref p) => { + is_short_pattern_inner(&*p) + } } } diff --git a/src/patterns.rs b/src/patterns.rs index 4bcf2890c35..e94f13b9daf 100644 --- a/src/patterns.rs +++ b/src/patterns.rs @@ -129,6 +129,8 @@ fn rewrite(&self, context: &RewriteContext, shape: Shape) -> Option { rewrite_struct_pat(path, fields, ellipsis, self.span, context, shape) } PatKind::Mac(ref mac) => rewrite_macro(mac, None, context, shape, MacroPosition::Pat), + PatKind::Paren(ref pat) => pat.rewrite(context, shape.offset_left(1)?.sub_width(1)?) + .map(|inner_pat| format!("({})", inner_pat)), } } }