46: Names r=matklad a=matklad

bors r+
This commit is contained in:
bors[bot] 2018-02-10 11:23:41 +00:00
commit b814d93151
51 changed files with 465 additions and 294 deletions

View File

@ -118,5 +118,7 @@ Grammar(
"LIFETIME_PARAM",
"TYPE_PARAM",
"ABI",
"NAME",
"NAME_REF",
]
)

View File

@ -12,7 +12,7 @@ fn const_or_static(p: &mut Parser, kw: SyntaxKind) {
assert!(p.at(kw));
p.bump();
p.eat(MUT_KW); // TODO: validator to forbid const mut
p.expect(IDENT);
name(p);
p.expect(COLON);
types::type_ref(p);
p.expect(EQ);

View File

@ -196,8 +196,9 @@ fn extern_crate_item(p: &mut Parser) {
p.bump();
assert!(p.at(CRATE_KW));
p.bump();
p.expect(IDENT) && alias(p) && p.expect(SEMI);
name(p);
alias(p);
p.expect(SEMI);
}
fn extern_block(p: &mut Parser) {
@ -210,7 +211,7 @@ fn fn_item(p: &mut Parser) {
assert!(p.at(FN_KW));
p.bump();
p.expect(IDENT);
name(p);
if p.at(L_PAREN) {
fn_value_parameters(p);
} else {
@ -235,7 +236,7 @@ fn type_item(p: &mut Parser) {
assert!(p.at(TYPE_KW));
p.bump();
p.expect(IDENT);
name(p);
// test type_item_type_params
// type Result<T> = ();
@ -254,7 +255,8 @@ fn mod_item(p: &mut Parser) {
assert!(p.at(MOD_KW));
p.bump();
if p.expect(IDENT) && !p.eat(SEMI) {
name(p);
if !p.eat(SEMI) {
if p.expect(L_CURLY) {
mod_contents(p, true);
p.expect(R_CURLY);

View File

@ -4,9 +4,7 @@ pub(super) fn struct_item(p: &mut Parser) {
assert!(p.at(STRUCT_KW));
p.bump();
if !p.expect(IDENT) {
return;
}
name(p);
type_params::list(p);
match p.current() {
WHERE_KW => {
@ -43,7 +41,7 @@ pub(super) fn struct_item(p: &mut Parser) {
pub(super) fn enum_item(p: &mut Parser) {
assert!(p.at(ENUM_KW));
p.bump();
p.expect(IDENT);
name(p);
type_params::list(p);
type_params::where_clause(p);
if p.expect(L_CURLY) {
@ -88,7 +86,8 @@ fn named_fields(p: &mut Parser) {
fn named_field(p: &mut Parser) {
let field = p.start();
visibility(p);
if p.expect(IDENT) {
if p.at(IDENT) {
name(p);
p.expect(COLON);
types::type_ref(p);
field.complete(p, NAMED_FIELD);

View File

@ -3,7 +3,7 @@
pub(super) fn trait_item(p: &mut Parser) {
assert!(p.at(TRAIT_KW));
p.bump();
p.expect(IDENT);
name(p);
p.expect(L_CURLY);
p.expect(R_CURLY);
}

View File

@ -44,12 +44,32 @@ fn alias(p: &mut Parser) -> bool {
if p.at(AS_KW) {
let alias = p.start();
p.bump();
p.expect(IDENT);
name(p);
alias.complete(p, ALIAS);
}
true //FIXME: return false if three are errors
}
fn name(p: &mut Parser) {
if p.at(IDENT) {
let m = p.start();
p.bump();
m.complete(p, NAME);
} else {
p.error("expected a name");
}
}
fn name_ref(p: &mut Parser) {
if p.at(IDENT) {
let m = p.start();
p.bump();
m.complete(p, NAME_REF);
} else {
p.error("expected identifier");
}
}
fn error_block(p: &mut Parser, message: &str) {
assert!(p.at(L_CURLY));
let err = p.start();

View File

@ -42,7 +42,8 @@ fn path_segment(p: &mut Parser, first: bool) {
p.eat(COLONCOLON);
}
match p.current() {
IDENT | SELF_KW | SUPER_KW => p.bump(),
IDENT => name_ref(p),
SELF_KW | SUPER_KW => p.bump(),
_ => {
p.error("expected identifier");
}

View File

@ -116,6 +116,8 @@ pub enum SyntaxKind {
LIFETIME_PARAM,
TYPE_PARAM,
ABI,
NAME,
NAME_REF,
// Technical SyntaxKinds: they appear temporally during parsing,
// but never end up in the final tree
@ -239,6 +241,8 @@ pub(crate) fn info(self) -> &'static SyntaxInfo {
LIFETIME_PARAM => &SyntaxInfo { name: "LIFETIME_PARAM" },
TYPE_PARAM => &SyntaxInfo { name: "TYPE_PARAM" },
ABI => &SyntaxInfo { name: "ABI" },
NAME => &SyntaxInfo { name: "NAME" },
NAME_REF => &SyntaxInfo { name: "NAME_REF" },
TOMBSTONE => &SyntaxInfo { name: "TOMBSTONE" },
EOF => &SyntaxInfo { name: "EOF" },

View File

@ -1,20 +1,23 @@
FILE@[0; 34)
STRUCT_ITEM@[0; 34)
STRUCT_KW@[0; 6)
WHITESPACE@[6; 7)
IDENT@[7; 8) "S"
WHITESPACE@[8; 9)
NAME@[6; 9)
WHITESPACE@[6; 7)
IDENT@[7; 8) "S"
WHITESPACE@[8; 9)
L_CURLY@[9; 10)
NAMED_FIELD@[10; 26)
WHITESPACE@[10; 15)
IDENT@[15; 16) "a"
NAME@[10; 16)
WHITESPACE@[10; 15)
IDENT@[15; 16) "a"
COLON@[16; 17)
WHITESPACE@[17; 18)
IDENT@[18; 21) "u32"
WHITESPACE@[21; 26)
err: `expected COMMA`
NAMED_FIELD@[26; 33)
IDENT@[26; 27) "b"
NAME@[26; 27)
IDENT@[26; 27) "b"
COLON@[27; 28)
WHITESPACE@[28; 29)
IDENT@[29; 32) "u32"

View File

@ -9,8 +9,9 @@ FILE@[0; 21)
WHITESPACE@[8; 10)
STRUCT_ITEM@[10; 21)
STRUCT_KW@[10; 16)
WHITESPACE@[16; 17)
IDENT@[17; 18) "S"
WHITESPACE@[18; 19)
NAME@[16; 19)
WHITESPACE@[16; 17)
IDENT@[17; 18) "S"
WHITESPACE@[18; 19)
L_CURLY@[19; 20)
R_CURLY@[20; 21)

View File

@ -1,20 +1,23 @@
FILE@[0; 40)
STRUCT_ITEM@[0; 39)
STRUCT_KW@[0; 6)
WHITESPACE@[6; 7)
IDENT@[7; 8) "S"
WHITESPACE@[8; 9)
NAME@[6; 9)
WHITESPACE@[6; 7)
IDENT@[7; 8) "S"
WHITESPACE@[8; 9)
L_CURLY@[9; 10)
NAMED_FIELD@[10; 21)
WHITESPACE@[10; 15)
IDENT@[15; 16) "a"
NAME@[10; 16)
WHITESPACE@[10; 15)
IDENT@[15; 16) "a"
COLON@[16; 17)
WHITESPACE@[17; 18)
IDENT@[18; 21) "i32"
COMMA@[21; 22)
NAMED_FIELD@[22; 36)
WHITESPACE@[22; 27)
IDENT@[27; 28) "b"
NAME@[22; 28)
WHITESPACE@[22; 27)
IDENT@[27; 28) "b"
COLON@[28; 29)
WHITESPACE@[29; 30)
IDENT@[30; 36) "String"

View File

@ -5,8 +5,9 @@ FILE@[0; 12)
PATH@[3; 9)
PATH@[3; 7)
PATH_SEGMENT@[3; 7)
WHITESPACE@[3; 4)
IDENT@[4; 7) "foo"
NAME_REF@[3; 7)
WHITESPACE@[3; 4)
IDENT@[4; 7) "foo"
COLONCOLON@[7; 9)
PATH_SEGMENT@[9; 9)
err: `expected identifier`

View File

@ -23,8 +23,9 @@ FILE@[0; 54)
R_BRACK@[17; 18)
WHITESPACE@[18; 19)
FN_KW@[19; 21)
WHITESPACE@[21; 22)
IDENT@[22; 25) "foo"
NAME@[21; 25)
WHITESPACE@[21; 22)
IDENT@[22; 25) "foo"
L_PAREN@[25; 26)
R_PAREN@[26; 27)
WHITESPACE@[27; 28)
@ -43,8 +44,9 @@ FILE@[0; 54)
WHITESPACE@[40; 41)
err: `expected R_BRACK`
FN_KW@[41; 43)
WHITESPACE@[43; 44)
IDENT@[44; 47) "foo"
NAME@[43; 47)
WHITESPACE@[43; 44)
IDENT@[44; 47) "foo"
L_PAREN@[47; 48)
R_PAREN@[48; 49)
WHITESPACE@[49; 50)

View File

@ -1,13 +1,15 @@
FILE@[0; 74)
STRUCT_ITEM@[0; 74)
STRUCT_KW@[0; 6)
WHITESPACE@[6; 7)
IDENT@[7; 8) "S"
WHITESPACE@[8; 9)
NAME@[6; 9)
WHITESPACE@[6; 7)
IDENT@[7; 8) "S"
WHITESPACE@[8; 9)
L_CURLY@[9; 10)
NAMED_FIELD@[10; 21)
WHITESPACE@[10; 15)
IDENT@[15; 16) "f"
NAME@[10; 16)
WHITESPACE@[10; 15)
IDENT@[15; 16) "f"
COLON@[16; 17)
WHITESPACE@[17; 18)
IDENT@[18; 21) "u32"
@ -16,11 +18,11 @@ FILE@[0; 74)
WHITESPACE@[22; 27)
PUB_KW@[27; 30)
WHITESPACE@[30; 31)
err: `expected IDENT`
ERROR@[31; 38)
err: `expected field declaration`
INT_NUMBER@[31; 33)
WHITESPACE@[33; 38)
err: `expected COMMA`
ERROR@[38; 40)
err: `expected field declaration`
PLUS@[38; 39)
@ -37,14 +39,16 @@ FILE@[0; 74)
VISIBILITY@[48; 52)
PUB_KW@[48; 51)
WHITESPACE@[51; 52)
IDENT@[52; 53) "x"
NAME@[52; 53)
IDENT@[52; 53) "x"
COLON@[53; 54)
WHITESPACE@[54; 55)
IDENT@[55; 58) "u32"
COMMA@[58; 59)
NAMED_FIELD@[59; 70)
WHITESPACE@[59; 64)
IDENT@[64; 65) "z"
NAME@[59; 65)
WHITESPACE@[59; 64)
IDENT@[64; 65) "z"
COLON@[65; 66)
WHITESPACE@[66; 67)
IDENT@[67; 70) "f64"

View File

@ -5,8 +5,9 @@ FILE@[0; 31)
WHITESPACE@[1; 3)
STRUCT_ITEM@[3; 14)
STRUCT_KW@[3; 9)
WHITESPACE@[9; 10)
IDENT@[10; 11) "S"
NAME@[9; 11)
WHITESPACE@[9; 10)
IDENT@[10; 11) "S"
SEMI@[11; 12)
WHITESPACE@[12; 14)
ERROR@[14; 17)
@ -15,8 +16,9 @@ FILE@[0; 31)
WHITESPACE@[15; 17)
FN_ITEM@[17; 29)
FN_KW@[17; 19)
WHITESPACE@[19; 20)
IDENT@[20; 23) "foo"
NAME@[19; 23)
WHITESPACE@[19; 20)
IDENT@[20; 23) "foo"
L_PAREN@[23; 24)
R_PAREN@[24; 25)
L_CURLY@[25; 26)

View File

@ -1,8 +1,9 @@
FILE@[0; 95)
FN_ITEM@[0; 14)
FN_KW@[0; 2)
WHITESPACE@[2; 3)
IDENT@[3; 6) "foo"
NAME@[2; 6)
WHITESPACE@[2; 3)
IDENT@[3; 6) "foo"
L_PAREN@[6; 7)
R_PAREN@[7; 8)
WHITESPACE@[8; 9)
@ -50,8 +51,9 @@ FILE@[0; 95)
WHITESPACE@[80; 82)
FN_ITEM@[82; 95)
FN_KW@[82; 84)
WHITESPACE@[84; 85)
IDENT@[85; 88) "baz"
NAME@[84; 88)
WHITESPACE@[84; 85)
IDENT@[85; 88) "baz"
L_PAREN@[88; 89)
R_PAREN@[89; 90)
WHITESPACE@[90; 91)

View File

@ -1,8 +1,9 @@
FILE@[0; 43)
STRUCT_ITEM@[0; 12)
STRUCT_KW@[0; 6)
WHITESPACE@[6; 7)
IDENT@[7; 8) "S"
NAME@[6; 8)
WHITESPACE@[6; 7)
IDENT@[7; 8) "S"
TYPE_PARAM_LIST@[8; 12)
L_ANGLE@[8; 9)
ERROR@[9; 12)
@ -36,7 +37,8 @@ FILE@[0; 43)
WHITESPACE@[31; 33)
STRUCT_ITEM@[33; 43)
STRUCT_KW@[33; 39)
WHITESPACE@[39; 40)
IDENT@[40; 41) "T"
NAME@[39; 41)
WHITESPACE@[39; 40)
IDENT@[40; 41) "T"
SEMI@[41; 42)
WHITESPACE@[42; 43)

View File

@ -5,8 +5,9 @@ FILE@[0; 25)
UNSAFE_KW@[6; 12)
WHITESPACE@[12; 13)
FN_KW@[13; 15)
WHITESPACE@[15; 16)
IDENT@[16; 19) "foo"
NAME@[15; 19)
WHITESPACE@[15; 16)
IDENT@[16; 19) "foo"
L_PAREN@[19; 20)
R_PAREN@[20; 21)
WHITESPACE@[21; 22)

View File

@ -3,8 +3,9 @@ FILE@[0; 18)
CONST_KW@[0; 5)
WHITESPACE@[5; 6)
FN_KW@[6; 8)
WHITESPACE@[8; 9)
IDENT@[9; 12) "foo"
NAME@[8; 12)
WHITESPACE@[8; 9)
IDENT@[9; 12) "foo"
L_PAREN@[12; 13)
R_PAREN@[13; 14)
WHITESPACE@[14; 15)

View File

@ -4,8 +4,9 @@ FILE@[0; 19)
EXTERN_KW@[0; 6)
WHITESPACE@[6; 7)
FN_KW@[7; 9)
WHITESPACE@[9; 10)
IDENT@[10; 13) "foo"
NAME@[9; 13)
WHITESPACE@[9; 10)
IDENT@[10; 13) "foo"
L_PAREN@[13; 14)
R_PAREN@[14; 15)
WHITESPACE@[15; 16)

View File

@ -3,7 +3,8 @@ FILE@[0; 18)
EXTERN_KW@[0; 6)
WHITESPACE@[6; 7)
CRATE_KW@[7; 12)
WHITESPACE@[12; 13)
IDENT@[13; 16) "foo"
NAME@[12; 16)
WHITESPACE@[12; 13)
IDENT@[13; 16) "foo"
SEMI@[16; 17)
WHITESPACE@[17; 18)

View File

@ -5,7 +5,8 @@ FILE@[0; 19)
err: `expected `fn` or `{``
STRUCT_ITEM@[7; 19)
STRUCT_KW@[7; 13)
WHITESPACE@[13; 14)
IDENT@[14; 17) "Foo"
NAME@[13; 17)
WHITESPACE@[13; 14)
IDENT@[14; 17) "Foo"
SEMI@[17; 18)
WHITESPACE@[18; 19)

View File

@ -3,9 +3,10 @@ FILE@[0; 18)
UNSAFE_KW@[0; 6)
WHITESPACE@[6; 7)
TRAIT_KW@[7; 12)
WHITESPACE@[12; 13)
IDENT@[13; 14) "T"
WHITESPACE@[14; 15)
NAME@[12; 15)
WHITESPACE@[12; 13)
IDENT@[13; 14) "T"
WHITESPACE@[14; 15)
L_CURLY@[15; 16)
R_CURLY@[16; 17)
WHITESPACE@[17; 18)

View File

@ -5,9 +5,10 @@ FILE@[0; 23)
AUTO_KW@[7; 11)
WHITESPACE@[11; 12)
TRAIT_KW@[12; 17)
WHITESPACE@[17; 18)
IDENT@[18; 19) "T"
WHITESPACE@[19; 20)
NAME@[17; 20)
WHITESPACE@[17; 18)
IDENT@[18; 19) "T"
WHITESPACE@[19; 20)
L_CURLY@[20; 21)
R_CURLY@[21; 22)
WHITESPACE@[22; 23)

View File

@ -3,8 +3,9 @@ FILE@[0; 19)
UNSAFE_KW@[0; 6)
WHITESPACE@[6; 7)
FN_KW@[7; 9)
WHITESPACE@[9; 10)
IDENT@[10; 13) "foo"
NAME@[9; 13)
WHITESPACE@[9; 10)
IDENT@[10; 13) "foo"
L_PAREN@[13; 14)
R_PAREN@[14; 15)
WHITESPACE@[15; 16)

View File

@ -8,8 +8,9 @@ FILE@[0; 30)
STRING@[14; 17)
WHITESPACE@[17; 18)
FN_KW@[18; 20)
WHITESPACE@[20; 21)
IDENT@[21; 24) "foo"
NAME@[20; 24)
WHITESPACE@[20; 21)
IDENT@[21; 24) "foo"
L_PAREN@[24; 25)
R_PAREN@[25; 26)
WHITESPACE@[26; 27)

View File

@ -1,8 +1,9 @@
FILE@[0; 33)
FN_ITEM@[0; 11)
FN_KW@[0; 2)
WHITESPACE@[2; 3)
IDENT@[3; 6) "foo"
NAME@[2; 6)
WHITESPACE@[2; 3)
IDENT@[3; 6) "foo"
L_PAREN@[6; 7)
R_PAREN@[7; 8)
L_CURLY@[8; 9)
@ -18,8 +19,9 @@ FILE@[0; 33)
WHITESPACE@[21; 22)
FN_ITEM@[22; 33)
FN_KW@[22; 24)
WHITESPACE@[24; 25)
IDENT@[25; 28) "bar"
NAME@[24; 28)
WHITESPACE@[24; 25)
IDENT@[25; 28) "bar"
L_PAREN@[28; 29)
R_PAREN@[29; 30)
L_CURLY@[30; 31)

View File

@ -1,8 +1,9 @@
FILE@[0; 21)
TYPE_ITEM@[0; 21)
TYPE_KW@[0; 4)
WHITESPACE@[4; 5)
IDENT@[5; 11) "Result"
NAME@[4; 11)
WHITESPACE@[4; 5)
IDENT@[5; 11) "Result"
TYPE_PARAM_LIST@[11; 15)
L_ANGLE@[11; 12)
TYPE_PARAM@[12; 13)

View File

@ -1,9 +1,10 @@
FILE@[0; 16)
TYPE_ITEM@[0; 16)
TYPE_KW@[0; 4)
WHITESPACE@[4; 5)
IDENT@[5; 8) "Foo"
WHITESPACE@[8; 9)
NAME@[4; 9)
WHITESPACE@[4; 5)
IDENT@[5; 8) "Foo"
WHITESPACE@[8; 9)
EQ@[9; 10)
WHITESPACE@[10; 11)
IDENT@[11; 14) "Bar"

View File

@ -1,10 +1,11 @@
FILE@[0; 31)
TYPE_ITEM@[0; 31)
TYPE_KW@[0; 4)
WHITESPACE@[4; 5)
IDENT@[5; 8) "Foo"
WHERE_CLAUSE@[8; 25)
NAME@[4; 9)
WHITESPACE@[4; 5)
IDENT@[5; 8) "Foo"
WHITESPACE@[8; 9)
WHERE_CLAUSE@[9; 25)
WHERE_KW@[9; 14)
WHITESPACE@[14; 15)
IDENT@[15; 18) "Foo"

View File

@ -1,9 +1,10 @@
FILE@[0; 13)
STRUCT_ITEM@[0; 13)
STRUCT_KW@[0; 6)
WHITESPACE@[6; 7)
IDENT@[7; 8) "S"
WHITESPACE@[8; 9)
NAME@[6; 9)
WHITESPACE@[6; 7)
IDENT@[7; 8) "S"
WHITESPACE@[8; 9)
L_CURLY@[9; 10)
WHITESPACE@[10; 12)
R_CURLY@[12; 13)

View File

@ -1,13 +1,15 @@
FILE@[0; 25)
STRUCT_ITEM@[0; 25)
STRUCT_KW@[0; 6)
WHITESPACE@[6; 7)
IDENT@[7; 8) "S"
WHITESPACE@[8; 9)
NAME@[6; 9)
WHITESPACE@[6; 7)
IDENT@[7; 8) "S"
WHITESPACE@[8; 9)
L_CURLY@[9; 10)
NAMED_FIELD@[10; 24)
WHITESPACE@[10; 15)
IDENT@[15; 18) "foo"
NAME@[10; 18)
WHITESPACE@[10; 15)
IDENT@[15; 18) "foo"
COLON@[18; 19)
WHITESPACE@[19; 20)
IDENT@[20; 23) "u32"

View File

@ -1,8 +1,9 @@
FILE@[0; 13)
FN_ITEM@[0; 13)
FN_KW@[0; 2)
WHITESPACE@[2; 3)
IDENT@[3; 6) "foo"
NAME@[2; 6)
WHITESPACE@[2; 3)
IDENT@[3; 6) "foo"
L_PAREN@[6; 7)
R_PAREN@[7; 8)
WHITESPACE@[8; 9)

View File

@ -3,20 +3,23 @@ FILE@[0; 43)
EXTERN_KW@[0; 6)
WHITESPACE@[6; 7)
CRATE_KW@[7; 12)
WHITESPACE@[12; 13)
IDENT@[13; 16) "foo"
NAME@[12; 16)
WHITESPACE@[12; 13)
IDENT@[13; 16) "foo"
SEMI@[16; 17)
WHITESPACE@[17; 18)
EXTERN_CRATE_ITEM@[18; 43)
EXTERN_KW@[18; 24)
WHITESPACE@[24; 25)
CRATE_KW@[25; 30)
WHITESPACE@[30; 31)
IDENT@[31; 34) "foo"
ALIAS@[34; 41)
NAME@[30; 35)
WHITESPACE@[30; 31)
IDENT@[31; 34) "foo"
WHITESPACE@[34; 35)
ALIAS@[35; 41)
AS_KW@[35; 37)
WHITESPACE@[37; 38)
IDENT@[38; 41) "bar"
NAME@[37; 41)
WHITESPACE@[37; 38)
IDENT@[38; 41) "bar"
SEMI@[41; 42)
WHITESPACE@[42; 43)

View File

@ -1,30 +1,34 @@
FILE@[0; 118)
MOD_ITEM@[0; 8)
MOD_KW@[0; 3)
WHITESPACE@[3; 4)
IDENT@[4; 5) "a"
NAME@[3; 5)
WHITESPACE@[3; 4)
IDENT@[4; 5) "a"
SEMI@[5; 6)
WHITESPACE@[6; 8)
MOD_ITEM@[8; 19)
MOD_KW@[8; 11)
WHITESPACE@[11; 12)
IDENT@[12; 13) "b"
WHITESPACE@[13; 14)
NAME@[11; 14)
WHITESPACE@[11; 12)
IDENT@[12; 13) "b"
WHITESPACE@[13; 14)
L_CURLY@[14; 15)
WHITESPACE@[15; 16)
R_CURLY@[16; 17)
WHITESPACE@[17; 19)
MOD_ITEM@[19; 67)
MOD_KW@[19; 22)
WHITESPACE@[22; 23)
IDENT@[23; 24) "c"
WHITESPACE@[24; 25)
NAME@[22; 25)
WHITESPACE@[22; 23)
IDENT@[23; 24) "c"
WHITESPACE@[24; 25)
L_CURLY@[25; 26)
FN_ITEM@[26; 52)
WHITESPACE@[26; 31)
FN_KW@[31; 33)
WHITESPACE@[33; 34)
IDENT@[34; 37) "foo"
NAME@[33; 37)
WHITESPACE@[33; 34)
IDENT@[34; 37) "foo"
L_PAREN@[37; 38)
R_PAREN@[38; 39)
WHITESPACE@[39; 40)
@ -34,9 +38,10 @@ FILE@[0; 118)
WHITESPACE@[47; 52)
STRUCT_ITEM@[52; 64)
STRUCT_KW@[52; 58)
WHITESPACE@[58; 59)
IDENT@[59; 60) "S"
WHITESPACE@[60; 61)
NAME@[58; 61)
WHITESPACE@[58; 59)
IDENT@[59; 60) "S"
WHITESPACE@[60; 61)
L_CURLY@[61; 62)
R_CURLY@[62; 63)
WHITESPACE@[63; 64)
@ -44,9 +49,10 @@ FILE@[0; 118)
WHITESPACE@[65; 67)
MOD_ITEM@[67; 118)
MOD_KW@[67; 70)
WHITESPACE@[70; 71)
IDENT@[71; 72) "d"
WHITESPACE@[72; 73)
NAME@[70; 73)
WHITESPACE@[70; 71)
IDENT@[71; 72) "d"
WHITESPACE@[72; 73)
L_CURLY@[73; 74)
ATTR@[74; 92)
WHITESPACE@[74; 79)
@ -59,15 +65,17 @@ FILE@[0; 118)
WHITESPACE@[87; 92)
MOD_ITEM@[92; 103)
MOD_KW@[92; 95)
WHITESPACE@[95; 96)
IDENT@[96; 97) "e"
NAME@[95; 97)
WHITESPACE@[95; 96)
IDENT@[96; 97) "e"
SEMI@[97; 98)
WHITESPACE@[98; 103)
MOD_ITEM@[103; 117)
MOD_KW@[103; 106)
WHITESPACE@[106; 107)
IDENT@[107; 108) "f"
WHITESPACE@[108; 109)
NAME@[106; 109)
WHITESPACE@[106; 107)
IDENT@[107; 108) "f"
WHITESPACE@[108; 109)
L_CURLY@[109; 110)
WHITESPACE@[110; 115)
R_CURLY@[115; 116)

View File

@ -4,8 +4,9 @@ FILE@[0; 19)
USE_TREE@[3; 7)
PATH@[3; 7)
PATH_SEGMENT@[3; 7)
WHITESPACE@[3; 4)
IDENT@[4; 7) "foo"
NAME_REF@[3; 7)
WHITESPACE@[3; 4)
IDENT@[4; 7) "foo"
SEMI@[7; 8)
WHITESPACE@[8; 9)
USE_ITEM@[9; 19)
@ -15,5 +16,6 @@ FILE@[0; 19)
PATH_SEGMENT@[12; 18)
WHITESPACE@[12; 13)
COLONCOLON@[13; 15)
IDENT@[15; 18) "bar"
NAME_REF@[15; 18)
IDENT@[15; 18) "bar"
SEMI@[18; 19)

View File

@ -8,13 +8,16 @@ FILE@[0; 40)
PATH_SEGMENT@[3; 9)
WHITESPACE@[3; 4)
COLONCOLON@[4; 6)
IDENT@[6; 9) "foo"
NAME_REF@[6; 9)
IDENT@[6; 9) "foo"
COLONCOLON@[9; 11)
PATH_SEGMENT@[11; 14)
IDENT@[11; 14) "bar"
NAME_REF@[11; 14)
IDENT@[11; 14) "bar"
COLONCOLON@[14; 16)
PATH_SEGMENT@[16; 19)
IDENT@[16; 19) "baz"
NAME_REF@[16; 19)
IDENT@[16; 19) "baz"
SEMI@[19; 20)
WHITESPACE@[20; 21)
USE_ITEM@[21; 40)
@ -24,13 +27,16 @@ FILE@[0; 40)
PATH@[24; 33)
PATH@[24; 28)
PATH_SEGMENT@[24; 28)
WHITESPACE@[24; 25)
IDENT@[25; 28) "foo"
NAME_REF@[24; 28)
WHITESPACE@[24; 25)
IDENT@[25; 28) "foo"
COLONCOLON@[28; 30)
PATH_SEGMENT@[30; 33)
IDENT@[30; 33) "bar"
NAME_REF@[30; 33)
IDENT@[30; 33) "bar"
COLONCOLON@[33; 35)
PATH_SEGMENT@[35; 38)
IDENT@[35; 38) "baz"
NAME_REF@[35; 38)
IDENT@[35; 38) "baz"
SEMI@[38; 39)
WHITESPACE@[39; 40)

View File

@ -19,8 +19,9 @@ FILE@[0; 35)
R_BRACK@[21; 22)
WHITESPACE@[22; 23)
FN_KW@[23; 25)
WHITESPACE@[25; 26)
IDENT@[26; 29) "foo"
NAME@[25; 29)
WHITESPACE@[25; 26)
IDENT@[26; 29) "foo"
L_PAREN@[29; 30)
R_PAREN@[30; 31)
WHITESPACE@[31; 32)

View File

@ -1,8 +1,9 @@
FILE@[0; 98)
FN_ITEM@[0; 10)
FN_KW@[0; 2)
WHITESPACE@[2; 3)
IDENT@[3; 4) "a"
NAME@[2; 4)
WHITESPACE@[2; 3)
IDENT@[3; 4) "a"
L_PAREN@[4; 5)
R_PAREN@[5; 6)
WHITESPACE@[6; 7)
@ -14,8 +15,9 @@ FILE@[0; 98)
PUB_KW@[10; 13)
WHITESPACE@[13; 14)
FN_KW@[14; 16)
WHITESPACE@[16; 17)
IDENT@[17; 18) "b"
NAME@[16; 18)
WHITESPACE@[16; 17)
IDENT@[17; 18) "b"
L_PAREN@[18; 19)
R_PAREN@[19; 20)
WHITESPACE@[20; 21)
@ -30,8 +32,9 @@ FILE@[0; 98)
R_PAREN@[33; 34)
WHITESPACE@[34; 35)
FN_KW@[35; 37)
WHITESPACE@[37; 38)
IDENT@[38; 39) "c"
NAME@[37; 39)
WHITESPACE@[37; 38)
IDENT@[38; 39) "c"
L_PAREN@[39; 40)
R_PAREN@[40; 41)
WHITESPACE@[41; 42)
@ -46,8 +49,9 @@ FILE@[0; 98)
R_PAREN@[54; 55)
WHITESPACE@[55; 56)
FN_KW@[56; 58)
WHITESPACE@[58; 59)
IDENT@[59; 60) "d"
NAME@[58; 60)
WHITESPACE@[58; 59)
IDENT@[59; 60) "d"
L_PAREN@[60; 61)
R_PAREN@[61; 62)
WHITESPACE@[62; 63)
@ -63,19 +67,23 @@ FILE@[0; 98)
PATH@[72; 81)
PATH@[72; 76)
PATH_SEGMENT@[72; 76)
WHITESPACE@[72; 73)
IDENT@[73; 76) "foo"
NAME_REF@[72; 76)
WHITESPACE@[72; 73)
IDENT@[73; 76) "foo"
COLONCOLON@[76; 78)
PATH_SEGMENT@[78; 81)
IDENT@[78; 81) "bar"
NAME_REF@[78; 81)
IDENT@[78; 81) "bar"
COLONCOLON@[81; 83)
PATH_SEGMENT@[83; 86)
IDENT@[83; 86) "baz"
NAME_REF@[83; 86)
IDENT@[83; 86) "baz"
R_PAREN@[86; 87)
WHITESPACE@[87; 88)
FN_KW@[88; 90)
WHITESPACE@[90; 91)
IDENT@[91; 92) "e"
NAME@[90; 92)
WHITESPACE@[90; 91)
IDENT@[91; 92) "e"
L_PAREN@[92; 93)
R_PAREN@[93; 94)
WHITESPACE@[94; 95)

View File

@ -9,7 +9,8 @@ FILE@[0; 65)
SELF_KW@[4; 8)
COLONCOLON@[8; 10)
PATH_SEGMENT@[10; 13)
IDENT@[10; 13) "foo"
NAME_REF@[10; 13)
IDENT@[10; 13) "foo"
SEMI@[13; 14)
WHITESPACE@[14; 15)
USE_ITEM@[15; 38)
@ -26,7 +27,8 @@ FILE@[0; 65)
SUPER_KW@[26; 31)
COLONCOLON@[31; 33)
PATH_SEGMENT@[33; 36)
IDENT@[33; 36) "bar"
NAME_REF@[33; 36)
IDENT@[33; 36) "bar"
SEMI@[36; 37)
WHITESPACE@[37; 38)
USE_ITEM@[38; 65)
@ -42,12 +44,14 @@ FILE@[0; 65)
SELF_KW@[44; 48)
COLONCOLON@[48; 50)
PATH_SEGMENT@[50; 51)
IDENT@[50; 51) "a"
NAME_REF@[50; 51)
IDENT@[50; 51) "a"
COLONCOLON@[51; 53)
PATH_SEGMENT@[53; 58)
SUPER_KW@[53; 58)
COLONCOLON@[58; 60)
PATH_SEGMENT@[60; 63)
IDENT@[60; 63) "bar"
NAME_REF@[60; 63)
IDENT@[60; 63) "bar"
SEMI@[63; 64)
WHITESPACE@[64; 65)

View File

@ -36,8 +36,9 @@ FILE@[0; 81)
USE_TREE@[37; 44)
PATH@[37; 41)
PATH_SEGMENT@[37; 41)
WHITESPACE@[37; 38)
IDENT@[38; 41) "foo"
NAME_REF@[37; 41)
WHITESPACE@[37; 38)
IDENT@[38; 41) "foo"
COLONCOLON@[41; 43)
STAR@[43; 44)
SEMI@[44; 45)
@ -47,8 +48,9 @@ FILE@[0; 81)
USE_TREE@[49; 57)
PATH@[49; 53)
PATH_SEGMENT@[49; 53)
WHITESPACE@[49; 50)
IDENT@[50; 53) "foo"
NAME_REF@[49; 53)
WHITESPACE@[49; 50)
IDENT@[50; 53) "foo"
COLONCOLON@[53; 55)
L_CURLY@[55; 56)
R_CURLY@[56; 57)
@ -61,25 +63,29 @@ FILE@[0; 81)
PATH_SEGMENT@[62; 68)
WHITESPACE@[62; 63)
COLONCOLON@[63; 65)
IDENT@[65; 68) "foo"
NAME_REF@[65; 68)
IDENT@[65; 68) "foo"
COLONCOLON@[68; 70)
L_CURLY@[70; 71)
USE_TREE@[71; 72)
PATH@[71; 72)
PATH_SEGMENT@[71; 72)
IDENT@[71; 72) "a"
NAME_REF@[71; 72)
IDENT@[71; 72) "a"
COMMA@[72; 73)
USE_TREE@[73; 75)
PATH@[73; 75)
PATH_SEGMENT@[73; 75)
WHITESPACE@[73; 74)
IDENT@[74; 75) "b"
NAME_REF@[73; 75)
WHITESPACE@[73; 74)
IDENT@[74; 75) "b"
COMMA@[75; 76)
USE_TREE@[76; 78)
PATH@[76; 78)
PATH_SEGMENT@[76; 78)
WHITESPACE@[76; 77)
IDENT@[77; 78) "c"
NAME_REF@[76; 78)
WHITESPACE@[76; 77)
IDENT@[77; 78) "c"
R_CURLY@[78; 79)
SEMI@[79; 80)
WHITESPACE@[80; 81)

View File

@ -4,13 +4,15 @@ FILE@[0; 55)
USE_TREE@[3; 14)
PATH@[3; 8)
PATH_SEGMENT@[3; 8)
WHITESPACE@[3; 4)
IDENT@[4; 7) "foo"
WHITESPACE@[7; 8)
NAME_REF@[3; 8)
WHITESPACE@[3; 4)
IDENT@[4; 7) "foo"
WHITESPACE@[7; 8)
ALIAS@[8; 14)
AS_KW@[8; 10)
WHITESPACE@[10; 11)
IDENT@[11; 14) "bar"
NAME@[10; 14)
WHITESPACE@[10; 11)
IDENT@[11; 14) "bar"
SEMI@[14; 15)
WHITESPACE@[15; 16)
USE_ITEM@[16; 55)
@ -18,19 +20,22 @@ FILE@[0; 55)
USE_TREE@[19; 53)
PATH@[19; 23)
PATH_SEGMENT@[19; 23)
WHITESPACE@[19; 20)
IDENT@[20; 23) "foo"
NAME_REF@[19; 23)
WHITESPACE@[19; 20)
IDENT@[20; 23) "foo"
COLONCOLON@[23; 25)
L_CURLY@[25; 26)
USE_TREE@[26; 32)
PATH@[26; 28)
PATH_SEGMENT@[26; 28)
IDENT@[26; 27) "a"
WHITESPACE@[27; 28)
NAME_REF@[26; 28)
IDENT@[26; 27) "a"
WHITESPACE@[27; 28)
ALIAS@[28; 32)
AS_KW@[28; 30)
WHITESPACE@[30; 31)
IDENT@[31; 32) "b"
NAME@[30; 32)
WHITESPACE@[30; 31)
IDENT@[31; 32) "b"
COMMA@[32; 33)
USE_TREE@[33; 35)
WHITESPACE@[33; 34)
@ -46,12 +51,14 @@ FILE@[0; 55)
PATH_SEGMENT@[41; 48)
WHITESPACE@[41; 42)
COLONCOLON@[42; 44)
IDENT@[44; 47) "foo"
WHITESPACE@[47; 48)
NAME_REF@[44; 48)
IDENT@[44; 47) "foo"
WHITESPACE@[47; 48)
ALIAS@[48; 52)
AS_KW@[48; 50)
WHITESPACE@[50; 51)
IDENT@[51; 52) "x"
NAME@[50; 52)
WHITESPACE@[50; 51)
IDENT@[51; 52) "x"
R_CURLY@[52; 53)
SEMI@[53; 54)
WHITESPACE@[54; 55)

View File

@ -1,35 +1,40 @@
FILE@[0; 97)
STRUCT_ITEM@[0; 10)
STRUCT_KW@[0; 6)
WHITESPACE@[6; 7)
IDENT@[7; 8) "A"
NAME@[6; 8)
WHITESPACE@[6; 7)
IDENT@[7; 8) "A"
SEMI@[8; 9)
WHITESPACE@[9; 10)
STRUCT_ITEM@[10; 22)
STRUCT_KW@[10; 16)
WHITESPACE@[16; 17)
IDENT@[17; 18) "B"
WHITESPACE@[18; 19)
NAME@[16; 19)
WHITESPACE@[16; 17)
IDENT@[17; 18) "B"
WHITESPACE@[18; 19)
L_CURLY@[19; 20)
R_CURLY@[20; 21)
WHITESPACE@[21; 22)
STRUCT_ITEM@[22; 35)
STRUCT_KW@[22; 28)
WHITESPACE@[28; 29)
IDENT@[29; 30) "C"
NAME@[28; 30)
WHITESPACE@[28; 29)
IDENT@[29; 30) "C"
L_PAREN@[30; 31)
R_PAREN@[31; 32)
SEMI@[32; 33)
WHITESPACE@[33; 35)
STRUCT_ITEM@[35; 76)
STRUCT_KW@[35; 41)
WHITESPACE@[41; 42)
IDENT@[42; 43) "D"
WHITESPACE@[43; 44)
NAME@[41; 44)
WHITESPACE@[41; 42)
IDENT@[42; 43) "D"
WHITESPACE@[43; 44)
L_CURLY@[44; 45)
NAMED_FIELD@[45; 56)
WHITESPACE@[45; 50)
IDENT@[50; 51) "a"
NAME@[45; 51)
WHITESPACE@[45; 50)
IDENT@[50; 51) "a"
COLON@[51; 52)
WHITESPACE@[52; 53)
IDENT@[53; 56) "u32"
@ -39,7 +44,8 @@ FILE@[0; 97)
WHITESPACE@[57; 62)
PUB_KW@[62; 65)
WHITESPACE@[65; 66)
IDENT@[66; 67) "b"
NAME@[66; 67)
IDENT@[66; 67) "b"
COLON@[67; 68)
WHITESPACE@[68; 69)
IDENT@[69; 72) "u32"
@ -48,8 +54,9 @@ FILE@[0; 97)
WHITESPACE@[74; 76)
STRUCT_ITEM@[76; 97)
STRUCT_KW@[76; 82)
WHITESPACE@[82; 83)
IDENT@[83; 84) "E"
NAME@[82; 84)
WHITESPACE@[82; 83)
IDENT@[83; 84) "E"
L_PAREN@[84; 85)
POS_FIELD@[85; 90)
VISIBILITY@[85; 89)

View File

@ -13,8 +13,9 @@ FILE@[0; 23)
R_BRACK@[9; 10)
WHITESPACE@[10; 11)
FN_KW@[11; 13)
WHITESPACE@[13; 14)
IDENT@[14; 17) "foo"
NAME@[13; 17)
WHITESPACE@[13; 14)
IDENT@[14; 17) "foo"
L_PAREN@[17; 18)
R_PAREN@[18; 19)
WHITESPACE@[19; 20)

View File

@ -1,8 +1,9 @@
FILE@[0; 290)
STRUCT_ITEM@[0; 14)
STRUCT_KW@[0; 6)
WHITESPACE@[6; 7)
IDENT@[7; 9) "S1"
NAME@[6; 9)
WHITESPACE@[6; 7)
IDENT@[7; 9) "S1"
TYPE_PARAM_LIST@[9; 12)
L_ANGLE@[9; 10)
TYPE_PARAM@[10; 11)
@ -12,8 +13,9 @@ FILE@[0; 290)
WHITESPACE@[13; 14)
STRUCT_ITEM@[14; 33)
STRUCT_KW@[14; 20)
WHITESPACE@[20; 21)
IDENT@[21; 23) "S2"
NAME@[20; 23)
WHITESPACE@[20; 21)
IDENT@[21; 23) "S2"
TYPE_PARAM_LIST@[23; 26)
L_ANGLE@[23; 24)
TYPE_PARAM@[24; 25)
@ -27,8 +29,9 @@ FILE@[0; 290)
WHITESPACE@[32; 33)
STRUCT_ITEM@[33; 58)
STRUCT_KW@[33; 39)
WHITESPACE@[39; 40)
IDENT@[40; 42) "S3"
NAME@[39; 42)
WHITESPACE@[39; 40)
IDENT@[40; 42) "S3"
TYPE_PARAM_LIST@[42; 46)
L_ANGLE@[42; 43)
TYPE_PARAM@[43; 44)
@ -37,8 +40,9 @@ FILE@[0; 290)
WHITESPACE@[45; 46)
L_CURLY@[46; 47)
NAMED_FIELD@[47; 55)
WHITESPACE@[47; 48)
IDENT@[48; 49) "u"
NAME@[47; 49)
WHITESPACE@[47; 48)
IDENT@[48; 49) "u"
COLON@[49; 50)
WHITESPACE@[50; 51)
IDENT@[51; 54) "u32"
@ -47,8 +51,9 @@ FILE@[0; 290)
WHITESPACE@[56; 58)
STRUCT_ITEM@[58; 71)
STRUCT_KW@[58; 64)
WHITESPACE@[64; 65)
IDENT@[65; 67) "S4"
NAME@[64; 67)
WHITESPACE@[64; 65)
IDENT@[65; 67) "S4"
TYPE_PARAM_LIST@[67; 69)
L_ANGLE@[67; 68)
R_ANGLE@[68; 69)
@ -56,8 +61,9 @@ FILE@[0; 290)
WHITESPACE@[70; 71)
STRUCT_ITEM@[71; 86)
STRUCT_KW@[71; 77)
WHITESPACE@[77; 78)
IDENT@[78; 80) "S5"
NAME@[77; 80)
WHITESPACE@[77; 78)
IDENT@[78; 80) "S5"
TYPE_PARAM_LIST@[80; 84)
L_ANGLE@[80; 81)
LIFETIME_PARAM@[81; 83)
@ -67,8 +73,9 @@ FILE@[0; 290)
WHITESPACE@[85; 86)
STRUCT_ITEM@[86; 102)
STRUCT_KW@[86; 92)
WHITESPACE@[92; 93)
IDENT@[93; 95) "S6"
NAME@[92; 95)
WHITESPACE@[92; 93)
IDENT@[93; 95) "S6"
TYPE_PARAM_LIST@[95; 100)
L_ANGLE@[95; 96)
LIFETIME_PARAM@[96; 99)
@ -79,8 +86,9 @@ FILE@[0; 290)
WHITESPACE@[101; 102)
STRUCT_ITEM@[102; 121)
STRUCT_KW@[102; 108)
WHITESPACE@[108; 109)
IDENT@[109; 111) "S7"
NAME@[108; 111)
WHITESPACE@[108; 109)
IDENT@[109; 111) "S7"
TYPE_PARAM_LIST@[111; 119)
L_ANGLE@[111; 112)
LIFETIME_PARAM@[112; 118)
@ -93,8 +101,9 @@ FILE@[0; 290)
WHITESPACE@[120; 121)
STRUCT_ITEM@[121; 143)
STRUCT_KW@[121; 127)
WHITESPACE@[127; 128)
IDENT@[128; 130) "S8"
NAME@[127; 130)
WHITESPACE@[127; 128)
IDENT@[128; 130) "S8"
TYPE_PARAM_LIST@[130; 141)
L_ANGLE@[130; 131)
LIFETIME_PARAM@[131; 140)
@ -110,8 +119,9 @@ FILE@[0; 290)
WHITESPACE@[142; 143)
STRUCT_ITEM@[143; 167)
STRUCT_KW@[143; 149)
WHITESPACE@[149; 150)
IDENT@[150; 152) "S9"
NAME@[149; 152)
WHITESPACE@[149; 150)
IDENT@[150; 152) "S9"
TYPE_PARAM_LIST@[152; 165)
L_ANGLE@[152; 153)
LIFETIME_PARAM@[153; 164)
@ -128,8 +138,9 @@ FILE@[0; 290)
WHITESPACE@[166; 167)
STRUCT_ITEM@[167; 184)
STRUCT_KW@[167; 173)
WHITESPACE@[173; 174)
IDENT@[174; 177) "S10"
NAME@[173; 177)
WHITESPACE@[173; 174)
IDENT@[174; 177) "S10"
TYPE_PARAM_LIST@[177; 182)
L_ANGLE@[177; 178)
LIFETIME_PARAM@[178; 180)
@ -140,8 +151,9 @@ FILE@[0; 290)
WHITESPACE@[183; 184)
STRUCT_ITEM@[184; 204)
STRUCT_KW@[184; 190)
WHITESPACE@[190; 191)
IDENT@[191; 194) "S11"
NAME@[190; 194)
WHITESPACE@[190; 191)
IDENT@[191; 194) "S11"
TYPE_PARAM_LIST@[194; 202)
L_ANGLE@[194; 195)
LIFETIME_PARAM@[195; 197)
@ -155,8 +167,9 @@ FILE@[0; 290)
WHITESPACE@[203; 204)
STRUCT_ITEM@[204; 235)
STRUCT_KW@[204; 210)
WHITESPACE@[210; 211)
IDENT@[211; 214) "S12"
NAME@[210; 214)
WHITESPACE@[210; 211)
IDENT@[211; 214) "S12"
TYPE_PARAM_LIST@[214; 232)
L_ANGLE@[214; 215)
LIFETIME_PARAM@[215; 222)
@ -178,8 +191,9 @@ FILE@[0; 290)
WHITESPACE@[233; 235)
STRUCT_ITEM@[235; 250)
STRUCT_KW@[235; 241)
WHITESPACE@[241; 242)
IDENT@[242; 245) "S13"
NAME@[241; 245)
WHITESPACE@[241; 242)
IDENT@[242; 245) "S13"
TYPE_PARAM_LIST@[245; 248)
L_ANGLE@[245; 246)
TYPE_PARAM@[246; 247)
@ -189,8 +203,9 @@ FILE@[0; 290)
WHITESPACE@[249; 250)
STRUCT_ITEM@[250; 268)
STRUCT_KW@[250; 256)
WHITESPACE@[256; 257)
IDENT@[257; 260) "S14"
NAME@[256; 260)
WHITESPACE@[256; 257)
IDENT@[257; 260) "S14"
TYPE_PARAM_LIST@[260; 266)
L_ANGLE@[260; 261)
TYPE_PARAM@[261; 262)
@ -204,8 +219,9 @@ FILE@[0; 290)
WHITESPACE@[267; 268)
STRUCT_ITEM@[268; 290)
STRUCT_KW@[268; 274)
WHITESPACE@[274; 275)
IDENT@[275; 278) "S15"
NAME@[274; 278)
WHITESPACE@[274; 275)
IDENT@[275; 278) "S15"
TYPE_PARAM_LIST@[278; 288)
L_ANGLE@[278; 279)
LIFETIME_PARAM@[279; 281)

View File

@ -1,17 +1,19 @@
FILE@[0; 182)
ENUM_ITEM@[0; 13)
ENUM_KW@[0; 4)
WHITESPACE@[4; 5)
IDENT@[5; 7) "E1"
WHITESPACE@[7; 8)
NAME@[4; 8)
WHITESPACE@[4; 5)
IDENT@[5; 7) "E1"
WHITESPACE@[7; 8)
L_CURLY@[8; 9)
WHITESPACE@[9; 10)
R_CURLY@[10; 11)
WHITESPACE@[11; 13)
ENUM_ITEM@[13; 29)
ENUM_KW@[13; 17)
WHITESPACE@[17; 18)
IDENT@[18; 20) "E2"
NAME@[17; 20)
WHITESPACE@[17; 18)
IDENT@[18; 20) "E2"
TYPE_PARAM_LIST@[20; 24)
L_ANGLE@[20; 21)
TYPE_PARAM@[21; 22)
@ -24,9 +26,10 @@ FILE@[0; 182)
WHITESPACE@[27; 29)
ENUM_ITEM@[29; 48)
ENUM_KW@[29; 33)
WHITESPACE@[33; 34)
IDENT@[34; 36) "E3"
WHITESPACE@[36; 37)
NAME@[33; 37)
WHITESPACE@[33; 34)
IDENT@[34; 36) "E3"
WHITESPACE@[36; 37)
L_CURLY@[37; 38)
ENUM_VARIANT@[38; 45)
WHITESPACE@[38; 43)
@ -36,9 +39,10 @@ FILE@[0; 182)
WHITESPACE@[46; 48)
ENUM_ITEM@[48; 68)
ENUM_KW@[48; 52)
WHITESPACE@[52; 53)
IDENT@[53; 55) "E4"
WHITESPACE@[55; 56)
NAME@[52; 56)
WHITESPACE@[52; 53)
IDENT@[53; 55) "E4"
WHITESPACE@[55; 56)
L_CURLY@[56; 57)
ENUM_VARIANT@[57; 63)
WHITESPACE@[57; 62)
@ -49,9 +53,10 @@ FILE@[0; 182)
WHITESPACE@[66; 68)
ENUM_ITEM@[68; 182)
ENUM_KW@[68; 72)
WHITESPACE@[72; 73)
IDENT@[73; 75) "E5"
WHITESPACE@[75; 76)
NAME@[72; 76)
WHITESPACE@[72; 73)
IDENT@[73; 75) "E5"
WHITESPACE@[75; 76)
L_CURLY@[76; 77)
ENUM_VARIANT@[77; 83)
WHITESPACE@[77; 82)
@ -72,8 +77,9 @@ FILE@[0; 182)
WHITESPACE@[102; 103)
L_CURLY@[103; 104)
NAMED_FIELD@[104; 119)
WHITESPACE@[104; 113)
IDENT@[113; 114) "a"
NAME@[104; 114)
WHITESPACE@[104; 113)
IDENT@[113; 114) "a"
COLON@[114; 115)
WHITESPACE@[115; 116)
IDENT@[116; 119) "u32"
@ -83,7 +89,8 @@ FILE@[0; 182)
WHITESPACE@[120; 129)
PUB_KW@[129; 132)
WHITESPACE@[132; 133)
IDENT@[133; 134) "b"
NAME@[133; 134)
IDENT@[133; 134) "b"
COLON@[134; 135)
WHITESPACE@[135; 136)
IDENT@[136; 139) "f64"

View File

@ -1,8 +1,9 @@
FILE@[0; 200)
STRUCT_ITEM@[0; 13)
STRUCT_KW@[0; 6)
WHITESPACE@[6; 7)
IDENT@[7; 8) "A"
NAME@[6; 8)
WHITESPACE@[6; 7)
IDENT@[7; 8) "A"
TYPE_PARAM_LIST@[8; 11)
L_ANGLE@[8; 9)
TYPE_PARAM@[9; 10)
@ -12,8 +13,9 @@ FILE@[0; 200)
WHITESPACE@[12; 13)
STRUCT_ITEM@[13; 27)
STRUCT_KW@[13; 19)
WHITESPACE@[19; 20)
IDENT@[20; 21) "B"
NAME@[19; 21)
WHITESPACE@[19; 20)
IDENT@[20; 21) "B"
TYPE_PARAM_LIST@[21; 25)
L_ANGLE@[21; 22)
TYPE_PARAM@[22; 24)
@ -24,8 +26,9 @@ FILE@[0; 200)
WHITESPACE@[26; 27)
STRUCT_ITEM@[27; 44)
STRUCT_KW@[27; 33)
WHITESPACE@[33; 34)
IDENT@[34; 35) "C"
NAME@[33; 35)
WHITESPACE@[33; 34)
IDENT@[34; 35) "C"
TYPE_PARAM_LIST@[35; 42)
L_ANGLE@[35; 36)
TYPE_PARAM@[36; 41)
@ -38,8 +41,9 @@ FILE@[0; 200)
WHITESPACE@[43; 44)
STRUCT_ITEM@[44; 64)
STRUCT_KW@[44; 50)
WHITESPACE@[50; 51)
IDENT@[51; 52) "D"
NAME@[50; 52)
WHITESPACE@[50; 51)
IDENT@[51; 52) "D"
TYPE_PARAM_LIST@[52; 62)
L_ANGLE@[52; 53)
TYPE_PARAM@[53; 61)
@ -55,8 +59,9 @@ FILE@[0; 200)
WHITESPACE@[63; 64)
STRUCT_ITEM@[64; 87)
STRUCT_KW@[64; 70)
WHITESPACE@[70; 71)
IDENT@[71; 72) "E"
NAME@[70; 72)
WHITESPACE@[70; 71)
IDENT@[71; 72) "E"
TYPE_PARAM_LIST@[72; 85)
L_ANGLE@[72; 73)
TYPE_PARAM@[73; 84)
@ -74,8 +79,9 @@ FILE@[0; 200)
WHITESPACE@[86; 87)
STRUCT_ITEM@[87; 117)
STRUCT_KW@[87; 93)
WHITESPACE@[93; 94)
IDENT@[94; 95) "F"
NAME@[93; 95)
WHITESPACE@[93; 94)
IDENT@[94; 95) "F"
TYPE_PARAM_LIST@[95; 115)
L_ANGLE@[95; 96)
TYPE_PARAM@[96; 114)
@ -91,15 +97,17 @@ FILE@[0; 200)
PLUS@[107; 108)
PATH@[108; 114)
PATH_SEGMENT@[108; 114)
WHITESPACE@[108; 109)
IDENT@[109; 114) "Clone"
NAME_REF@[108; 114)
WHITESPACE@[108; 109)
IDENT@[109; 114) "Clone"
R_ANGLE@[114; 115)
SEMI@[115; 116)
WHITESPACE@[116; 117)
STRUCT_ITEM@[117; 144)
STRUCT_KW@[117; 123)
WHITESPACE@[123; 124)
IDENT@[124; 125) "G"
NAME@[123; 125)
WHITESPACE@[123; 124)
IDENT@[124; 125) "G"
TYPE_PARAM_LIST@[125; 142)
L_ANGLE@[125; 126)
TYPE_PARAM@[126; 141)
@ -107,21 +115,24 @@ FILE@[0; 200)
COLON@[127; 128)
PATH@[128; 135)
PATH_SEGMENT@[128; 135)
WHITESPACE@[128; 129)
IDENT@[129; 134) "Clone"
WHITESPACE@[134; 135)
NAME_REF@[128; 135)
WHITESPACE@[128; 129)
IDENT@[129; 134) "Clone"
WHITESPACE@[134; 135)
PLUS@[135; 136)
PATH@[136; 141)
PATH_SEGMENT@[136; 141)
WHITESPACE@[136; 137)
IDENT@[137; 141) "Copy"
NAME_REF@[136; 141)
WHITESPACE@[136; 137)
IDENT@[137; 141) "Copy"
R_ANGLE@[141; 142)
SEMI@[142; 143)
WHITESPACE@[143; 144)
STRUCT_ITEM@[144; 181)
STRUCT_KW@[144; 150)
WHITESPACE@[150; 151)
IDENT@[151; 152) "H"
NAME@[150; 152)
WHITESPACE@[150; 151)
IDENT@[151; 152) "H"
TYPE_PARAM_LIST@[152; 179)
L_ANGLE@[152; 153)
TYPE_PARAM@[153; 178)
@ -131,8 +142,9 @@ FILE@[0; 200)
PATH_SEGMENT@[155; 162)
WHITESPACE@[155; 156)
COLONCOLON@[156; 158)
IDENT@[158; 161) "Foo"
WHITESPACE@[161; 162)
NAME_REF@[158; 162)
IDENT@[158; 161) "Foo"
WHITESPACE@[161; 162)
PLUS@[162; 163)
PATH@[163; 174)
PATH@[163; 168)
@ -141,8 +153,9 @@ FILE@[0; 200)
SELF_KW@[164; 168)
COLONCOLON@[168; 170)
PATH_SEGMENT@[170; 174)
IDENT@[170; 173) "Bar"
WHITESPACE@[173; 174)
NAME_REF@[170; 174)
IDENT@[170; 173) "Bar"
WHITESPACE@[173; 174)
PLUS@[174; 175)
WHITESPACE@[175; 176)
LIFETIME@[176; 178) "'a"
@ -151,8 +164,9 @@ FILE@[0; 200)
WHITESPACE@[180; 181)
STRUCT_ITEM@[181; 200)
STRUCT_KW@[181; 187)
WHITESPACE@[187; 188)
IDENT@[188; 189) "I"
NAME@[187; 189)
WHITESPACE@[187; 188)
IDENT@[188; 189) "I"
TYPE_PARAM_LIST@[189; 198)
L_ANGLE@[189; 190)
TYPE_PARAM@[190; 192)

View File

@ -4,8 +4,9 @@ FILE@[0; 71)
EXTERN_KW@[0; 6)
WHITESPACE@[6; 7)
FN_KW@[7; 9)
WHITESPACE@[9; 10)
IDENT@[10; 13) "foo"
NAME@[9; 13)
WHITESPACE@[9; 10)
IDENT@[10; 13) "foo"
L_PAREN@[13; 14)
R_PAREN@[14; 15)
WHITESPACE@[15; 16)
@ -20,8 +21,9 @@ FILE@[0; 71)
STRING@[28; 31)
WHITESPACE@[31; 32)
FN_KW@[32; 34)
WHITESPACE@[34; 35)
IDENT@[35; 38) "bar"
NAME@[34; 38)
WHITESPACE@[34; 35)
IDENT@[35; 38) "bar"
L_PAREN@[38; 39)
R_PAREN@[39; 40)
WHITESPACE@[40; 41)
@ -36,8 +38,9 @@ FILE@[0; 71)
RAW_STRING@[53; 57)
WHITESPACE@[57; 58)
FN_KW@[58; 60)
WHITESPACE@[60; 61)
IDENT@[61; 64) "baz"
NAME@[60; 64)
WHITESPACE@[60; 61)
IDENT@[61; 64) "baz"
L_PAREN@[64; 65)
R_PAREN@[65; 66)
WHITESPACE@[66; 67)

View File

@ -1,8 +1,9 @@
FILE@[0; 47)
STATIC_ITEM@[0; 21)
STATIC_KW@[0; 6)
WHITESPACE@[6; 7)
IDENT@[7; 10) "FOO"
NAME@[6; 10)
WHITESPACE@[6; 7)
IDENT@[7; 10) "FOO"
COLON@[10; 11)
WHITESPACE@[11; 12)
IDENT@[12; 15) "u32"
@ -17,8 +18,9 @@ FILE@[0; 47)
STATIC_KW@[21; 27)
WHITESPACE@[27; 28)
MUT_KW@[28; 31)
WHITESPACE@[31; 32)
IDENT@[32; 35) "BAR"
NAME@[31; 35)
WHITESPACE@[31; 32)
IDENT@[32; 35) "BAR"
COLON@[35; 36)
WHITESPACE@[36; 37)
IDENT@[37; 40) "i32"

View File

@ -1,8 +1,9 @@
FILE@[0; 46)
CONST_ITEM@[0; 21)
CONST_KW@[0; 5)
WHITESPACE@[5; 6)
IDENT@[6; 9) "FOO"
NAME@[5; 9)
WHITESPACE@[5; 6)
IDENT@[6; 9) "FOO"
COLON@[9; 10)
WHITESPACE@[10; 11)
IDENT@[11; 14) "u32"
@ -17,8 +18,9 @@ FILE@[0; 46)
CONST_KW@[21; 26)
WHITESPACE@[26; 27)
MUT_KW@[27; 30)
WHITESPACE@[30; 31)
IDENT@[31; 34) "BAR"
NAME@[30; 34)
WHITESPACE@[30; 31)
IDENT@[31; 34) "BAR"
COLON@[34; 35)
WHITESPACE@[35; 36)
IDENT@[36; 39) "u32"

View File

@ -73,16 +73,24 @@ fn test_from_dir(dir: &Path) -> Vec<PathBuf> {
acc
}
const REWRITE: bool = false;
fn print_difference(expected: &str, actual: &str, path: &Path) {
let dir = project_dir();
let path = path.strip_prefix(&dir).unwrap_or_else(|_| path);
if expected.trim() == actual.trim() {
println!("whitespace difference, rewriting");
println!("file: {}\n", path.display());
file::put_text(path, actual).unwrap();
} else {
let changeset = Changeset::new(actual, expected, "\n");
print!("{}", changeset);
return;
}
if REWRITE {
println!("rewriting {}", path.display());
file::put_text(path, actual).unwrap();
return;
}
let changeset = Changeset::new(actual, expected, "\n");
print!("{}", changeset);
println!("file: {}\n", path.display());
panic!("Comparison failed")
}