From 3fb58c620ccf93487cc3b9b8718002481826b4c2 Mon Sep 17 00:00:00 2001 From: Evgenii P Date: Wed, 7 Aug 2019 23:42:28 +0700 Subject: Add function parameters attributes --- .../test_data/parser/inline/ok/0006_self_param.rs | 6 + .../test_data/parser/inline/ok/0006_self_param.txt | 171 ++++++++++++++++++++- .../parser/inline/ok/0018_arb_self_types.rs | 2 + .../parser/inline/ok/0018_arb_self_types.txt | 79 +++++++++- .../inline/ok/0045_param_list_opt_patterns.rs | 1 + .../inline/ok/0045_param_list_opt_patterns.txt | 54 ++++++- .../test_data/parser/inline/ok/0099_param_list.rs | 2 + .../test_data/parser/inline/ok/0099_param_list.txt | 71 ++++++++- .../ok/0116_trait_fn_placeholder_parameter.rs | 1 + .../ok/0116_trait_fn_placeholder_parameter.txt | 61 +++++++- .../parser/inline/ok/0123_param_list_vararg.rs | 1 + .../parser/inline/ok/0123_param_list_vararg.txt | 57 ++++++- 12 files changed, 485 insertions(+), 21 deletions(-) (limited to 'crates/ra_syntax/test_data/parser/inline') diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rs b/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rs index 80c0a43f5..7811f52c0 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rs +++ b/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rs @@ -4,4 +4,10 @@ impl S { fn c(&'a self,) {} fn d(&'a mut self, x: i32) {} fn e(mut self) {} + fn f(#[must_use] self) {} + fn g1(#[attr] self) {} + fn g2(#[attr] &self) {} + fn g3<'a>(#[attr] &mut self) {} + fn g4<'a>(#[attr] &'a self) {} + fn g5<'a>(#[attr] &'a mut self) {} } diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.txt b/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.txt index 8e210a6ca..5c75b6c75 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.txt +++ b/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.txt @@ -1,5 +1,5 @@ -SOURCE_FILE@[0; 128) - IMPL_BLOCK@[0; 127) +SOURCE_FILE@[0; 323) + IMPL_BLOCK@[0; 322) IMPL_KW@[0; 4) "impl" WHITESPACE@[4; 5) " " PATH_TYPE@[5; 6) @@ -8,7 +8,7 @@ SOURCE_FILE@[0; 128) NAME_REF@[5; 6) IDENT@[5; 6) "S" WHITESPACE@[6; 7) " " - ITEM_LIST@[7; 127) + ITEM_LIST@[7; 322) L_CURLY@[7; 8) "{" WHITESPACE@[8; 13) "\n " FN_DEF@[13; 26) @@ -111,6 +111,165 @@ SOURCE_FILE@[0; 128) BLOCK@[123; 125) L_CURLY@[123; 124) "{" R_CURLY@[124; 125) "}" - WHITESPACE@[125; 126) "\n" - R_CURLY@[126; 127) "}" - WHITESPACE@[127; 128) "\n" + WHITESPACE@[125; 130) "\n " + FN_DEF@[130; 155) + FN_KW@[130; 132) "fn" + WHITESPACE@[132; 133) " " + NAME@[133; 134) + IDENT@[133; 134) "f" + PARAM_LIST@[134; 152) + L_PAREN@[134; 135) "(" + ATTR@[135; 146) + POUND@[135; 136) "#" + TOKEN_TREE@[136; 146) + L_BRACK@[136; 137) "[" + IDENT@[137; 145) "must_use" + R_BRACK@[145; 146) "]" + WHITESPACE@[146; 147) " " + SELF_PARAM@[147; 151) + SELF_KW@[147; 151) "self" + R_PAREN@[151; 152) ")" + WHITESPACE@[152; 153) " " + BLOCK@[153; 155) + L_CURLY@[153; 154) "{" + R_CURLY@[154; 155) "}" + WHITESPACE@[155; 160) "\n " + FN_DEF@[160; 182) + FN_KW@[160; 162) "fn" + WHITESPACE@[162; 163) " " + NAME@[163; 165) + IDENT@[163; 165) "g1" + PARAM_LIST@[165; 179) + L_PAREN@[165; 166) "(" + ATTR@[166; 173) + POUND@[166; 167) "#" + TOKEN_TREE@[167; 173) + L_BRACK@[167; 168) "[" + IDENT@[168; 172) "attr" + R_BRACK@[172; 173) "]" + WHITESPACE@[173; 174) " " + SELF_PARAM@[174; 178) + SELF_KW@[174; 178) "self" + R_PAREN@[178; 179) ")" + WHITESPACE@[179; 180) " " + BLOCK@[180; 182) + L_CURLY@[180; 181) "{" + R_CURLY@[181; 182) "}" + WHITESPACE@[182; 187) "\n " + FN_DEF@[187; 210) + FN_KW@[187; 189) "fn" + WHITESPACE@[189; 190) " " + NAME@[190; 192) + IDENT@[190; 192) "g2" + PARAM_LIST@[192; 207) + L_PAREN@[192; 193) "(" + ATTR@[193; 200) + POUND@[193; 194) "#" + TOKEN_TREE@[194; 200) + L_BRACK@[194; 195) "[" + IDENT@[195; 199) "attr" + R_BRACK@[199; 200) "]" + WHITESPACE@[200; 201) " " + SELF_PARAM@[201; 206) + AMP@[201; 202) "&" + SELF_KW@[202; 206) "self" + R_PAREN@[206; 207) ")" + WHITESPACE@[207; 208) " " + BLOCK@[208; 210) + L_CURLY@[208; 209) "{" + R_CURLY@[209; 210) "}" + WHITESPACE@[210; 215) "\n " + FN_DEF@[215; 246) + FN_KW@[215; 217) "fn" + WHITESPACE@[217; 218) " " + NAME@[218; 220) + IDENT@[218; 220) "g3" + TYPE_PARAM_LIST@[220; 224) + L_ANGLE@[220; 221) "<" + LIFETIME_PARAM@[221; 223) + LIFETIME@[221; 223) "\'a" + R_ANGLE@[223; 224) ">" + PARAM_LIST@[224; 243) + L_PAREN@[224; 225) "(" + ATTR@[225; 232) + POUND@[225; 226) "#" + TOKEN_TREE@[226; 232) + L_BRACK@[226; 227) "[" + IDENT@[227; 231) "attr" + R_BRACK@[231; 232) "]" + WHITESPACE@[232; 233) " " + SELF_PARAM@[233; 242) + AMP@[233; 234) "&" + MUT_KW@[234; 237) "mut" + WHITESPACE@[237; 238) " " + SELF_KW@[238; 242) "self" + R_PAREN@[242; 243) ")" + WHITESPACE@[243; 244) " " + BLOCK@[244; 246) + L_CURLY@[244; 245) "{" + R_CURLY@[245; 246) "}" + WHITESPACE@[246; 251) "\n " + FN_DEF@[251; 281) + FN_KW@[251; 253) "fn" + WHITESPACE@[253; 254) " " + NAME@[254; 256) + IDENT@[254; 256) "g4" + TYPE_PARAM_LIST@[256; 260) + L_ANGLE@[256; 257) "<" + LIFETIME_PARAM@[257; 259) + LIFETIME@[257; 259) "\'a" + R_ANGLE@[259; 260) ">" + PARAM_LIST@[260; 278) + L_PAREN@[260; 261) "(" + ATTR@[261; 268) + POUND@[261; 262) "#" + TOKEN_TREE@[262; 268) + L_BRACK@[262; 263) "[" + IDENT@[263; 267) "attr" + R_BRACK@[267; 268) "]" + WHITESPACE@[268; 269) " " + SELF_PARAM@[269; 277) + AMP@[269; 270) "&" + LIFETIME@[270; 272) "\'a" + WHITESPACE@[272; 273) " " + SELF_KW@[273; 277) "self" + R_PAREN@[277; 278) ")" + WHITESPACE@[278; 279) " " + BLOCK@[279; 281) + L_CURLY@[279; 280) "{" + R_CURLY@[280; 281) "}" + WHITESPACE@[281; 286) "\n " + FN_DEF@[286; 320) + FN_KW@[286; 288) "fn" + WHITESPACE@[288; 289) " " + NAME@[289; 291) + IDENT@[289; 291) "g5" + TYPE_PARAM_LIST@[291; 295) + L_ANGLE@[291; 292) "<" + LIFETIME_PARAM@[292; 294) + LIFETIME@[292; 294) "\'a" + R_ANGLE@[294; 295) ">" + PARAM_LIST@[295; 317) + L_PAREN@[295; 296) "(" + ATTR@[296; 303) + POUND@[296; 297) "#" + TOKEN_TREE@[297; 303) + L_BRACK@[297; 298) "[" + IDENT@[298; 302) "attr" + R_BRACK@[302; 303) "]" + WHITESPACE@[303; 304) " " + SELF_PARAM@[304; 316) + AMP@[304; 305) "&" + LIFETIME@[305; 307) "\'a" + WHITESPACE@[307; 308) " " + MUT_KW@[308; 311) "mut" + WHITESPACE@[311; 312) " " + SELF_KW@[312; 316) "self" + R_PAREN@[316; 317) ")" + WHITESPACE@[317; 318) " " + BLOCK@[318; 320) + L_CURLY@[318; 319) "{" + R_CURLY@[319; 320) "}" + WHITESPACE@[320; 321) "\n" + R_CURLY@[321; 322) "}" + WHITESPACE@[322; 323) "\n" diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.rs b/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.rs index 6a170d5ac..077216dae 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.rs +++ b/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.rs @@ -1,4 +1,6 @@ impl S { fn a(self: &Self) {} fn b(mut self: Box) {} + fn c(#[attr] self: Self) {} + fn d(#[attr] self: Rc) {} } diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.txt b/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.txt index 67d0de0f0..ca49bcc26 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.txt +++ b/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.txt @@ -1,5 +1,5 @@ -SOURCE_FILE@[0; 69) - IMPL_BLOCK@[0; 68) +SOURCE_FILE@[0; 137) + IMPL_BLOCK@[0; 136) IMPL_KW@[0; 4) "impl" WHITESPACE@[4; 5) " " PATH_TYPE@[5; 6) @@ -8,7 +8,7 @@ SOURCE_FILE@[0; 69) NAME_REF@[5; 6) IDENT@[5; 6) "S" WHITESPACE@[6; 7) " " - ITEM_LIST@[7; 68) + ITEM_LIST@[7; 136) L_CURLY@[7; 8) "{" WHITESPACE@[8; 13) "\n " FN_DEF@[13; 33) @@ -67,6 +67,73 @@ SOURCE_FILE@[0; 69) BLOCK@[64; 66) L_CURLY@[64; 65) "{" R_CURLY@[65; 66) "}" - WHITESPACE@[66; 67) "\n" - R_CURLY@[67; 68) "}" - WHITESPACE@[68; 69) "\n" + WHITESPACE@[66; 71) "\n " + FN_DEF@[71; 98) + FN_KW@[71; 73) "fn" + WHITESPACE@[73; 74) " " + NAME@[74; 75) + IDENT@[74; 75) "c" + PARAM_LIST@[75; 95) + L_PAREN@[75; 76) "(" + ATTR@[76; 83) + POUND@[76; 77) "#" + TOKEN_TREE@[77; 83) + L_BRACK@[77; 78) "[" + IDENT@[78; 82) "attr" + R_BRACK@[82; 83) "]" + WHITESPACE@[83; 84) " " + SELF_PARAM@[84; 94) + SELF_KW@[84; 88) "self" + COLON@[88; 89) ":" + WHITESPACE@[89; 90) " " + PATH_TYPE@[90; 94) + PATH@[90; 94) + PATH_SEGMENT@[90; 94) + NAME_REF@[90; 94) + IDENT@[90; 94) "Self" + R_PAREN@[94; 95) ")" + WHITESPACE@[95; 96) " " + BLOCK@[96; 98) + L_CURLY@[96; 97) "{" + R_CURLY@[97; 98) "}" + WHITESPACE@[98; 103) "\n " + FN_DEF@[103; 134) + FN_KW@[103; 105) "fn" + WHITESPACE@[105; 106) " " + NAME@[106; 107) + IDENT@[106; 107) "d" + PARAM_LIST@[107; 131) + L_PAREN@[107; 108) "(" + ATTR@[108; 115) + POUND@[108; 109) "#" + TOKEN_TREE@[109; 115) + L_BRACK@[109; 110) "[" + IDENT@[110; 114) "attr" + R_BRACK@[114; 115) "]" + WHITESPACE@[115; 116) " " + SELF_PARAM@[116; 130) + SELF_KW@[116; 120) "self" + COLON@[120; 121) ":" + WHITESPACE@[121; 122) " " + PATH_TYPE@[122; 130) + PATH@[122; 130) + PATH_SEGMENT@[122; 130) + NAME_REF@[122; 124) + IDENT@[122; 124) "Rc" + TYPE_ARG_LIST@[124; 130) + L_ANGLE@[124; 125) "<" + TYPE_ARG@[125; 129) + PATH_TYPE@[125; 129) + PATH@[125; 129) + PATH_SEGMENT@[125; 129) + NAME_REF@[125; 129) + IDENT@[125; 129) "Self" + R_ANGLE@[129; 130) ">" + R_PAREN@[130; 131) ")" + WHITESPACE@[131; 132) " " + BLOCK@[132; 134) + L_CURLY@[132; 133) "{" + R_CURLY@[133; 134) "}" + WHITESPACE@[134; 135) "\n" + R_CURLY@[135; 136) "}" + WHITESPACE@[136; 137) "\n" diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rs b/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rs index 9b93442c0..9833dd8f1 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rs +++ b/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rs @@ -1 +1,2 @@ fn foo)>(){} +fn foo)>(){} diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.txt b/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.txt index f85d6a4bc..0b377dfd4 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.txt +++ b/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.txt @@ -1,4 +1,4 @@ -SOURCE_FILE@[0; 35) +SOURCE_FILE@[0; 78) FN_DEF@[0; 34) FN_KW@[0; 2) "fn" WHITESPACE@[2; 3) " " @@ -44,3 +44,55 @@ SOURCE_FILE@[0; 35) L_CURLY@[32; 33) "{" R_CURLY@[33; 34) "}" WHITESPACE@[34; 35) "\n" + FN_DEF@[35; 77) + FN_KW@[35; 37) "fn" + WHITESPACE@[37; 38) " " + NAME@[38; 41) + IDENT@[38; 41) "foo" + TYPE_PARAM_LIST@[41; 73) + L_ANGLE@[41; 42) "<" + TYPE_PARAM@[42; 72) + NAME@[42; 43) + IDENT@[42; 43) "F" + COLON@[43; 44) ":" + WHITESPACE@[44; 45) " " + TYPE_BOUND_LIST@[45; 72) + TYPE_BOUND@[45; 72) + PATH_TYPE@[45; 72) + PATH@[45; 72) + PATH_SEGMENT@[45; 72) + NAME_REF@[45; 50) + IDENT@[45; 50) "FnMut" + PARAM_LIST@[50; 72) + L_PAREN@[50; 51) "(" + ATTR@[51; 58) + POUND@[51; 52) "#" + TOKEN_TREE@[52; 58) + L_BRACK@[52; 53) "[" + IDENT@[53; 57) "attr" + R_BRACK@[57; 58) "]" + WHITESPACE@[58; 59) " " + PARAM@[59; 71) + REFERENCE_TYPE@[59; 71) + AMP@[59; 60) "&" + MUT_KW@[60; 63) "mut" + WHITESPACE@[63; 64) " " + PATH_TYPE@[64; 71) + PATH@[64; 71) + PATH_SEGMENT@[64; 71) + NAME_REF@[64; 67) + IDENT@[64; 67) "Foo" + TYPE_ARG_LIST@[67; 71) + L_ANGLE@[67; 68) "<" + LIFETIME_ARG@[68; 70) + LIFETIME@[68; 70) "\'a" + R_ANGLE@[70; 71) ">" + R_PAREN@[71; 72) ")" + R_ANGLE@[72; 73) ">" + PARAM_LIST@[73; 75) + L_PAREN@[73; 74) "(" + R_PAREN@[74; 75) ")" + BLOCK@[75; 77) + L_CURLY@[75; 76) "{" + R_CURLY@[76; 77) "}" + WHITESPACE@[77; 78) "\n" diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rs b/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rs index 9d55bedbb..83d870ba7 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rs +++ b/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rs @@ -2,3 +2,5 @@ fn a() {} fn b(x: i32) {} fn c(x: i32, ) {} fn d(x: i32, y: ()) {} +fn g1(#[attr1] #[attr2] pat: Type) {} +fn g2(#[attr1] x: u8) {} diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.txt b/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.txt index 80d636819..a9c63fa93 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.txt +++ b/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.txt @@ -1,4 +1,4 @@ -SOURCE_FILE@[0; 67) +SOURCE_FILE@[0; 130) FN_DEF@[0; 9) FN_KW@[0; 2) "fn" WHITESPACE@[2; 3) " " @@ -97,3 +97,72 @@ SOURCE_FILE@[0; 67) L_CURLY@[64; 65) "{" R_CURLY@[65; 66) "}" WHITESPACE@[66; 67) "\n" + FN_DEF@[67; 104) + FN_KW@[67; 69) "fn" + WHITESPACE@[69; 70) " " + NAME@[70; 72) + IDENT@[70; 72) "g1" + PARAM_LIST@[72; 101) + L_PAREN@[72; 73) "(" + ATTR@[73; 81) + POUND@[73; 74) "#" + TOKEN_TREE@[74; 81) + L_BRACK@[74; 75) "[" + IDENT@[75; 80) "attr1" + R_BRACK@[80; 81) "]" + WHITESPACE@[81; 82) " " + ATTR@[82; 90) + POUND@[82; 83) "#" + TOKEN_TREE@[83; 90) + L_BRACK@[83; 84) "[" + IDENT@[84; 89) "attr2" + R_BRACK@[89; 90) "]" + WHITESPACE@[90; 91) " " + PARAM@[91; 100) + BIND_PAT@[91; 94) + NAME@[91; 94) + IDENT@[91; 94) "pat" + COLON@[94; 95) ":" + WHITESPACE@[95; 96) " " + PATH_TYPE@[96; 100) + PATH@[96; 100) + PATH_SEGMENT@[96; 100) + NAME_REF@[96; 100) + IDENT@[96; 100) "Type" + R_PAREN@[100; 101) ")" + WHITESPACE@[101; 102) " " + BLOCK@[102; 104) + L_CURLY@[102; 103) "{" + R_CURLY@[103; 104) "}" + WHITESPACE@[104; 105) "\n" + FN_DEF@[105; 129) + FN_KW@[105; 107) "fn" + WHITESPACE@[107; 108) " " + NAME@[108; 110) + IDENT@[108; 110) "g2" + PARAM_LIST@[110; 126) + L_PAREN@[110; 111) "(" + ATTR@[111; 119) + POUND@[111; 112) "#" + TOKEN_TREE@[112; 119) + L_BRACK@[112; 113) "[" + IDENT@[113; 118) "attr1" + R_BRACK@[118; 119) "]" + WHITESPACE@[119; 120) " " + PARAM@[120; 125) + BIND_PAT@[120; 121) + NAME@[120; 121) + IDENT@[120; 121) "x" + COLON@[121; 122) ":" + WHITESPACE@[122; 123) " " + PATH_TYPE@[123; 125) + PATH@[123; 125) + PATH_SEGMENT@[123; 125) + NAME_REF@[123; 125) + IDENT@[123; 125) "u8" + R_PAREN@[125; 126) ")" + WHITESPACE@[126; 127) " " + BLOCK@[127; 129) + L_CURLY@[127; 128) "{" + R_CURLY@[128; 129) "}" + WHITESPACE@[129; 130) "\n" diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0116_trait_fn_placeholder_parameter.rs b/crates/ra_syntax/test_data/parser/inline/ok/0116_trait_fn_placeholder_parameter.rs index 472cb8803..90c4dcd2d 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0116_trait_fn_placeholder_parameter.rs +++ b/crates/ra_syntax/test_data/parser/inline/ok/0116_trait_fn_placeholder_parameter.rs @@ -1,3 +1,4 @@ trait Foo { fn bar(_: u64, mut x: i32); + fn bar(#[attr] _: u64, #[attr] mut x: i32); } diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0116_trait_fn_placeholder_parameter.txt b/crates/ra_syntax/test_data/parser/inline/ok/0116_trait_fn_placeholder_parameter.txt index 158236c5a..b5c6e0a2a 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0116_trait_fn_placeholder_parameter.txt +++ b/crates/ra_syntax/test_data/parser/inline/ok/0116_trait_fn_placeholder_parameter.txt @@ -1,11 +1,11 @@ -SOURCE_FILE@[0; 46) - TRAIT_DEF@[0; 45) +SOURCE_FILE@[0; 94) + TRAIT_DEF@[0; 93) TRAIT_KW@[0; 5) "trait" WHITESPACE@[5; 6) " " NAME@[6; 9) IDENT@[6; 9) "Foo" WHITESPACE@[9; 10) " " - ITEM_LIST@[10; 45) + ITEM_LIST@[10; 93) L_CURLY@[10; 11) "{" WHITESPACE@[11; 16) "\n " FN_DEF@[16; 43) @@ -42,6 +42,55 @@ SOURCE_FILE@[0; 46) IDENT@[38; 41) "i32" R_PAREN@[41; 42) ")" SEMI@[42; 43) ";" - WHITESPACE@[43; 44) "\n" - R_CURLY@[44; 45) "}" - WHITESPACE@[45; 46) "\n" + WHITESPACE@[43; 48) "\n " + FN_DEF@[48; 91) + FN_KW@[48; 50) "fn" + WHITESPACE@[50; 51) " " + NAME@[51; 54) + IDENT@[51; 54) "bar" + PARAM_LIST@[54; 90) + L_PAREN@[54; 55) "(" + ATTR@[55; 62) + POUND@[55; 56) "#" + TOKEN_TREE@[56; 62) + L_BRACK@[56; 57) "[" + IDENT@[57; 61) "attr" + R_BRACK@[61; 62) "]" + WHITESPACE@[62; 63) " " + PARAM@[63; 69) + PLACEHOLDER_PAT@[63; 64) + UNDERSCORE@[63; 64) "_" + COLON@[64; 65) ":" + WHITESPACE@[65; 66) " " + PATH_TYPE@[66; 69) + PATH@[66; 69) + PATH_SEGMENT@[66; 69) + NAME_REF@[66; 69) + IDENT@[66; 69) "u64" + COMMA@[69; 70) "," + WHITESPACE@[70; 71) " " + ATTR@[71; 78) + POUND@[71; 72) "#" + TOKEN_TREE@[72; 78) + L_BRACK@[72; 73) "[" + IDENT@[73; 77) "attr" + R_BRACK@[77; 78) "]" + WHITESPACE@[78; 79) " " + PARAM@[79; 89) + BIND_PAT@[79; 84) + MUT_KW@[79; 82) "mut" + WHITESPACE@[82; 83) " " + NAME@[83; 84) + IDENT@[83; 84) "x" + COLON@[84; 85) ":" + WHITESPACE@[85; 86) " " + PATH_TYPE@[86; 89) + PATH@[86; 89) + PATH_SEGMENT@[86; 89) + NAME_REF@[86; 89) + IDENT@[86; 89) "i32" + R_PAREN@[89; 90) ")" + SEMI@[90; 91) ";" + WHITESPACE@[91; 92) "\n" + R_CURLY@[92; 93) "}" + WHITESPACE@[93; 94) "\n" diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.rs b/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.rs index c59addaf4..8583ede05 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.rs +++ b/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.rs @@ -1 +1,2 @@ extern "C" { fn printf(format: *const i8, ...) -> i32; } +extern "C" { fn printf(#[attr] format: *const i8, ...) -> i32; } diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.txt b/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.txt index 836e8e55b..164ead2d8 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.txt +++ b/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.txt @@ -1,4 +1,4 @@ -SOURCE_FILE@[0; 57) +SOURCE_FILE@[0; 122) EXTERN_BLOCK@[0; 56) ABI@[0; 10) EXTERN_KW@[0; 6) "extern" @@ -47,3 +47,58 @@ SOURCE_FILE@[0; 57) WHITESPACE@[54; 55) " " R_CURLY@[55; 56) "}" WHITESPACE@[56; 57) "\n" + EXTERN_BLOCK@[57; 121) + ABI@[57; 67) + EXTERN_KW@[57; 63) "extern" + WHITESPACE@[63; 64) " " + STRING@[64; 67) "\"C\"" + WHITESPACE@[67; 68) " " + EXTERN_ITEM_LIST@[68; 121) + L_CURLY@[68; 69) "{" + WHITESPACE@[69; 70) " " + FN_DEF@[70; 119) + FN_KW@[70; 72) "fn" + WHITESPACE@[72; 73) " " + NAME@[73; 79) + IDENT@[73; 79) "printf" + PARAM_LIST@[79; 111) + L_PAREN@[79; 80) "(" + ATTR@[80; 87) + POUND@[80; 81) "#" + TOKEN_TREE@[81; 87) + L_BRACK@[81; 82) "[" + IDENT@[82; 86) "attr" + R_BRACK@[86; 87) "]" + WHITESPACE@[87; 88) " " + PARAM@[88; 105) + BIND_PAT@[88; 94) + NAME@[88; 94) + IDENT@[88; 94) "format" + COLON@[94; 95) ":" + WHITESPACE@[95; 96) " " + POINTER_TYPE@[96; 105) + STAR@[96; 97) "*" + CONST_KW@[97; 102) "const" + WHITESPACE@[102; 103) " " + PATH_TYPE@[103; 105) + PATH@[103; 105) + PATH_SEGMENT@[103; 105) + NAME_REF@[103; 105) + IDENT@[103; 105) "i8" + COMMA@[105; 106) "," + WHITESPACE@[106; 107) " " + DOTDOTDOT@[107; 110) "..." + R_PAREN@[110; 111) ")" + WHITESPACE@[111; 112) " " + RET_TYPE@[112; 118) + THIN_ARROW@[112; 114) "->" + WHITESPACE@[114; 115) " " + PATH_TYPE@[115; 118) + PATH@[115; 118) + PATH_SEGMENT@[115; 118) + NAME_REF@[115; 118) + IDENT@[115; 118) "i32" + SEMI@[118; 119) ";" + WHITESPACE@[119; 120) " " + R_CURLY@[120; 121) "}" + WHITESPACE@[121; 122) "\n" -- cgit v1.2.3 From 9ea36703d27a850976190f870fa7c6cb086028c7 Mon Sep 17 00:00:00 2001 From: Evgenii P Date: Wed, 7 Aug 2019 23:48:21 +0700 Subject: Fix variadic arg inline test --- .../parser/inline/ok/0123_param_list_vararg.rs | 2 +- .../parser/inline/ok/0123_param_list_vararg.txt | 46 +++++++++++----------- 2 files changed, 24 insertions(+), 24 deletions(-) (limited to 'crates/ra_syntax/test_data/parser/inline') diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.rs b/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.rs index 8583ede05..723d868ee 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.rs +++ b/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.rs @@ -1,2 +1,2 @@ extern "C" { fn printf(format: *const i8, ...) -> i32; } -extern "C" { fn printf(#[attr] format: *const i8, ...) -> i32; } +extern "C" { fn printf(format: *const i8, #[attr] ...) -> i32; } diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.txt b/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.txt index 164ead2d8..8a6672781 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.txt +++ b/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.txt @@ -63,29 +63,29 @@ SOURCE_FILE@[0; 122) IDENT@[73; 79) "printf" PARAM_LIST@[79; 111) L_PAREN@[79; 80) "(" - ATTR@[80; 87) - POUND@[80; 81) "#" - TOKEN_TREE@[81; 87) - L_BRACK@[81; 82) "[" - IDENT@[82; 86) "attr" - R_BRACK@[86; 87) "]" - WHITESPACE@[87; 88) " " - PARAM@[88; 105) - BIND_PAT@[88; 94) - NAME@[88; 94) - IDENT@[88; 94) "format" - COLON@[94; 95) ":" - WHITESPACE@[95; 96) " " - POINTER_TYPE@[96; 105) - STAR@[96; 97) "*" - CONST_KW@[97; 102) "const" - WHITESPACE@[102; 103) " " - PATH_TYPE@[103; 105) - PATH@[103; 105) - PATH_SEGMENT@[103; 105) - NAME_REF@[103; 105) - IDENT@[103; 105) "i8" - COMMA@[105; 106) "," + PARAM@[80; 97) + BIND_PAT@[80; 86) + NAME@[80; 86) + IDENT@[80; 86) "format" + COLON@[86; 87) ":" + WHITESPACE@[87; 88) " " + POINTER_TYPE@[88; 97) + STAR@[88; 89) "*" + CONST_KW@[89; 94) "const" + WHITESPACE@[94; 95) " " + PATH_TYPE@[95; 97) + PATH@[95; 97) + PATH_SEGMENT@[95; 97) + NAME_REF@[95; 97) + IDENT@[95; 97) "i8" + COMMA@[97; 98) "," + WHITESPACE@[98; 99) " " + ATTR@[99; 106) + POUND@[99; 100) "#" + TOKEN_TREE@[100; 106) + L_BRACK@[100; 101) "[" + IDENT@[101; 105) "attr" + R_BRACK@[105; 106) "]" WHITESPACE@[106; 107) " " DOTDOTDOT@[107; 110) "..." R_PAREN@[110; 111) ")" -- cgit v1.2.3 From 6fa2d8214784b6ecfc3fbcd98778d4e58fa8664e Mon Sep 17 00:00:00 2001 From: Evgenii P Date: Thu, 8 Aug 2019 09:12:07 +0700 Subject: Fix parser tests according to review --- .../test_data/parser/inline/ok/0006_self_param.rs | 6 - .../test_data/parser/inline/ok/0006_self_param.txt | 171 +-------------------- .../parser/inline/ok/0018_arb_self_types.rs | 2 - .../parser/inline/ok/0018_arb_self_types.txt | 79 +--------- .../inline/ok/0045_param_list_opt_patterns.rs | 1 - .../inline/ok/0045_param_list_opt_patterns.txt | 54 +------ .../test_data/parser/inline/ok/0099_param_list.rs | 2 - .../test_data/parser/inline/ok/0099_param_list.txt | 71 +-------- .../ok/0116_trait_fn_placeholder_parameter.rs | 1 - .../ok/0116_trait_fn_placeholder_parameter.txt | 61 +------- .../parser/inline/ok/0123_param_list_vararg.rs | 1 - .../parser/inline/ok/0123_param_list_vararg.txt | 57 +------ .../parser/inline/ok/0138_self_param_outer_attr.rs | 1 + .../inline/ok/0138_self_param_outer_attr.txt | 23 +++ .../parser/inline/ok/0139_param_outer_arg.rs | 1 + .../parser/inline/ok/0139_param_outer_arg.txt | 32 ++++ 16 files changed, 78 insertions(+), 485 deletions(-) create mode 100644 crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rs create mode 100644 crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.txt create mode 100644 crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.rs create mode 100644 crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.txt (limited to 'crates/ra_syntax/test_data/parser/inline') diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rs b/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rs index 7811f52c0..80c0a43f5 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rs +++ b/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rs @@ -4,10 +4,4 @@ impl S { fn c(&'a self,) {} fn d(&'a mut self, x: i32) {} fn e(mut self) {} - fn f(#[must_use] self) {} - fn g1(#[attr] self) {} - fn g2(#[attr] &self) {} - fn g3<'a>(#[attr] &mut self) {} - fn g4<'a>(#[attr] &'a self) {} - fn g5<'a>(#[attr] &'a mut self) {} } diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.txt b/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.txt index 5c75b6c75..8e210a6ca 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.txt +++ b/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.txt @@ -1,5 +1,5 @@ -SOURCE_FILE@[0; 323) - IMPL_BLOCK@[0; 322) +SOURCE_FILE@[0; 128) + IMPL_BLOCK@[0; 127) IMPL_KW@[0; 4) "impl" WHITESPACE@[4; 5) " " PATH_TYPE@[5; 6) @@ -8,7 +8,7 @@ SOURCE_FILE@[0; 323) NAME_REF@[5; 6) IDENT@[5; 6) "S" WHITESPACE@[6; 7) " " - ITEM_LIST@[7; 322) + ITEM_LIST@[7; 127) L_CURLY@[7; 8) "{" WHITESPACE@[8; 13) "\n " FN_DEF@[13; 26) @@ -111,165 +111,6 @@ SOURCE_FILE@[0; 323) BLOCK@[123; 125) L_CURLY@[123; 124) "{" R_CURLY@[124; 125) "}" - WHITESPACE@[125; 130) "\n " - FN_DEF@[130; 155) - FN_KW@[130; 132) "fn" - WHITESPACE@[132; 133) " " - NAME@[133; 134) - IDENT@[133; 134) "f" - PARAM_LIST@[134; 152) - L_PAREN@[134; 135) "(" - ATTR@[135; 146) - POUND@[135; 136) "#" - TOKEN_TREE@[136; 146) - L_BRACK@[136; 137) "[" - IDENT@[137; 145) "must_use" - R_BRACK@[145; 146) "]" - WHITESPACE@[146; 147) " " - SELF_PARAM@[147; 151) - SELF_KW@[147; 151) "self" - R_PAREN@[151; 152) ")" - WHITESPACE@[152; 153) " " - BLOCK@[153; 155) - L_CURLY@[153; 154) "{" - R_CURLY@[154; 155) "}" - WHITESPACE@[155; 160) "\n " - FN_DEF@[160; 182) - FN_KW@[160; 162) "fn" - WHITESPACE@[162; 163) " " - NAME@[163; 165) - IDENT@[163; 165) "g1" - PARAM_LIST@[165; 179) - L_PAREN@[165; 166) "(" - ATTR@[166; 173) - POUND@[166; 167) "#" - TOKEN_TREE@[167; 173) - L_BRACK@[167; 168) "[" - IDENT@[168; 172) "attr" - R_BRACK@[172; 173) "]" - WHITESPACE@[173; 174) " " - SELF_PARAM@[174; 178) - SELF_KW@[174; 178) "self" - R_PAREN@[178; 179) ")" - WHITESPACE@[179; 180) " " - BLOCK@[180; 182) - L_CURLY@[180; 181) "{" - R_CURLY@[181; 182) "}" - WHITESPACE@[182; 187) "\n " - FN_DEF@[187; 210) - FN_KW@[187; 189) "fn" - WHITESPACE@[189; 190) " " - NAME@[190; 192) - IDENT@[190; 192) "g2" - PARAM_LIST@[192; 207) - L_PAREN@[192; 193) "(" - ATTR@[193; 200) - POUND@[193; 194) "#" - TOKEN_TREE@[194; 200) - L_BRACK@[194; 195) "[" - IDENT@[195; 199) "attr" - R_BRACK@[199; 200) "]" - WHITESPACE@[200; 201) " " - SELF_PARAM@[201; 206) - AMP@[201; 202) "&" - SELF_KW@[202; 206) "self" - R_PAREN@[206; 207) ")" - WHITESPACE@[207; 208) " " - BLOCK@[208; 210) - L_CURLY@[208; 209) "{" - R_CURLY@[209; 210) "}" - WHITESPACE@[210; 215) "\n " - FN_DEF@[215; 246) - FN_KW@[215; 217) "fn" - WHITESPACE@[217; 218) " " - NAME@[218; 220) - IDENT@[218; 220) "g3" - TYPE_PARAM_LIST@[220; 224) - L_ANGLE@[220; 221) "<" - LIFETIME_PARAM@[221; 223) - LIFETIME@[221; 223) "\'a" - R_ANGLE@[223; 224) ">" - PARAM_LIST@[224; 243) - L_PAREN@[224; 225) "(" - ATTR@[225; 232) - POUND@[225; 226) "#" - TOKEN_TREE@[226; 232) - L_BRACK@[226; 227) "[" - IDENT@[227; 231) "attr" - R_BRACK@[231; 232) "]" - WHITESPACE@[232; 233) " " - SELF_PARAM@[233; 242) - AMP@[233; 234) "&" - MUT_KW@[234; 237) "mut" - WHITESPACE@[237; 238) " " - SELF_KW@[238; 242) "self" - R_PAREN@[242; 243) ")" - WHITESPACE@[243; 244) " " - BLOCK@[244; 246) - L_CURLY@[244; 245) "{" - R_CURLY@[245; 246) "}" - WHITESPACE@[246; 251) "\n " - FN_DEF@[251; 281) - FN_KW@[251; 253) "fn" - WHITESPACE@[253; 254) " " - NAME@[254; 256) - IDENT@[254; 256) "g4" - TYPE_PARAM_LIST@[256; 260) - L_ANGLE@[256; 257) "<" - LIFETIME_PARAM@[257; 259) - LIFETIME@[257; 259) "\'a" - R_ANGLE@[259; 260) ">" - PARAM_LIST@[260; 278) - L_PAREN@[260; 261) "(" - ATTR@[261; 268) - POUND@[261; 262) "#" - TOKEN_TREE@[262; 268) - L_BRACK@[262; 263) "[" - IDENT@[263; 267) "attr" - R_BRACK@[267; 268) "]" - WHITESPACE@[268; 269) " " - SELF_PARAM@[269; 277) - AMP@[269; 270) "&" - LIFETIME@[270; 272) "\'a" - WHITESPACE@[272; 273) " " - SELF_KW@[273; 277) "self" - R_PAREN@[277; 278) ")" - WHITESPACE@[278; 279) " " - BLOCK@[279; 281) - L_CURLY@[279; 280) "{" - R_CURLY@[280; 281) "}" - WHITESPACE@[281; 286) "\n " - FN_DEF@[286; 320) - FN_KW@[286; 288) "fn" - WHITESPACE@[288; 289) " " - NAME@[289; 291) - IDENT@[289; 291) "g5" - TYPE_PARAM_LIST@[291; 295) - L_ANGLE@[291; 292) "<" - LIFETIME_PARAM@[292; 294) - LIFETIME@[292; 294) "\'a" - R_ANGLE@[294; 295) ">" - PARAM_LIST@[295; 317) - L_PAREN@[295; 296) "(" - ATTR@[296; 303) - POUND@[296; 297) "#" - TOKEN_TREE@[297; 303) - L_BRACK@[297; 298) "[" - IDENT@[298; 302) "attr" - R_BRACK@[302; 303) "]" - WHITESPACE@[303; 304) " " - SELF_PARAM@[304; 316) - AMP@[304; 305) "&" - LIFETIME@[305; 307) "\'a" - WHITESPACE@[307; 308) " " - MUT_KW@[308; 311) "mut" - WHITESPACE@[311; 312) " " - SELF_KW@[312; 316) "self" - R_PAREN@[316; 317) ")" - WHITESPACE@[317; 318) " " - BLOCK@[318; 320) - L_CURLY@[318; 319) "{" - R_CURLY@[319; 320) "}" - WHITESPACE@[320; 321) "\n" - R_CURLY@[321; 322) "}" - WHITESPACE@[322; 323) "\n" + WHITESPACE@[125; 126) "\n" + R_CURLY@[126; 127) "}" + WHITESPACE@[127; 128) "\n" diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.rs b/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.rs index 077216dae..6a170d5ac 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.rs +++ b/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.rs @@ -1,6 +1,4 @@ impl S { fn a(self: &Self) {} fn b(mut self: Box) {} - fn c(#[attr] self: Self) {} - fn d(#[attr] self: Rc) {} } diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.txt b/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.txt index ca49bcc26..67d0de0f0 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.txt +++ b/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.txt @@ -1,5 +1,5 @@ -SOURCE_FILE@[0; 137) - IMPL_BLOCK@[0; 136) +SOURCE_FILE@[0; 69) + IMPL_BLOCK@[0; 68) IMPL_KW@[0; 4) "impl" WHITESPACE@[4; 5) " " PATH_TYPE@[5; 6) @@ -8,7 +8,7 @@ SOURCE_FILE@[0; 137) NAME_REF@[5; 6) IDENT@[5; 6) "S" WHITESPACE@[6; 7) " " - ITEM_LIST@[7; 136) + ITEM_LIST@[7; 68) L_CURLY@[7; 8) "{" WHITESPACE@[8; 13) "\n " FN_DEF@[13; 33) @@ -67,73 +67,6 @@ SOURCE_FILE@[0; 137) BLOCK@[64; 66) L_CURLY@[64; 65) "{" R_CURLY@[65; 66) "}" - WHITESPACE@[66; 71) "\n " - FN_DEF@[71; 98) - FN_KW@[71; 73) "fn" - WHITESPACE@[73; 74) " " - NAME@[74; 75) - IDENT@[74; 75) "c" - PARAM_LIST@[75; 95) - L_PAREN@[75; 76) "(" - ATTR@[76; 83) - POUND@[76; 77) "#" - TOKEN_TREE@[77; 83) - L_BRACK@[77; 78) "[" - IDENT@[78; 82) "attr" - R_BRACK@[82; 83) "]" - WHITESPACE@[83; 84) " " - SELF_PARAM@[84; 94) - SELF_KW@[84; 88) "self" - COLON@[88; 89) ":" - WHITESPACE@[89; 90) " " - PATH_TYPE@[90; 94) - PATH@[90; 94) - PATH_SEGMENT@[90; 94) - NAME_REF@[90; 94) - IDENT@[90; 94) "Self" - R_PAREN@[94; 95) ")" - WHITESPACE@[95; 96) " " - BLOCK@[96; 98) - L_CURLY@[96; 97) "{" - R_CURLY@[97; 98) "}" - WHITESPACE@[98; 103) "\n " - FN_DEF@[103; 134) - FN_KW@[103; 105) "fn" - WHITESPACE@[105; 106) " " - NAME@[106; 107) - IDENT@[106; 107) "d" - PARAM_LIST@[107; 131) - L_PAREN@[107; 108) "(" - ATTR@[108; 115) - POUND@[108; 109) "#" - TOKEN_TREE@[109; 115) - L_BRACK@[109; 110) "[" - IDENT@[110; 114) "attr" - R_BRACK@[114; 115) "]" - WHITESPACE@[115; 116) " " - SELF_PARAM@[116; 130) - SELF_KW@[116; 120) "self" - COLON@[120; 121) ":" - WHITESPACE@[121; 122) " " - PATH_TYPE@[122; 130) - PATH@[122; 130) - PATH_SEGMENT@[122; 130) - NAME_REF@[122; 124) - IDENT@[122; 124) "Rc" - TYPE_ARG_LIST@[124; 130) - L_ANGLE@[124; 125) "<" - TYPE_ARG@[125; 129) - PATH_TYPE@[125; 129) - PATH@[125; 129) - PATH_SEGMENT@[125; 129) - NAME_REF@[125; 129) - IDENT@[125; 129) "Self" - R_ANGLE@[129; 130) ">" - R_PAREN@[130; 131) ")" - WHITESPACE@[131; 132) " " - BLOCK@[132; 134) - L_CURLY@[132; 133) "{" - R_CURLY@[133; 134) "}" - WHITESPACE@[134; 135) "\n" - R_CURLY@[135; 136) "}" - WHITESPACE@[136; 137) "\n" + WHITESPACE@[66; 67) "\n" + R_CURLY@[67; 68) "}" + WHITESPACE@[68; 69) "\n" diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rs b/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rs index 9833dd8f1..9b93442c0 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rs +++ b/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rs @@ -1,2 +1 @@ fn foo)>(){} -fn foo)>(){} diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.txt b/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.txt index 0b377dfd4..f85d6a4bc 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.txt +++ b/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.txt @@ -1,4 +1,4 @@ -SOURCE_FILE@[0; 78) +SOURCE_FILE@[0; 35) FN_DEF@[0; 34) FN_KW@[0; 2) "fn" WHITESPACE@[2; 3) " " @@ -44,55 +44,3 @@ SOURCE_FILE@[0; 78) L_CURLY@[32; 33) "{" R_CURLY@[33; 34) "}" WHITESPACE@[34; 35) "\n" - FN_DEF@[35; 77) - FN_KW@[35; 37) "fn" - WHITESPACE@[37; 38) " " - NAME@[38; 41) - IDENT@[38; 41) "foo" - TYPE_PARAM_LIST@[41; 73) - L_ANGLE@[41; 42) "<" - TYPE_PARAM@[42; 72) - NAME@[42; 43) - IDENT@[42; 43) "F" - COLON@[43; 44) ":" - WHITESPACE@[44; 45) " " - TYPE_BOUND_LIST@[45; 72) - TYPE_BOUND@[45; 72) - PATH_TYPE@[45; 72) - PATH@[45; 72) - PATH_SEGMENT@[45; 72) - NAME_REF@[45; 50) - IDENT@[45; 50) "FnMut" - PARAM_LIST@[50; 72) - L_PAREN@[50; 51) "(" - ATTR@[51; 58) - POUND@[51; 52) "#" - TOKEN_TREE@[52; 58) - L_BRACK@[52; 53) "[" - IDENT@[53; 57) "attr" - R_BRACK@[57; 58) "]" - WHITESPACE@[58; 59) " " - PARAM@[59; 71) - REFERENCE_TYPE@[59; 71) - AMP@[59; 60) "&" - MUT_KW@[60; 63) "mut" - WHITESPACE@[63; 64) " " - PATH_TYPE@[64; 71) - PATH@[64; 71) - PATH_SEGMENT@[64; 71) - NAME_REF@[64; 67) - IDENT@[64; 67) "Foo" - TYPE_ARG_LIST@[67; 71) - L_ANGLE@[67; 68) "<" - LIFETIME_ARG@[68; 70) - LIFETIME@[68; 70) "\'a" - R_ANGLE@[70; 71) ">" - R_PAREN@[71; 72) ")" - R_ANGLE@[72; 73) ">" - PARAM_LIST@[73; 75) - L_PAREN@[73; 74) "(" - R_PAREN@[74; 75) ")" - BLOCK@[75; 77) - L_CURLY@[75; 76) "{" - R_CURLY@[76; 77) "}" - WHITESPACE@[77; 78) "\n" diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rs b/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rs index 83d870ba7..9d55bedbb 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rs +++ b/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rs @@ -2,5 +2,3 @@ fn a() {} fn b(x: i32) {} fn c(x: i32, ) {} fn d(x: i32, y: ()) {} -fn g1(#[attr1] #[attr2] pat: Type) {} -fn g2(#[attr1] x: u8) {} diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.txt b/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.txt index a9c63fa93..80d636819 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.txt +++ b/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.txt @@ -1,4 +1,4 @@ -SOURCE_FILE@[0; 130) +SOURCE_FILE@[0; 67) FN_DEF@[0; 9) FN_KW@[0; 2) "fn" WHITESPACE@[2; 3) " " @@ -97,72 +97,3 @@ SOURCE_FILE@[0; 130) L_CURLY@[64; 65) "{" R_CURLY@[65; 66) "}" WHITESPACE@[66; 67) "\n" - FN_DEF@[67; 104) - FN_KW@[67; 69) "fn" - WHITESPACE@[69; 70) " " - NAME@[70; 72) - IDENT@[70; 72) "g1" - PARAM_LIST@[72; 101) - L_PAREN@[72; 73) "(" - ATTR@[73; 81) - POUND@[73; 74) "#" - TOKEN_TREE@[74; 81) - L_BRACK@[74; 75) "[" - IDENT@[75; 80) "attr1" - R_BRACK@[80; 81) "]" - WHITESPACE@[81; 82) " " - ATTR@[82; 90) - POUND@[82; 83) "#" - TOKEN_TREE@[83; 90) - L_BRACK@[83; 84) "[" - IDENT@[84; 89) "attr2" - R_BRACK@[89; 90) "]" - WHITESPACE@[90; 91) " " - PARAM@[91; 100) - BIND_PAT@[91; 94) - NAME@[91; 94) - IDENT@[91; 94) "pat" - COLON@[94; 95) ":" - WHITESPACE@[95; 96) " " - PATH_TYPE@[96; 100) - PATH@[96; 100) - PATH_SEGMENT@[96; 100) - NAME_REF@[96; 100) - IDENT@[96; 100) "Type" - R_PAREN@[100; 101) ")" - WHITESPACE@[101; 102) " " - BLOCK@[102; 104) - L_CURLY@[102; 103) "{" - R_CURLY@[103; 104) "}" - WHITESPACE@[104; 105) "\n" - FN_DEF@[105; 129) - FN_KW@[105; 107) "fn" - WHITESPACE@[107; 108) " " - NAME@[108; 110) - IDENT@[108; 110) "g2" - PARAM_LIST@[110; 126) - L_PAREN@[110; 111) "(" - ATTR@[111; 119) - POUND@[111; 112) "#" - TOKEN_TREE@[112; 119) - L_BRACK@[112; 113) "[" - IDENT@[113; 118) "attr1" - R_BRACK@[118; 119) "]" - WHITESPACE@[119; 120) " " - PARAM@[120; 125) - BIND_PAT@[120; 121) - NAME@[120; 121) - IDENT@[120; 121) "x" - COLON@[121; 122) ":" - WHITESPACE@[122; 123) " " - PATH_TYPE@[123; 125) - PATH@[123; 125) - PATH_SEGMENT@[123; 125) - NAME_REF@[123; 125) - IDENT@[123; 125) "u8" - R_PAREN@[125; 126) ")" - WHITESPACE@[126; 127) " " - BLOCK@[127; 129) - L_CURLY@[127; 128) "{" - R_CURLY@[128; 129) "}" - WHITESPACE@[129; 130) "\n" diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0116_trait_fn_placeholder_parameter.rs b/crates/ra_syntax/test_data/parser/inline/ok/0116_trait_fn_placeholder_parameter.rs index 90c4dcd2d..472cb8803 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0116_trait_fn_placeholder_parameter.rs +++ b/crates/ra_syntax/test_data/parser/inline/ok/0116_trait_fn_placeholder_parameter.rs @@ -1,4 +1,3 @@ trait Foo { fn bar(_: u64, mut x: i32); - fn bar(#[attr] _: u64, #[attr] mut x: i32); } diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0116_trait_fn_placeholder_parameter.txt b/crates/ra_syntax/test_data/parser/inline/ok/0116_trait_fn_placeholder_parameter.txt index b5c6e0a2a..158236c5a 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0116_trait_fn_placeholder_parameter.txt +++ b/crates/ra_syntax/test_data/parser/inline/ok/0116_trait_fn_placeholder_parameter.txt @@ -1,11 +1,11 @@ -SOURCE_FILE@[0; 94) - TRAIT_DEF@[0; 93) +SOURCE_FILE@[0; 46) + TRAIT_DEF@[0; 45) TRAIT_KW@[0; 5) "trait" WHITESPACE@[5; 6) " " NAME@[6; 9) IDENT@[6; 9) "Foo" WHITESPACE@[9; 10) " " - ITEM_LIST@[10; 93) + ITEM_LIST@[10; 45) L_CURLY@[10; 11) "{" WHITESPACE@[11; 16) "\n " FN_DEF@[16; 43) @@ -42,55 +42,6 @@ SOURCE_FILE@[0; 94) IDENT@[38; 41) "i32" R_PAREN@[41; 42) ")" SEMI@[42; 43) ";" - WHITESPACE@[43; 48) "\n " - FN_DEF@[48; 91) - FN_KW@[48; 50) "fn" - WHITESPACE@[50; 51) " " - NAME@[51; 54) - IDENT@[51; 54) "bar" - PARAM_LIST@[54; 90) - L_PAREN@[54; 55) "(" - ATTR@[55; 62) - POUND@[55; 56) "#" - TOKEN_TREE@[56; 62) - L_BRACK@[56; 57) "[" - IDENT@[57; 61) "attr" - R_BRACK@[61; 62) "]" - WHITESPACE@[62; 63) " " - PARAM@[63; 69) - PLACEHOLDER_PAT@[63; 64) - UNDERSCORE@[63; 64) "_" - COLON@[64; 65) ":" - WHITESPACE@[65; 66) " " - PATH_TYPE@[66; 69) - PATH@[66; 69) - PATH_SEGMENT@[66; 69) - NAME_REF@[66; 69) - IDENT@[66; 69) "u64" - COMMA@[69; 70) "," - WHITESPACE@[70; 71) " " - ATTR@[71; 78) - POUND@[71; 72) "#" - TOKEN_TREE@[72; 78) - L_BRACK@[72; 73) "[" - IDENT@[73; 77) "attr" - R_BRACK@[77; 78) "]" - WHITESPACE@[78; 79) " " - PARAM@[79; 89) - BIND_PAT@[79; 84) - MUT_KW@[79; 82) "mut" - WHITESPACE@[82; 83) " " - NAME@[83; 84) - IDENT@[83; 84) "x" - COLON@[84; 85) ":" - WHITESPACE@[85; 86) " " - PATH_TYPE@[86; 89) - PATH@[86; 89) - PATH_SEGMENT@[86; 89) - NAME_REF@[86; 89) - IDENT@[86; 89) "i32" - R_PAREN@[89; 90) ")" - SEMI@[90; 91) ";" - WHITESPACE@[91; 92) "\n" - R_CURLY@[92; 93) "}" - WHITESPACE@[93; 94) "\n" + WHITESPACE@[43; 44) "\n" + R_CURLY@[44; 45) "}" + WHITESPACE@[45; 46) "\n" diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.rs b/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.rs index 723d868ee..c59addaf4 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.rs +++ b/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.rs @@ -1,2 +1 @@ extern "C" { fn printf(format: *const i8, ...) -> i32; } -extern "C" { fn printf(format: *const i8, #[attr] ...) -> i32; } diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.txt b/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.txt index 8a6672781..836e8e55b 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.txt +++ b/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.txt @@ -1,4 +1,4 @@ -SOURCE_FILE@[0; 122) +SOURCE_FILE@[0; 57) EXTERN_BLOCK@[0; 56) ABI@[0; 10) EXTERN_KW@[0; 6) "extern" @@ -47,58 +47,3 @@ SOURCE_FILE@[0; 122) WHITESPACE@[54; 55) " " R_CURLY@[55; 56) "}" WHITESPACE@[56; 57) "\n" - EXTERN_BLOCK@[57; 121) - ABI@[57; 67) - EXTERN_KW@[57; 63) "extern" - WHITESPACE@[63; 64) " " - STRING@[64; 67) "\"C\"" - WHITESPACE@[67; 68) " " - EXTERN_ITEM_LIST@[68; 121) - L_CURLY@[68; 69) "{" - WHITESPACE@[69; 70) " " - FN_DEF@[70; 119) - FN_KW@[70; 72) "fn" - WHITESPACE@[72; 73) " " - NAME@[73; 79) - IDENT@[73; 79) "printf" - PARAM_LIST@[79; 111) - L_PAREN@[79; 80) "(" - PARAM@[80; 97) - BIND_PAT@[80; 86) - NAME@[80; 86) - IDENT@[80; 86) "format" - COLON@[86; 87) ":" - WHITESPACE@[87; 88) " " - POINTER_TYPE@[88; 97) - STAR@[88; 89) "*" - CONST_KW@[89; 94) "const" - WHITESPACE@[94; 95) " " - PATH_TYPE@[95; 97) - PATH@[95; 97) - PATH_SEGMENT@[95; 97) - NAME_REF@[95; 97) - IDENT@[95; 97) "i8" - COMMA@[97; 98) "," - WHITESPACE@[98; 99) " " - ATTR@[99; 106) - POUND@[99; 100) "#" - TOKEN_TREE@[100; 106) - L_BRACK@[100; 101) "[" - IDENT@[101; 105) "attr" - R_BRACK@[105; 106) "]" - WHITESPACE@[106; 107) " " - DOTDOTDOT@[107; 110) "..." - R_PAREN@[110; 111) ")" - WHITESPACE@[111; 112) " " - RET_TYPE@[112; 118) - THIN_ARROW@[112; 114) "->" - WHITESPACE@[114; 115) " " - PATH_TYPE@[115; 118) - PATH@[115; 118) - PATH_SEGMENT@[115; 118) - NAME_REF@[115; 118) - IDENT@[115; 118) "i32" - SEMI@[118; 119) ";" - WHITESPACE@[119; 120) " " - R_CURLY@[120; 121) "}" - WHITESPACE@[121; 122) "\n" diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rs b/crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rs new file mode 100644 index 000000000..35155057a --- /dev/null +++ b/crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rs @@ -0,0 +1 @@ +fn f(#[must_use] self) {} diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.txt new file mode 100644 index 000000000..49b14e632 --- /dev/null +++ b/crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.txt @@ -0,0 +1,23 @@ +SOURCE_FILE@[0; 26) + FN_DEF@[0; 25) + FN_KW@[0; 2) "fn" + WHITESPACE@[2; 3) " " + NAME@[3; 4) + IDENT@[3; 4) "f" + PARAM_LIST@[4; 22) + L_PAREN@[4; 5) "(" + ATTR@[5; 16) + POUND@[5; 6) "#" + TOKEN_TREE@[6; 16) + L_BRACK@[6; 7) "[" + IDENT@[7; 15) "must_use" + R_BRACK@[15; 16) "]" + WHITESPACE@[16; 17) " " + SELF_PARAM@[17; 21) + SELF_KW@[17; 21) "self" + R_PAREN@[21; 22) ")" + WHITESPACE@[22; 23) " " + BLOCK@[23; 25) + L_CURLY@[23; 24) "{" + R_CURLY@[24; 25) "}" + WHITESPACE@[25; 26) "\n" diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.rs b/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.rs new file mode 100644 index 000000000..c238be791 --- /dev/null +++ b/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.rs @@ -0,0 +1 @@ +fn f(#[attr1] pat: Type) {} diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.txt b/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.txt new file mode 100644 index 000000000..91c5e5f9a --- /dev/null +++ b/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.txt @@ -0,0 +1,32 @@ +SOURCE_FILE@[0; 28) + FN_DEF@[0; 27) + FN_KW@[0; 2) "fn" + WHITESPACE@[2; 3) " " + NAME@[3; 4) + IDENT@[3; 4) "f" + PARAM_LIST@[4; 24) + L_PAREN@[4; 5) "(" + ATTR@[5; 13) + POUND@[5; 6) "#" + TOKEN_TREE@[6; 13) + L_BRACK@[6; 7) "[" + IDENT@[7; 12) "attr1" + R_BRACK@[12; 13) "]" + WHITESPACE@[13; 14) " " + PARAM@[14; 23) + BIND_PAT@[14; 17) + NAME@[14; 17) + IDENT@[14; 17) "pat" + COLON@[17; 18) ":" + WHITESPACE@[18; 19) " " + PATH_TYPE@[19; 23) + PATH@[19; 23) + PATH_SEGMENT@[19; 23) + NAME_REF@[19; 23) + IDENT@[19; 23) "Type" + R_PAREN@[23; 24) ")" + WHITESPACE@[24; 25) " " + BLOCK@[25; 27) + L_CURLY@[25; 26) "{" + R_CURLY@[26; 27) "}" + WHITESPACE@[27; 28) "\n" -- cgit v1.2.3