about summary refs log tree commit diff
diff options
context:
space:
mode:
authorCaleb Cartwright <caleb.cartwright@outlook.com>2021-03-14 13:16:52 -0500
committerCaleb Cartwright <calebcartwright@users.noreply.github.com>2021-04-02 23:21:06 -0500
commit2c6339571bfc97c5eb0516e20ab0d3b9543f87e5 (patch)
treee8c99c75f897283e2f8afcfdda832a7b1968b7f1
parentcbd83b80836a500ec3b6c5033d5742d504d04542 (diff)
downloadrust-2c6339571bfc97c5eb0516e20ab0d3b9543f87e5.tar.gz
rust-2c6339571bfc97c5eb0516e20ab0d3b9543f87e5.zip
chore: apply pattern parsing changes
-rw-r--r--src/macros.rs2
-rw-r--r--src/matches.rs21
2 files changed, 10 insertions, 13 deletions
diff --git a/src/macros.rs b/src/macros.rs
index 1abb1cd9e13..190f4b599b0 100644
--- a/src/macros.rs
+++ b/src/macros.rs
@@ -132,7 +132,7 @@ fn parse_macro_arg<'a, 'b: 'a>(parser: &'a mut Parser<'b>) -> Option<MacroArg> {
     );
     parse_macro_arg!(
         Pat,
-        |parser: &mut rustc_parse::parser::Parser<'b>| parser.parse_pat(None),
+        |parser: &mut rustc_parse::parser::Parser<'b>| parser.parse_pat_no_top_alt(None),
         |x: ptr::P<ast::Pat>| Some(x)
     );
     // `parse_item` returns `Option<ptr::P<ast::Item>>`.
diff --git a/src/matches.rs b/src/matches.rs
index a43aed09ef5..f33fedce92d 100644
--- a/src/matches.rs
+++ b/src/matches.rs
@@ -19,7 +19,7 @@ use crate::source_map::SpanUtils;
 use crate::spanned::Spanned;
 use crate::utils::{
     contains_skip, extra_offset, first_line_width, inner_attributes, last_line_extendable, mk_sp,
-    semicolon_for_expr, trimmed_last_line_width, unicode_str_width,
+    mk_sp_lo_plus_one, semicolon_for_expr, trimmed_last_line_width, unicode_str_width,
 };
 
 /// A simple wrapper type against `ast::Arm`. Used inside `write_list()`.
@@ -163,17 +163,14 @@ fn arm_comma(config: &Config, body: &ast::Expr, is_last: bool) -> &'static str {
 fn collect_beginning_verts(
     context: &RewriteContext<'_>,
     arms: &[ast::Arm],
-    span: Span,
 ) -> Vec<Option<BytePos>> {
-    let mut beginning_verts = Vec::with_capacity(arms.len());
-    let mut lo = context.snippet_provider.span_after(span, "{");
-    for arm in arms {
-        let hi = arm.pat.span.lo();
-        let missing_span = mk_sp(lo, hi);
-        beginning_verts.push(context.snippet_provider.opt_span_before(missing_span, "|"));
-        lo = arm.span().hi();
-    }
-    beginning_verts
+    arms.iter()
+        .map(|a| {
+            context
+                .snippet_provider
+                .opt_span_before(mk_sp_lo_plus_one(a.pat.span.lo()), "|")
+        })
+        .collect()
 }
 
 fn rewrite_match_arms(
@@ -191,7 +188,7 @@ fn rewrite_match_arms(
     let is_last_iter = repeat(false)
         .take(arm_len.saturating_sub(1))
         .chain(repeat(true));
-    let beginning_verts = collect_beginning_verts(context, arms, span);
+    let beginning_verts = collect_beginning_verts(context, arms);
     let items = itemize_list(
         context.snippet_provider,
         arms.iter()