From 0183952d2e1252a030aca3dafd8d7abe093be3a2 Mon Sep 17 00:00:00 2001 From: Toby Dimmick Date: Thu, 6 Feb 2020 20:39:27 +0000 Subject: Closure params test --- crates/ra_parser/src/grammar/params.rs | 4 ++ .../parser/inline/ok/0155_closure_params.rs | 3 + .../parser/inline/ok/0155_closure_params.txt | 70 ++++++++++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.rs create mode 100644 crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.txt diff --git a/crates/ra_parser/src/grammar/params.rs b/crates/ra_parser/src/grammar/params.rs index 2445f71f7..d9fbc7c94 100644 --- a/crates/ra_parser/src/grammar/params.rs +++ b/crates/ra_parser/src/grammar/params.rs @@ -125,6 +125,10 @@ fn value_parameter(p: &mut Parser, flavor: Flavor) { types::type_(p); } } + // test closure_params + // fn main() { + // let foo = |bar, baz: Baz, qux: Qux::Quux| (); + // } Flavor::Closure => { patterns::pattern(p); if p.at(T![:]) && !p.at(T![::]) { diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.rs b/crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.rs new file mode 100644 index 000000000..6ca8dd2d6 --- /dev/null +++ b/crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.rs @@ -0,0 +1,3 @@ +fn main() { + let foo = |bar, baz: Baz, qux: Qux::Quux| (); +} diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.txt b/crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.txt new file mode 100644 index 000000000..98727ae98 --- /dev/null +++ b/crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.txt @@ -0,0 +1,70 @@ +SOURCE_FILE@[0; 63) + FN_DEF@[0; 62) + FN_KW@[0; 2) "fn" + WHITESPACE@[2; 3) " " + NAME@[3; 7) + IDENT@[3; 7) "main" + PARAM_LIST@[7; 9) + L_PAREN@[7; 8) "(" + R_PAREN@[8; 9) ")" + WHITESPACE@[9; 10) " " + BLOCK_EXPR@[10; 62) + BLOCK@[10; 62) + L_CURLY@[10; 11) "{" + WHITESPACE@[11; 15) "\n " + LET_STMT@[15; 60) + LET_KW@[15; 18) "let" + WHITESPACE@[18; 19) " " + BIND_PAT@[19; 22) + NAME@[19; 22) + IDENT@[19; 22) "foo" + WHITESPACE@[22; 23) " " + EQ@[23; 24) "=" + WHITESPACE@[24; 25) " " + LAMBDA_EXPR@[25; 59) + PARAM_LIST@[25; 56) + PIPE@[25; 26) "|" + PARAM@[26; 29) + BIND_PAT@[26; 29) + NAME@[26; 29) + IDENT@[26; 29) "bar" + COMMA@[29; 30) "," + WHITESPACE@[30; 31) " " + PARAM@[31; 39) + BIND_PAT@[31; 34) + NAME@[31; 34) + IDENT@[31; 34) "baz" + COLON@[34; 35) ":" + WHITESPACE@[35; 36) " " + PATH_TYPE@[36; 39) + PATH@[36; 39) + PATH_SEGMENT@[36; 39) + NAME_REF@[36; 39) + IDENT@[36; 39) "Baz" + COMMA@[39; 40) "," + WHITESPACE@[40; 41) " " + PARAM@[41; 55) + BIND_PAT@[41; 44) + NAME@[41; 44) + IDENT@[41; 44) "qux" + COLON@[44; 45) ":" + WHITESPACE@[45; 46) " " + PATH_TYPE@[46; 55) + PATH@[46; 55) + PATH@[46; 49) + PATH_SEGMENT@[46; 49) + NAME_REF@[46; 49) + IDENT@[46; 49) "Qux" + COLONCOLON@[49; 51) "::" + PATH_SEGMENT@[51; 55) + NAME_REF@[51; 55) + IDENT@[51; 55) "Quux" + PIPE@[55; 56) "|" + WHITESPACE@[56; 57) " " + TUPLE_EXPR@[57; 59) + L_PAREN@[57; 58) "(" + R_PAREN@[58; 59) ")" + SEMI@[59; 60) ";" + WHITESPACE@[60; 61) "\n" + R_CURLY@[61; 62) "}" + WHITESPACE@[62; 63) "\n" -- cgit v1.2.3