Struct literals should not be a BlockLike::Block
This commit is contained in:
parent
d0ef1bde89
commit
7a76433c45
3 changed files with 118 additions and 1 deletions
|
@ -423,7 +423,7 @@ fn path_expr(p: &mut Parser, r: Restrictions) -> (CompletedMarker, BlockLike) {
|
|||
match p.current() {
|
||||
L_CURLY if !r.forbid_structs => {
|
||||
named_field_list(p);
|
||||
(m.complete(p, STRUCT_LIT), BlockLike::Block)
|
||||
(m.complete(p, STRUCT_LIT), BlockLike::NotBlock)
|
||||
}
|
||||
EXCL => {
|
||||
let block_like = items::macro_call_after_excl(p);
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
// https://github.com/rust-analyzer/rust-analyzer/issues/674
|
||||
|
||||
struct Repr { raw: [u8; 1] }
|
||||
|
||||
fn abc() {
|
||||
Repr { raw: [0] }.raw[0] = 0;
|
||||
Repr{raw:[0]}();
|
||||
}
|
|
@ -0,0 +1,109 @@
|
|||
SOURCE_FILE@[0; 160)
|
||||
COMMENT@[0; 60)
|
||||
WHITESPACE@[60; 62)
|
||||
STRUCT_DEF@[62; 90)
|
||||
STRUCT_KW@[62; 68)
|
||||
WHITESPACE@[68; 69)
|
||||
NAME@[69; 73)
|
||||
IDENT@[69; 73) "Repr"
|
||||
WHITESPACE@[73; 74)
|
||||
NAMED_FIELD_DEF_LIST@[74; 90)
|
||||
L_CURLY@[74; 75)
|
||||
WHITESPACE@[75; 76)
|
||||
NAMED_FIELD_DEF@[76; 88)
|
||||
NAME@[76; 79)
|
||||
IDENT@[76; 79) "raw"
|
||||
COLON@[79; 80)
|
||||
WHITESPACE@[80; 81)
|
||||
ARRAY_TYPE@[81; 88)
|
||||
L_BRACK@[81; 82)
|
||||
PATH_TYPE@[82; 84)
|
||||
PATH@[82; 84)
|
||||
PATH_SEGMENT@[82; 84)
|
||||
NAME_REF@[82; 84)
|
||||
IDENT@[82; 84) "u8"
|
||||
SEMI@[84; 85)
|
||||
WHITESPACE@[85; 86)
|
||||
LITERAL@[86; 87)
|
||||
INT_NUMBER@[86; 87) "1"
|
||||
R_BRACK@[87; 88)
|
||||
WHITESPACE@[88; 89)
|
||||
R_CURLY@[89; 90)
|
||||
WHITESPACE@[90; 92)
|
||||
FN_DEF@[92; 159)
|
||||
FN_KW@[92; 94)
|
||||
WHITESPACE@[94; 95)
|
||||
NAME@[95; 98)
|
||||
IDENT@[95; 98) "abc"
|
||||
PARAM_LIST@[98; 100)
|
||||
L_PAREN@[98; 99)
|
||||
R_PAREN@[99; 100)
|
||||
WHITESPACE@[100; 101)
|
||||
BLOCK@[101; 159)
|
||||
L_CURLY@[101; 102)
|
||||
WHITESPACE@[102; 107)
|
||||
EXPR_STMT@[107; 136)
|
||||
BIN_EXPR@[107; 135)
|
||||
INDEX_EXPR@[107; 131)
|
||||
FIELD_EXPR@[107; 128)
|
||||
STRUCT_LIT@[107; 124)
|
||||
PATH@[107; 111)
|
||||
PATH_SEGMENT@[107; 111)
|
||||
NAME_REF@[107; 111)
|
||||
IDENT@[107; 111) "Repr"
|
||||
WHITESPACE@[111; 112)
|
||||
NAMED_FIELD_LIST@[112; 124)
|
||||
L_CURLY@[112; 113)
|
||||
WHITESPACE@[113; 114)
|
||||
NAMED_FIELD@[114; 122)
|
||||
NAME_REF@[114; 117)
|
||||
IDENT@[114; 117) "raw"
|
||||
COLON@[117; 118)
|
||||
WHITESPACE@[118; 119)
|
||||
ARRAY_EXPR@[119; 122)
|
||||
L_BRACK@[119; 120)
|
||||
LITERAL@[120; 121)
|
||||
INT_NUMBER@[120; 121) "0"
|
||||
R_BRACK@[121; 122)
|
||||
WHITESPACE@[122; 123)
|
||||
R_CURLY@[123; 124)
|
||||
DOT@[124; 125)
|
||||
NAME_REF@[125; 128)
|
||||
IDENT@[125; 128) "raw"
|
||||
L_BRACK@[128; 129)
|
||||
LITERAL@[129; 130)
|
||||
INT_NUMBER@[129; 130) "0"
|
||||
R_BRACK@[130; 131)
|
||||
WHITESPACE@[131; 132)
|
||||
EQ@[132; 133)
|
||||
WHITESPACE@[133; 134)
|
||||
LITERAL@[134; 135)
|
||||
INT_NUMBER@[134; 135) "0"
|
||||
SEMI@[135; 136)
|
||||
WHITESPACE@[136; 141)
|
||||
EXPR_STMT@[141; 157)
|
||||
CALL_EXPR@[141; 156)
|
||||
STRUCT_LIT@[141; 154)
|
||||
PATH@[141; 145)
|
||||
PATH_SEGMENT@[141; 145)
|
||||
NAME_REF@[141; 145)
|
||||
IDENT@[141; 145) "Repr"
|
||||
NAMED_FIELD_LIST@[145; 154)
|
||||
L_CURLY@[145; 146)
|
||||
NAMED_FIELD@[146; 153)
|
||||
NAME_REF@[146; 149)
|
||||
IDENT@[146; 149) "raw"
|
||||
COLON@[149; 150)
|
||||
ARRAY_EXPR@[150; 153)
|
||||
L_BRACK@[150; 151)
|
||||
LITERAL@[151; 152)
|
||||
INT_NUMBER@[151; 152) "0"
|
||||
R_BRACK@[152; 153)
|
||||
R_CURLY@[153; 154)
|
||||
ARG_LIST@[154; 156)
|
||||
L_PAREN@[154; 155)
|
||||
R_PAREN@[155; 156)
|
||||
SEMI@[156; 157)
|
||||
WHITESPACE@[157; 158)
|
||||
R_CURLY@[158; 159)
|
||||
WHITESPACE@[159; 160)
|
Loading…
Add table
Reference in a new issue