9728: fix: Attach comma token to MATCH_ARM instead of MATCH_ARM_LIST r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
This commit is contained in:
bors[bot] 2021-07-30 14:11:37 +00:00 committed by GitHub
commit 0a3ac7a96c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 296 additions and 310 deletions

View file

@ -3,11 +3,10 @@ use std::convert::TryFrom;
use ide_assists::utils::extract_trivial_expression; use ide_assists::utils::extract_trivial_expression;
use itertools::Itertools; use itertools::Itertools;
use syntax::{ use syntax::{
algo::non_trivia_sibling,
ast::{self, AstNode, AstToken, IsString}, ast::{self, AstNode, AstToken, IsString},
Direction, NodeOrToken, SourceFile, SyntaxElement, NodeOrToken, SourceFile, SyntaxElement,
SyntaxKind::{self, USE_TREE, WHITESPACE}, SyntaxKind::{self, USE_TREE, WHITESPACE},
SyntaxNode, SyntaxToken, TextRange, TextSize, T, SyntaxToken, TextRange, TextSize, T,
}; };
use text_edit::{TextEdit, TextEditBuilder}; use text_edit::{TextEdit, TextEditBuilder};
@ -204,13 +203,6 @@ fn remove_newline(
edit.replace(token.text_range(), compute_ws(prev.kind(), next.kind()).to_string()); edit.replace(token.text_range(), compute_ws(prev.kind(), next.kind()).to_string());
} }
fn has_comma_after(node: &SyntaxNode) -> bool {
match non_trivia_sibling(node.clone().into(), Direction::Next) {
Some(n) => n.kind() == T![,],
_ => false,
}
}
fn join_single_expr_block(edit: &mut TextEditBuilder, token: &SyntaxToken) -> Option<()> { fn join_single_expr_block(edit: &mut TextEditBuilder, token: &SyntaxToken) -> Option<()> {
let block_expr = ast::BlockExpr::cast(token.parent()?)?; let block_expr = ast::BlockExpr::cast(token.parent()?)?;
if !block_expr.is_standalone() { if !block_expr.is_standalone() {
@ -223,7 +215,7 @@ fn join_single_expr_block(edit: &mut TextEditBuilder, token: &SyntaxToken) -> Op
// Match block needs to have a comma after the block // Match block needs to have a comma after the block
if let Some(match_arm) = block_expr.syntax().parent().and_then(ast::MatchArm::cast) { if let Some(match_arm) = block_expr.syntax().parent().and_then(ast::MatchArm::cast) {
if !has_comma_after(match_arm.syntax()) { if match_arm.comma_token().is_none() {
buf.push(','); buf.push(',');
} }
} }

View file

@ -203,18 +203,18 @@ fn main() {
} }
}; };
} }
"#, "#,
expect![[r#" expect![[r#"
fn main() { fn main() {
match true { match true {
false =>$0 { false =>$0 {
println!("Test"); println!("Test");
}, }
true => { true => {
println!("Hello, world"); println!("Hello, world");
} },
}; };
} }
"#]], "#]],
Direction::Up, Direction::Up,
); );
@ -234,18 +234,18 @@ fn main() {
} }
}; };
} }
"#, "#,
expect![[r#" expect![[r#"
fn main() { fn main() {
match true { match true {
false => { false => {
println!("Test"); println!("Test");
}, }
true =>$0 { true =>$0 {
println!("Hello, world"); println!("Hello, world");
} },
}; };
} }
"#]], "#]],
Direction::Down, Direction::Down,
); );
@ -265,18 +265,18 @@ fn main() {
} }
}; };
} }
"#, "#,
expect![[r#" expect![[r#"
fn main() { fn main() {
match true { match true {
true => { true => {
println!("Hello, world"); println!("Hello, world");
}, },
false => { false => {
println!("Test"); println!("Test");
} }
}; };
} }
"#]], "#]],
Direction::Up, Direction::Up,
); );
@ -290,12 +290,12 @@ fn main() {
let test = 123; let test = 123;
let test2$0$0 = 456; let test2$0$0 = 456;
} }
"#, "#,
expect![[r#" expect![[r#"
fn main() { fn main() {
let test2$0 = 456; let test2$0 = 456;
let test = 123; let test = 123;
} }
"#]], "#]],
Direction::Up, Direction::Up,
); );
@ -309,12 +309,12 @@ fn main() {
println!("Hello, world"); println!("Hello, world");
println!("All I want to say is...");$0$0 println!("All I want to say is...");$0$0
} }
"#, "#,
expect![[r#" expect![[r#"
fn main() { fn main() {
println!("All I want to say is...");$0 println!("All I want to say is...");$0
println!("Hello, world"); println!("Hello, world");
} }
"#]], "#]],
Direction::Up, Direction::Up,
); );
@ -327,15 +327,15 @@ fn main() {
println!("Test"); println!("Test");
}$0$0 }$0$0
} }
"#, "#,
expect![[r#" expect![[r#"
fn main() { fn main() {
if true { if true {
println!("Test"); println!("Test");
}$0 }$0
println!("Hello, world"); println!("Hello, world");
} }
"#]], "#]],
Direction::Up, Direction::Up,
); );
@ -348,15 +348,15 @@ fn main() {
println!("Test"); println!("Test");
}$0$0 }$0$0
} }
"#, "#,
expect![[r#" expect![[r#"
fn main() { fn main() {
for i in 0..10 { for i in 0..10 {
println!("Test"); println!("Test");
}$0 }$0
println!("Hello, world"); println!("Hello, world");
} }
"#]], "#]],
Direction::Up, Direction::Up,
); );
@ -369,15 +369,15 @@ fn main() {
println!("Test"); println!("Test");
}$0$0 }$0$0
} }
"#, "#,
expect![[r#" expect![[r#"
fn main() { fn main() {
loop { loop {
println!("Test"); println!("Test");
}$0 }$0
println!("Hello, world"); println!("Hello, world");
} }
"#]], "#]],
Direction::Up, Direction::Up,
); );
@ -390,15 +390,15 @@ fn main() {
println!("Test"); println!("Test");
}$0$0 }$0$0
} }
"#, "#,
expect![[r#" expect![[r#"
fn main() { fn main() {
while true { while true {
println!("Test"); println!("Test");
}$0 }$0
println!("Hello, world"); println!("Hello, world");
} }
"#]], "#]],
Direction::Up, Direction::Up,
); );
@ -409,13 +409,13 @@ fn main() {
return 123;$0$0 return 123;$0$0
} }
"#, "#,
expect![[r#" expect![[r#"
fn main() { fn main() {
return 123;$0 return 123;$0
println!("Hello, world"); println!("Hello, world");
} }
"#]], "#]],
Direction::Up, Direction::Up,
); );
@ -429,12 +429,12 @@ fn main() {
println!("All I want to say is...");$0$0 println!("All I want to say is...");$0$0
println!("Hello, world"); println!("Hello, world");
} }
"#, "#,
expect![[r#" expect![[r#"
fn main() { fn main() {
println!("All I want to say is..."); println!("All I want to say is...");
println!("Hello, world"); println!("Hello, world");
} }
"#]], "#]],
Direction::Up, Direction::Up,
); );
@ -447,11 +447,11 @@ fn main() {
fn main() {} fn main() {}
fn foo() {}$0$0 fn foo() {}$0$0
"#, "#,
expect![[r#" expect![[r#"
fn foo() {}$0 fn foo() {}$0
fn main() {} fn main() {}
"#]], "#]],
Direction::Up, Direction::Up,
); );
@ -466,13 +466,13 @@ struct Yay;
trait Wow {} trait Wow {}
impl Wow for Yay $0$0{} impl Wow for Yay $0$0{}
"#, "#,
expect![[r#" expect![[r#"
struct Yay; struct Yay;
impl Wow for Yay $0{} impl Wow for Yay $0{}
trait Wow {} trait Wow {}
"#]], "#]],
Direction::Up, Direction::Up,
); );
@ -484,10 +484,10 @@ trait Wow {}
r#" r#"
use std::vec::Vec; use std::vec::Vec;
use std::collections::HashMap$0$0; use std::collections::HashMap$0$0;
"#, "#,
expect![[r#" expect![[r#"
use std::collections::HashMap$0; use std::collections::HashMap$0;
use std::vec::Vec; use std::vec::Vec;
"#]], "#]],
Direction::Up, Direction::Up,
); );
@ -505,16 +505,16 @@ fn main() {
_ => {} _ => {}
};$0 };$0
} }
"#, "#,
expect![[r#" expect![[r#"
fn main() { fn main() {
match test { match test {
456 => {}, 456 => {},
_ => {} _ => {}
}; };
let test = 123; let test = 123;
} }
"#]], "#]],
Direction::Up, Direction::Up,
); );
@ -529,22 +529,22 @@ fn test(one: i32, two$0$0: u32) {}
fn main() { fn main() {
test(123, 456); test(123, 456);
} }
"#, "#,
expect![[r#" expect![[r#"
fn test(two$0: u32, one: i32) {} fn test(two$0: u32, one: i32) {}
fn main() { fn main() {
test(123, 456); test(123, 456);
} }
"#]], "#]],
Direction::Up, Direction::Up,
); );
check( check(
r#" r#"
fn f($0$0arg: u8, arg2: u16) {} fn f($0$0arg: u8, arg2: u16) {}
"#, "#,
expect![[r#" expect![[r#"
fn f(arg2: u16, $0arg: u8) {} fn f(arg2: u16, $0arg: u8) {}
"#]], "#]],
Direction::Down, Direction::Down,
); );
@ -559,13 +559,13 @@ fn test(one: i32, two: u32) {}
fn main() { fn main() {
test(123, 456$0$0); test(123, 456$0$0);
} }
"#, "#,
expect![[r#" expect![[r#"
fn test(one: i32, two: u32) {} fn test(one: i32, two: u32) {}
fn main() { fn main() {
test(456$0, 123); test(456$0, 123);
} }
"#]], "#]],
Direction::Up, Direction::Up,
); );
@ -580,13 +580,13 @@ fn test(one: i32, two: u32) {}
fn main() { fn main() {
test(123$0$0, 456); test(123$0$0, 456);
} }
"#, "#,
expect![[r#" expect![[r#"
fn test(one: i32, two: u32) {} fn test(one: i32, two: u32) {}
fn main() { fn main() {
test(456, 123$0); test(456, 123$0);
} }
"#]], "#]],
Direction::Down, Direction::Down,
); );
@ -601,13 +601,13 @@ fn test(one: i32, two: u32) {}
fn main() { fn main() {
test(123$0$0, 456); test(123$0$0, 456);
} }
"#, "#,
expect![[r#" expect![[r#"
fn test(one: i32, two: u32) {} fn test(one: i32, two: u32) {}
fn main() { fn main() {
test(123, 456); test(123, 456);
} }
"#]], "#]],
Direction::Up, Direction::Up,
); );
@ -620,11 +620,11 @@ fn main() {
struct Test<A, B$0$0>(A, B); struct Test<A, B$0$0>(A, B);
fn main() {} fn main() {}
"#, "#,
expect![[r#" expect![[r#"
struct Test<B$0, A>(A, B); struct Test<B$0, A>(A, B);
fn main() {} fn main() {}
"#]], "#]],
Direction::Up, Direction::Up,
); );
@ -639,13 +639,13 @@ struct Test<A, B>(A, B);
fn main() { fn main() {
let t = Test::<i32, &str$0$0>(123, "yay"); let t = Test::<i32, &str$0$0>(123, "yay");
} }
"#, "#,
expect![[r#" expect![[r#"
struct Test<A, B>(A, B); struct Test<A, B>(A, B);
fn main() { fn main() {
let t = Test::<&str$0, i32>(123, "yay"); let t = Test::<&str$0, i32>(123, "yay");
} }
"#]], "#]],
Direction::Up, Direction::Up,
); );
@ -661,14 +661,14 @@ enum Hello {
} }
fn main() {} fn main() {}
"#, "#,
expect![[r#" expect![[r#"
enum Hello { enum Hello {
Two$0, Two$0,
One One
} }
fn main() {} fn main() {}
"#]], "#]],
Direction::Up, Direction::Up,
); );
@ -685,15 +685,15 @@ trait Two {}
fn test<T: One + Two$0$0>(t: T) {} fn test<T: One + Two$0$0>(t: T) {}
fn main() {} fn main() {}
"#, "#,
expect![[r#" expect![[r#"
trait One {} trait One {}
trait Two {} trait Two {}
fn test<T: Two$0 + One>(t: T) {} fn test<T: Two$0 + One>(t: T) {}
fn main() {} fn main() {}
"#]], "#]],
Direction::Up, Direction::Up,
); );
@ -722,27 +722,27 @@ impl Yay for Test {
println!("Mmmm"); println!("Mmmm");
} }
} }
"#, "#,
expect![[r#" expect![[r#"
struct Test; struct Test;
trait Yay { trait Yay {
type One; type One;
type Two; type Two;
fn inner(); fn inner();
} }
impl Yay for Test { impl Yay for Test {
type One = i32; type One = i32;
fn inner() {$0 fn inner() {$0
println!("Mmmm"); println!("Mmmm");
} }
type Two = u32; type Two = u32;
} }
"#]], "#]],
Direction::Up, Direction::Up,
); );
@ -761,17 +761,17 @@ fn test() {
fn inner() {} fn inner() {}
} }
} }
"#, "#,
expect![[r#" expect![[r#"
fn test() { fn test() {
mod hi {$0 mod hi {$0
fn inner() {} fn inner() {}
} }
mod hello { mod hello {
fn inner() {} fn inner() {}
} }
} }
"#]], "#]],
Direction::Up, Direction::Up,
); );
@ -788,16 +788,16 @@ enum FooBar {
} }
fn main() {} fn main() {}
"#, "#,
expect![[r#" expect![[r##"
fn main() {} fn main() {}
$0#[derive(Debug)] $0#[derive(Debug)]
enum FooBar { enum FooBar {
Foo, Foo,
Bar, Bar,
} }
"#]], "##]],
Direction::Down, Direction::Down,
); );
check( check(
@ -808,14 +808,14 @@ $0$0enum FooBar {
} }
fn main() {} fn main() {}
"#, "#,
expect![[r#" expect![[r#"
fn main() {} fn main() {}
$0enum FooBar { $0enum FooBar {
Foo, Foo,
Bar, Bar,
} }
"#]], "#]],
Direction::Down, Direction::Down,
); );
@ -828,15 +828,15 @@ trait SomeTrait {}
$0$0impl SomeTrait for Test {} $0$0impl SomeTrait for Test {}
fn main() {} fn main() {}
"#, "#,
expect![[r#" expect![[r#"
struct Test; struct Test;
$0impl SomeTrait for Test {} $0impl SomeTrait for Test {}
trait SomeTrait {} trait SomeTrait {}
fn main() {} fn main() {}
"#]], "#]],
Direction::Up, Direction::Up,
); );
@ -852,14 +852,14 @@ enum FooBar {
}$0$0 }$0$0
fn main() {} fn main() {}
"#, "#,
expect![[r#" expect![[r#"
fn main() {} fn main() {}
enum FooBar { enum FooBar {
Foo, Foo,
Bar, Bar,
}$0 }$0
"#]], "#]],
Direction::Down, Direction::Down,
); );
@ -872,15 +872,15 @@ trait SomeTrait {}
impl SomeTrait for Test {}$0$0 impl SomeTrait for Test {}$0$0
fn main() {} fn main() {}
"#, "#,
expect![[r#" expect![[r#"
struct Test; struct Test;
impl SomeTrait for Test {}$0 impl SomeTrait for Test {}$0
trait SomeTrait {} trait SomeTrait {}
fn main() {} fn main() {}
"#]], "#]],
Direction::Up, Direction::Up,
); );

