diff options
| author | Caleb Cartwright <caleb.cartwright@outlook.com> | 2021-03-14 13:16:52 -0500 |
|---|---|---|
| committer | Caleb Cartwright <calebcartwright@users.noreply.github.com> | 2021-04-02 23:21:06 -0500 |
| commit | 2c6339571bfc97c5eb0516e20ab0d3b9543f87e5 (patch) | |
| tree | e8c99c75f897283e2f8afcfdda832a7b1968b7f1 | |
| parent | cbd83b80836a500ec3b6c5033d5742d504d04542 (diff) | |
| download | rust-2c6339571bfc97c5eb0516e20ab0d3b9543f87e5.tar.gz rust-2c6339571bfc97c5eb0516e20ab0d3b9543f87e5.zip | |
chore: apply pattern parsing changes
| -rw-r--r-- | src/macros.rs | 2 | ||||
| -rw-r--r-- | src/matches.rs | 21 |
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() |
