From 7e66785859fc4a31fc3faf4848174699d3a2c020 Mon Sep 17 00:00:00 2001 From: Toby Dimmick Date: Thu, 6 Feb 2020 11:44:00 +0000 Subject: Rework value parameter parsing - `Fn__(...)` parameters with idents/patterns no longer parse - Trait function parameters with arbitrary patterns parse - Trait function parameters without idents/patterns no longer parse - `fn(...)` parameters no longer parse with patterns other than a single ident --- .../parser/inline/ok/0153_trait_fn_patterns.txt | 161 +++++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 crates/ra_syntax/test_data/parser/inline/ok/0153_trait_fn_patterns.txt (limited to 'crates/ra_syntax/test_data/parser/inline/ok/0153_trait_fn_patterns.txt') diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0153_trait_fn_patterns.txt b/crates/ra_syntax/test_data/parser/inline/ok/0153_trait_fn_patterns.txt new file mode 100644 index 000000000..b22df8dbe --- /dev/null +++ b/crates/ra_syntax/test_data/parser/inline/ok/0153_trait_fn_patterns.txt @@ -0,0 +1,161 @@ +SOURCE_FILE@[0; 138) + TRAIT_DEF@[0; 137) + TRAIT_KW@[0; 5) "trait" + WHITESPACE@[5; 6) " " + NAME@[6; 7) + IDENT@[6; 7) "T" + WHITESPACE@[7; 8) " " + ITEM_LIST@[8; 137) + L_CURLY@[8; 9) "{" + WHITESPACE@[9; 14) "\n " + FN_DEF@[14; 46) + FN_KW@[14; 16) "fn" + WHITESPACE@[16; 17) " " + NAME@[17; 19) + IDENT@[17; 19) "f1" + PARAM_LIST@[19; 43) + L_PAREN@[19; 20) "(" + PARAM@[20; 42) + TUPLE_PAT@[20; 26) + L_PAREN@[20; 21) "(" + BIND_PAT@[21; 22) + NAME@[21; 22) + IDENT@[21; 22) "a" + COMMA@[22; 23) "," + WHITESPACE@[23; 24) " " + BIND_PAT@[24; 25) + NAME@[24; 25) + IDENT@[24; 25) "b" + R_PAREN@[25; 26) ")" + COLON@[26; 27) ":" + WHITESPACE@[27; 28) " " + TUPLE_TYPE@[28; 42) + L_PAREN@[28; 29) "(" + PATH_TYPE@[29; 34) + PATH@[29; 34) + PATH_SEGMENT@[29; 34) + NAME_REF@[29; 34) + IDENT@[29; 34) "usize" + COMMA@[34; 35) "," + WHITESPACE@[35; 36) " " + PATH_TYPE@[36; 41) + PATH@[36; 41) + PATH_SEGMENT@[36; 41) + NAME_REF@[36; 41) + IDENT@[36; 41) "usize" + R_PAREN@[41; 42) ")" + R_PAREN@[42; 43) ")" + WHITESPACE@[43; 44) " " + BLOCK_EXPR@[44; 46) + BLOCK@[44; 46) + L_CURLY@[44; 45) "{" + R_CURLY@[45; 46) "}" + WHITESPACE@[46; 51) "\n " + FN_DEF@[51; 74) + FN_KW@[51; 53) "fn" + WHITESPACE@[53; 54) " " + NAME@[54; 56) + IDENT@[54; 56) "f2" + PARAM_LIST@[56; 71) + L_PAREN@[56; 57) "(" + PARAM@[57; 70) + RECORD_PAT@[57; 67) + PATH@[57; 58) + PATH_SEGMENT@[57; 58) + NAME_REF@[57; 58) + IDENT@[57; 58) "S" + WHITESPACE@[58; 59) " " + RECORD_FIELD_PAT_LIST@[59; 67) + L_CURLY@[59; 60) "{" + WHITESPACE@[60; 61) " " + BIND_PAT@[61; 62) + NAME@[61; 62) + IDENT@[61; 62) "a" + COMMA@[62; 63) "," + WHITESPACE@[63; 64) " " + BIND_PAT@[64; 65) + NAME@[64; 65) + IDENT@[64; 65) "b" + WHITESPACE@[65; 66) " " + R_CURLY@[66; 67) "}" + COLON@[67; 68) ":" + WHITESPACE@[68; 69) " " + PATH_TYPE@[69; 70) + PATH@[69; 70) + PATH_SEGMENT@[69; 70) + NAME_REF@[69; 70) + IDENT@[69; 70) "S" + R_PAREN@[70; 71) ")" + WHITESPACE@[71; 72) " " + BLOCK_EXPR@[72; 74) + BLOCK@[72; 74) + L_CURLY@[72; 73) "{" + R_CURLY@[73; 74) "}" + WHITESPACE@[74; 79) "\n " + FN_DEF@[79; 108) + FN_KW@[79; 81) "fn" + WHITESPACE@[81; 82) " " + NAME@[82; 84) + IDENT@[82; 84) "f3" + PARAM_LIST@[84; 105) + L_PAREN@[84; 85) "(" + PARAM@[85; 104) + TUPLE_STRUCT_PAT@[85; 95) + PATH@[85; 92) + PATH_SEGMENT@[85; 92) + NAME_REF@[85; 92) + IDENT@[85; 92) "NewType" + L_PAREN@[92; 93) "(" + BIND_PAT@[93; 94) + NAME@[93; 94) + IDENT@[93; 94) "a" + R_PAREN@[94; 95) ")" + COLON@[95; 96) ":" + WHITESPACE@[96; 97) " " + PATH_TYPE@[97; 104) + PATH@[97; 104) + PATH_SEGMENT@[97; 104) + NAME_REF@[97; 104) + IDENT@[97; 104) "NewType" + R_PAREN@[104; 105) ")" + WHITESPACE@[105; 106) " " + BLOCK_EXPR@[106; 108) + BLOCK@[106; 108) + L_CURLY@[106; 107) "{" + R_CURLY@[107; 108) "}" + WHITESPACE@[108; 113) "\n " + FN_DEF@[113; 135) + FN_KW@[113; 115) "fn" + WHITESPACE@[115; 116) " " + NAME@[116; 118) + IDENT@[116; 118) "f4" + PARAM_LIST@[118; 132) + L_PAREN@[118; 119) "(" + PARAM@[119; 131) + REF_PAT@[119; 122) + AMP@[119; 120) "&" + REF_PAT@[120; 122) + AMP@[120; 121) "&" + BIND_PAT@[121; 122) + NAME@[121; 122) + IDENT@[121; 122) "a" + COLON@[122; 123) ":" + WHITESPACE@[123; 124) " " + REFERENCE_TYPE@[124; 131) + AMP@[124; 125) "&" + REFERENCE_TYPE@[125; 131) + AMP@[125; 126) "&" + PATH_TYPE@[126; 131) + PATH@[126; 131) + PATH_SEGMENT@[126; 131) + NAME_REF@[126; 131) + IDENT@[126; 131) "usize" + R_PAREN@[131; 132) ")" + WHITESPACE@[132; 133) " " + BLOCK_EXPR@[133; 135) + BLOCK@[133; 135) + L_CURLY@[133; 134) "{" + R_CURLY@[134; 135) "}" + WHITESPACE@[135; 136) "\n" + R_CURLY@[136; 137) "}" + WHITESPACE@[137; 138) "\n" -- cgit v1.2.3