View file

@ -72,7 +72,7 @@ pub(crate) fn merge_match_arms(acc: &mut Assists, ctx: &AssistContext) -> Option
.join(" | ") .join(" | ")
}; };
let arm = format!("{} => {}", pats, current_expr.syntax().text()); let arm = format!("{} => {},", pats, current_expr.syntax().text());
if let [first, .., last] = &*arms_to_merge { if let [first, .., last] = &*arms_to_merge {
let start = first.syntax().text_range().start(); let start = first.syntax().text_range().start();
@ -118,7 +118,7 @@ enum X { A, B, C }
fn main() { fn main() {
let x = X::A; let x = X::A;
let y = match x { let y = match x {
X::A | X::B => { 1i32 } X::A | X::B => { 1i32 },
X::C => { 2i32 } X::C => { 2i32 }
} }
} }
@ -183,7 +183,7 @@ fn main() {
let x = X::A; let x = X::A;
let y = match x { let y = match x {
X::A => { 1i32 }, X::A => { 1i32 },
_ => { 2i32 } _ => { 2i32 },
} }
} }
"#, "#,

View file

@ -64,7 +64,7 @@ fn f() {
match () { match () {
() => (), () => (),
#[cfg(a)] () => (), #[cfg(a)] () => (),
//^^^^^^^^^^^^^^^^^^ weak: code is inactive due to #[cfg] directives: a is disabled //^^^^^^^^^^^^^^^^^^^ weak: code is inactive due to #[cfg] directives: a is disabled
} }
#[cfg(a)] 0 // Trailing expression of block #[cfg(a)] 0 // Trailing expression of block

View file

@ -400,20 +400,7 @@ pub(crate) fn match_arm_list(p: &mut Parser) {
error_block(p, "expected match arm"); error_block(p, "expected match arm");
continue; continue;
} }
match_arm(p);
// test match_arms_commas
// fn foo() {
// match () {
// _ => (),
// _ => {}
// _ => ()
// }
// }
if match_arm(p).is_block() {
p.eat(T![,]);
} else if !p.at(T!['}']) {
p.expect(T![,]);
}
} }
p.expect(T!['}']); p.expect(T!['}']);
m.complete(p, MATCH_ARM_LIST); m.complete(p, MATCH_ARM_LIST);
@ -429,7 +416,7 @@ pub(crate) fn match_arm_list(p: &mut Parser) {
// | X => (), // | X => (),
// }; // };
// } // }
fn match_arm(p: &mut Parser) -> BlockLike { fn match_arm(p: &mut Parser) {
let m = p.start(); let m = p.start();
// test match_arms_outer_attributes // test match_arms_outer_attributes
// fn foo() { // fn foo() {
@ -452,8 +439,19 @@ fn match_arm(p: &mut Parser) -> BlockLike {
} }
p.expect(T![=>]); p.expect(T![=>]);
let blocklike = expr_stmt(p).1; let blocklike = expr_stmt(p).1;
// test match_arms_commas
// fn foo() {
// match () {
// _ => (),
// _ => {}
// _ => ()
// }
// }
if !p.eat(T![,]) && !blocklike.is_block() && !p.at(T!['}']) {
p.error("expected `,`");
}
m.complete(p, MATCH_ARM); m.complete(p, MATCH_ARM);
blocklike
} }
// test match_guard // test match_guard

