Merge #986
986: Fix parse tree of attribute on match arm r=matklad a=pcpthm ```rust match () { #[attr] () => (), } ``` Incorrect parse tree: `MatchArmList(Attr(..), MatchArm(..))`. Fixed: `MatchArmList(MatchArm(Attr(..), ...))`. Co-authored-by: pcpthm <pcpthm@gmail.com>
This commit is contained in:
commit
290a3d0a6b
4 changed files with 133 additions and 133 deletions
|
@ -342,21 +342,6 @@ pub(crate) fn match_arm_list(p: &mut Parser) {
|
|||
continue;
|
||||
}
|
||||
|
||||
// test match_arms_outer_attributes
|
||||
// fn foo() {
|
||||
// match () {
|
||||
// #[cfg(feature = "some")]
|
||||
// _ => (),
|
||||
// #[cfg(feature = "other")]
|
||||
// _ => (),
|
||||
// #[cfg(feature = "many")]
|
||||
// #[cfg(feature = "attributes")]
|
||||
// #[cfg(feature = "before")]
|
||||
// _ => (),
|
||||
// }
|
||||
// }
|
||||
attributes::outer_attributes(p);
|
||||
|
||||
// test match_arms_commas
|
||||
// fn foo() {
|
||||
// match () {
|
||||
|
@ -387,6 +372,21 @@ pub(crate) fn match_arm_list(p: &mut Parser) {
|
|||
// }
|
||||
fn match_arm(p: &mut Parser) -> BlockLike {
|
||||
let m = p.start();
|
||||
// test match_arms_outer_attributes
|
||||
// fn foo() {
|
||||
// match () {
|
||||
// #[cfg(feature = "some")]
|
||||
// _ => (),
|
||||
// #[cfg(feature = "other")]
|
||||
// _ => (),
|
||||
// #[cfg(feature = "many")]
|
||||
// #[cfg(feature = "attributes")]
|
||||
// #[cfg(feature = "before")]
|
||||
// _ => (),
|
||||
// }
|
||||
// }
|
||||
attributes::outer_attributes(p);
|
||||
|
||||
patterns::pattern_list_r(p, TokenSet::empty());
|
||||
if p.at(IF_KW) {
|
||||
match_guard(p);
|
||||
|
|
|
@ -33,11 +33,11 @@ SOURCE_FILE@[0; 293)
|
|||
R_PAREN@[40; 41)
|
||||
COMMA@[41; 42)
|
||||
WHITESPACE@[42; 51)
|
||||
ATTR@[51; 52)
|
||||
POUND@[51; 52)
|
||||
err: `expected `[``
|
||||
err: `expected pattern`
|
||||
MATCH_ARM@[52; 78)
|
||||
MATCH_ARM@[51; 78)
|
||||
ATTR@[51; 52)
|
||||
POUND@[51; 52)
|
||||
err: `expected `[``
|
||||
err: `expected pattern`
|
||||
ERROR@[52; 53)
|
||||
EXCL@[52; 53)
|
||||
err: `expected FAT_ARROW`
|
||||
|
@ -103,11 +103,11 @@ SOURCE_FILE@[0; 293)
|
|||
R_PAREN@[149; 150)
|
||||
COMMA@[150; 151)
|
||||
WHITESPACE@[151; 160)
|
||||
ATTR@[160; 161)
|
||||
POUND@[160; 161)
|
||||
err: `expected `[``
|
||||
err: `expected pattern`
|
||||
MATCH_ARM@[161; 179)
|
||||
MATCH_ARM@[160; 179)
|
||||
ATTR@[160; 161)
|
||||
POUND@[160; 161)
|
||||
err: `expected `[``
|
||||
err: `expected pattern`
|
||||
ERROR@[161; 162)
|
||||
EXCL@[161; 162)
|
||||
err: `expected FAT_ARROW`
|
||||
|
@ -138,22 +138,22 @@ SOURCE_FILE@[0; 293)
|
|||
MATCH_ARM_LIST@[200; 290)
|
||||
L_CURLY@[200; 201)
|
||||
WHITESPACE@[201; 210)
|
||||
ATTR@[210; 222)
|
||||
POUND@[210; 211)
|
||||
TOKEN_TREE@[211; 222)
|
||||
L_BRACK@[211; 212)
|
||||
IDENT@[212; 215) "cfg"
|
||||
TOKEN_TREE@[215; 221)
|
||||
L_PAREN@[215; 216)
|
||||
IDENT@[216; 220) "test"
|
||||
R_PAREN@[220; 221)
|
||||
R_BRACK@[221; 222)
|
||||
WHITESPACE@[222; 231)
|
||||
ATTR@[231; 232)
|
||||
POUND@[231; 232)
|
||||
err: `expected `[``
|
||||
err: `expected pattern`
|
||||
MATCH_ARM@[232; 250)
|
||||
MATCH_ARM@[210; 250)
|
||||
ATTR@[210; 222)
|
||||
POUND@[210; 211)
|
||||
TOKEN_TREE@[211; 222)
|
||||
L_BRACK@[211; 212)
|
||||
IDENT@[212; 215) "cfg"
|
||||
TOKEN_TREE@[215; 221)
|
||||
L_PAREN@[215; 216)
|
||||
IDENT@[216; 220) "test"
|
||||
R_PAREN@[220; 221)
|
||||
R_BRACK@[221; 222)
|
||||
WHITESPACE@[222; 231)
|
||||
ATTR@[231; 232)
|
||||
POUND@[231; 232)
|
||||
err: `expected `[``
|
||||
err: `expected pattern`
|
||||
ERROR@[232; 233)
|
||||
EXCL@[232; 233)
|
||||
err: `expected FAT_ARROW`
|
||||
|
|
|
@ -43,21 +43,21 @@ SOURCE_FILE@[0; 89)
|
|||
R_PAREN@[57; 58)
|
||||
COMMA@[58; 59)
|
||||
WHITESPACE@[59; 68)
|
||||
ATTR@[68; 80)
|
||||
POUND@[68; 69)
|
||||
TOKEN_TREE@[69; 80)
|
||||
L_BRACK@[69; 70)
|
||||
IDENT@[70; 73) "cfg"
|
||||
TOKEN_TREE@[73; 79)
|
||||
L_PAREN@[73; 74)
|
||||
IDENT@[74; 78) "test"
|
||||
R_PAREN@[78; 79)
|
||||
R_BRACK@[79; 80)
|
||||
MATCH_ARM@[68; 80)
|
||||
ATTR@[68; 80)
|
||||
POUND@[68; 69)
|
||||
TOKEN_TREE@[69; 80)
|
||||
L_BRACK@[69; 70)
|
||||
IDENT@[70; 73) "cfg"
|
||||
TOKEN_TREE@[73; 79)
|
||||
L_PAREN@[73; 74)
|
||||
IDENT@[74; 78) "test"
|
||||
R_PAREN@[78; 79)
|
||||
R_BRACK@[79; 80)
|
||||
err: `expected pattern`
|
||||
err: `expected FAT_ARROW`
|
||||
err: `expected expression`
|
||||
WHITESPACE@[80; 85)
|
||||
err: `expected pattern`
|
||||
err: `expected FAT_ARROW`
|
||||
err: `expected expression`
|
||||
MATCH_ARM@[85; 85)
|
||||
R_CURLY@[85; 86)
|
||||
WHITESPACE@[86; 87)
|
||||
R_CURLY@[87; 88)
|
||||
|
|
|
@ -21,22 +21,22 @@ SOURCE_FILE@[0; 259)
|
|||
MATCH_ARM_LIST@[24; 256)
|
||||
L_CURLY@[24; 25)
|
||||
WHITESPACE@[25; 34)
|
||||
ATTR@[34; 58)
|
||||
POUND@[34; 35)
|
||||
TOKEN_TREE@[35; 58)
|
||||
L_BRACK@[35; 36)
|
||||
IDENT@[36; 39) "cfg"
|
||||
TOKEN_TREE@[39; 57)
|
||||
L_PAREN@[39; 40)
|
||||
IDENT@[40; 47) "feature"
|
||||
WHITESPACE@[47; 48)
|
||||
EQ@[48; 49)
|
||||
WHITESPACE@[49; 50)
|
||||
STRING@[50; 56)
|
||||
R_PAREN@[56; 57)
|
||||
R_BRACK@[57; 58)
|
||||
WHITESPACE@[58; 67)
|
||||
MATCH_ARM@[67; 74)
|
||||
MATCH_ARM@[34; 74)
|
||||
ATTR@[34; 58)
|
||||
POUND@[34; 35)
|
||||
TOKEN_TREE@[35; 58)
|
||||
L_BRACK@[35; 36)
|
||||
IDENT@[36; 39) "cfg"
|
||||
TOKEN_TREE@[39; 57)
|
||||
L_PAREN@[39; 40)
|
||||
IDENT@[40; 47) "feature"
|
||||
WHITESPACE@[47; 48)
|
||||
EQ@[48; 49)
|
||||
WHITESPACE@[49; 50)
|
||||
STRING@[50; 56)
|
||||
R_PAREN@[56; 57)
|
||||
R_BRACK@[57; 58)
|
||||
WHITESPACE@[58; 67)
|
||||
PLACEHOLDER_PAT@[67; 68)
|
||||
UNDERSCORE@[67; 68)
|
||||
WHITESPACE@[68; 69)
|
||||
|
@ -47,22 +47,22 @@ SOURCE_FILE@[0; 259)
|
|||
R_PAREN@[73; 74)
|
||||
COMMA@[74; 75)
|
||||
WHITESPACE@[75; 84)
|
||||
ATTR@[84; 109)
|
||||
POUND@[84; 85)
|
||||
TOKEN_TREE@[85; 109)
|
||||
L_BRACK@[85; 86)
|
||||
IDENT@[86; 89) "cfg"
|
||||
TOKEN_TREE@[89; 108)
|
||||
L_PAREN@[89; 90)
|
||||
IDENT@[90; 97) "feature"
|
||||
WHITESPACE@[97; 98)
|
||||
EQ@[98; 99)
|
||||
WHITESPACE@[99; 100)
|
||||
STRING@[100; 107)
|
||||
R_PAREN@[107; 108)
|
||||
R_BRACK@[108; 109)
|
||||
WHITESPACE@[109; 118)
|
||||
MATCH_ARM@[118; 125)
|
||||
MATCH_ARM@[84; 125)
|
||||
ATTR@[84; 109)
|
||||
POUND@[84; 85)
|
||||
TOKEN_TREE@[85; 109)
|
||||
L_BRACK@[85; 86)
|
||||
IDENT@[86; 89) "cfg"
|
||||
TOKEN_TREE@[89; 108)
|
||||
L_PAREN@[89; 90)
|
||||
IDENT@[90; 97) "feature"
|
||||
WHITESPACE@[97; 98)
|
||||
EQ@[98; 99)
|
||||
WHITESPACE@[99; 100)
|
||||
STRING@[100; 107)
|
||||
R_PAREN@[107; 108)
|
||||
R_BRACK@[108; 109)
|
||||
WHITESPACE@[109; 118)
|
||||
PLACEHOLDER_PAT@[118; 119)
|
||||
UNDERSCORE@[118; 119)
|
||||
WHITESPACE@[119; 120)
|
||||
|
@ -73,52 +73,52 @@ SOURCE_FILE@[0; 259)
|
|||
R_PAREN@[124; 125)
|
||||
COMMA@[125; 126)
|
||||
WHITESPACE@[126; 135)
|
||||
ATTR@[135; 159)
|
||||
POUND@[135; 136)
|
||||
TOKEN_TREE@[136; 159)
|
||||
L_BRACK@[136; 137)
|
||||
IDENT@[137; 140) "cfg"
|
||||
TOKEN_TREE@[140; 158)
|
||||
L_PAREN@[140; 141)
|
||||
IDENT@[141; 148) "feature"
|
||||
WHITESPACE@[148; 149)
|
||||
EQ@[149; 150)
|
||||
WHITESPACE@[150; 151)
|
||||
STRING@[151; 157)
|
||||
R_PAREN@[157; 158)
|
||||
R_BRACK@[158; 159)
|
||||
WHITESPACE@[159; 168)
|
||||
ATTR@[168; 198)
|
||||
POUND@[168; 169)
|
||||
TOKEN_TREE@[169; 198)
|
||||
L_BRACK@[169; 170)
|
||||
IDENT@[170; 173) "cfg"
|
||||
TOKEN_TREE@[173; 197)
|
||||
L_PAREN@[173; 174)
|
||||
IDENT@[174; 181) "feature"
|
||||
WHITESPACE@[181; 182)
|
||||
EQ@[182; 183)
|
||||
WHITESPACE@[183; 184)
|
||||
STRING@[184; 196)
|
||||
R_PAREN@[196; 197)
|
||||
R_BRACK@[197; 198)
|
||||
WHITESPACE@[198; 207)
|
||||
ATTR@[207; 233)
|
||||
POUND@[207; 208)
|
||||
TOKEN_TREE@[208; 233)
|
||||
L_BRACK@[208; 209)
|
||||
IDENT@[209; 212) "cfg"
|
||||
TOKEN_TREE@[212; 232)
|
||||
L_PAREN@[212; 213)
|
||||
IDENT@[213; 220) "feature"
|
||||
WHITESPACE@[220; 221)
|
||||
EQ@[221; 222)
|
||||
WHITESPACE@[222; 223)
|
||||
STRING@[223; 231)
|
||||
R_PAREN@[231; 232)
|
||||
R_BRACK@[232; 233)
|
||||
WHITESPACE@[233; 242)
|
||||
MATCH_ARM@[242; 249)
|
||||
MATCH_ARM@[135; 249)
|
||||
ATTR@[135; 159)
|
||||
POUND@[135; 136)
|
||||
TOKEN_TREE@[136; 159)
|
||||
L_BRACK@[136; 137)
|
||||
IDENT@[137; 140) "cfg"
|
||||
TOKEN_TREE@[140; 158)
|
||||
L_PAREN@[140; 141)
|
||||
IDENT@[141; 148) "feature"
|
||||
WHITESPACE@[148; 149)
|
||||
EQ@[149; 150)
|
||||
WHITESPACE@[150; 151)
|
||||
STRING@[151; 157)
|
||||
R_PAREN@[157; 158)
|
||||
R_BRACK@[158; 159)
|
||||
WHITESPACE@[159; 168)
|
||||
ATTR@[168; 198)
|
||||
POUND@[168; 169)
|
||||
TOKEN_TREE@[169; 198)
|
||||
L_BRACK@[169; 170)
|
||||
IDENT@[170; 173) "cfg"
|
||||
TOKEN_TREE@[173; 197)
|
||||
L_PAREN@[173; 174)
|
||||
IDENT@[174; 181) "feature"
|
||||
WHITESPACE@[181; 182)
|
||||
EQ@[182; 183)
|
||||
WHITESPACE@[183; 184)
|
||||
STRING@[184; 196)
|
||||
R_PAREN@[196; 197)
|
||||
R_BRACK@[197; 198)
|
||||
WHITESPACE@[198; 207)
|
||||
ATTR@[207; 233)
|
||||
POUND@[207; 208)
|
||||
TOKEN_TREE@[208; 233)
|
||||
L_BRACK@[208; 209)
|
||||
IDENT@[209; 212) "cfg"
|
||||
TOKEN_TREE@[212; 232)
|
||||
L_PAREN@[212; 213)
|
||||
IDENT@[213; 220) "feature"
|
||||
WHITESPACE@[220; 221)
|
||||
EQ@[221; 222)
|
||||
WHITESPACE@[222; 223)
|
||||
STRING@[223; 231)
|
||||
R_PAREN@[231; 232)
|
||||
R_BRACK@[232; 233)
|
||||
WHITESPACE@[233; 242)
|
||||
PLACEHOLDER_PAT@[242; 243)
|
||||
UNDERSCORE@[242; 243)
|
||||
WHITESPACE@[243; 244)
|
||||
|
|
Loading…
Add table
Reference in a new issue