View file

@ -359,14 +359,10 @@ impl ast::MatchArmList {
let mut elements = Vec::new(); let mut elements = Vec::new();
let position = match self.arms().last() { let position = match self.arms().last() {
Some(last_arm) => { Some(last_arm) => {
let comma = last_arm if needs_comma(&last_arm) {
.syntax() ted::append_child(last_arm.syntax(), make::token(SyntaxKind::COMMA));
.siblings_with_tokens(Direction::Next)
.find(|it| it.kind() == T![,]);
if needs_comma(&last_arm) && comma.is_none() {
elements.push(make::token(SyntaxKind::COMMA).into());
} }
Position::after(comma.unwrap_or_else(|| last_arm.syntax().clone().into())) Position::after(last_arm.syntax().clone())
} }
None => match self.l_curly_token() { None => match self.l_curly_token() {
Some(it) => Position::after(it), Some(it) => Position::after(it),
@ -377,12 +373,12 @@ impl ast::MatchArmList {
elements.push(make::tokens::whitespace(&format!("\n{}", indent)).into()); elements.push(make::tokens::whitespace(&format!("\n{}", indent)).into());
elements.push(arm.syntax().clone().into()); elements.push(arm.syntax().clone().into());
if needs_comma(&arm) { if needs_comma(&arm) {
elements.push(make::token(SyntaxKind::COMMA).into()); ted::append_child(arm.syntax(), make::token(SyntaxKind::COMMA));
} }
ted::insert_all(position, elements); ted::insert_all(position, elements);
fn needs_comma(arm: &ast::MatchArm) -> bool { fn needs_comma(arm: &ast::MatchArm) -> bool {
arm.expr().map_or(false, |e| !e.is_block_like()) arm.expr().map_or(false, |e| !e.is_block_like()) && arm.comma_token().is_none()
} }
} }
} }

View file

@ -22,7 +22,7 @@ SOURCE_FILE@0..293
MATCH_ARM_LIST@24..101 MATCH_ARM_LIST@24..101
L_CURLY@24..25 "{" L_CURLY@24..25 "{"
WHITESPACE@25..34 "\n " WHITESPACE@25..34 "\n "
MATCH_ARM@34..41 MATCH_ARM@34..42
WILDCARD_PAT@34..35 WILDCARD_PAT@34..35
UNDERSCORE@34..35 "_" UNDERSCORE@34..35 "_"
WHITESPACE@35..36 " " WHITESPACE@35..36 " "
@ -31,7 +31,7 @@ SOURCE_FILE@0..293
TUPLE_EXPR@39..41 TUPLE_EXPR@39..41
L_PAREN@39..40 "(" L_PAREN@39..40 "("
R_PAREN@40..41 ")" R_PAREN@40..41 ")"
COMMA@41..42 "," COMMA@41..42 ","
WHITESPACE@42..51 "\n " WHITESPACE@42..51 "\n "
MATCH_ARM@51..78 MATCH_ARM@51..78
ATTR@51..52 ATTR@51..52
@ -53,7 +53,7 @@ SOURCE_FILE@0..293
R_PAREN@76..77 ")" R_PAREN@76..77 ")"
R_BRACK@77..78 "]" R_BRACK@77..78 "]"
WHITESPACE@78..87 "\n " WHITESPACE@78..87 "\n "
MATCH_ARM@87..94 MATCH_ARM@87..95
WILDCARD_PAT@87..88 WILDCARD_PAT@87..88
UNDERSCORE@87..88 "_" UNDERSCORE@87..88 "_"
WHITESPACE@88..89 " " WHITESPACE@88..89 " "
@ -62,7 +62,7 @@ SOURCE_FILE@0..293
TUPLE_EXPR@92..94 TUPLE_EXPR@92..94
L_PAREN@92..93 "(" L_PAREN@92..93 "("
R_PAREN@93..94 ")" R_PAREN@93..94 ")"
COMMA@94..95 "," COMMA@94..95 ","
WHITESPACE@95..100 "\n " WHITESPACE@95..100 "\n "
R_CURLY@100..101 "}" R_CURLY@100..101 "}"
WHITESPACE@101..107 "\n\n " WHITESPACE@101..107 "\n\n "
@ -77,7 +77,7 @@ SOURCE_FILE@0..293
MATCH_ARM_LIST@116..185 MATCH_ARM_LIST@116..185
L_CURLY@116..117 "{" L_CURLY@116..117 "{"
WHITESPACE@117..126 "\n " WHITESPACE@117..126 "\n "
MATCH_ARM@126..133 MATCH_ARM@126..134
WILDCARD_PAT@126..127 WILDCARD_PAT@126..127
UNDERSCORE@126..127 "_" UNDERSCORE@126..127 "_"
WHITESPACE@127..128 " " WHITESPACE@127..128 " "
@ -86,9 +86,9 @@ SOURCE_FILE@0..293
TUPLE_EXPR@131..133 TUPLE_EXPR@131..133
L_PAREN@131..132 "(" L_PAREN@131..132 "("
R_PAREN@132..133 ")" R_PAREN@132..133 ")"
COMMA@133..134 "," COMMA@133..134 ","
WHITESPACE@134..143 "\n " WHITESPACE@134..143 "\n "
MATCH_ARM@143..150 MATCH_ARM@143..151
WILDCARD_PAT@143..144 WILDCARD_PAT@143..144
UNDERSCORE@143..144 "_" UNDERSCORE@143..144 "_"
WHITESPACE@144..145 " " WHITESPACE@144..145 " "
@ -97,7 +97,7 @@ SOURCE_FILE@0..293
TUPLE_EXPR@148..150 TUPLE_EXPR@148..150
L_PAREN@148..149 "(" L_PAREN@148..149 "("
R_PAREN@149..150 ")" R_PAREN@149..150 ")"
COMMA@150..151 "," COMMA@150..151 ","
WHITESPACE@151..160 "\n " WHITESPACE@151..160 "\n "
MATCH_ARM@160..179 MATCH_ARM@160..179
ATTR@160..161 ATTR@160..161
@ -165,7 +165,7 @@ SOURCE_FILE@0..293
R_PAREN@248..249 ")" R_PAREN@248..249 ")"
R_BRACK@249..250 "]" R_BRACK@249..250 "]"
WHITESPACE@250..259 "\n " WHITESPACE@250..259 "\n "
MATCH_ARM@259..266 MATCH_ARM@259..267
WILDCARD_PAT@259..260 WILDCARD_PAT@259..260
UNDERSCORE@259..260 "_" UNDERSCORE@259..260 "_"
WHITESPACE@260..261 " " WHITESPACE@260..261 " "
@ -174,9 +174,9 @@ SOURCE_FILE@0..293
TUPLE_EXPR@264..266 TUPLE_EXPR@264..266
L_PAREN@264..265 "(" L_PAREN@264..265 "("
R_PAREN@265..266 ")" R_PAREN@265..266 ")"
COMMA@266..267 "," COMMA@266..267 ","
WHITESPACE@267..276 "\n " WHITESPACE@267..276 "\n "
MATCH_ARM@276..283 MATCH_ARM@276..284
WILDCARD_PAT@276..277 WILDCARD_PAT@276..277
UNDERSCORE@276..277 "_" UNDERSCORE@276..277 "_"
WHITESPACE@277..278 " " WHITESPACE@277..278 " "
@ -185,7 +185,7 @@ SOURCE_FILE@0..293
TUPLE_EXPR@281..283 TUPLE_EXPR@281..283
L_PAREN@281..282 "(" L_PAREN@281..282 "("
R_PAREN@282..283 ")" R_PAREN@282..283 ")"
COMMA@283..284 "," COMMA@283..284 ","
WHITESPACE@284..289 "\n " WHITESPACE@284..289 "\n "
R_CURLY@289..290 "}" R_CURLY@289..290 "}"
WHITESPACE@290..291 "\n" WHITESPACE@290..291 "\n"
@ -194,11 +194,11 @@ SOURCE_FILE@0..293
error 52..52: expected `[` error 52..52: expected `[`
error 52..52: expected pattern error 52..52: expected pattern
error 53..53: expected FAT_ARROW error 53..53: expected FAT_ARROW
error 78..78: expected COMMA error 78..78: expected `,`
error 161..161: expected `[` error 161..161: expected `[`
error 161..161: expected pattern error 161..161: expected pattern
error 162..162: expected FAT_ARROW error 162..162: expected FAT_ARROW
error 232..232: expected `[` error 232..232: expected `[`
error 232..232: expected pattern error 232..232: expected pattern
error 233..233: expected FAT_ARROW error 233..233: expected FAT_ARROW
error 250..250: expected COMMA error 250..250: expected `,`

View file

@ -21,7 +21,7 @@ SOURCE_FILE@0..89
MATCH_ARM_LIST@24..86 MATCH_ARM_LIST@24..86
L_CURLY@24..25 "{" L_CURLY@24..25 "{"
WHITESPACE@25..34 "\n " WHITESPACE@25..34 "\n "
MATCH_ARM@34..41 MATCH_ARM@34..42
WILDCARD_PAT@34..35 WILDCARD_PAT@34..35
UNDERSCORE@34..35 "_" UNDERSCORE@34..35 "_"
WHITESPACE@35..36 " " WHITESPACE@35..36 " "
@ -30,9 +30,9 @@ SOURCE_FILE@0..89
TUPLE_EXPR@39..41 TUPLE_EXPR@39..41
L_PAREN@39..40 "(" L_PAREN@39..40 "("
R_PAREN@40..41 ")" R_PAREN@40..41 ")"
COMMA@41..42 "," COMMA@41..42 ","
WHITESPACE@42..51 "\n " WHITESPACE@42..51 "\n "
MATCH_ARM@51..58 MATCH_ARM@51..59
WILDCARD_PAT@51..52 WILDCARD_PAT@51..52
UNDERSCORE@51..52 "_" UNDERSCORE@51..52 "_"
WHITESPACE@52..53 " " WHITESPACE@52..53 " "
@ -41,7 +41,7 @@ SOURCE_FILE@0..89
TUPLE_EXPR@56..58 TUPLE_EXPR@56..58
L_PAREN@56..57 "(" L_PAREN@56..57 "("
R_PAREN@57..58 ")" R_PAREN@57..58 ")"
COMMA@58..59 "," COMMA@58..59 ","
WHITESPACE@59..68 "\n " WHITESPACE@59..68 "\n "
MATCH_ARM@68..80 MATCH_ARM@68..80
ATTR@68..80 ATTR@68..80

View file

@ -21,7 +21,7 @@ SOURCE_FILE@0..113
MATCH_ARM_LIST@25..110 MATCH_ARM_LIST@25..110
L_CURLY@25..26 "{" L_CURLY@25..26 "{"
WHITESPACE@26..35 "\n " WHITESPACE@26..35 "\n "
MATCH_ARM@35..43 MATCH_ARM@35..44
LITERAL_PAT@35..37 LITERAL_PAT@35..37
MINUS@35..36 "-" MINUS@35..36 "-"
LITERAL@36..37 LITERAL@36..37
@ -32,9 +32,9 @@ SOURCE_FILE@0..113
TUPLE_EXPR@41..43 TUPLE_EXPR@41..43
L_PAREN@41..42 "(" L_PAREN@41..42 "("
R_PAREN@42..43 ")" R_PAREN@42..43 ")"
COMMA@43..44 "," COMMA@43..44 ","
WHITESPACE@44..53 "\n " WHITESPACE@44..53 "\n "
MATCH_ARM@53..61 MATCH_ARM@53..62
LITERAL_PAT@53..55 LITERAL_PAT@53..55
LITERAL@53..55 LITERAL@53..55
INT_NUMBER@53..55 "92" INT_NUMBER@53..55 "92"
@ -44,9 +44,9 @@ SOURCE_FILE@0..113
TUPLE_EXPR@59..61 TUPLE_EXPR@59..61
L_PAREN@59..60 "(" L_PAREN@59..60 "("
R_PAREN@60..61 ")" R_PAREN@60..61 ")"
COMMA@61..62 "," COMMA@61..62 ","
WHITESPACE@62..71 "\n " WHITESPACE@62..71 "\n "
MATCH_ARM@71..80 MATCH_ARM@71..81
LITERAL_PAT@71..74 LITERAL_PAT@71..74
LITERAL@71..74 LITERAL@71..74
CHAR@71..74 "'c'" CHAR@71..74 "'c'"
@ -56,9 +56,9 @@ SOURCE_FILE@0..113
TUPLE_EXPR@78..80 TUPLE_EXPR@78..80
L_PAREN@78..79 "(" L_PAREN@78..79 "("
R_PAREN@79..80 ")" R_PAREN@79..80 ")"
COMMA@80..81 "," COMMA@80..81 ","
WHITESPACE@81..90 "\n " WHITESPACE@81..90 "\n "
MATCH_ARM@90..103 MATCH_ARM@90..104
LITERAL_PAT@90..97 LITERAL_PAT@90..97
LITERAL@90..97 LITERAL@90..97
STRING@90..97 "\"hello\"" STRING@90..97 "\"hello\""
@ -68,7 +68,7 @@ SOURCE_FILE@0..113
TUPLE_EXPR@101..103 TUPLE_EXPR@101..103
L_PAREN@101..102 "(" L_PAREN@101..102 "("
R_PAREN@102..103 ")" R_PAREN@102..103 ")"
COMMA@103..104 "," COMMA@103..104 ","
WHITESPACE@104..109 "\n " WHITESPACE@104..109 "\n "
R_CURLY@109..110 "}" R_CURLY@109..110 "}"
WHITESPACE@110..111 "\n" WHITESPACE@110..111 "\n"

View file

@ -20,7 +20,7 @@ SOURCE_FILE@0..112
MATCH_ARM_LIST@25..109 MATCH_ARM_LIST@25..109
L_CURLY@25..26 "{" L_CURLY@25..26 "{"
WHITESPACE@26..35 "\n " WHITESPACE@26..35 "\n "
MATCH_ARM@35..50 MATCH_ARM@35..51
RANGE_PAT@35..44 RANGE_PAT@35..44
LITERAL_PAT@35..36 LITERAL_PAT@35..36
LITERAL@35..36 LITERAL@35..36
@ -37,9 +37,9 @@ SOURCE_FILE@0..112
TUPLE_EXPR@48..50 TUPLE_EXPR@48..50
L_PAREN@48..49 "(" L_PAREN@48..49 "("
R_PAREN@49..50 ")" R_PAREN@49..50 ")"
COMMA@50..51 "," COMMA@50..51 ","
WHITESPACE@51..60 "\n " WHITESPACE@51..60 "\n "
MATCH_ARM@60..77 MATCH_ARM@60..78
RANGE_PAT@60..71 RANGE_PAT@60..71
LITERAL_PAT@60..63 LITERAL_PAT@60..63
LITERAL@60..63 LITERAL@60..63
@ -56,9 +56,9 @@ SOURCE_FILE@0..112
TUPLE_EXPR@75..77 TUPLE_EXPR@75..77
L_PAREN@75..76 "(" L_PAREN@75..76 "("
R_PAREN@76..77 ")" R_PAREN@76..77 ")"
COMMA@77..78 "," COMMA@77..78 ","
WHITESPACE@78..87 "\n " WHITESPACE@78..87 "\n "
MATCH_ARM@87..102 MATCH_ARM@87..103
RANGE_PAT@87..97 RANGE_PAT@87..97
LITERAL_PAT@87..90 LITERAL_PAT@87..90
LITERAL@87..90 LITERAL@87..90
@ -74,7 +74,7 @@ SOURCE_FILE@0..112
TUPLE_EXPR@100..102 TUPLE_EXPR@100..102
L_PAREN@100..101 "(" L_PAREN@100..101 "("
R_PAREN@101..102 ")" R_PAREN@101..102 ")"
COMMA@102..103 "," COMMA@102..103 ","
WHITESPACE@103..108 "\n " WHITESPACE@103..108 "\n "
R_CURLY@108..109 "}" R_CURLY@108..109 "}"
WHITESPACE@109..110 "\n" WHITESPACE@109..110 "\n"

View file

@ -21,7 +21,7 @@ SOURCE_FILE@0..83
MATCH_ARM_LIST@24..80 MATCH_ARM_LIST@24..80
L_CURLY@24..25 "{" L_CURLY@24..25 "{"
WHITESPACE@25..34 "\n " WHITESPACE@25..34 "\n "
MATCH_ARM@34..41 MATCH_ARM@34..42
WILDCARD_PAT@34..35 WILDCARD_PAT@34..35
UNDERSCORE@34..35 "_" UNDERSCORE@34..35 "_"
WHITESPACE@35..36 " " WHITESPACE@35..36 " "
@ -30,7 +30,7 @@ SOURCE_FILE@0..83
TUPLE_EXPR@39..41 TUPLE_EXPR@39..41
L_PAREN@39..40 "(" L_PAREN@39..40 "("
R_PAREN@40..41 ")" R_PAREN@40..41 ")"
COMMA@41..42 "," COMMA@41..42 ","
WHITESPACE@42..51 "\n " WHITESPACE@42..51 "\n "
MATCH_ARM@51..58 MATCH_ARM@51..58
WILDCARD_PAT@51..52 WILDCARD_PAT@51..52

View file

@ -22,7 +22,7 @@ SOURCE_FILE@0..167
MATCH_ARM_LIST@24..163 MATCH_ARM_LIST@24..163
L_CURLY@24..25 "{" L_CURLY@24..25 "{"
WHITESPACE@25..34 "\n " WHITESPACE@25..34 "\n "
MATCH_ARM@34..41 MATCH_ARM@34..42
WILDCARD_PAT@34..35 WILDCARD_PAT@34..35
UNDERSCORE@34..35 "_" UNDERSCORE@34..35 "_"
WHITESPACE@35..36 " " WHITESPACE@35..36 " "
@ -31,9 +31,9 @@ SOURCE_FILE@0..167
TUPLE_EXPR@39..41 TUPLE_EXPR@39..41
L_PAREN@39..40 "(" L_PAREN@39..40 "("
R_PAREN@40..41 ")" R_PAREN@40..41 ")"
COMMA@41..42 "," COMMA@41..42 ","
WHITESPACE@42..51 "\n " WHITESPACE@42..51 "\n "
MATCH_ARM@51..83 MATCH_ARM@51..84
WILDCARD_PAT@51..52 WILDCARD_PAT@51..52
UNDERSCORE@51..52 "_" UNDERSCORE@51..52 "_"
WHITESPACE@52..53 " " WHITESPACE@52..53 " "
@ -70,9 +70,9 @@ SOURCE_FILE@0..167
TUPLE_EXPR@81..83 TUPLE_EXPR@81..83
L_PAREN@81..82 "(" L_PAREN@81..82 "("
R_PAREN@82..83 ")" R_PAREN@82..83 ")"
COMMA@83..84 "," COMMA@83..84 ","
WHITESPACE@84..93 "\n " WHITESPACE@84..93 "\n "
MATCH_ARM@93..109 MATCH_ARM@93..110
OR_PAT@93..98 OR_PAT@93..98
IDENT_PAT@93..94 IDENT_PAT@93..94
NAME@93..94 NAME@93..94
@ -98,9 +98,9 @@ SOURCE_FILE@0..167
TUPLE_EXPR@107..109 TUPLE_EXPR@107..109
L_PAREN@107..108 "(" L_PAREN@107..108 "("
R_PAREN@108..109 ")" R_PAREN@108..109 ")"
COMMA@109..110 "," COMMA@109..110 ","
WHITESPACE@110..119 "\n " WHITESPACE@110..119 "\n "
MATCH_ARM@119..137 MATCH_ARM@119..138
PIPE@119..120 "|" PIPE@119..120 "|"
WHITESPACE@120..121 " " WHITESPACE@120..121 " "
OR_PAT@121..126 OR_PAT@121..126
@ -128,9 +128,9 @@ SOURCE_FILE@0..167
TUPLE_EXPR@135..137 TUPLE_EXPR@135..137
L_PAREN@135..136 "(" L_PAREN@135..136 "("
R_PAREN@136..137 ")" R_PAREN@136..137 ")"
COMMA@137..138 "," COMMA@137..138 ","
WHITESPACE@138..147 "\n " WHITESPACE@138..147 "\n "
MATCH_ARM@147..156 MATCH_ARM@147..157
PIPE@147..148 "|" PIPE@147..148 "|"
WHITESPACE@148..149 " " WHITESPACE@148..149 " "
IDENT_PAT@149..150 IDENT_PAT@149..150
@ -142,7 +142,7 @@ SOURCE_FILE@0..167
TUPLE_EXPR@154..156 TUPLE_EXPR@154..156
L_PAREN@154..155 "(" L_PAREN@154..155 "("
R_PAREN@155..156 ")" R_PAREN@155..156 ")"
COMMA@156..157 "," COMMA@156..157 ","
WHITESPACE@157..162 "\n " WHITESPACE@157..162 "\n "
R_CURLY@162..163 "}" R_CURLY@162..163 "}"
SEMICOLON@163..164 ";" SEMICOLON@163..164 ";"

View file

@ -21,7 +21,7 @@ SOURCE_FILE@0..58
MATCH_ARM_LIST@24..55 MATCH_ARM_LIST@24..55
L_CURLY@24..25 "{" L_CURLY@24..25 "{"
WHITESPACE@25..34 "\n " WHITESPACE@25..34 "\n "
MATCH_ARM@34..48 MATCH_ARM@34..49
WILDCARD_PAT@34..35 WILDCARD_PAT@34..35
UNDERSCORE@34..35 "_" UNDERSCORE@34..35 "_"
WHITESPACE@35..36 " " WHITESPACE@35..36 " "
@ -39,7 +39,7 @@ SOURCE_FILE@0..58
TUPLE_EXPR@46..48 TUPLE_EXPR@46..48
L_PAREN@46..47 "(" L_PAREN@46..47 "("
R_PAREN@47..48 ")" R_PAREN@47..48 ")"
COMMA@48..49 "," COMMA@48..49 ","
WHITESPACE@49..54 "\n " WHITESPACE@49..54 "\n "
R_CURLY@54..55 "}" R_CURLY@54..55 "}"
WHITESPACE@55..56 "\n" WHITESPACE@55..56 "\n"

View file

@ -66,7 +66,7 @@ SOURCE_FILE@0..139
R_PAREN@111..112 ")" R_PAREN@111..112 ")"
R_BRACK@112..113 "]" R_BRACK@112..113 "]"
WHITESPACE@113..122 "\n " WHITESPACE@113..122 "\n "
MATCH_ARM@122..129 MATCH_ARM@122..130
WILDCARD_PAT@122..123 WILDCARD_PAT@122..123
UNDERSCORE@122..123 "_" UNDERSCORE@122..123 "_"
WHITESPACE@123..124 " " WHITESPACE@123..124 " "
@ -75,7 +75,7 @@ SOURCE_FILE@0..139
TUPLE_EXPR@127..129 TUPLE_EXPR@127..129
L_PAREN@127..128 "(" L_PAREN@127..128 "("
R_PAREN@128..129 ")" R_PAREN@128..129 ")"
COMMA@129..130 "," COMMA@129..130 ","
WHITESPACE@130..135 "\n " WHITESPACE@130..135 "\n "
R_CURLY@135..136 "}" R_CURLY@135..136 "}"
WHITESPACE@136..137 "\n" WHITESPACE@136..137 "\n"

View file

@ -21,7 +21,7 @@ SOURCE_FILE@0..259
MATCH_ARM_LIST@24..256 MATCH_ARM_LIST@24..256
L_CURLY@24..25 "{" L_CURLY@24..25 "{"
WHITESPACE@25..34 "\n " WHITESPACE@25..34 "\n "
MATCH_ARM@34..74 MATCH_ARM@34..75
ATTR@34..58 ATTR@34..58
POUND@34..35 "#" POUND@34..35 "#"
L_BRACK@35..36 "[" L_BRACK@35..36 "["
@ -48,9 +48,9 @@ SOURCE_FILE@0..259
TUPLE_EXPR@72..74 TUPLE_EXPR@72..74
L_PAREN@72..73 "(" L_PAREN@72..73 "("
R_PAREN@73..74 ")" R_PAREN@73..74 ")"
COMMA@74..75 "," COMMA@74..75 ","
WHITESPACE@75..84 "\n " WHITESPACE@75..84 "\n "
MATCH_ARM@84..125 MATCH_ARM@84..126
ATTR@84..109 ATTR@84..109
POUND@84..85 "#" POUND@84..85 "#"
L_BRACK@85..86 "[" L_BRACK@85..86 "["
@ -77,9 +77,9 @@ SOURCE_FILE@0..259
TUPLE_EXPR@123..125 TUPLE_EXPR@123..125
L_PAREN@123..124 "(" L_PAREN@123..124 "("
R_PAREN@124..125 ")" R_PAREN@124..125 ")"
COMMA@125..126 "," COMMA@125..126 ","
WHITESPACE@126..135 "\n " WHITESPACE@126..135 "\n "
MATCH_ARM@135..249 MATCH_ARM@135..250
ATTR@135..159 ATTR@135..159
POUND@135..136 "#" POUND@135..136 "#"
L_BRACK@136..137 "[" L_BRACK@136..137 "["
@ -142,7 +142,7 @@ SOURCE_FILE@0..259
TUPLE_EXPR@247..249 TUPLE_EXPR@247..249
L_PAREN@247..248 "(" L_PAREN@247..248 "("
R_PAREN@248..249 ")" R_PAREN@248..249 ")"
COMMA@249..250 "," COMMA@249..250 ","
WHITESPACE@250..255 "\n " WHITESPACE@250..255 "\n "
R_CURLY@255..256 "}" R_CURLY@255..256 "}"
WHITESPACE@256..257 "\n" WHITESPACE@256..257 "\n"

View file

@ -21,7 +21,7 @@ SOURCE_FILE@0..130
MATCH_ARM_LIST@25..127 MATCH_ARM_LIST@25..127
L_CURLY@25..26 "{" L_CURLY@25..26 "{"
WHITESPACE@26..35 "\n " WHITESPACE@26..35 "\n "
MATCH_ARM@35..48 MATCH_ARM@35..49
PAREN_PAT@35..42 PAREN_PAT@35..42
L_PAREN@35..36 "(" L_PAREN@35..36 "("
OR_PAT@36..41 OR_PAT@36..41
@ -39,9 +39,9 @@ SOURCE_FILE@0..130
TUPLE_EXPR@46..48 TUPLE_EXPR@46..48
L_PAREN@46..47 "(" L_PAREN@46..47 "("
R_PAREN@47..48 ")" R_PAREN@47..48 ")"
COMMA@48..49 "," COMMA@48..49 ","
WHITESPACE@49..58 "\n " WHITESPACE@49..58 "\n "
MATCH_ARM@58..72 MATCH_ARM@58..73
REF_PAT@58..66 REF_PAT@58..66
AMP@58..59 "&" AMP@58..59 "&"
PAREN_PAT@59..66 PAREN_PAT@59..66
@ -61,9 +61,9 @@ SOURCE_FILE@0..130
TUPLE_EXPR@70..72 TUPLE_EXPR@70..72
L_PAREN@70..71 "(" L_PAREN@70..71 "("
R_PAREN@71..72 ")" R_PAREN@71..72 ")"
COMMA@72..73 "," COMMA@72..73 ","
WHITESPACE@73..82 "\n " WHITESPACE@73..82 "\n "
MATCH_ARM@82..96 MATCH_ARM@82..97
TUPLE_PAT@82..90 TUPLE_PAT@82..90
L_PAREN@82..83 "(" L_PAREN@82..83 "("
OR_PAT@83..88 OR_PAT@83..88
@ -82,9 +82,9 @@ SOURCE_FILE@0..130
TUPLE_EXPR@94..96 TUPLE_EXPR@94..96
L_PAREN@94..95 "(" L_PAREN@94..95 "("
R_PAREN@95..96 ")" R_PAREN@95..96 ")"
COMMA@96..97 "," COMMA@96..97 ","
WHITESPACE@97..106 "\n " WHITESPACE@97..106 "\n "
MATCH_ARM@106..120 MATCH_ARM@106..121
SLICE_PAT@106..114 SLICE_PAT@106..114
L_BRACK@106..107 "[" L_BRACK@106..107 "["
OR_PAT@107..112 OR_PAT@107..112
@ -103,7 +103,7 @@ SOURCE_FILE@0..130
TUPLE_EXPR@118..120 TUPLE_EXPR@118..120
L_PAREN@118..119 "(" L_PAREN@118..119 "("
R_PAREN@119..120 ")" R_PAREN@119..120 ")"
COMMA@120..121 "," COMMA@120..121 ","
WHITESPACE@121..126 "\n " WHITESPACE@121..126 "\n "
R_CURLY@126..127 "}" R_CURLY@126..127 "}"
WHITESPACE@127..128 "\n" WHITESPACE@127..128 "\n"

View file

@ -1093,7 +1093,7 @@ SOURCE_FILE@0..3813
MATCH_ARM_LIST@1853..1885 MATCH_ARM_LIST@1853..1885
L_CURLY@1853..1854 "{" L_CURLY@1853..1854 "{"
WHITESPACE@1854..1855 " " WHITESPACE@1854..1855 " "
MATCH_ARM@1855..1863 MATCH_ARM@1855..1864
LITERAL_PAT@1855..1856 LITERAL_PAT@1855..1856
LITERAL@1855..1856 LITERAL@1855..1856
INT_NUMBER@1855..1856 "1" INT_NUMBER@1855..1856 "1"
@ -1104,7 +1104,7 @@ SOURCE_FILE@0..3813
L_CURLY@1860..1861 "{" L_CURLY@1860..1861 "{"
WHITESPACE@1861..1862 " " WHITESPACE@1861..1862 " "
R_CURLY@1862..1863 "}" R_CURLY@1862..1863 "}"
COMMA@1863..1864 "," COMMA@1863..1864 ","
WHITESPACE@1864..1865 " " WHITESPACE@1864..1865 " "
MATCH_ARM@1865..1883 MATCH_ARM@1865..1883
WILDCARD_PAT@1865..1866 WILDCARD_PAT@1865..1866

View file

@ -34,7 +34,7 @@ SOURCE_FILE@0..395
MATCH_ARM_LIST@93..141 MATCH_ARM_LIST@93..141
L_CURLY@93..94 "{" L_CURLY@93..94 "{"
WHITESPACE@94..103 "\n " WHITESPACE@94..103 "\n "
MATCH_ARM@103..117 MATCH_ARM@103..118
TUPLE_STRUCT_PAT@103..111 TUPLE_STRUCT_PAT@103..111
PATH@103..107 PATH@103..107
PATH_SEGMENT@103..107 PATH_SEGMENT@103..107
@ -52,9 +52,9 @@ SOURCE_FILE@0..395
TUPLE_EXPR@115..117 TUPLE_EXPR@115..117
L_PAREN@115..116 "(" L_PAREN@115..116 "("
R_PAREN@116..117 ")" R_PAREN@116..117 ")"
COMMA@117..118 "," COMMA@117..118 ","
WHITESPACE@118..127 "\n " WHITESPACE@118..127 "\n "
MATCH_ARM@127..134 MATCH_ARM@127..135
WILDCARD_PAT@127..128 WILDCARD_PAT@127..128
UNDERSCORE@127..128 "_" UNDERSCORE@127..128 "_"
WHITESPACE@128..129 " " WHITESPACE@128..129 " "
@ -63,7 +63,7 @@ SOURCE_FILE@0..395
TUPLE_EXPR@132..134 TUPLE_EXPR@132..134
L_PAREN@132..133 "(" L_PAREN@132..133 "("
R_PAREN@133..134 ")" R_PAREN@133..134 ")"
COMMA@134..135 "," COMMA@134..135 ","
WHITESPACE@135..140 "\n " WHITESPACE@135..140 "\n "
R_CURLY@140..141 "}" R_CURLY@140..141 "}"
WHITESPACE@141..147 "\n\n " WHITESPACE@141..147 "\n\n "
@ -97,7 +97,7 @@ SOURCE_FILE@0..395
MATCH_ARM_LIST@168..222 MATCH_ARM_LIST@168..222
L_CURLY@168..169 "{" L_CURLY@168..169 "{"
WHITESPACE@169..178 "\n " WHITESPACE@169..178 "\n "
MATCH_ARM@178..198 MATCH_ARM@178..199
TUPLE_STRUCT_PAT@178..192 TUPLE_STRUCT_PAT@178..192
PATH@178..182 PATH@178..182
PATH_SEGMENT@178..182 PATH_SEGMENT@178..182
@ -124,9 +124,9 @@ SOURCE_FILE@0..395
TUPLE_EXPR@196..198 TUPLE_EXPR@196..198
L_PAREN@196..197 "(" L_PAREN@196..197 "("
R_PAREN@197..198 ")" R_PAREN@197..198 ")"
COMMA@198..199 "," COMMA@198..199 ","
WHITESPACE@199..208 "\n " WHITESPACE@199..208 "\n "
MATCH_ARM@208..215 MATCH_ARM@208..216
WILDCARD_PAT@208..209 WILDCARD_PAT@208..209
UNDERSCORE@208..209 "_" UNDERSCORE@208..209 "_"
WHITESPACE@209..210 " " WHITESPACE@209..210 " "
@ -135,7 +135,7 @@ SOURCE_FILE@0..395
TUPLE_EXPR@213..215 TUPLE_EXPR@213..215
L_PAREN@213..214 "(" L_PAREN@213..214 "("
R_PAREN@214..215 ")" R_PAREN@214..215 ")"
COMMA@215..216 "," COMMA@215..216 ","
WHITESPACE@216..221 "\n " WHITESPACE@216..221 "\n "
R_CURLY@221..222 "}" R_CURLY@221..222 "}"
WHITESPACE@222..228 "\n\n " WHITESPACE@222..228 "\n\n "
@ -171,7 +171,7 @@ SOURCE_FILE@0..395
MATCH_ARM_LIST@247..299 MATCH_ARM_LIST@247..299
L_CURLY@247..248 "{" L_CURLY@247..248 "{"
WHITESPACE@248..257 "\n " WHITESPACE@248..257 "\n "
MATCH_ARM@257..275 MATCH_ARM@257..276
TUPLE_STRUCT_PAT@257..269 TUPLE_STRUCT_PAT@257..269
PATH@257..261 PATH@257..261
PATH@257..258 PATH@257..258
@ -200,9 +200,9 @@ SOURCE_FILE@0..395
TUPLE_EXPR@273..275 TUPLE_EXPR@273..275
L_PAREN@273..274 "(" L_PAREN@273..274 "("
R_PAREN@274..275 ")" R_PAREN@274..275 ")"
COMMA@275..276 "," COMMA@275..276 ","
WHITESPACE@276..285 "\n " WHITESPACE@276..285 "\n "
MATCH_ARM@285..292 MATCH_ARM@285..293
WILDCARD_PAT@285..286 WILDCARD_PAT@285..286
UNDERSCORE@285..286 "_" UNDERSCORE@285..286 "_"
WHITESPACE@286..287 " " WHITESPACE@286..287 " "
@ -211,7 +211,7 @@ SOURCE_FILE@0..395
TUPLE_EXPR@290..292 TUPLE_EXPR@290..292
L_PAREN@290..291 "(" L_PAREN@290..291 "("
R_PAREN@291..292 ")" R_PAREN@291..292 ")"
COMMA@292..293 "," COMMA@292..293 ","
WHITESPACE@293..298 "\n " WHITESPACE@293..298 "\n "
R_CURLY@298..299 "}" R_CURLY@298..299 "}"
WHITESPACE@299..305 "\n\n " WHITESPACE@299..305 "\n\n "