mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-02 14:51:48 +00:00
internal: move outlined parser tests
This commit is contained in:
parent
f4cb0ff9be
commit
0f74758fea
353 changed files with 13703 additions and 10 deletions
|
@ -0,0 +1,34 @@
|
|||
SOURCE_FILE@0..34
|
||||
STRUCT@0..34
|
||||
STRUCT_KW@0..6 "struct"
|
||||
WHITESPACE@6..7 " "
|
||||
NAME@7..8
|
||||
IDENT@7..8 "S"
|
||||
WHITESPACE@8..9 " "
|
||||
RECORD_FIELD_LIST@9..34
|
||||
L_CURLY@9..10 "{"
|
||||
WHITESPACE@10..15 "\n "
|
||||
RECORD_FIELD@15..21
|
||||
NAME@15..16
|
||||
IDENT@15..16 "a"
|
||||
COLON@16..17 ":"
|
||||
WHITESPACE@17..18 " "
|
||||
PATH_TYPE@18..21
|
||||
PATH@18..21
|
||||
PATH_SEGMENT@18..21
|
||||
NAME_REF@18..21
|
||||
IDENT@18..21 "u32"
|
||||
WHITESPACE@21..26 "\n "
|
||||
RECORD_FIELD@26..32
|
||||
NAME@26..27
|
||||
IDENT@26..27 "b"
|
||||
COLON@27..28 ":"
|
||||
WHITESPACE@28..29 " "
|
||||
PATH_TYPE@29..32
|
||||
PATH@29..32
|
||||
PATH_SEGMENT@29..32
|
||||
NAME_REF@29..32
|
||||
IDENT@29..32 "u32"
|
||||
WHITESPACE@32..33 "\n"
|
||||
R_CURLY@33..34 "}"
|
||||
error 21..21: expected COMMA
|
|
@ -0,0 +1,4 @@
|
|||
struct S {
|
||||
a: u32
|
||||
b: u32
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
SOURCE_FILE
|
||||
STRUCT
|
||||
STRUCT_KW "struct"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "S"
|
||||
WHITESPACE " "
|
||||
RECORD_FIELD_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
RECORD_FIELD
|
||||
NAME
|
||||
IDENT "a"
|
||||
COLON ":"
|
||||
WHITESPACE " "
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "u32"
|
||||
WHITESPACE "\n "
|
||||
RECORD_FIELD
|
||||
NAME
|
||||
IDENT "b"
|
||||
COLON ":"
|
||||
WHITESPACE " "
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "u32"
|
||||
WHITESPACE "\n"
|
||||
R_CURLY "}"
|
||||
error 21: expected COMMA
|
|
@ -0,0 +1,18 @@
|
|||
SOURCE_FILE@0..21
|
||||
ERROR@0..2
|
||||
IF_KW@0..2 "if"
|
||||
WHITESPACE@2..3 " "
|
||||
ERROR@3..8
|
||||
MATCH_KW@3..8 "match"
|
||||
WHITESPACE@8..10 "\n\n"
|
||||
STRUCT@10..21
|
||||
STRUCT_KW@10..16 "struct"
|
||||
WHITESPACE@16..17 " "
|
||||
NAME@17..18
|
||||
IDENT@17..18 "S"
|
||||
WHITESPACE@18..19 " "
|
||||
RECORD_FIELD_LIST@19..21
|
||||
L_CURLY@19..20 "{"
|
||||
R_CURLY@20..21 "}"
|
||||
error 0..0: expected an item
|
||||
error 3..3: expected an item
|
|
@ -0,0 +1,3 @@
|
|||
if match
|
||||
|
||||
struct S {}
|
|
@ -0,0 +1,18 @@
|
|||
SOURCE_FILE
|
||||
ERROR
|
||||
IF_KW "if"
|
||||
WHITESPACE " "
|
||||
ERROR
|
||||
MATCH_KW "match"
|
||||
WHITESPACE "\n\n"
|
||||
STRUCT
|
||||
STRUCT_KW "struct"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "S"
|
||||
WHITESPACE " "
|
||||
RECORD_FIELD_LIST
|
||||
L_CURLY "{"
|
||||
R_CURLY "}"
|
||||
error 0: expected an item
|
||||
error 3: expected an item
|
|
@ -0,0 +1,45 @@
|
|||
SOURCE_FILE@0..42
|
||||
SHEBANG@0..20 "#!/use/bin/env rusti"
|
||||
WHITESPACE@20..21 "\n"
|
||||
ATTR@21..23
|
||||
POUND@21..22 "#"
|
||||
BANG@22..23 "!"
|
||||
ERROR@23..24
|
||||
SLASH@23..24 "/"
|
||||
USE@24..28
|
||||
USE_KW@24..27 "use"
|
||||
ERROR@27..28
|
||||
SLASH@27..28 "/"
|
||||
MACRO_CALL@28..31
|
||||
PATH@28..31
|
||||
PATH_SEGMENT@28..31
|
||||
NAME_REF@28..31
|
||||
IDENT@28..31 "bin"
|
||||
ERROR@31..32
|
||||
SLASH@31..32 "/"
|
||||
MACRO_CALL@32..35
|
||||
PATH@32..35
|
||||
PATH_SEGMENT@32..35
|
||||
NAME_REF@32..35
|
||||
IDENT@32..35 "env"
|
||||
WHITESPACE@35..36 " "
|
||||
MACRO_CALL@36..41
|
||||
PATH@36..41
|
||||
PATH_SEGMENT@36..41
|
||||
NAME_REF@36..41
|
||||
IDENT@36..41 "rusti"
|
||||
WHITESPACE@41..42 "\n"
|
||||
error 23..23: expected `[`
|
||||
error 23..23: expected an item
|
||||
error 27..27: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
|
||||
error 28..28: expected SEMICOLON
|
||||
error 31..31: expected BANG
|
||||
error 31..31: expected `{`, `[`, `(`
|
||||
error 31..31: expected SEMICOLON
|
||||
error 31..31: expected an item
|
||||
error 35..35: expected BANG
|
||||
error 35..35: expected `{`, `[`, `(`
|
||||
error 35..35: expected SEMICOLON
|
||||
error 41..41: expected BANG
|
||||
error 41..41: expected `{`, `[`, `(`
|
||||
error 41..41: expected SEMICOLON
|
|
@ -0,0 +1,2 @@
|
|||
#!/use/bin/env rusti
|
||||
#!/use/bin/env rusti
|
|
@ -0,0 +1,45 @@
|
|||
SOURCE_FILE
|
||||
SHEBANG "#!/use/bin/env rusti"
|
||||
WHITESPACE "\n"
|
||||
ATTR
|
||||
POUND "#"
|
||||
BANG "!"
|
||||
ERROR
|
||||
SLASH "/"
|
||||
USE
|
||||
USE_KW "use"
|
||||
ERROR
|
||||
SLASH "/"
|
||||
MACRO_CALL
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "bin"
|
||||
ERROR
|
||||
SLASH "/"
|
||||
MACRO_CALL
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "env"
|
||||
WHITESPACE " "
|
||||
MACRO_CALL
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "rusti"
|
||||
WHITESPACE "\n"
|
||||
error 23: expected `[`
|
||||
error 23: expected an item
|
||||
error 27: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
|
||||
error 28: expected SEMICOLON
|
||||
error 31: expected BANG
|
||||
error 31: expected `{`, `[`, `(`
|
||||
error 31: expected SEMICOLON
|
||||
error 31: expected an item
|
||||
error 35: expected BANG
|
||||
error 35: expected `{`, `[`, `(`
|
||||
error 35: expected SEMICOLON
|
||||
error 41: expected BANG
|
||||
error 41: expected `{`, `[`, `(`
|
||||
error 41: expected SEMICOLON
|
39
crates/parser/test_data/parser/err/0003_C++_semicolon.rast
Normal file
39
crates/parser/test_data/parser/err/0003_C++_semicolon.rast
Normal file
|
@ -0,0 +1,39 @@
|
|||
SOURCE_FILE@0..40
|
||||
STRUCT@0..39
|
||||
STRUCT_KW@0..6 "struct"
|
||||
WHITESPACE@6..7 " "
|
||||
NAME@7..8
|
||||
IDENT@7..8 "S"
|
||||
WHITESPACE@8..9 " "
|
||||
RECORD_FIELD_LIST@9..39
|
||||
L_CURLY@9..10 "{"
|
||||
WHITESPACE@10..15 "\n "
|
||||
RECORD_FIELD@15..21
|
||||
NAME@15..16
|
||||
IDENT@15..16 "a"
|
||||
COLON@16..17 ":"
|
||||
WHITESPACE@17..18 " "
|
||||
PATH_TYPE@18..21
|
||||
PATH@18..21
|
||||
PATH_SEGMENT@18..21
|
||||
NAME_REF@18..21
|
||||
IDENT@18..21 "i32"
|
||||
COMMA@21..22 ","
|
||||
WHITESPACE@22..27 "\n "
|
||||
RECORD_FIELD@27..36
|
||||
NAME@27..28
|
||||
IDENT@27..28 "b"
|
||||
COLON@28..29 ":"
|
||||
WHITESPACE@29..30 " "
|
||||
PATH_TYPE@30..36
|
||||
PATH@30..36
|
||||
PATH_SEGMENT@30..36
|
||||
NAME_REF@30..36
|
||||
IDENT@30..36 "String"
|
||||
COMMA@36..37 ","
|
||||
WHITESPACE@37..38 "\n"
|
||||
R_CURLY@38..39 "}"
|
||||
ERROR@39..40
|
||||
SEMICOLON@39..40 ";"
|
||||
error 39..39: expected item, found `;`
|
||||
consider removing this semicolon
|
4
crates/parser/test_data/parser/err/0003_C++_semicolon.rs
Normal file
4
crates/parser/test_data/parser/err/0003_C++_semicolon.rs
Normal file
|
@ -0,0 +1,4 @@
|
|||
struct S {
|
||||
a: i32,
|
||||
b: String,
|
||||
};
|
39
crates/parser/test_data/parser/err/0003_C++_semicolon.txt
Normal file
39
crates/parser/test_data/parser/err/0003_C++_semicolon.txt
Normal file
|
@ -0,0 +1,39 @@
|
|||
SOURCE_FILE
|
||||
STRUCT
|
||||
STRUCT_KW "struct"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "S"
|
||||
WHITESPACE " "
|
||||
RECORD_FIELD_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
RECORD_FIELD
|
||||
NAME
|
||||
IDENT "a"
|
||||
COLON ":"
|
||||
WHITESPACE " "
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "i32"
|
||||
COMMA ","
|
||||
WHITESPACE "\n "
|
||||
RECORD_FIELD
|
||||
NAME
|
||||
IDENT "b"
|
||||
COLON ":"
|
||||
WHITESPACE " "
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "String"
|
||||
COMMA ","
|
||||
WHITESPACE "\n"
|
||||
R_CURLY "}"
|
||||
ERROR
|
||||
SEMICOLON ";"
|
||||
error 39: expected item, found `;`
|
||||
consider removing this semicolon
|
|
@ -0,0 +1,15 @@
|
|||
SOURCE_FILE@0..12
|
||||
USE@0..12
|
||||
USE_KW@0..3 "use"
|
||||
WHITESPACE@3..4 " "
|
||||
USE_TREE@4..11
|
||||
PATH@4..11
|
||||
PATH@4..7
|
||||
PATH_SEGMENT@4..7
|
||||
NAME_REF@4..7
|
||||
IDENT@4..7 "foo"
|
||||
COLON2@7..9 "::"
|
||||
ERROR@9..11
|
||||
INT_NUMBER@9..11 "92"
|
||||
SEMICOLON@11..12 ";"
|
||||
error 9..9: expected identifier
|
|
@ -0,0 +1 @@
|
|||
use foo::92;
|
|
@ -0,0 +1,15 @@
|
|||
SOURCE_FILE
|
||||
USE
|
||||
USE_KW "use"
|
||||
WHITESPACE " "
|
||||
USE_TREE
|
||||
PATH
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "foo"
|
||||
COLON2 "::"
|
||||
ERROR
|
||||
INT_NUMBER "92"
|
||||
SEMICOLON ";"
|
||||
error 9: expected identifier
|
|
@ -0,0 +1,62 @@
|
|||
SOURCE_FILE@0..54
|
||||
FN@0..31
|
||||
ATTR@0..18
|
||||
POUND@0..1 "#"
|
||||
L_BRACK@1..2 "["
|
||||
META@2..17
|
||||
PATH@2..5
|
||||
PATH_SEGMENT@2..5
|
||||
NAME_REF@2..5
|
||||
IDENT@2..5 "foo"
|
||||
TOKEN_TREE@5..17
|
||||
L_PAREN@5..6 "("
|
||||
IDENT@6..9 "foo"
|
||||
COMMA@9..10 ","
|
||||
WHITESPACE@10..11 " "
|
||||
PLUS@11..12 "+"
|
||||
COMMA@12..13 ","
|
||||
WHITESPACE@13..14 " "
|
||||
INT_NUMBER@14..16 "92"
|
||||
R_PAREN@16..17 ")"
|
||||
R_BRACK@17..18 "]"
|
||||
WHITESPACE@18..19 "\n"
|
||||
FN_KW@19..21 "fn"
|
||||
WHITESPACE@21..22 " "
|
||||
NAME@22..25
|
||||
IDENT@22..25 "foo"
|
||||
PARAM_LIST@25..27
|
||||
L_PAREN@25..26 "("
|
||||
R_PAREN@26..27 ")"
|
||||
WHITESPACE@27..28 " "
|
||||
BLOCK_EXPR@28..31
|
||||
STMT_LIST@28..31
|
||||
L_CURLY@28..29 "{"
|
||||
WHITESPACE@29..30 "\n"
|
||||
R_CURLY@30..31 "}"
|
||||
WHITESPACE@31..34 "\n\n\n"
|
||||
ATTR@34..53
|
||||
POUND@34..35 "#"
|
||||
L_BRACK@35..36 "["
|
||||
META@36..53
|
||||
PATH@36..39
|
||||
PATH_SEGMENT@36..39
|
||||
NAME_REF@36..39
|
||||
IDENT@36..39 "foo"
|
||||
TOKEN_TREE@39..53
|
||||
L_PAREN@39..40 "("
|
||||
WHITESPACE@40..41 "\n"
|
||||
FN_KW@41..43 "fn"
|
||||
WHITESPACE@43..44 " "
|
||||
IDENT@44..47 "foo"
|
||||
TOKEN_TREE@47..49
|
||||
L_PAREN@47..48 "("
|
||||
R_PAREN@48..49 ")"
|
||||
WHITESPACE@49..50 " "
|
||||
TOKEN_TREE@50..53
|
||||
L_CURLY@50..51 "{"
|
||||
WHITESPACE@51..52 "\n"
|
||||
R_CURLY@52..53 "}"
|
||||
WHITESPACE@53..54 "\n"
|
||||
error 53..53: expected R_PAREN
|
||||
error 53..53: expected `]`
|
||||
error 53..53: expected an item
|
|
@ -0,0 +1,8 @@
|
|||
#[foo(foo, +, 92)]
|
||||
fn foo() {
|
||||
}
|
||||
|
||||
|
||||
#[foo(
|
||||
fn foo() {
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
SOURCE_FILE
|
||||
FN
|
||||
ATTR
|
||||
POUND "#"
|
||||
L_BRACK "["
|
||||
META
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "foo"
|
||||
TOKEN_TREE
|
||||
L_PAREN "("
|
||||
IDENT "foo"
|
||||
COMMA ","
|
||||
WHITESPACE " "
|
||||
PLUS "+"
|
||||
COMMA ","
|
||||
WHITESPACE " "
|
||||
INT_NUMBER "92"
|
||||
R_PAREN ")"
|
||||
R_BRACK "]"
|
||||
WHITESPACE "\n"
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "foo"
|
||||
PARAM_LIST
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n\n\n"
|
||||
ATTR
|
||||
POUND "#"
|
||||
L_BRACK "["
|
||||
META
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "foo"
|
||||
TOKEN_TREE
|
||||
L_PAREN "("
|
||||
WHITESPACE "\n"
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
IDENT "foo"
|
||||
TOKEN_TREE
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
TOKEN_TREE
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n"
|
||||
error 53: expected R_PAREN
|
||||
error 53: expected `]`
|
||||
error 53: expected an item
|
|
@ -0,0 +1,74 @@
|
|||
SOURCE_FILE@0..74
|
||||
STRUCT@0..73
|
||||
STRUCT_KW@0..6 "struct"
|
||||
WHITESPACE@6..7 " "
|
||||
NAME@7..8
|
||||
IDENT@7..8 "S"
|
||||
WHITESPACE@8..9 " "
|
||||
RECORD_FIELD_LIST@9..73
|
||||
L_CURLY@9..10 "{"
|
||||
WHITESPACE@10..15 "\n "
|
||||
RECORD_FIELD@15..21
|
||||
NAME@15..16
|
||||
IDENT@15..16 "f"
|
||||
COLON@16..17 ":"
|
||||
WHITESPACE@17..18 " "
|
||||
PATH_TYPE@18..21
|
||||
PATH@18..21
|
||||
PATH_SEGMENT@18..21
|
||||
NAME_REF@18..21
|
||||
IDENT@18..21 "u32"
|
||||
COMMA@21..22 ","
|
||||
WHITESPACE@22..27 "\n "
|
||||
VISIBILITY@27..30
|
||||
PUB_KW@27..30 "pub"
|
||||
WHITESPACE@30..31 " "
|
||||
ERROR@31..33
|
||||
INT_NUMBER@31..33 "92"
|
||||
WHITESPACE@33..38 "\n "
|
||||
ERROR@38..39
|
||||
PLUS@38..39 "+"
|
||||
WHITESPACE@39..40 " "
|
||||
ERROR@40..41
|
||||
MINUS@40..41 "-"
|
||||
WHITESPACE@41..42 " "
|
||||
ERROR@42..43
|
||||
STAR@42..43 "*"
|
||||
WHITESPACE@43..48 "\n "
|
||||
RECORD_FIELD@48..58
|
||||
VISIBILITY@48..51
|
||||
PUB_KW@48..51 "pub"
|
||||
WHITESPACE@51..52 " "
|
||||
NAME@52..53
|
||||
IDENT@52..53 "x"
|
||||
COLON@53..54 ":"
|
||||
WHITESPACE@54..55 " "
|
||||
PATH_TYPE@55..58
|
||||
PATH@55..58
|
||||
PATH_SEGMENT@55..58
|
||||
NAME_REF@55..58
|
||||
IDENT@55..58 "u32"
|
||||
COMMA@58..59 ","
|
||||
WHITESPACE@59..64 "\n "
|
||||
RECORD_FIELD@64..70
|
||||
NAME@64..65
|
||||
IDENT@64..65 "z"
|
||||
COLON@65..66 ":"
|
||||
WHITESPACE@66..67 " "
|
||||
PATH_TYPE@67..70
|
||||
PATH@67..70
|
||||
PATH_SEGMENT@67..70
|
||||
NAME_REF@67..70
|
||||
IDENT@67..70 "f64"
|
||||
COMMA@70..71 ","
|
||||
WHITESPACE@71..72 "\n"
|
||||
R_CURLY@72..73 "}"
|
||||
WHITESPACE@73..74 "\n"
|
||||
error 31..31: expected field declaration
|
||||
error 33..33: expected COMMA
|
||||
error 38..38: expected field declaration
|
||||
error 39..39: expected COMMA
|
||||
error 40..40: expected field declaration
|
||||
error 41..41: expected COMMA
|
||||
error 42..42: expected field declaration
|
||||
error 43..43: expected COMMA
|
|
@ -0,0 +1,7 @@
|
|||
struct S {
|
||||
f: u32,
|
||||
pub 92
|
||||
+ - *
|
||||
pub x: u32,
|
||||
z: f64,
|
||||
}
|
|
@ -0,0 +1,74 @@
|
|||
SOURCE_FILE
|
||||
STRUCT
|
||||
STRUCT_KW "struct"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "S"
|
||||
WHITESPACE " "
|
||||
RECORD_FIELD_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
RECORD_FIELD
|
||||
NAME
|
||||
IDENT "f"
|
||||
COLON ":"
|
||||
WHITESPACE " "
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "u32"
|
||||
COMMA ","
|
||||
WHITESPACE "\n "
|
||||
VISIBILITY
|
||||
PUB_KW "pub"
|
||||
WHITESPACE " "
|
||||
ERROR
|
||||
INT_NUMBER "92"
|
||||
WHITESPACE "\n "
|
||||
ERROR
|
||||
PLUS "+"
|
||||
WHITESPACE " "
|
||||
ERROR
|
||||
MINUS "-"
|
||||
WHITESPACE " "
|
||||
ERROR
|
||||
STAR "*"
|
||||
WHITESPACE "\n "
|
||||
RECORD_FIELD
|
||||
VISIBILITY
|
||||
PUB_KW "pub"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "x"
|
||||
COLON ":"
|
||||
WHITESPACE " "
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "u32"
|
||||
COMMA ","
|
||||
WHITESPACE "\n "
|
||||
RECORD_FIELD
|
||||
NAME
|
||||
IDENT "z"
|
||||
COLON ":"
|
||||
WHITESPACE " "
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "f64"
|
||||
COMMA ","
|
||||
WHITESPACE "\n"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n"
|
||||
error 31: expected field declaration
|
||||
error 33: expected COMMA
|
||||
error 38: expected field declaration
|
||||
error 39: expected COMMA
|
||||
error 40: expected field declaration
|
||||
error 41: expected COMMA
|
||||
error 42: expected field declaration
|
||||
error 43: expected COMMA
|
|
@ -0,0 +1,33 @@
|
|||
SOURCE_FILE@0..31
|
||||
ERROR@0..1
|
||||
R_CURLY@0..1 "}"
|
||||
WHITESPACE@1..3 "\n\n"
|
||||
STRUCT@3..12
|
||||
STRUCT_KW@3..9 "struct"
|
||||
WHITESPACE@9..10 " "
|
||||
NAME@10..11
|
||||
IDENT@10..11 "S"
|
||||
SEMICOLON@11..12 ";"
|
||||
WHITESPACE@12..14 "\n\n"
|
||||
ERROR@14..15
|
||||
R_CURLY@14..15 "}"
|
||||
WHITESPACE@15..17 "\n\n"
|
||||
FN@17..27
|
||||
FN_KW@17..19 "fn"
|
||||
WHITESPACE@19..20 " "
|
||||
NAME@20..23
|
||||
IDENT@20..23 "foo"
|
||||
PARAM_LIST@23..25
|
||||
L_PAREN@23..24 "("
|
||||
R_PAREN@24..25 ")"
|
||||
BLOCK_EXPR@25..27
|
||||
STMT_LIST@25..27
|
||||
L_CURLY@25..26 "{"
|
||||
R_CURLY@26..27 "}"
|
||||
WHITESPACE@27..29 "\n\n"
|
||||
ERROR@29..30
|
||||
R_CURLY@29..30 "}"
|
||||
WHITESPACE@30..31 "\n"
|
||||
error 0..0: unmatched `}`
|
||||
error 14..14: unmatched `}`
|
||||
error 29..29: unmatched `}`
|
|
@ -0,0 +1,9 @@
|
|||
}
|
||||
|
||||
struct S;
|
||||
|
||||
}
|
||||
|
||||
fn foo(){}
|
||||
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
SOURCE_FILE
|
||||
ERROR
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n\n"
|
||||
STRUCT
|
||||
STRUCT_KW "struct"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "S"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\n\n"
|
||||
ERROR
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n\n"
|
||||
FN
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "foo"
|
||||
PARAM_LIST
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n\n"
|
||||
ERROR
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n"
|
||||
error 0: unmatched `}`
|
||||
error 14: unmatched `}`
|
||||
error 29: unmatched `}`
|
|
@ -0,0 +1,81 @@
|
|||
SOURCE_FILE@0..95
|
||||
FN@0..12
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..6
|
||||
IDENT@3..6 "foo"
|
||||
PARAM_LIST@6..8
|
||||
L_PAREN@6..7 "("
|
||||
R_PAREN@7..8 ")"
|
||||
WHITESPACE@8..9 " "
|
||||
BLOCK_EXPR@9..12
|
||||
STMT_LIST@9..12
|
||||
L_CURLY@9..10 "{"
|
||||
WHITESPACE@10..11 "\n"
|
||||
R_CURLY@11..12 "}"
|
||||
WHITESPACE@12..14 "\n\n"
|
||||
MACRO_CALL@14..19
|
||||
PATH@14..17
|
||||
PATH_SEGMENT@14..17
|
||||
NAME_REF@14..17
|
||||
IDENT@14..17 "bar"
|
||||
TOKEN_TREE@17..19
|
||||
L_PAREN@17..18 "("
|
||||
R_PAREN@18..19 ")"
|
||||
WHITESPACE@19..20 " "
|
||||
ERROR@20..80
|
||||
L_CURLY@20..21 "{"
|
||||
WHITESPACE@21..26 "\n "
|
||||
IF_EXPR@26..78
|
||||
IF_KW@26..28 "if"
|
||||
WHITESPACE@28..29 " "
|
||||
CONDITION@29..33
|
||||
LITERAL@29..33
|
||||
TRUE_KW@29..33 "true"
|
||||
WHITESPACE@33..34 " "
|
||||
BLOCK_EXPR@34..51
|
||||
STMT_LIST@34..51
|
||||
L_CURLY@34..35 "{"
|
||||
WHITESPACE@35..44 "\n "
|
||||
LITERAL@44..45
|
||||
INT_NUMBER@44..45 "1"
|
||||
WHITESPACE@45..50 "\n "
|
||||
R_CURLY@50..51 "}"
|
||||
WHITESPACE@51..52 " "
|
||||
ELSE_KW@52..56 "else"
|
||||
WHITESPACE@56..57 " "
|
||||
BLOCK_EXPR@57..78
|
||||
STMT_LIST@57..78
|
||||
L_CURLY@57..58 "{"
|
||||
WHITESPACE@58..67 "\n "
|
||||
BIN_EXPR@67..72
|
||||
LITERAL@67..68
|
||||
INT_NUMBER@67..68 "2"
|
||||
WHITESPACE@68..69 " "
|
||||
PLUS@69..70 "+"
|
||||
WHITESPACE@70..71 " "
|
||||
LITERAL@71..72
|
||||
INT_NUMBER@71..72 "3"
|
||||
WHITESPACE@72..77 "\n "
|
||||
R_CURLY@77..78 "}"
|
||||
WHITESPACE@78..79 "\n"
|
||||
R_CURLY@79..80 "}"
|
||||
WHITESPACE@80..82 "\n\n"
|
||||
FN@82..94
|
||||
FN_KW@82..84 "fn"
|
||||
WHITESPACE@84..85 " "
|
||||
NAME@85..88
|
||||
IDENT@85..88 "baz"
|
||||
PARAM_LIST@88..90
|
||||
L_PAREN@88..89 "("
|
||||
R_PAREN@89..90 ")"
|
||||
WHITESPACE@90..91 " "
|
||||
BLOCK_EXPR@91..94
|
||||
STMT_LIST@91..94
|
||||
L_CURLY@91..92 "{"
|
||||
WHITESPACE@92..93 "\n"
|
||||
R_CURLY@93..94 "}"
|
||||
WHITESPACE@94..95 "\n"
|
||||
error 17..17: expected BANG
|
||||
error 19..19: expected SEMICOLON
|
||||
error 20..20: expected an item
|
|
@ -0,0 +1,13 @@
|
|||
fn foo() {
|
||||
}
|
||||
|
||||
bar() {
|
||||
if true {
|
||||
1
|
||||
} else {
|
||||
2 + 3
|
||||
}
|
||||
}
|
||||
|
||||
fn baz() {
|
||||
}
|
|
@ -0,0 +1,81 @@
|
|||
SOURCE_FILE
|
||||
FN
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "foo"
|
||||
PARAM_LIST
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n\n"
|
||||
MACRO_CALL
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "bar"
|
||||
TOKEN_TREE
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
ERROR
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
IF_EXPR
|
||||
IF_KW "if"
|
||||
WHITESPACE " "
|
||||
CONDITION
|
||||
LITERAL
|
||||
TRUE_KW "true"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
LITERAL
|
||||
INT_NUMBER "1"
|
||||
WHITESPACE "\n "
|
||||
R_CURLY "}"
|
||||
WHITESPACE " "
|
||||
ELSE_KW "else"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
BIN_EXPR
|
||||
LITERAL
|
||||
INT_NUMBER "2"
|
||||
WHITESPACE " "
|
||||
PLUS "+"
|
||||
WHITESPACE " "
|
||||
LITERAL
|
||||
INT_NUMBER "3"
|
||||
WHITESPACE "\n "
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n\n"
|
||||
FN
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "baz"
|
||||
PARAM_LIST
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n"
|
||||
error 17: expected BANG
|
||||
error 19: expected SEMICOLON
|
||||
error 20: expected an item
|
|
@ -0,0 +1,56 @@
|
|||
SOURCE_FILE@0..43
|
||||
STRUCT@0..11
|
||||
STRUCT_KW@0..6 "struct"
|
||||
WHITESPACE@6..7 " "
|
||||
NAME@7..8
|
||||
IDENT@7..8 "S"
|
||||
GENERIC_PARAM_LIST@8..11
|
||||
L_ANGLE@8..9 "<"
|
||||
ERROR@9..11
|
||||
INT_NUMBER@9..11 "90"
|
||||
WHITESPACE@11..12 " "
|
||||
ERROR@12..13
|
||||
PLUS@12..13 "+"
|
||||
WHITESPACE@13..14 " "
|
||||
ERROR@14..15
|
||||
INT_NUMBER@14..15 "2"
|
||||
ERROR@15..16
|
||||
R_ANGLE@15..16 ">"
|
||||
WHITESPACE@16..17 " "
|
||||
ERROR@17..31
|
||||
L_CURLY@17..18 "{"
|
||||
WHITESPACE@18..23 "\n "
|
||||
EXPR_STMT@23..24
|
||||
PATH_EXPR@23..24
|
||||
PATH@23..24
|
||||
PATH_SEGMENT@23..24
|
||||
NAME_REF@23..24
|
||||
IDENT@23..24 "f"
|
||||
ERROR@24..25
|
||||
COLON@24..25 ":"
|
||||
WHITESPACE@25..26 " "
|
||||
PATH_EXPR@26..29
|
||||
PATH@26..29
|
||||
PATH_SEGMENT@26..29
|
||||
NAME_REF@26..29
|
||||
IDENT@26..29 "u32"
|
||||
WHITESPACE@29..30 "\n"
|
||||
R_CURLY@30..31 "}"
|
||||
WHITESPACE@31..33 "\n\n"
|
||||
STRUCT@33..42
|
||||
STRUCT_KW@33..39 "struct"
|
||||
WHITESPACE@39..40 " "
|
||||
NAME@40..41
|
||||
IDENT@40..41 "T"
|
||||
SEMICOLON@41..42 ";"
|
||||
WHITESPACE@42..43 "\n"
|
||||
error 9..9: expected type parameter
|
||||
error 11..11: expected COMMA
|
||||
error 11..11: expected R_ANGLE
|
||||
error 11..11: expected `;`, `{`, or `(`
|
||||
error 12..12: expected an item
|
||||
error 14..14: expected an item
|
||||
error 15..15: expected an item
|
||||
error 17..17: expected an item
|
||||
error 24..24: expected SEMICOLON
|
||||
error 24..24: expected expression
|
|
@ -0,0 +1,5 @@
|
|||
struct S<90 + 2> {
|
||||
f: u32
|
||||
}
|
||||
|
||||
struct T;
|
|
@ -0,0 +1,56 @@
|
|||
SOURCE_FILE
|
||||
STRUCT
|
||||
STRUCT_KW "struct"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "S"
|
||||
GENERIC_PARAM_LIST
|
||||
L_ANGLE "<"
|
||||
ERROR
|
||||
INT_NUMBER "90"
|
||||
WHITESPACE " "
|
||||
ERROR
|
||||
PLUS "+"
|
||||
WHITESPACE " "
|
||||
ERROR
|
||||
INT_NUMBER "2"
|
||||
ERROR
|
||||
R_ANGLE ">"
|
||||
WHITESPACE " "
|
||||
ERROR
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
EXPR_STMT
|
||||
PATH_EXPR
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "f"
|
||||
ERROR
|
||||
COLON ":"
|
||||
WHITESPACE " "
|
||||
PATH_EXPR
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "u32"
|
||||
WHITESPACE "\n"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n\n"
|
||||
STRUCT
|
||||
STRUCT_KW "struct"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "T"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\n"
|
||||
error 9: expected type parameter
|
||||
error 11: expected COMMA
|
||||
error 11: expected R_ANGLE
|
||||
error 11: expected `;`, `{`, or `(`
|
||||
error 12: expected an item
|
||||
error 14: expected an item
|
||||
error 15: expected an item
|
||||
error 17: expected an item
|
||||
error 24: expected SEMICOLON
|
||||
error 24: expected expression
|
|
@ -0,0 +1,45 @@
|
|||
SOURCE_FILE@0..42
|
||||
FN@0..41
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..7
|
||||
IDENT@3..7 "main"
|
||||
PARAM_LIST@7..9
|
||||
L_PAREN@7..8 "("
|
||||
R_PAREN@8..9 ")"
|
||||
WHITESPACE@9..10 " "
|
||||
BLOCK_EXPR@10..41
|
||||
STMT_LIST@10..41
|
||||
L_CURLY@10..11 "{"
|
||||
WHITESPACE@11..16 "\n "
|
||||
EXPR_STMT@16..24
|
||||
CLOSURE_EXPR@16..24
|
||||
PARAM_LIST@16..18
|
||||
PIPE@16..17 "|"
|
||||
PIPE@17..18 "|"
|
||||
WHITESPACE@18..19 " "
|
||||
RET_TYPE@19..24
|
||||
THIN_ARROW@19..21 "->"
|
||||
WHITESPACE@21..22 " "
|
||||
TUPLE_TYPE@22..24
|
||||
L_PAREN@22..23 "("
|
||||
R_PAREN@23..24 ")"
|
||||
WHITESPACE@24..25 " "
|
||||
EXPR_STMT@25..39
|
||||
BLOCK_EXPR@25..38
|
||||
UNSAFE_KW@25..31 "unsafe"
|
||||
WHITESPACE@31..32 " "
|
||||
STMT_LIST@32..38
|
||||
L_CURLY@32..33 "{"
|
||||
WHITESPACE@33..34 " "
|
||||
TUPLE_EXPR@34..36
|
||||
L_PAREN@34..35 "("
|
||||
R_PAREN@35..36 ")"
|
||||
WHITESPACE@36..37 " "
|
||||
R_CURLY@37..38 "}"
|
||||
SEMICOLON@38..39 ";"
|
||||
WHITESPACE@39..40 "\n"
|
||||
R_CURLY@40..41 "}"
|
||||
WHITESPACE@41..42 "\n"
|
||||
error 24..24: expected a block
|
||||
error 24..24: expected SEMICOLON
|
|
@ -0,0 +1,3 @@
|
|||
fn main() {
|
||||
|| -> () unsafe { () };
|
||||
}
|
|
@ -0,0 +1,45 @@
|
|||
SOURCE_FILE
|
||||
FN
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "main"
|
||||
PARAM_LIST
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
EXPR_STMT
|
||||
CLOSURE_EXPR
|
||||
PARAM_LIST
|
||||
PIPE "|"
|
||||
PIPE "|"
|
||||
WHITESPACE " "
|
||||
RET_TYPE
|
||||
THIN_ARROW "->"
|
||||
WHITESPACE " "
|
||||
TUPLE_TYPE
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
EXPR_STMT
|
||||
BLOCK_EXPR
|
||||
UNSAFE_KW "unsafe"
|
||||
WHITESPACE " "
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE " "
|
||||
TUPLE_EXPR
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
R_CURLY "}"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\n"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n"
|
||||
error 24: expected a block
|
||||
error 24: expected SEMICOLON
|
13
crates/parser/test_data/parser/err/0011_extern_struct.rast
Normal file
13
crates/parser/test_data/parser/err/0011_extern_struct.rast
Normal file
|
@ -0,0 +1,13 @@
|
|||
SOURCE_FILE@0..19
|
||||
ERROR@0..6
|
||||
ABI@0..6
|
||||
EXTERN_KW@0..6 "extern"
|
||||
WHITESPACE@6..7 " "
|
||||
STRUCT@7..18
|
||||
STRUCT_KW@7..13 "struct"
|
||||
WHITESPACE@13..14 " "
|
||||
NAME@14..17
|
||||
IDENT@14..17 "Foo"
|
||||
SEMICOLON@17..18 ";"
|
||||
WHITESPACE@18..19 "\n"
|
||||
error 6..6: expected existential, fn, trait or impl
|
1
crates/parser/test_data/parser/err/0011_extern_struct.rs
Normal file
1
crates/parser/test_data/parser/err/0011_extern_struct.rs
Normal file
|
@ -0,0 +1 @@
|
|||
extern struct Foo;
|
13
crates/parser/test_data/parser/err/0011_extern_struct.txt
Normal file
13
crates/parser/test_data/parser/err/0011_extern_struct.txt
Normal file
|
@ -0,0 +1,13 @@
|
|||
SOURCE_FILE
|
||||
ERROR
|
||||
ABI
|
||||
EXTERN_KW "extern"
|
||||
WHITESPACE " "
|
||||
STRUCT
|
||||
STRUCT_KW "struct"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "Foo"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\n"
|
||||
error 6: expected existential, fn, trait or impl
|
387
crates/parser/test_data/parser/err/0012_broken_lambda.rast
Normal file
387
crates/parser/test_data/parser/err/0012_broken_lambda.rast
Normal file
|
@ -0,0 +1,387 @@
|
|||
SOURCE_FILE@0..389
|
||||
FN@0..389
|
||||
VISIBILITY@0..10
|
||||
PUB_KW@0..3
|
||||
L_PAREN@3..4
|
||||
SUPER_KW@4..9
|
||||
R_PAREN@9..10
|
||||
WHITESPACE@10..11
|
||||
FN_KW@11..13
|
||||
WHITESPACE@13..14
|
||||
NAME@14..21
|
||||
IDENT@14..21 "process"
|
||||
GENERIC_PARAM_LIST@21..38
|
||||
L_ANGLE@21..22
|
||||
LIFETIME_PARAM@22..24
|
||||
LIFETIME@22..24 "'a"
|
||||
COMMA@24..25
|
||||
WHITESPACE@25..26
|
||||
TYPE_PARAM@26..37
|
||||
NAME@26..27
|
||||
IDENT@26..27 "S"
|
||||
COLON@27..28
|
||||
WHITESPACE@28..29
|
||||
PATH@29..37
|
||||
PATH_SEGMENT@29..37
|
||||
NAME_REF@29..33
|
||||
IDENT@29..33 "Sink"
|
||||
GENERIC_ARG_LIST@33..37
|
||||
L_ANGLE@33..34
|
||||
LIFETIME_ARG@34..36
|
||||
LIFETIME@34..36 "'a"
|
||||
R_ANGLE@36..37
|
||||
R_ANGLE@37..38
|
||||
PARAM_LIST@38..93
|
||||
L_PAREN@38..39
|
||||
PARAM@39..54
|
||||
IDENT_PAT@39..46
|
||||
NAME@39..46
|
||||
IDENT@39..46 "builder"
|
||||
COLON@46..47
|
||||
WHITESPACE@47..48
|
||||
REF_TYPE@48..54
|
||||
AMP@48..49
|
||||
MUT_KW@49..52
|
||||
WHITESPACE@52..53
|
||||
PATH_TYPE@53..54
|
||||
PATH@53..54
|
||||
PATH_SEGMENT@53..54
|
||||
NAME_REF@53..54
|
||||
IDENT@53..54 "S"
|
||||
COMMA@54..55
|
||||
WHITESPACE@55..56
|
||||
PARAM@56..72
|
||||
IDENT_PAT@56..62
|
||||
NAME@56..62
|
||||
IDENT@56..62 "tokens"
|
||||
COLON@62..63
|
||||
WHITESPACE@63..64
|
||||
REF_TYPE@64..72
|
||||
AMP@64..65
|
||||
SLICE_TYPE@65..72
|
||||
L_BRACK@65..66
|
||||
PATH_TYPE@66..71
|
||||
PATH@66..71
|
||||
PATH_SEGMENT@66..71
|
||||
NAME_REF@66..71
|
||||
IDENT@66..71 "Token"
|
||||
R_BRACK@71..72
|
||||
COMMA@72..73
|
||||
WHITESPACE@73..74
|
||||
PARAM@74..92
|
||||
IDENT_PAT@74..80
|
||||
NAME@74..80
|
||||
IDENT@74..80 "events"
|
||||
COLON@80..81
|
||||
WHITESPACE@81..82
|
||||
PATH_TYPE@82..92
|
||||
PATH@82..92
|
||||
PATH_SEGMENT@82..92
|
||||
NAME_REF@82..85
|
||||
IDENT@82..85 "Vec"
|
||||
GENERIC_ARG_LIST@85..92
|
||||
L_ANGLE@85..86
|
||||
TYPE_ARG@86..91
|
||||
PATH_TYPE@86..91
|
||||
PATH@86..91
|
||||
PATH_SEGMENT@86..91
|
||||
NAME_REF@86..91
|
||||
IDENT@86..91 "Event"
|
||||
R_ANGLE@91..92
|
||||
R_PAREN@92..93
|
||||
WHITESPACE@93..94
|
||||
BLOCK_EXPR@94..389
|
||||
L_CURLY@94..95
|
||||
WHITESPACE@95..100
|
||||
LET_STMT@100..125
|
||||
LET_KW@100..103
|
||||
WHITESPACE@103..104
|
||||
IDENT_PAT@104..120
|
||||
MUT_KW@104..107
|
||||
WHITESPACE@107..108
|
||||
NAME@108..120
|
||||
IDENT@108..120 "next_tok_idx"
|
||||
WHITESPACE@120..121
|
||||
EQ@121..122
|
||||
WHITESPACE@122..123
|
||||
LITERAL@123..124
|
||||
INT_NUMBER@123..124 "0"
|
||||
SEMICOLON@124..125
|
||||
WHITESPACE@125..130
|
||||
LET_STMT@130..389
|
||||
LET_KW@130..133
|
||||
WHITESPACE@133..134
|
||||
IDENT_PAT@134..140
|
||||
NAME@134..140
|
||||
IDENT@134..140 "eat_ws"
|
||||
WHITESPACE@140..141
|
||||
EQ@141..142
|
||||
WHITESPACE@142..143
|
||||
CLOSURE_EXPR@143..389
|
||||
PARAM_LIST@143..388
|
||||
PIPE@143..144
|
||||
PARAM@144..159
|
||||
IDENT_PAT@144..147
|
||||
NAME@144..147
|
||||
IDENT@144..147 "idx"
|
||||
COLON@147..148
|
||||
WHITESPACE@148..149
|
||||
REF_TYPE@149..159
|
||||
AMP@149..150
|
||||
MUT_KW@150..153
|
||||
WHITESPACE@153..154
|
||||
PATH_TYPE@154..159
|
||||
PATH@154..159
|
||||
PATH_SEGMENT@154..159
|
||||
NAME_REF@154..159
|
||||
IDENT@154..159 "usize"
|
||||
COMMA@159..160
|
||||
WHITESPACE@160..161
|
||||
PARAM@161..167
|
||||
REF_PAT@161..167
|
||||
AMP@161..162
|
||||
MUT_KW@162..165
|
||||
WHITESPACE@165..166
|
||||
err: `expected pattern`
|
||||
ERROR@166..167
|
||||
PIPE@166..167
|
||||
err: `expected COMMA`
|
||||
WHITESPACE@167..168
|
||||
err: `expected pattern`
|
||||
PARAM@168..169
|
||||
ERROR@168..169
|
||||
L_CURLY@168..169
|
||||
err: `expected COMMA`
|
||||
WHITESPACE@169..178
|
||||
err: `expected pattern`
|
||||
PARAM@178..183
|
||||
ERROR@178..183
|
||||
WHILE_KW@178..183
|
||||
err: `expected COMMA`
|
||||
WHITESPACE@183..184
|
||||
err: `expected pattern`
|
||||
PARAM@184..187
|
||||
ERROR@184..187
|
||||
LET_KW@184..187
|
||||
err: `expected COMMA`
|
||||
WHITESPACE@187..188
|
||||
PARAM@188..199
|
||||
TUPLE_STRUCT_PAT@188..199
|
||||
PATH@188..192
|
||||
PATH_SEGMENT@188..192
|
||||
NAME_REF@188..192
|
||||
IDENT@188..192 "Some"
|
||||
L_PAREN@192..193
|
||||
IDENT_PAT@193..198
|
||||
NAME@193..198
|
||||
IDENT@193..198 "token"
|
||||
R_PAREN@198..199
|
||||
err: `expected COMMA`
|
||||
WHITESPACE@199..200
|
||||
err: `expected pattern`
|
||||
PARAM@200..201
|
||||
ERROR@200..201
|
||||
EQ@200..201
|
||||
err: `expected COMMA`
|
||||
WHITESPACE@201..202
|
||||
PARAM@202..208
|
||||
IDENT_PAT@202..208
|
||||
NAME@202..208
|
||||
IDENT@202..208 "tokens"
|
||||
err: `expected COMMA`
|
||||
err: `expected pattern`
|
||||
PARAM@208..209
|
||||
ERROR@208..209
|
||||
DOT@208..209
|
||||
err: `expected COMMA`
|
||||
PARAM@209..218
|
||||
TUPLE_STRUCT_PAT@209..218
|
||||
PATH@209..212
|
||||
PATH_SEGMENT@209..212
|
||||
NAME_REF@209..212
|
||||
IDENT@209..212 "get"
|
||||
L_PAREN@212..213
|
||||
err: `expected pattern`
|
||||
ERROR@213..214
|
||||
STAR@213..214
|
||||
err: `expected COMMA`
|
||||
IDENT_PAT@214..217
|
||||
NAME@214..217
|
||||
IDENT@214..217 "idx"
|
||||
R_PAREN@217..218
|
||||
err: `expected COMMA`
|
||||
WHITESPACE@218..219
|
||||
err: `expected pattern`
|
||||
PARAM@219..220
|
||||
ERROR@219..220
|
||||
L_CURLY@219..220
|
||||
err: `expected COMMA`
|
||||
WHITESPACE@220..233
|
||||
err: `expected pattern`
|
||||
PARAM@233..235
|
||||
ERROR@233..235
|
||||
IF_KW@233..235
|
||||
err: `expected COMMA`
|
||||
WHITESPACE@235..236
|
||||
err: `expected pattern`
|
||||
PARAM@236..237
|
||||
ERROR@236..237
|
||||
BANG@236..237
|
||||
err: `expected COMMA`
|
||||
PARAM@237..242
|
||||
IDENT_PAT@237..242
|
||||
NAME@237..242
|
||||
IDENT@237..242 "token"
|
||||
err: `expected COMMA`
|
||||
err: `expected pattern`
|
||||
PARAM@242..243
|
||||
ERROR@242..243
|
||||
DOT@242..243
|
||||
err: `expected COMMA`
|
||||
PARAM@243..247
|
||||
IDENT_PAT@243..247
|
||||
NAME@243..247
|
||||
IDENT@243..247 "kind"
|
||||
err: `expected COMMA`
|
||||
err: `expected pattern`
|
||||
PARAM@247..248
|
||||
ERROR@247..248
|
||||
DOT@247..248
|
||||
err: `expected COMMA`
|
||||
PARAM@248..259
|
||||
TUPLE_STRUCT_PAT@248..259
|
||||
PATH@248..257
|
||||
PATH_SEGMENT@248..257
|
||||
NAME_REF@248..257
|
||||
IDENT@248..257 "is_trivia"
|
||||
L_PAREN@257..258
|
||||
R_PAREN@258..259
|
||||
err: `expected COMMA`
|
||||
WHITESPACE@259..260
|
||||
err: `expected pattern`
|
||||
PARAM@260..261
|
||||
ERROR@260..261
|
||||
L_CURLY@260..261
|
||||
err: `expected COMMA`
|
||||
WHITESPACE@261..278
|
||||
PARAM@278..283
|
||||
IDENT_PAT@278..283
|
||||
NAME@278..283
|
||||
IDENT@278..283 "break"
|
||||
err: `expected COMMA`
|
||||
err: `expected pattern`
|
||||
PARAM@283..284
|
||||
ERROR@283..284
|
||||
SEMICOLON@283..284
|
||||
err: `expected COMMA`
|
||||
WHITESPACE@284..297
|
||||
err: `expected pattern`
|
||||
PARAM@297..298
|
||||
ERROR@297..298
|
||||
R_CURLY@297..298
|
||||
err: `expected COMMA`
|
||||
WHITESPACE@298..311
|
||||
PARAM@311..318
|
||||
IDENT_PAT@311..318
|
||||
NAME@311..318
|
||||
IDENT@311..318 "builder"
|
||||
err: `expected COMMA`
|
||||
err: `expected pattern`
|
||||
PARAM@318..319
|
||||
ERROR@318..319
|
||||
DOT@318..319
|
||||
err: `expected COMMA`
|
||||
PARAM@319..346
|
||||
TUPLE_STRUCT_PAT@319..346
|
||||
PATH@319..323
|
||||
PATH_SEGMENT@319..323
|
||||
NAME_REF@319..323
|
||||
IDENT@319..323 "leaf"
|
||||
L_PAREN@323..324
|
||||
IDENT_PAT@324..329
|
||||
NAME@324..329
|
||||
IDENT@324..329 "token"
|
||||
err: `expected COMMA`
|
||||
err: `expected pattern`
|
||||
ERROR@329..330
|
||||
DOT@329..330
|
||||
err: `expected COMMA`
|
||||
IDENT_PAT@330..334
|
||||
NAME@330..334
|
||||
IDENT@330..334 "kind"
|
||||
COMMA@334..335
|
||||
WHITESPACE@335..336
|
||||
IDENT_PAT@336..341
|
||||
NAME@336..341
|
||||
IDENT@336..341 "token"
|
||||
err: `expected COMMA`
|
||||
err: `expected pattern`
|
||||
ERROR@341..342
|
||||
DOT@341..342
|
||||
err: `expected COMMA`
|
||||
IDENT_PAT@342..345
|
||||
NAME@342..345
|
||||
IDENT@342..345 "len"
|
||||
R_PAREN@345..346
|
||||
err: `expected COMMA`
|
||||
err: `expected pattern`
|
||||
PARAM@346..347
|
||||
ERROR@346..347
|
||||
SEMICOLON@346..347
|
||||
err: `expected COMMA`
|
||||
WHITESPACE@347..360
|
||||
err: `expected pattern`
|
||||
PARAM@360..361
|
||||
ERROR@360..361
|
||||
STAR@360..361
|
||||
err: `expected COMMA`
|
||||
PARAM@361..364
|
||||
IDENT_PAT@361..364
|
||||
NAME@361..364
|
||||
IDENT@361..364 "idx"
|
||||
err: `expected COMMA`
|
||||
WHITESPACE@364..365
|
||||
err: `expected pattern`
|
||||
PARAM@365..366
|
||||
ERROR@365..366
|
||||
PLUS@365..366
|
||||
err: `expected COMMA`
|
||||
err: `expected pattern`
|
||||
PARAM@366..367
|
||||
ERROR@366..367
|
||||
EQ@366..367
|
||||
err: `expected COMMA`
|
||||
WHITESPACE@367..368
|
||||
PARAM@368..369
|
||||
LITERAL@368..369
|
||||
INT_NUMBER@368..369 "1"
|
||||
err: `expected COMMA`
|
||||
WHITESPACE@369..378
|
||||
err: `expected pattern`
|
||||
PARAM@378..379
|
||||
ERROR@378..379
|
||||
R_CURLY@378..379
|
||||
err: `expected COMMA`
|
||||
WHITESPACE@379..384
|
||||
err: `expected pattern`
|
||||
PARAM@384..385
|
||||
ERROR@384..385
|
||||
R_CURLY@384..385
|
||||
err: `expected COMMA`
|
||||
err: `expected pattern`
|
||||
PARAM@385..386
|
||||
ERROR@385..386
|
||||
SEMICOLON@385..386
|
||||
err: `expected COMMA`
|
||||
WHITESPACE@386..387
|
||||
err: `expected pattern`
|
||||
PARAM@387..388
|
||||
ERROR@387..388
|
||||
R_CURLY@387..388
|
||||
err: `expected COMMA`
|
||||
err: `expected PIPE`
|
||||
WHITESPACE@388..389
|
||||
err: `expected expression`
|
||||
err: `expected SEMI`
|
||||
err: `expected R_CURLY`
|
||||
ERROR@389..389
|
89
crates/parser/test_data/parser/err/0013_invalid_type.rast
Normal file
89
crates/parser/test_data/parser/err/0013_invalid_type.rast
Normal file
|
@ -0,0 +1,89 @@
|
|||
SOURCE_FILE@0..86
|
||||
STRUCT@0..72
|
||||
VISIBILITY@0..3
|
||||
PUB_KW@0..3 "pub"
|
||||
WHITESPACE@3..4 " "
|
||||
STRUCT_KW@4..10 "struct"
|
||||
WHITESPACE@10..11 " "
|
||||
NAME@11..16
|
||||
IDENT@11..16 "Cache"
|
||||
TUPLE_FIELD_LIST@16..72
|
||||
L_PAREN@16..17 "("
|
||||
WHITESPACE@17..22 "\n "
|
||||
TUPLE_FIELD@22..68
|
||||
PATH_TYPE@22..68
|
||||
PATH@22..68
|
||||
PATH_SEGMENT@22..68
|
||||
NAME_REF@22..29
|
||||
IDENT@22..29 "RefCell"
|
||||
GENERIC_ARG_LIST@29..68
|
||||
L_ANGLE@29..30 "<"
|
||||
TYPE_ARG@30..68
|
||||
PATH_TYPE@30..68
|
||||
PATH@30..68
|
||||
PATH_SEGMENT@30..68
|
||||
NAME_REF@30..37
|
||||
IDENT@30..37 "HashMap"
|
||||
GENERIC_ARG_LIST@37..68
|
||||
L_ANGLE@37..38 "<"
|
||||
WHITESPACE@38..47 "\n "
|
||||
TYPE_ARG@47..53
|
||||
PATH_TYPE@47..53
|
||||
PATH@47..53
|
||||
PATH_SEGMENT@47..53
|
||||
NAME_REF@47..53
|
||||
IDENT@47..53 "TypeId"
|
||||
COMMA@53..54 ","
|
||||
WHITESPACE@54..63 "\n "
|
||||
TYPE_ARG@63..68
|
||||
PATH_TYPE@63..68
|
||||
PATH@63..68
|
||||
PATH_SEGMENT@63..68
|
||||
NAME_REF@63..66
|
||||
IDENT@63..66 "Box"
|
||||
GENERIC_ARG_LIST@66..68
|
||||
L_ANGLE@66..67 "<"
|
||||
TYPE_ARG@67..68
|
||||
ERROR@67..68
|
||||
AT@67..68 "@"
|
||||
WHITESPACE@68..69 " "
|
||||
TUPLE_FIELD@69..72
|
||||
PATH_TYPE@69..72
|
||||
PATH@69..72
|
||||
PATH_SEGMENT@69..72
|
||||
NAME_REF@69..72
|
||||
IDENT@69..72 "Any"
|
||||
ERROR@72..72
|
||||
ERROR@72..73
|
||||
R_ANGLE@72..73 ">"
|
||||
ERROR@73..74
|
||||
COMMA@73..74 ","
|
||||
WHITESPACE@74..79 "\n "
|
||||
ERROR@79..80
|
||||
R_ANGLE@79..80 ">"
|
||||
ERROR@80..81
|
||||
R_ANGLE@80..81 ">"
|
||||
WHITESPACE@81..82 "\n"
|
||||
ERROR@82..83
|
||||
R_PAREN@82..83 ")"
|
||||
ERROR@83..84
|
||||
SEMICOLON@83..84 ";"
|
||||
WHITESPACE@84..86 "\n\n"
|
||||
error 67..67: expected type
|
||||
error 68..68: expected COMMA
|
||||
error 68..68: expected R_ANGLE
|
||||
error 68..68: expected COMMA
|
||||
error 68..68: expected R_ANGLE
|
||||
error 68..68: expected COMMA
|
||||
error 68..68: expected R_ANGLE
|
||||
error 68..68: expected COMMA
|
||||
error 72..72: expected COMMA
|
||||
error 72..72: expected a type
|
||||
error 72..72: expected R_PAREN
|
||||
error 72..72: expected SEMICOLON
|
||||
error 72..72: expected an item
|
||||
error 73..73: expected an item
|
||||
error 79..79: expected an item
|
||||
error 80..80: expected an item
|
||||
error 82..82: expected an item
|
||||
error 83..83: expected an item
|
7
crates/parser/test_data/parser/err/0013_invalid_type.rs
Normal file
7
crates/parser/test_data/parser/err/0013_invalid_type.rs
Normal file
|
@ -0,0 +1,7 @@
|
|||
pub struct Cache(
|
||||
RefCell<HashMap<
|
||||
TypeId,
|
||||
Box<@ Any>,
|
||||
>>
|
||||
);
|
||||
|
89
crates/parser/test_data/parser/err/0013_invalid_type.txt
Normal file
89
crates/parser/test_data/parser/err/0013_invalid_type.txt
Normal file
|
@ -0,0 +1,89 @@
|
|||
SOURCE_FILE
|
||||
STRUCT
|
||||
VISIBILITY
|
||||
PUB_KW "pub"
|
||||
WHITESPACE " "
|
||||
STRUCT_KW "struct"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "Cache"
|
||||
TUPLE_FIELD_LIST
|
||||
L_PAREN "("
|
||||
WHITESPACE "\n "
|
||||
TUPLE_FIELD
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "RefCell"
|
||||
GENERIC_ARG_LIST
|
||||
L_ANGLE "<"
|
||||
TYPE_ARG
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "HashMap"
|
||||
GENERIC_ARG_LIST
|
||||
L_ANGLE "<"
|
||||
WHITESPACE "\n "
|
||||
TYPE_ARG
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "TypeId"
|
||||
COMMA ","
|
||||
WHITESPACE "\n "
|
||||
TYPE_ARG
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "Box"
|
||||
GENERIC_ARG_LIST
|
||||
L_ANGLE "<"
|
||||
TYPE_ARG
|
||||
ERROR
|
||||
AT "@"
|
||||
WHITESPACE " "
|
||||
TUPLE_FIELD
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "Any"
|
||||
ERROR
|
||||
ERROR
|
||||
R_ANGLE ">"
|
||||
ERROR
|
||||
COMMA ","
|
||||
WHITESPACE "\n "
|
||||
ERROR
|
||||
R_ANGLE ">"
|
||||
ERROR
|
||||
R_ANGLE ">"
|
||||
WHITESPACE "\n"
|
||||
ERROR
|
||||
R_PAREN ")"
|
||||
ERROR
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\n\n"
|
||||
error 67: expected type
|
||||
error 68: expected COMMA
|
||||
error 68: expected R_ANGLE
|
||||
error 68: expected COMMA
|
||||
error 68: expected R_ANGLE
|
||||
error 68: expected COMMA
|
||||
error 68: expected R_ANGLE
|
||||
error 68: expected COMMA
|
||||
error 72: expected COMMA
|
||||
error 72: expected a type
|
||||
error 72: expected R_PAREN
|
||||
error 72: expected SEMICOLON
|
||||
error 72: expected an item
|
||||
error 73: expected an item
|
||||
error 79: expected an item
|
||||
error 80: expected an item
|
||||
error 82: expected an item
|
||||
error 83: expected an item
|
32
crates/parser/test_data/parser/err/0014_where_no_bounds.rast
Normal file
32
crates/parser/test_data/parser/err/0014_where_no_bounds.rast
Normal file
|
@ -0,0 +1,32 @@
|
|||
SOURCE_FILE@0..23
|
||||
FN@0..22
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..6
|
||||
IDENT@3..6 "foo"
|
||||
GENERIC_PARAM_LIST@6..9
|
||||
L_ANGLE@6..7 "<"
|
||||
TYPE_PARAM@7..8
|
||||
NAME@7..8
|
||||
IDENT@7..8 "T"
|
||||
R_ANGLE@8..9 ">"
|
||||
PARAM_LIST@9..11
|
||||
L_PAREN@9..10 "("
|
||||
R_PAREN@10..11 ")"
|
||||
WHITESPACE@11..12 " "
|
||||
WHERE_CLAUSE@12..19
|
||||
WHERE_KW@12..17 "where"
|
||||
WHITESPACE@17..18 " "
|
||||
WHERE_PRED@18..19
|
||||
PATH_TYPE@18..19
|
||||
PATH@18..19
|
||||
PATH_SEGMENT@18..19
|
||||
NAME_REF@18..19
|
||||
IDENT@18..19 "T"
|
||||
WHITESPACE@19..20 " "
|
||||
BLOCK_EXPR@20..22
|
||||
STMT_LIST@20..22
|
||||
L_CURLY@20..21 "{"
|
||||
R_CURLY@21..22 "}"
|
||||
WHITESPACE@22..23 "\n"
|
||||
error 19..19: expected colon
|
|
@ -0,0 +1 @@
|
|||
fn foo<T>() where T {}
|
32
crates/parser/test_data/parser/err/0014_where_no_bounds.txt
Normal file
32
crates/parser/test_data/parser/err/0014_where_no_bounds.txt
Normal file
|
@ -0,0 +1,32 @@
|
|||
SOURCE_FILE
|
||||
FN
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "foo"
|
||||
GENERIC_PARAM_LIST
|
||||
L_ANGLE "<"
|
||||
TYPE_PARAM
|
||||
NAME
|
||||
IDENT "T"
|
||||
R_ANGLE ">"
|
||||
PARAM_LIST
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
WHERE_CLAUSE
|
||||
WHERE_KW "where"
|
||||
WHITESPACE " "
|
||||
WHERE_PRED
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "T"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n"
|
||||
error 19: expected colon
|
24
crates/parser/test_data/parser/err/0015_curly_in_params.rast
Normal file
24
crates/parser/test_data/parser/err/0015_curly_in_params.rast
Normal file
|
@ -0,0 +1,24 @@
|
|||
SOURCE_FILE@0..14
|
||||
FN@0..7
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..6
|
||||
IDENT@3..6 "foo"
|
||||
PARAM_LIST@6..7
|
||||
L_PAREN@6..7 "("
|
||||
ERROR@7..8
|
||||
R_CURLY@7..8 "}"
|
||||
ERROR@8..9
|
||||
R_PAREN@8..9 ")"
|
||||
WHITESPACE@9..10 " "
|
||||
ERROR@10..13
|
||||
L_CURLY@10..11 "{"
|
||||
WHITESPACE@11..12 "\n"
|
||||
R_CURLY@12..13 "}"
|
||||
WHITESPACE@13..14 "\n"
|
||||
error 7..7: expected value parameter
|
||||
error 7..7: expected R_PAREN
|
||||
error 7..7: expected a block
|
||||
error 7..7: unmatched `}`
|
||||
error 8..8: expected an item
|
||||
error 10..10: expected an item
|
|
@ -0,0 +1,2 @@
|
|||
fn foo(}) {
|
||||
}
|
24
crates/parser/test_data/parser/err/0015_curly_in_params.txt
Normal file
24
crates/parser/test_data/parser/err/0015_curly_in_params.txt
Normal file
|
@ -0,0 +1,24 @@
|
|||
SOURCE_FILE
|
||||
FN
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "foo"
|
||||
PARAM_LIST
|
||||
L_PAREN "("
|
||||
ERROR
|
||||
R_CURLY "}"
|
||||
ERROR
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
ERROR
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n"
|
||||
error 7: expected value parameter
|
||||
error 7: expected R_PAREN
|
||||
error 7: expected a block
|
||||
error 7: unmatched `}`
|
||||
error 8: expected an item
|
||||
error 10: expected an item
|
44
crates/parser/test_data/parser/err/0016_missing_semi.rast
Normal file
44
crates/parser/test_data/parser/err/0016_missing_semi.rast
Normal file
|
@ -0,0 +1,44 @@
|
|||
SOURCE_FILE@0..56
|
||||
FN@0..55
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..6
|
||||
IDENT@3..6 "foo"
|
||||
PARAM_LIST@6..8
|
||||
L_PAREN@6..7 "("
|
||||
R_PAREN@7..8 ")"
|
||||
WHITESPACE@8..9 " "
|
||||
BLOCK_EXPR@9..55
|
||||
STMT_LIST@9..55
|
||||
L_CURLY@9..10 "{"
|
||||
WHITESPACE@10..15 "\n "
|
||||
EXPR_STMT@15..38
|
||||
CALL_EXPR@15..38
|
||||
PATH_EXPR@15..18
|
||||
PATH@15..18
|
||||
PATH_SEGMENT@15..18
|
||||
NAME_REF@15..18
|
||||
IDENT@15..18 "foo"
|
||||
ARG_LIST@18..38
|
||||
L_PAREN@18..19 "("
|
||||
WHITESPACE@19..28 "\n "
|
||||
LITERAL@28..29
|
||||
INT_NUMBER@28..29 "1"
|
||||
COMMA@29..30 ","
|
||||
WHITESPACE@30..31 " "
|
||||
LITERAL@31..32
|
||||
INT_NUMBER@31..32 "2"
|
||||
WHITESPACE@32..37 "\n "
|
||||
R_PAREN@37..38 ")"
|
||||
WHITESPACE@38..43 "\n "
|
||||
EXPR_STMT@43..53
|
||||
RETURN_EXPR@43..52
|
||||
RETURN_KW@43..49 "return"
|
||||
WHITESPACE@49..50 " "
|
||||
LITERAL@50..52
|
||||
INT_NUMBER@50..52 "92"
|
||||
SEMICOLON@52..53 ";"
|
||||
WHITESPACE@53..54 "\n"
|
||||
R_CURLY@54..55 "}"
|
||||
WHITESPACE@55..56 "\n"
|
||||
error 38..38: expected SEMICOLON
|
6
crates/parser/test_data/parser/err/0016_missing_semi.rs
Normal file
6
crates/parser/test_data/parser/err/0016_missing_semi.rs
Normal file
|
@ -0,0 +1,6 @@
|
|||
fn foo() {
|
||||
foo(
|
||||
1, 2
|
||||
)
|
||||
return 92;
|
||||
}
|
44
crates/parser/test_data/parser/err/0016_missing_semi.txt
Normal file
44
crates/parser/test_data/parser/err/0016_missing_semi.txt
Normal file
|
@ -0,0 +1,44 @@
|
|||
SOURCE_FILE
|
||||
FN
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "foo"
|
||||
PARAM_LIST
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
EXPR_STMT
|
||||
CALL_EXPR
|
||||
PATH_EXPR
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "foo"
|
||||
ARG_LIST
|
||||
L_PAREN "("
|
||||
WHITESPACE "\n "
|
||||
LITERAL
|
||||
INT_NUMBER "1"
|
||||
COMMA ","
|
||||
WHITESPACE " "
|
||||
LITERAL
|
||||
INT_NUMBER "2"
|
||||
WHITESPACE "\n "
|
||||
R_PAREN ")"
|
||||
WHITESPACE "\n "
|
||||
EXPR_STMT
|
||||
RETURN_EXPR
|
||||
RETURN_KW "return"
|
||||
WHITESPACE " "
|
||||
LITERAL
|
||||
INT_NUMBER "92"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\n"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n"
|
||||
error 38: expected SEMICOLON
|
|
@ -0,0 +1,47 @@
|
|||
SOURCE_FILE@0..47
|
||||
FN@0..46
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..6
|
||||
IDENT@3..6 "foo"
|
||||
PARAM_LIST@6..16
|
||||
L_PAREN@6..7 "("
|
||||
PARAM@7..15
|
||||
IDENT_PAT@7..10
|
||||
NAME@7..10
|
||||
IDENT@7..10 "foo"
|
||||
COLON@10..11 ":"
|
||||
WHITESPACE@11..12 " "
|
||||
PATH_TYPE@12..15
|
||||
PATH@12..15
|
||||
PATH_SEGMENT@12..15
|
||||
NAME_REF@12..15
|
||||
IDENT@12..15 "i32"
|
||||
R_PAREN@15..16 ")"
|
||||
WHITESPACE@16..17 " "
|
||||
BLOCK_EXPR@17..46
|
||||
STMT_LIST@17..46
|
||||
L_CURLY@17..18 "{"
|
||||
WHITESPACE@18..23 "\n "
|
||||
LET_STMT@23..36
|
||||
LET_KW@23..26 "let"
|
||||
WHITESPACE@26..27 " "
|
||||
IDENT_PAT@27..30
|
||||
NAME@27..30
|
||||
IDENT@27..30 "bar"
|
||||
WHITESPACE@30..31 " "
|
||||
EQ@31..32 "="
|
||||
WHITESPACE@32..33 " "
|
||||
LITERAL@33..35
|
||||
INT_NUMBER@33..35 "92"
|
||||
SEMICOLON@35..36 ";"
|
||||
WHITESPACE@36..41 "\n "
|
||||
BIN_EXPR@41..44
|
||||
LITERAL@41..42
|
||||
INT_NUMBER@41..42 "1"
|
||||
WHITESPACE@42..43 " "
|
||||
PLUS@43..44 "+"
|
||||
WHITESPACE@44..45 "\n"
|
||||
R_CURLY@45..46 "}"
|
||||
WHITESPACE@46..47 "\n"
|
||||
error 44..44: expected expression
|
|
@ -0,0 +1,4 @@
|
|||
fn foo(foo: i32) {
|
||||
let bar = 92;
|
||||
1 +
|
||||
}
|
|
@ -0,0 +1,47 @@
|
|||
SOURCE_FILE
|
||||
FN
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "foo"
|
||||
PARAM_LIST
|
||||
L_PAREN "("
|
||||
PARAM
|
||||
IDENT_PAT
|
||||
NAME
|
||||
IDENT "foo"
|
||||
COLON ":"
|
||||
WHITESPACE " "
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "i32"
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
LET_STMT
|
||||
LET_KW "let"
|
||||
WHITESPACE " "
|
||||
IDENT_PAT
|
||||
NAME
|
||||
IDENT "bar"
|
||||
WHITESPACE " "
|
||||
EQ "="
|
||||
WHITESPACE " "
|
||||
LITERAL
|
||||
INT_NUMBER "92"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\n "
|
||||
BIN_EXPR
|
||||
LITERAL
|
||||
INT_NUMBER "1"
|
||||
WHITESPACE " "
|
||||
PLUS "+"
|
||||
WHITESPACE "\n"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n"
|
||||
error 44: expected expression
|
133
crates/parser/test_data/parser/err/0018_incomplete_fn.rast
Normal file
133
crates/parser/test_data/parser/err/0018_incomplete_fn.rast
Normal file
|
@ -0,0 +1,133 @@
|
|||
SOURCE_FILE@0..183
|
||||
IMPL@0..182
|
||||
IMPL_KW@0..4 "impl"
|
||||
WHITESPACE@4..5 " "
|
||||
PATH_TYPE@5..13
|
||||
PATH@5..13
|
||||
PATH_SEGMENT@5..13
|
||||
NAME_REF@5..13
|
||||
IDENT@5..13 "FnScopes"
|
||||
WHITESPACE@13..14 " "
|
||||
ASSOC_ITEM_LIST@14..182
|
||||
L_CURLY@14..15 "{"
|
||||
WHITESPACE@15..20 "\n "
|
||||
FN@20..161
|
||||
FN_KW@20..22 "fn"
|
||||
WHITESPACE@22..23 " "
|
||||
NAME@23..32
|
||||
IDENT@23..32 "new_scope"
|
||||
PARAM_LIST@32..35
|
||||
L_PAREN@32..33 "("
|
||||
PARAM@33..34
|
||||
REF_PAT@33..34
|
||||
AMP@33..34 "&"
|
||||
R_PAREN@34..35 ")"
|
||||
WHITESPACE@35..36 " "
|
||||
RET_TYPE@36..46
|
||||
THIN_ARROW@36..38 "->"
|
||||
WHITESPACE@38..39 " "
|
||||
PATH_TYPE@39..46
|
||||
PATH@39..46
|
||||
PATH_SEGMENT@39..46
|
||||
NAME_REF@39..46
|
||||
IDENT@39..46 "ScopeId"
|
||||
WHITESPACE@46..47 " "
|
||||
BLOCK_EXPR@47..161
|
||||
STMT_LIST@47..161
|
||||
L_CURLY@47..48 "{"
|
||||
WHITESPACE@48..57 "\n "
|
||||
LET_STMT@57..85
|
||||
LET_KW@57..60 "let"
|
||||
WHITESPACE@60..61 " "
|
||||
IDENT_PAT@61..64
|
||||
NAME@61..64
|
||||
IDENT@61..64 "res"
|
||||
WHITESPACE@64..65 " "
|
||||
EQ@65..66 "="
|
||||
WHITESPACE@66..67 " "
|
||||
METHOD_CALL_EXPR@67..84
|
||||
FIELD_EXPR@67..78
|
||||
PATH_EXPR@67..71
|
||||
PATH@67..71
|
||||
PATH_SEGMENT@67..71
|
||||
NAME_REF@67..71
|
||||
SELF_KW@67..71 "self"
|
||||
DOT@71..72 "."
|
||||
NAME_REF@72..78
|
||||
IDENT@72..78 "scopes"
|
||||
DOT@78..79 "."
|
||||
NAME_REF@79..82
|
||||
IDENT@79..82 "len"
|
||||
ARG_LIST@82..84
|
||||
L_PAREN@82..83 "("
|
||||
R_PAREN@83..84 ")"
|
||||
SEMICOLON@84..85 ";"
|
||||
WHITESPACE@85..94 "\n "
|
||||
METHOD_CALL_EXPR@94..155
|
||||
FIELD_EXPR@94..105
|
||||
PATH_EXPR@94..98
|
||||
PATH@94..98
|
||||
PATH_SEGMENT@94..98
|
||||
NAME_REF@94..98
|
||||
SELF_KW@94..98 "self"
|
||||
DOT@98..99 "."
|
||||
NAME_REF@99..105
|
||||
IDENT@99..105 "scopes"
|
||||
DOT@105..106 "."
|
||||
NAME_REF@106..110
|
||||
IDENT@106..110 "push"
|
||||
ARG_LIST@110..155
|
||||
L_PAREN@110..111 "("
|
||||
RECORD_EXPR@111..154
|
||||
PATH@111..120
|
||||
PATH_SEGMENT@111..120
|
||||
NAME_REF@111..120
|
||||
IDENT@111..120 "ScopeData"
|
||||
WHITESPACE@120..121 " "
|
||||
RECORD_EXPR_FIELD_LIST@121..154
|
||||
L_CURLY@121..122 "{"
|
||||
WHITESPACE@122..123 " "
|
||||
RECORD_EXPR_FIELD@123..135
|
||||
NAME_REF@123..129
|
||||
IDENT@123..129 "parent"
|
||||
COLON@129..130 ":"
|
||||
WHITESPACE@130..131 " "
|
||||
PATH_EXPR@131..135
|
||||
PATH@131..135
|
||||
PATH_SEGMENT@131..135
|
||||
NAME_REF@131..135
|
||||
IDENT@131..135 "None"
|
||||
COMMA@135..136 ","
|
||||
WHITESPACE@136..137 " "
|
||||
RECORD_EXPR_FIELD@137..152
|
||||
NAME_REF@137..144
|
||||
IDENT@137..144 "entries"
|
||||
COLON@144..145 ":"
|
||||
WHITESPACE@145..146 " "
|
||||
MACRO_CALL@146..152
|
||||
PATH@146..149
|
||||
PATH_SEGMENT@146..149
|
||||
NAME_REF@146..149
|
||||
IDENT@146..149 "vec"
|
||||
BANG@149..150 "!"
|
||||
TOKEN_TREE@150..152
|
||||
L_BRACK@150..151 "["
|
||||
R_BRACK@151..152 "]"
|
||||
WHITESPACE@152..153 " "
|
||||
R_CURLY@153..154 "}"
|
||||
R_PAREN@154..155 ")"
|
||||
WHITESPACE@155..160 "\n "
|
||||
R_CURLY@160..161 "}"
|
||||
WHITESPACE@161..167 "\n\n "
|
||||
FN@167..180
|
||||
FN_KW@167..169 "fn"
|
||||
WHITESPACE@169..170 " "
|
||||
NAME@170..180
|
||||
IDENT@170..180 "set_parent"
|
||||
WHITESPACE@180..181 "\n"
|
||||
R_CURLY@181..182 "}"
|
||||
WHITESPACE@182..183 "\n"
|
||||
error 34..34: expected pattern
|
||||
error 34..34: missing type for function parameter
|
||||
error 180..180: expected function arguments
|
||||
error 180..180: expected a block
|
8
crates/parser/test_data/parser/err/0018_incomplete_fn.rs
Normal file
8
crates/parser/test_data/parser/err/0018_incomplete_fn.rs
Normal file
|
@ -0,0 +1,8 @@
|
|||
impl FnScopes {
|
||||
fn new_scope(&) -> ScopeId {
|
||||
let res = self.scopes.len();
|
||||
self.scopes.push(ScopeData { parent: None, entries: vec![] })
|
||||
}
|
||||
|
||||
fn set_parent
|
||||
}
|
133
crates/parser/test_data/parser/err/0018_incomplete_fn.txt
Normal file
133
crates/parser/test_data/parser/err/0018_incomplete_fn.txt
Normal file
|
@ -0,0 +1,133 @@
|
|||
SOURCE_FILE
|
||||
IMPL
|
||||
IMPL_KW "impl"
|
||||
WHITESPACE " "
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "FnScopes"
|
||||
WHITESPACE " "
|
||||
ASSOC_ITEM_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
FN
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "new_scope"
|
||||
PARAM_LIST
|
||||
L_PAREN "("
|
||||
PARAM
|
||||
REF_PAT
|
||||
AMP "&"
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
RET_TYPE
|
||||
THIN_ARROW "->"
|
||||
WHITESPACE " "
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "ScopeId"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
LET_STMT
|
||||
LET_KW "let"
|
||||
WHITESPACE " "
|
||||
IDENT_PAT
|
||||
NAME
|
||||
IDENT "res"
|
||||
WHITESPACE " "
|
||||
EQ "="
|
||||
WHITESPACE " "
|
||||
METHOD_CALL_EXPR
|
||||
FIELD_EXPR
|
||||
PATH_EXPR
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
SELF_KW "self"
|
||||
DOT "."
|
||||
NAME_REF
|
||||
IDENT "scopes"
|
||||
DOT "."
|
||||
NAME_REF
|
||||
IDENT "len"
|
||||
ARG_LIST
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\n "
|
||||
METHOD_CALL_EXPR
|
||||
FIELD_EXPR
|
||||
PATH_EXPR
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
SELF_KW "self"
|
||||
DOT "."
|
||||
NAME_REF
|
||||
IDENT "scopes"
|
||||
DOT "."
|
||||
NAME_REF
|
||||
IDENT "push"
|
||||
ARG_LIST
|
||||
L_PAREN "("
|
||||
RECORD_EXPR
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "ScopeData"
|
||||
WHITESPACE " "
|
||||
RECORD_EXPR_FIELD_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE " "
|
||||
RECORD_EXPR_FIELD
|
||||
NAME_REF
|
||||
IDENT "parent"
|
||||
COLON ":"
|
||||
WHITESPACE " "
|
||||
PATH_EXPR
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "None"
|
||||
COMMA ","
|
||||
WHITESPACE " "
|
||||
RECORD_EXPR_FIELD
|
||||
NAME_REF
|
||||
IDENT "entries"
|
||||
COLON ":"
|
||||
WHITESPACE " "
|
||||
MACRO_CALL
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "vec"
|
||||
BANG "!"
|
||||
TOKEN_TREE
|
||||
L_BRACK "["
|
||||
R_BRACK "]"
|
||||
WHITESPACE " "
|
||||
R_CURLY "}"
|
||||
R_PAREN ")"
|
||||
WHITESPACE "\n "
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n\n "
|
||||
FN
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "set_parent"
|
||||
WHITESPACE "\n"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n"
|
||||
error 34: expected pattern
|
||||
error 34: missing type for function parameter
|
||||
error 180: expected function arguments
|
||||
error 180: expected a block
|
107
crates/parser/test_data/parser/err/0019_let_recover.rast
Normal file
107
crates/parser/test_data/parser/err/0019_let_recover.rast
Normal file
|
@ -0,0 +1,107 @@
|
|||
SOURCE_FILE@0..139
|
||||
FN@0..138
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..6
|
||||
IDENT@3..6 "foo"
|
||||
PARAM_LIST@6..8
|
||||
L_PAREN@6..7 "("
|
||||
R_PAREN@7..8 ")"
|
||||
WHITESPACE@8..9 " "
|
||||
BLOCK_EXPR@9..138
|
||||
STMT_LIST@9..138
|
||||
L_CURLY@9..10 "{"
|
||||
WHITESPACE@10..15 "\n "
|
||||
LET_STMT@15..24
|
||||
LET_KW@15..18 "let"
|
||||
WHITESPACE@18..19 " "
|
||||
IDENT_PAT@19..22
|
||||
NAME@19..22
|
||||
IDENT@19..22 "foo"
|
||||
WHITESPACE@22..23 " "
|
||||
EQ@23..24 "="
|
||||
WHITESPACE@24..29 "\n "
|
||||
LET_STMT@29..41
|
||||
LET_KW@29..32 "let"
|
||||
WHITESPACE@32..33 " "
|
||||
IDENT_PAT@33..36
|
||||
NAME@33..36
|
||||
IDENT@33..36 "bar"
|
||||
WHITESPACE@36..37 " "
|
||||
EQ@37..38 "="
|
||||
WHITESPACE@38..39 " "
|
||||
LITERAL@39..40
|
||||
INT_NUMBER@39..40 "1"
|
||||
SEMICOLON@40..41 ";"
|
||||
WHITESPACE@41..46 "\n "
|
||||
LET_STMT@46..49
|
||||
LET_KW@46..49 "let"
|
||||
WHITESPACE@49..54 "\n "
|
||||
LET_STMT@54..67
|
||||
LET_KW@54..57 "let"
|
||||
WHITESPACE@57..58 " "
|
||||
IDENT_PAT@58..61
|
||||
NAME@58..61
|
||||
IDENT@58..61 "baz"
|
||||
WHITESPACE@61..62 " "
|
||||
EQ@62..63 "="
|
||||
WHITESPACE@63..64 " "
|
||||
LITERAL@64..66
|
||||
INT_NUMBER@64..66 "92"
|
||||
SEMICOLON@66..67 ";"
|
||||
WHITESPACE@67..72 "\n "
|
||||
LET_STMT@72..75
|
||||
LET_KW@72..75 "let"
|
||||
WHITESPACE@75..80 "\n "
|
||||
EXPR_STMT@80..90
|
||||
IF_EXPR@80..90
|
||||
IF_KW@80..82 "if"
|
||||
WHITESPACE@82..83 " "
|
||||
CONDITION@83..87
|
||||
LITERAL@83..87
|
||||
TRUE_KW@83..87 "true"
|
||||
WHITESPACE@87..88 " "
|
||||
BLOCK_EXPR@88..90
|
||||
STMT_LIST@88..90
|
||||
L_CURLY@88..89 "{"
|
||||
R_CURLY@89..90 "}"
|
||||
WHITESPACE@90..95 "\n "
|
||||
LET_STMT@95..98
|
||||
LET_KW@95..98 "let"
|
||||
WHITESPACE@98..103 "\n "
|
||||
EXPR_STMT@103..116
|
||||
WHILE_EXPR@103..116
|
||||
WHILE_KW@103..108 "while"
|
||||
WHITESPACE@108..109 " "
|
||||
CONDITION@109..113
|
||||
LITERAL@109..113
|
||||
TRUE_KW@109..113 "true"
|
||||
WHITESPACE@113..114 " "
|
||||
BLOCK_EXPR@114..116
|
||||
STMT_LIST@114..116
|
||||
L_CURLY@114..115 "{"
|
||||
R_CURLY@115..116 "}"
|
||||
WHITESPACE@116..121 "\n "
|
||||
LET_STMT@121..124
|
||||
LET_KW@121..124 "let"
|
||||
WHITESPACE@124..129 "\n "
|
||||
LOOP_EXPR@129..136
|
||||
LOOP_KW@129..133 "loop"
|
||||
WHITESPACE@133..134 " "
|
||||
BLOCK_EXPR@134..136
|
||||
STMT_LIST@134..136
|
||||
L_CURLY@134..135 "{"
|
||||
R_CURLY@135..136 "}"
|
||||
WHITESPACE@136..137 "\n"
|
||||
R_CURLY@137..138 "}"
|
||||
WHITESPACE@138..139 "\n"
|
||||
error 24..24: expected expression
|
||||
error 24..24: expected SEMICOLON
|
||||
error 49..49: expected pattern
|
||||
error 49..49: expected SEMICOLON
|
||||
error 75..75: expected pattern
|
||||
error 75..75: expected SEMICOLON
|
||||
error 98..98: expected pattern
|
||||
error 98..98: expected SEMICOLON
|
||||
error 124..124: expected pattern
|
||||
error 124..124: expected SEMICOLON
|
12
crates/parser/test_data/parser/err/0019_let_recover.rs
Normal file
12
crates/parser/test_data/parser/err/0019_let_recover.rs
Normal file
|
@ -0,0 +1,12 @@
|
|||
fn foo() {
|
||||
let foo =
|
||||
let bar = 1;
|
||||
let
|
||||
let baz = 92;
|
||||
let
|
||||
if true {}
|
||||
let
|
||||
while true {}
|
||||
let
|
||||
loop {}
|
||||
}
|
107
crates/parser/test_data/parser/err/0019_let_recover.txt
Normal file
107
crates/parser/test_data/parser/err/0019_let_recover.txt
Normal file
|
@ -0,0 +1,107 @@
|
|||
SOURCE_FILE
|
||||
FN
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "foo"
|
||||
PARAM_LIST
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
LET_STMT
|
||||
LET_KW "let"
|
||||
WHITESPACE " "
|
||||
IDENT_PAT
|
||||
NAME
|
||||
IDENT "foo"
|
||||
WHITESPACE " "
|
||||
EQ "="
|
||||
WHITESPACE "\n "
|
||||
LET_STMT
|
||||
LET_KW "let"
|
||||
WHITESPACE " "
|
||||
IDENT_PAT
|
||||
NAME
|
||||
IDENT "bar"
|
||||
WHITESPACE " "
|
||||
EQ "="
|
||||
WHITESPACE " "
|
||||
LITERAL
|
||||
INT_NUMBER "1"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\n "
|
||||
LET_STMT
|
||||
LET_KW "let"
|
||||
WHITESPACE "\n "
|
||||
LET_STMT
|
||||
LET_KW "let"
|
||||
WHITESPACE " "
|
||||
IDENT_PAT
|
||||
NAME
|
||||
IDENT "baz"
|
||||
WHITESPACE " "
|
||||
EQ "="
|
||||
WHITESPACE " "
|
||||
LITERAL
|
||||
INT_NUMBER "92"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\n "
|
||||
LET_STMT
|
||||
LET_KW "let"
|
||||
WHITESPACE "\n "
|
||||
EXPR_STMT
|
||||
IF_EXPR
|
||||
IF_KW "if"
|
||||
WHITESPACE " "
|
||||
CONDITION
|
||||
LITERAL
|
||||
TRUE_KW "true"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n "
|
||||
LET_STMT
|
||||
LET_KW "let"
|
||||
WHITESPACE "\n "
|
||||
EXPR_STMT
|
||||
WHILE_EXPR
|
||||
WHILE_KW "while"
|
||||
WHITESPACE " "
|
||||
CONDITION
|
||||
LITERAL
|
||||
TRUE_KW "true"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n "
|
||||
LET_STMT
|
||||
LET_KW "let"
|
||||
WHITESPACE "\n "
|
||||
LOOP_EXPR
|
||||
LOOP_KW "loop"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n"
|
||||
error 24: expected expression
|
||||
error 24: expected SEMICOLON
|
||||
error 49: expected pattern
|
||||
error 49: expected SEMICOLON
|
||||
error 75: expected pattern
|
||||
error 75: expected SEMICOLON
|
||||
error 98: expected pattern
|
||||
error 98: expected SEMICOLON
|
||||
error 124: expected pattern
|
||||
error 124: expected SEMICOLON
|
21
crates/parser/test_data/parser/err/0020_fn_recover.rast
Normal file
21
crates/parser/test_data/parser/err/0020_fn_recover.rast
Normal file
|
@ -0,0 +1,21 @@
|
|||
SOURCE_FILE@0..16
|
||||
FN@0..2
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..4 "\n\n"
|
||||
FN@4..15
|
||||
FN_KW@4..6 "fn"
|
||||
WHITESPACE@6..7 " "
|
||||
NAME@7..10
|
||||
IDENT@7..10 "foo"
|
||||
PARAM_LIST@10..12
|
||||
L_PAREN@10..11 "("
|
||||
R_PAREN@11..12 ")"
|
||||
WHITESPACE@12..13 " "
|
||||
BLOCK_EXPR@13..15
|
||||
STMT_LIST@13..15
|
||||
L_CURLY@13..14 "{"
|
||||
R_CURLY@14..15 "}"
|
||||
WHITESPACE@15..16 "\n"
|
||||
error 2..2: expected a name
|
||||
error 2..2: expected function arguments
|
||||
error 2..2: expected a block
|
3
crates/parser/test_data/parser/err/0020_fn_recover.rs
Normal file
3
crates/parser/test_data/parser/err/0020_fn_recover.rs
Normal file
|
@ -0,0 +1,3 @@
|
|||
fn
|
||||
|
||||
fn foo() {}
|
21
crates/parser/test_data/parser/err/0020_fn_recover.txt
Normal file
21
crates/parser/test_data/parser/err/0020_fn_recover.txt
Normal file
|
@ -0,0 +1,21 @@
|
|||
SOURCE_FILE
|
||||
FN
|
||||
FN_KW "fn"
|
||||
WHITESPACE "\n\n"
|
||||
FN
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "foo"
|
||||
PARAM_LIST
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n"
|
||||
error 2: expected a name
|
||||
error 2: expected function arguments
|
||||
error 2: expected a block
|
|
@ -0,0 +1,34 @@
|
|||
SOURCE_FILE@0..22
|
||||
FN@0..21
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..6
|
||||
IDENT@3..6 "foo"
|
||||
PARAM_LIST@6..17
|
||||
L_PAREN@6..7 "("
|
||||
PARAM@7..13
|
||||
IDENT_PAT@7..8
|
||||
NAME@7..8
|
||||
IDENT@7..8 "x"
|
||||
COLON@8..9 ":"
|
||||
WHITESPACE@9..10 " "
|
||||
PATH_TYPE@10..13
|
||||
PATH@10..13
|
||||
PATH_SEGMENT@10..13
|
||||
NAME_REF@10..13
|
||||
IDENT@10..13 "i32"
|
||||
COMMA@13..14 ","
|
||||
WHITESPACE@14..15 " "
|
||||
PARAM@15..16
|
||||
IDENT_PAT@15..16
|
||||
NAME@15..16
|
||||
IDENT@15..16 "y"
|
||||
R_PAREN@16..17 ")"
|
||||
WHITESPACE@17..18 " "
|
||||
BLOCK_EXPR@18..21
|
||||
STMT_LIST@18..21
|
||||
L_CURLY@18..19 "{"
|
||||
WHITESPACE@19..20 "\n"
|
||||
R_CURLY@20..21 "}"
|
||||
WHITESPACE@21..22 "\n"
|
||||
error 16..16: missing type for function parameter
|
|
@ -0,0 +1,2 @@
|
|||
fn foo(x: i32, y) {
|
||||
}
|
34
crates/parser/test_data/parser/err/0021_incomplete_param.txt
Normal file
34
crates/parser/test_data/parser/err/0021_incomplete_param.txt
Normal file
|
@ -0,0 +1,34 @@
|
|||
SOURCE_FILE
|
||||
FN
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "foo"
|
||||
PARAM_LIST
|
||||
L_PAREN "("
|
||||
PARAM
|
||||
IDENT_PAT
|
||||
NAME
|
||||
IDENT "x"
|
||||
COLON ":"
|
||||
WHITESPACE " "
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "i32"
|
||||
COMMA ","
|
||||
WHITESPACE " "
|
||||
PARAM
|
||||
IDENT_PAT
|
||||
NAME
|
||||
IDENT "y"
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n"
|
||||
error 16: missing type for function parameter
|
171
crates/parser/test_data/parser/err/0022_bad_exprs.rast
Normal file
171
crates/parser/test_data/parser/err/0022_bad_exprs.rast
Normal file
|
@ -0,0 +1,171 @@
|
|||
SOURCE_FILE@0..112
|
||||
FN@0..33
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..4
|
||||
IDENT@3..4 "a"
|
||||
PARAM_LIST@4..6
|
||||
L_PAREN@4..5 "("
|
||||
R_PAREN@5..6 ")"
|
||||
WHITESPACE@6..7 " "
|
||||
BLOCK_EXPR@7..33
|
||||
STMT_LIST@7..33
|
||||
L_CURLY@7..8 "{"
|
||||
WHITESPACE@8..9 " "
|
||||
EXPR_STMT@9..17
|
||||
ARRAY_EXPR@9..17
|
||||
L_BRACK@9..10 "["
|
||||
LITERAL@10..11
|
||||
INT_NUMBER@10..11 "1"
|
||||
COMMA@11..12 ","
|
||||
WHITESPACE@12..13 " "
|
||||
LITERAL@13..14
|
||||
INT_NUMBER@13..14 "2"
|
||||
COMMA@14..15 ","
|
||||
WHITESPACE@15..16 " "
|
||||
ERROR@16..17
|
||||
AT@16..17 "@"
|
||||
ERROR@17..18
|
||||
COMMA@17..18 ","
|
||||
WHITESPACE@18..19 " "
|
||||
STRUCT@19..26
|
||||
STRUCT_KW@19..25 "struct"
|
||||
ERROR@25..26
|
||||
COMMA@25..26 ","
|
||||
WHITESPACE@26..27 " "
|
||||
LET_STMT@27..31
|
||||
LET_KW@27..30 "let"
|
||||
ERROR@30..31
|
||||
R_BRACK@30..31 "]"
|
||||
WHITESPACE@31..32 " "
|
||||
R_CURLY@32..33 "}"
|
||||
WHITESPACE@33..34 "\n"
|
||||
FN@34..68
|
||||
FN_KW@34..36 "fn"
|
||||
WHITESPACE@36..37 " "
|
||||
NAME@37..38
|
||||
IDENT@37..38 "b"
|
||||
PARAM_LIST@38..40
|
||||
L_PAREN@38..39 "("
|
||||
R_PAREN@39..40 ")"
|
||||
WHITESPACE@40..41 " "
|
||||
BLOCK_EXPR@41..68
|
||||
STMT_LIST@41..68
|
||||
L_CURLY@41..42 "{"
|
||||
WHITESPACE@42..43 " "
|
||||
EXPR_STMT@43..54
|
||||
CALL_EXPR@43..54
|
||||
PATH_EXPR@43..46
|
||||
PATH@43..46
|
||||
PATH_SEGMENT@43..46
|
||||
NAME_REF@43..46
|
||||
IDENT@43..46 "foo"
|
||||
ARG_LIST@46..54
|
||||
L_PAREN@46..47 "("
|
||||
LITERAL@47..48
|
||||
INT_NUMBER@47..48 "1"
|
||||
COMMA@48..49 ","
|
||||
WHITESPACE@49..50 " "
|
||||
LITERAL@50..51
|
||||
INT_NUMBER@50..51 "2"
|
||||
COMMA@51..52 ","
|
||||
WHITESPACE@52..53 " "
|
||||
ERROR@53..54
|
||||
AT@53..54 "@"
|
||||
ERROR@54..55
|
||||
COMMA@54..55 ","
|
||||
WHITESPACE@55..56 " "
|
||||
IMPL@56..60
|
||||
IMPL_KW@56..60 "impl"
|
||||
ERROR@60..61
|
||||
COMMA@60..61 ","
|
||||
WHITESPACE@61..62 " "
|
||||
LET_STMT@62..65
|
||||
LET_KW@62..65 "let"
|
||||
ERROR@65..66
|
||||
R_PAREN@65..66 ")"
|
||||
WHITESPACE@66..67 " "
|
||||
R_CURLY@67..68 "}"
|
||||
WHITESPACE@68..69 "\n"
|
||||
FN@69..111
|
||||
FN_KW@69..71 "fn"
|
||||
WHITESPACE@71..72 " "
|
||||
NAME@72..73
|
||||
IDENT@72..73 "c"
|
||||
PARAM_LIST@73..75
|
||||
L_PAREN@73..74 "("
|
||||
R_PAREN@74..75 ")"
|
||||
WHITESPACE@75..76 " "
|
||||
BLOCK_EXPR@76..111
|
||||
STMT_LIST@76..111
|
||||
L_CURLY@76..77 "{"
|
||||
WHITESPACE@77..78 " "
|
||||
EXPR_STMT@78..93
|
||||
METHOD_CALL_EXPR@78..93
|
||||
PATH_EXPR@78..81
|
||||
PATH@78..81
|
||||
PATH_SEGMENT@78..81
|
||||
NAME_REF@78..81
|
||||
IDENT@78..81 "foo"
|
||||
DOT@81..82 "."
|
||||
NAME_REF@82..85
|
||||
IDENT@82..85 "bar"
|
||||
ARG_LIST@85..93
|
||||
L_PAREN@85..86 "("
|
||||
LITERAL@86..87
|
||||
INT_NUMBER@86..87 "1"
|
||||
COMMA@87..88 ","
|
||||
WHITESPACE@88..89 " "
|
||||
LITERAL@89..90
|
||||
INT_NUMBER@89..90 "2"
|
||||
COMMA@90..91 ","
|
||||
WHITESPACE@91..92 " "
|
||||
ERROR@92..93
|
||||
AT@92..93 "@"
|
||||
ERROR@93..94
|
||||
COMMA@93..94 ","
|
||||
WHITESPACE@94..95 " "
|
||||
ERROR@95..96
|
||||
R_BRACK@95..96 "]"
|
||||
ERROR@96..97
|
||||
COMMA@96..97 ","
|
||||
WHITESPACE@97..98 " "
|
||||
TRAIT@98..104
|
||||
TRAIT_KW@98..103 "trait"
|
||||
ERROR@103..104
|
||||
COMMA@103..104 ","
|
||||
WHITESPACE@104..105 " "
|
||||
LET_STMT@105..108
|
||||
LET_KW@105..108 "let"
|
||||
ERROR@108..109
|
||||
R_PAREN@108..109 ")"
|
||||
WHITESPACE@109..110 " "
|
||||
R_CURLY@110..111 "}"
|
||||
WHITESPACE@111..112 "\n"
|
||||
error 16..16: expected expression
|
||||
error 17..17: expected R_BRACK
|
||||
error 17..17: expected SEMICOLON
|
||||
error 17..17: expected expression
|
||||
error 25..25: expected a name
|
||||
error 26..26: expected `;`, `{`, or `(`
|
||||
error 30..30: expected pattern
|
||||
error 31..31: expected SEMICOLON
|
||||
error 53..53: expected expression
|
||||
error 54..54: expected SEMICOLON
|
||||
error 54..54: expected expression
|
||||
error 60..60: expected type
|
||||
error 60..60: expected `{`
|
||||
error 60..60: expected expression
|
||||
error 65..65: expected pattern
|
||||
error 65..65: expected SEMICOLON
|
||||
error 65..65: expected expression
|
||||
error 92..92: expected expression
|
||||
error 93..93: expected SEMICOLON
|
||||
error 93..93: expected expression
|
||||
error 95..95: expected expression
|
||||
error 96..96: expected expression
|
||||
error 103..103: expected a name
|
||||
error 104..104: expected `{`
|
||||
error 108..108: expected pattern
|
||||
error 108..108: expected SEMICOLON
|
||||
error 108..108: expected expression
|
3
crates/parser/test_data/parser/err/0022_bad_exprs.rs
Normal file
3
crates/parser/test_data/parser/err/0022_bad_exprs.rs
Normal file
|
@ -0,0 +1,3 @@
|
|||
fn a() { [1, 2, @, struct, let] }
|
||||
fn b() { foo(1, 2, @, impl, let) }
|
||||
fn c() { foo.bar(1, 2, @, ], trait, let) }
|
171
crates/parser/test_data/parser/err/0022_bad_exprs.txt
Normal file
171
crates/parser/test_data/parser/err/0022_bad_exprs.txt
Normal file
|
@ -0,0 +1,171 @@
|
|||
SOURCE_FILE
|
||||
FN
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "a"
|
||||
PARAM_LIST
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE " "
|
||||
EXPR_STMT
|
||||
ARRAY_EXPR
|
||||
L_BRACK "["
|
||||
LITERAL
|
||||
INT_NUMBER "1"
|
||||
COMMA ","
|
||||
WHITESPACE " "
|
||||
LITERAL
|
||||
INT_NUMBER "2"
|
||||
COMMA ","
|
||||
WHITESPACE " "
|
||||
ERROR
|
||||
AT "@"
|
||||
ERROR
|
||||
COMMA ","
|
||||
WHITESPACE " "
|
||||
STRUCT
|
||||
STRUCT_KW "struct"
|
||||
ERROR
|
||||
COMMA ","
|
||||
WHITESPACE " "
|
||||
LET_STMT
|
||||
LET_KW "let"
|
||||
ERROR
|
||||
R_BRACK "]"
|
||||
WHITESPACE " "
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n"
|
||||
FN
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "b"
|
||||
PARAM_LIST
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE " "
|
||||
EXPR_STMT
|
||||
CALL_EXPR
|
||||
PATH_EXPR
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "foo"
|
||||
ARG_LIST
|
||||
L_PAREN "("
|
||||
LITERAL
|
||||
INT_NUMBER "1"
|
||||
COMMA ","
|
||||
WHITESPACE " "
|
||||
LITERAL
|
||||
INT_NUMBER "2"
|
||||
COMMA ","
|
||||
WHITESPACE " "
|
||||
ERROR
|
||||
AT "@"
|
||||
ERROR
|
||||
COMMA ","
|
||||
WHITESPACE " "
|
||||
IMPL
|
||||
IMPL_KW "impl"
|
||||
ERROR
|
||||
COMMA ","
|
||||
WHITESPACE " "
|
||||
LET_STMT
|
||||
LET_KW "let"
|
||||
ERROR
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n"
|
||||
FN
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "c"
|
||||
PARAM_LIST
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE " "
|
||||
EXPR_STMT
|
||||
METHOD_CALL_EXPR
|
||||
PATH_EXPR
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "foo"
|
||||
DOT "."
|
||||
NAME_REF
|
||||
IDENT "bar"
|
||||
ARG_LIST
|
||||
L_PAREN "("
|
||||
LITERAL
|
||||
INT_NUMBER "1"
|
||||
COMMA ","
|
||||
WHITESPACE " "
|
||||
LITERAL
|
||||
INT_NUMBER "2"
|
||||
COMMA ","
|
||||
WHITESPACE " "
|
||||
ERROR
|
||||
AT "@"
|
||||
ERROR
|
||||
COMMA ","
|
||||
WHITESPACE " "
|
||||
ERROR
|
||||
R_BRACK "]"
|
||||
ERROR
|
||||
COMMA ","
|
||||
WHITESPACE " "
|
||||
TRAIT
|
||||
TRAIT_KW "trait"
|
||||
ERROR
|
||||
COMMA ","
|
||||
WHITESPACE " "
|
||||
LET_STMT
|
||||
LET_KW "let"
|
||||
ERROR
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n"
|
||||
error 16: expected expression
|
||||
error 17: expected R_BRACK
|
||||
error 17: expected SEMICOLON
|
||||
error 17: expected expression
|
||||
error 25: expected a name
|
||||
error 26: expected `;`, `{`, or `(`
|
||||
error 30: expected pattern
|
||||
error 31: expected SEMICOLON
|
||||
error 53: expected expression
|
||||
error 54: expected SEMICOLON
|
||||
error 54: expected expression
|
||||
error 60: expected type
|
||||
error 60: expected `{`
|
||||
error 60: expected expression
|
||||
error 65: expected pattern
|
||||
error 65: expected SEMICOLON
|
||||
error 65: expected expression
|
||||
error 92: expected expression
|
||||
error 93: expected SEMICOLON
|
||||
error 93: expected expression
|
||||
error 95: expected expression
|
||||
error 96: expected expression
|
||||
error 103: expected a name
|
||||
error 104: expected `{`
|
||||
error 108: expected pattern
|
||||
error 108: expected SEMICOLON
|
||||
error 108: expected expression
|
|
@ -0,0 +1,44 @@
|
|||
SOURCE_FILE@0..94
|
||||
FN@0..55
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..7
|
||||
IDENT@3..7 "main"
|
||||
PARAM_LIST@7..9
|
||||
L_PAREN@7..8 "("
|
||||
R_PAREN@8..9 ")"
|
||||
WHITESPACE@9..10 " "
|
||||
BLOCK_EXPR@10..55
|
||||
STMT_LIST@10..55
|
||||
L_CURLY@10..11 "{"
|
||||
WHITESPACE@11..16 "\n "
|
||||
MACRO_CALL@16..49
|
||||
PATH@16..19
|
||||
PATH_SEGMENT@16..19
|
||||
NAME_REF@16..19
|
||||
IDENT@16..19 "foo"
|
||||
BANG@19..20 "!"
|
||||
WHITESPACE@20..21 " "
|
||||
TOKEN_TREE@21..49
|
||||
L_PAREN@21..22 "("
|
||||
WHITESPACE@22..31 "\n "
|
||||
IDENT@31..34 "bar"
|
||||
COMMA@34..35 ","
|
||||
WHITESPACE@35..36 " "
|
||||
STRING@36..41 "\"baz\""
|
||||
COMMA@41..42 ","
|
||||
WHITESPACE@42..43 " "
|
||||
INT_NUMBER@43..44 "1"
|
||||
COMMA@44..45 ","
|
||||
WHITESPACE@45..46 " "
|
||||
FLOAT_NUMBER@46..49 "2.0"
|
||||
WHITESPACE@49..54 "\n "
|
||||
R_CURLY@54..55 "}"
|
||||
WHITESPACE@55..56 " "
|
||||
COMMENT@56..91 "//~ ERROR incorrect c ..."
|
||||
WHITESPACE@91..92 "\n"
|
||||
ERROR@92..93
|
||||
R_CURLY@92..93 "}"
|
||||
WHITESPACE@93..94 "\n"
|
||||
error 49..49: unmatched `}`
|
||||
error 92..92: unmatched `}`
|
|
@ -0,0 +1,5 @@
|
|||
fn main() {
|
||||
foo! (
|
||||
bar, "baz", 1, 2.0
|
||||
} //~ ERROR incorrect close delimiter
|
||||
}
|
44
crates/parser/test_data/parser/err/0023_mismatched_paren.txt
Normal file
44
crates/parser/test_data/parser/err/0023_mismatched_paren.txt
Normal file
|
@ -0,0 +1,44 @@
|
|||
SOURCE_FILE
|
||||
FN
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "main"
|
||||
PARAM_LIST
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
MACRO_CALL
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "foo"
|
||||
BANG "!"
|
||||
WHITESPACE " "
|
||||
TOKEN_TREE
|
||||
L_PAREN "("
|
||||
WHITESPACE "\n "
|
||||
IDENT "bar"
|
||||
COMMA ","
|
||||
WHITESPACE " "
|
||||
STRING "\"baz\""
|
||||
COMMA ","
|
||||
WHITESPACE " "
|
||||
INT_NUMBER "1"
|
||||
COMMA ","
|
||||
WHITESPACE " "
|
||||
FLOAT_NUMBER "2.0"
|
||||
WHITESPACE "\n "
|
||||
R_CURLY "}"
|
||||
WHITESPACE " "
|
||||
COMMENT "//~ ERROR incorrect close delimiter"
|
||||
WHITESPACE "\n"
|
||||
ERROR
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n"
|
||||
error 49: unmatched `}`
|
||||
error 92: unmatched `}`
|
321
crates/parser/test_data/parser/err/0024_many_type_parens.rast
Normal file
321
crates/parser/test_data/parser/err/0024_many_type_parens.rast
Normal file
|
@ -0,0 +1,321 @@
|
|||
SOURCE_FILE@0..240
|
||||
FN@0..53
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..4
|
||||
IDENT@3..4 "f"
|
||||
GENERIC_PARAM_LIST@4..48
|
||||
L_ANGLE@4..5 "<"
|
||||
TYPE_PARAM@5..47
|
||||
NAME@5..6
|
||||
IDENT@5..6 "T"
|
||||
COLON@6..7 ":"
|
||||
WHITESPACE@7..8 " "
|
||||
TYPE_BOUND_LIST@8..47
|
||||
TYPE_BOUND@8..14
|
||||
L_PAREN@8..9 "("
|
||||
PATH_TYPE@9..13
|
||||
PATH@9..13
|
||||
PATH_SEGMENT@9..13
|
||||
NAME_REF@9..13
|
||||
IDENT@9..13 "Copy"
|
||||
R_PAREN@13..14 ")"
|
||||
WHITESPACE@14..15 " "
|
||||
PLUS@15..16 "+"
|
||||
WHITESPACE@16..17 " "
|
||||
TYPE_BOUND@17..25
|
||||
L_PAREN@17..18 "("
|
||||
QUESTION@18..19 "?"
|
||||
PATH_TYPE@19..24
|
||||
PATH@19..24
|
||||
PATH_SEGMENT@19..24
|
||||
NAME_REF@19..24
|
||||
IDENT@19..24 "Sized"
|
||||
R_PAREN@24..25 ")"
|
||||
WHITESPACE@25..26 " "
|
||||
PLUS@26..27 "+"
|
||||
WHITESPACE@27..28 " "
|
||||
TYPE_BOUND@28..47
|
||||
L_PAREN@28..29 "("
|
||||
FOR_TYPE@29..46
|
||||
FOR_KW@29..32 "for"
|
||||
GENERIC_PARAM_LIST@32..36
|
||||
L_ANGLE@32..33 "<"
|
||||
LIFETIME_PARAM@33..35
|
||||
LIFETIME@33..35
|
||||
LIFETIME_IDENT@33..35 "'a"
|
||||
R_ANGLE@35..36 ">"
|
||||
WHITESPACE@36..37 " "
|
||||
PATH_TYPE@37..46
|
||||
PATH@37..46
|
||||
PATH_SEGMENT@37..46
|
||||
NAME_REF@37..42
|
||||
IDENT@37..42 "Trait"
|
||||
GENERIC_ARG_LIST@42..46
|
||||
L_ANGLE@42..43 "<"
|
||||
LIFETIME_ARG@43..45
|
||||
LIFETIME@43..45
|
||||
LIFETIME_IDENT@43..45 "'a"
|
||||
R_ANGLE@45..46 ">"
|
||||
R_PAREN@46..47 ")"
|
||||
R_ANGLE@47..48 ">"
|
||||
PARAM_LIST@48..50
|
||||
L_PAREN@48..49 "("
|
||||
R_PAREN@49..50 ")"
|
||||
WHITESPACE@50..51 " "
|
||||
BLOCK_EXPR@51..53
|
||||
STMT_LIST@51..53
|
||||
L_CURLY@51..52 "{"
|
||||
R_CURLY@52..53 "}"
|
||||
WHITESPACE@53..55 "\n\n"
|
||||
FN@55..239
|
||||
FN_KW@55..57 "fn"
|
||||
WHITESPACE@57..58 " "
|
||||
NAME@58..62
|
||||
IDENT@58..62 "main"
|
||||
PARAM_LIST@62..64
|
||||
L_PAREN@62..63 "("
|
||||
R_PAREN@63..64 ")"
|
||||
WHITESPACE@64..65 " "
|
||||
BLOCK_EXPR@65..239
|
||||
STMT_LIST@65..239
|
||||
L_CURLY@65..66 "{"
|
||||
WHITESPACE@66..71 "\n "
|
||||
LET_STMT@71..121
|
||||
LET_KW@71..74 "let"
|
||||
WHITESPACE@74..75 " "
|
||||
WILDCARD_PAT@75..76
|
||||
UNDERSCORE@75..76 "_"
|
||||
COLON@76..77 ":"
|
||||
WHITESPACE@77..78 " "
|
||||
DYN_TRAIT_TYPE@78..121
|
||||
TYPE_BOUND_LIST@78..121
|
||||
TYPE_BOUND@78..88
|
||||
PATH_TYPE@78..88
|
||||
PATH@78..88
|
||||
PATH_SEGMENT@78..88
|
||||
NAME_REF@78..81
|
||||
IDENT@78..81 "Box"
|
||||
GENERIC_ARG_LIST@81..88
|
||||
L_ANGLE@81..82 "<"
|
||||
TYPE_ARG@82..88
|
||||
PAREN_TYPE@82..88
|
||||
L_PAREN@82..83 "("
|
||||
PATH_TYPE@83..87
|
||||
PATH@83..87
|
||||
PATH_SEGMENT@83..87
|
||||
NAME_REF@83..87
|
||||
IDENT@83..87 "Copy"
|
||||
R_PAREN@87..88 ")"
|
||||
WHITESPACE@88..89 " "
|
||||
PLUS@89..90 "+"
|
||||
WHITESPACE@90..91 " "
|
||||
TYPE_BOUND@91..99
|
||||
L_PAREN@91..92 "("
|
||||
QUESTION@92..93 "?"
|
||||
PATH_TYPE@93..98
|
||||
PATH@93..98
|
||||
PATH_SEGMENT@93..98
|
||||
NAME_REF@93..98
|
||||
IDENT@93..98 "Sized"
|
||||
R_PAREN@98..99 ")"
|
||||
WHITESPACE@99..100 " "
|
||||
PLUS@100..101 "+"
|
||||
WHITESPACE@101..102 " "
|
||||
TYPE_BOUND@102..121
|
||||
L_PAREN@102..103 "("
|
||||
FOR_TYPE@103..120
|
||||
FOR_KW@103..106 "for"
|
||||
GENERIC_PARAM_LIST@106..110
|
||||
L_ANGLE@106..107 "<"
|
||||
LIFETIME_PARAM@107..109
|
||||
LIFETIME@107..109
|
||||
LIFETIME_IDENT@107..109 "'a"
|
||||
R_ANGLE@109..110 ">"
|
||||
WHITESPACE@110..111 " "
|
||||
PATH_TYPE@111..120
|
||||
PATH@111..120
|
||||
PATH_SEGMENT@111..120
|
||||
NAME_REF@111..116
|
||||
IDENT@111..116 "Trait"
|
||||
GENERIC_ARG_LIST@116..120
|
||||
L_ANGLE@116..117 "<"
|
||||
LIFETIME_ARG@117..119
|
||||
LIFETIME@117..119
|
||||
LIFETIME_IDENT@117..119 "'a"
|
||||
R_ANGLE@119..120 ">"
|
||||
R_PAREN@120..121 ")"
|
||||
ERROR@121..122
|
||||
R_ANGLE@121..122 ">"
|
||||
SEMICOLON@122..123 ";"
|
||||
WHITESPACE@123..128 "\n "
|
||||
LET_STMT@128..141
|
||||
LET_KW@128..131 "let"
|
||||
WHITESPACE@131..132 " "
|
||||
WILDCARD_PAT@132..133
|
||||
UNDERSCORE@132..133 "_"
|
||||
COLON@133..134 ":"
|
||||
WHITESPACE@134..135 " "
|
||||
PATH_TYPE@135..141
|
||||
PATH@135..141
|
||||
PATH_SEGMENT@135..141
|
||||
NAME_REF@135..138
|
||||
IDENT@135..138 "Box"
|
||||
GENERIC_ARG_LIST@138..141
|
||||
L_ANGLE@138..139 "<"
|
||||
TYPE_ARG@139..141
|
||||
PAREN_TYPE@139..141
|
||||
L_PAREN@139..140 "("
|
||||
ERROR@140..141
|
||||
QUESTION@140..141 "?"
|
||||
EXPR_STMT@141..146
|
||||
PATH_EXPR@141..146
|
||||
PATH@141..146
|
||||
PATH_SEGMENT@141..146
|
||||
NAME_REF@141..146
|
||||
IDENT@141..146 "Sized"
|
||||
ERROR@146..147
|
||||
R_PAREN@146..147 ")"
|
||||
WHITESPACE@147..148 " "
|
||||
ERROR@148..149
|
||||
PLUS@148..149 "+"
|
||||
WHITESPACE@149..150 " "
|
||||
EXPR_STMT@150..180
|
||||
TUPLE_EXPR@150..180
|
||||
L_PAREN@150..151 "("
|
||||
FOR_EXPR@151..180
|
||||
FOR_KW@151..154 "for"
|
||||
PATH_PAT@154..158
|
||||
PATH@154..158
|
||||
PATH_SEGMENT@154..158
|
||||
L_ANGLE@154..155 "<"
|
||||
ERROR@155..157
|
||||
LIFETIME_IDENT@155..157 "'a"
|
||||
R_ANGLE@157..158 ">"
|
||||
WHITESPACE@158..159 " "
|
||||
BIN_EXPR@159..180
|
||||
BIN_EXPR@159..178
|
||||
BIN_EXPR@159..169
|
||||
BIN_EXPR@159..167
|
||||
PATH_EXPR@159..164
|
||||
PATH@159..164
|
||||
PATH_SEGMENT@159..164
|
||||
NAME_REF@159..164
|
||||
IDENT@159..164 "Trait"
|
||||
L_ANGLE@164..165 "<"
|
||||
ERROR@165..167
|
||||
LIFETIME_IDENT@165..167 "'a"
|
||||
R_ANGLE@167..168 ">"
|
||||
ERROR@168..169
|
||||
R_PAREN@168..169 ")"
|
||||
WHITESPACE@169..170 " "
|
||||
PLUS@170..171 "+"
|
||||
WHITESPACE@171..172 " "
|
||||
PAREN_EXPR@172..178
|
||||
L_PAREN@172..173 "("
|
||||
PATH_EXPR@173..177
|
||||
PATH@173..177
|
||||
PATH_SEGMENT@173..177
|
||||
NAME_REF@173..177
|
||||
IDENT@173..177 "Copy"
|
||||
R_PAREN@177..178 ")"
|
||||
R_ANGLE@178..179 ">"
|
||||
ERROR@179..180
|
||||
SEMICOLON@179..180 ";"
|
||||
WHITESPACE@180..185 "\n "
|
||||
LET_STMT@185..235
|
||||
LET_KW@185..188 "let"
|
||||
WHITESPACE@188..189 " "
|
||||
WILDCARD_PAT@189..190
|
||||
UNDERSCORE@189..190 "_"
|
||||
COLON@190..191 ":"
|
||||
WHITESPACE@191..192 " "
|
||||
DYN_TRAIT_TYPE@192..235
|
||||
TYPE_BOUND_LIST@192..235
|
||||
TYPE_BOUND@192..215
|
||||
PATH_TYPE@192..215
|
||||
PATH@192..215
|
||||
PATH_SEGMENT@192..215
|
||||
NAME_REF@192..195
|
||||
IDENT@192..195 "Box"
|
||||
GENERIC_ARG_LIST@195..215
|
||||
L_ANGLE@195..196 "<"
|
||||
TYPE_ARG@196..215
|
||||
PAREN_TYPE@196..215
|
||||
L_PAREN@196..197 "("
|
||||
FOR_TYPE@197..214
|
||||
FOR_KW@197..200 "for"
|
||||
GENERIC_PARAM_LIST@200..204
|
||||
L_ANGLE@200..201 "<"
|
||||
LIFETIME_PARAM@201..203
|
||||
LIFETIME@201..203
|
||||
LIFETIME_IDENT@201..203 "'a"
|
||||
R_ANGLE@203..204 ">"
|
||||
WHITESPACE@204..205 " "
|
||||
PATH_TYPE@205..214
|
||||
PATH@205..214
|
||||
PATH_SEGMENT@205..214
|
||||
NAME_REF@205..210
|
||||
IDENT@205..210 "Trait"
|
||||
GENERIC_ARG_LIST@210..214
|
||||
L_ANGLE@210..211 "<"
|
||||
LIFETIME_ARG@211..213
|
||||
LIFETIME@211..213
|
||||
LIFETIME_IDENT@211..213 "'a"
|
||||
R_ANGLE@213..214 ">"
|
||||
R_PAREN@214..215 ")"
|
||||
WHITESPACE@215..216 " "
|
||||
PLUS@216..217 "+"
|
||||
WHITESPACE@217..218 " "
|
||||
TYPE_BOUND@218..224
|
||||
L_PAREN@218..219 "("
|
||||
PATH_TYPE@219..223
|
||||
PATH@219..223
|
||||
PATH_SEGMENT@219..223
|
||||
NAME_REF@219..223
|
||||
IDENT@219..223 "Copy"
|
||||
R_PAREN@223..224 ")"
|
||||
WHITESPACE@224..225 " "
|
||||
PLUS@225..226 "+"
|
||||
WHITESPACE@226..227 " "
|
||||
TYPE_BOUND@227..235
|
||||
L_PAREN@227..228 "("
|
||||
QUESTION@228..229 "?"
|
||||
PATH_TYPE@229..234
|
||||
PATH@229..234
|
||||
PATH_SEGMENT@229..234
|
||||
NAME_REF@229..234
|
||||
IDENT@229..234 "Sized"
|
||||
R_PAREN@234..235 ")"
|
||||
ERROR@235..236
|
||||
R_ANGLE@235..236 ">"
|
||||
SEMICOLON@236..237 ";"
|
||||
WHITESPACE@237..238 "\n"
|
||||
R_CURLY@238..239 "}"
|
||||
WHITESPACE@239..240 "\n"
|
||||
error 88..88: expected COMMA
|
||||
error 88..88: expected R_ANGLE
|
||||
error 121..121: expected SEMICOLON
|
||||
error 121..121: expected expression
|
||||
error 140..140: expected type
|
||||
error 141..141: expected R_PAREN
|
||||
error 141..141: expected COMMA
|
||||
error 141..141: expected R_ANGLE
|
||||
error 141..141: expected SEMICOLON
|
||||
error 146..146: expected SEMICOLON
|
||||
error 146..146: expected expression
|
||||
error 148..148: expected expression
|
||||
error 155..155: expected type
|
||||
error 158..158: expected IN_KW
|
||||
error 165..165: expected expression
|
||||
error 168..168: expected expression
|
||||
error 179..179: expected expression
|
||||
error 180..180: expected a block
|
||||
error 180..180: expected COMMA
|
||||
error 180..180: expected expression
|
||||
error 180..180: expected R_PAREN
|
||||
error 180..180: expected SEMICOLON
|
||||
error 215..215: expected COMMA
|
||||
error 215..215: expected R_ANGLE
|
||||
error 235..235: expected SEMICOLON
|
||||
error 235..235: expected expression
|
|
@ -0,0 +1,7 @@
|
|||
fn f<T: (Copy) + (?Sized) + (for<'a> Trait<'a>)>() {}
|
||||
|
||||
fn main() {
|
||||
let _: Box<(Copy) + (?Sized) + (for<'a> Trait<'a>)>;
|
||||
let _: Box<(?Sized) + (for<'a> Trait<'a>) + (Copy)>;
|
||||
let _: Box<(for<'a> Trait<'a>) + (Copy) + (?Sized)>;
|
||||
}
|
321
crates/parser/test_data/parser/err/0024_many_type_parens.txt
Normal file
321
crates/parser/test_data/parser/err/0024_many_type_parens.txt
Normal file
|
@ -0,0 +1,321 @@
|
|||
SOURCE_FILE
|
||||
FN
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "f"
|
||||
GENERIC_PARAM_LIST
|
||||
L_ANGLE "<"
|
||||
TYPE_PARAM
|
||||
NAME
|
||||
IDENT "T"
|
||||
COLON ":"
|
||||
WHITESPACE " "
|
||||
TYPE_BOUND_LIST
|
||||
TYPE_BOUND
|
||||
L_PAREN "("
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "Copy"
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
PLUS "+"
|
||||
WHITESPACE " "
|
||||
TYPE_BOUND
|
||||
L_PAREN "("
|
||||
QUESTION "?"
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "Sized"
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
PLUS "+"
|
||||
WHITESPACE " "
|
||||
TYPE_BOUND
|
||||
L_PAREN "("
|
||||
FOR_TYPE
|
||||
FOR_KW "for"
|
||||
GENERIC_PARAM_LIST
|
||||
L_ANGLE "<"
|
||||
LIFETIME_PARAM
|
||||
LIFETIME
|
||||
LIFETIME_IDENT "'a"
|
||||
R_ANGLE ">"
|
||||
WHITESPACE " "
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "Trait"
|
||||
GENERIC_ARG_LIST
|
||||
L_ANGLE "<"
|
||||
LIFETIME_ARG
|
||||
LIFETIME
|
||||
LIFETIME_IDENT "'a"
|
||||
R_ANGLE ">"
|
||||
R_PAREN ")"
|
||||
R_ANGLE ">"
|
||||
PARAM_LIST
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n\n"
|
||||
FN
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "main"
|
||||
PARAM_LIST
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
LET_STMT
|
||||
LET_KW "let"
|
||||
WHITESPACE " "
|
||||
WILDCARD_PAT
|
||||
UNDERSCORE "_"
|
||||
COLON ":"
|
||||
WHITESPACE " "
|
||||
DYN_TRAIT_TYPE
|
||||
TYPE_BOUND_LIST
|
||||
TYPE_BOUND
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "Box"
|
||||
GENERIC_ARG_LIST
|
||||
L_ANGLE "<"
|
||||
TYPE_ARG
|
||||
PAREN_TYPE
|
||||
L_PAREN "("
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "Copy"
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
PLUS "+"
|
||||
WHITESPACE " "
|
||||
TYPE_BOUND
|
||||
L_PAREN "("
|
||||
QUESTION "?"
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "Sized"
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
PLUS "+"
|
||||
WHITESPACE " "
|
||||
TYPE_BOUND
|
||||
L_PAREN "("
|
||||
FOR_TYPE
|
||||
FOR_KW "for"
|
||||
GENERIC_PARAM_LIST
|
||||
L_ANGLE "<"
|
||||
LIFETIME_PARAM
|
||||
LIFETIME
|
||||
LIFETIME_IDENT "'a"
|
||||
R_ANGLE ">"
|
||||
WHITESPACE " "
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "Trait"
|
||||
GENERIC_ARG_LIST
|
||||
L_ANGLE "<"
|
||||
LIFETIME_ARG
|
||||
LIFETIME
|
||||
LIFETIME_IDENT "'a"
|
||||
R_ANGLE ">"
|
||||
R_PAREN ")"
|
||||
ERROR
|
||||
R_ANGLE ">"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\n "
|
||||
LET_STMT
|
||||
LET_KW "let"
|
||||
WHITESPACE " "
|
||||
WILDCARD_PAT
|
||||
UNDERSCORE "_"
|
||||
COLON ":"
|
||||
WHITESPACE " "
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "Box"
|
||||
GENERIC_ARG_LIST
|
||||
L_ANGLE "<"
|
||||
TYPE_ARG
|
||||
PAREN_TYPE
|
||||
L_PAREN "("
|
||||
ERROR
|
||||
QUESTION "?"
|
||||
EXPR_STMT
|
||||
PATH_EXPR
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "Sized"
|
||||
ERROR
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
ERROR
|
||||
PLUS "+"
|
||||
WHITESPACE " "
|
||||
EXPR_STMT
|
||||
TUPLE_EXPR
|
||||
L_PAREN "("
|
||||
FOR_EXPR
|
||||
FOR_KW "for"
|
||||
PATH_PAT
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
L_ANGLE "<"
|
||||
ERROR
|
||||
LIFETIME_IDENT "'a"
|
||||
R_ANGLE ">"
|
||||
WHITESPACE " "
|
||||
BIN_EXPR
|
||||
BIN_EXPR
|
||||
BIN_EXPR
|
||||
BIN_EXPR
|
||||
PATH_EXPR
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "Trait"
|
||||
L_ANGLE "<"
|
||||
ERROR
|
||||
LIFETIME_IDENT "'a"
|
||||
R_ANGLE ">"
|
||||
ERROR
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
PLUS "+"
|
||||
WHITESPACE " "
|
||||
PAREN_EXPR
|
||||
L_PAREN "("
|
||||
PATH_EXPR
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "Copy"
|
||||
R_PAREN ")"
|
||||
R_ANGLE ">"
|
||||
ERROR
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\n "
|
||||
LET_STMT
|
||||
LET_KW "let"
|
||||
WHITESPACE " "
|
||||
WILDCARD_PAT
|
||||
UNDERSCORE "_"
|
||||
COLON ":"
|
||||
WHITESPACE " "
|
||||
DYN_TRAIT_TYPE
|
||||
TYPE_BOUND_LIST
|
||||
TYPE_BOUND
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "Box"
|
||||
GENERIC_ARG_LIST
|
||||
L_ANGLE "<"
|
||||
TYPE_ARG
|
||||
PAREN_TYPE
|
||||
L_PAREN "("
|
||||
FOR_TYPE
|
||||
FOR_KW "for"
|
||||
GENERIC_PARAM_LIST
|
||||
L_ANGLE "<"
|
||||
LIFETIME_PARAM
|
||||
LIFETIME
|
||||
LIFETIME_IDENT "'a"
|
||||
R_ANGLE ">"
|
||||
WHITESPACE " "
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "Trait"
|
||||
GENERIC_ARG_LIST
|
||||
L_ANGLE "<"
|
||||
LIFETIME_ARG
|
||||
LIFETIME
|
||||
LIFETIME_IDENT "'a"
|
||||
R_ANGLE ">"
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
PLUS "+"
|
||||
WHITESPACE " "
|
||||
TYPE_BOUND
|
||||
L_PAREN "("
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "Copy"
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
PLUS "+"
|
||||
WHITESPACE " "
|
||||
TYPE_BOUND
|
||||
L_PAREN "("
|
||||
QUESTION "?"
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "Sized"
|
||||
R_PAREN ")"
|
||||
ERROR
|
||||
R_ANGLE ">"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\n"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n"
|
||||
error 88: expected COMMA
|
||||
error 88: expected R_ANGLE
|
||||
error 121: expected SEMICOLON
|
||||
error 121: expected expression
|
||||
error 140: expected type
|
||||
error 141: expected R_PAREN
|
||||
error 141: expected COMMA
|
||||
error 141: expected R_ANGLE
|
||||
error 141: expected SEMICOLON
|
||||
error 146: expected SEMICOLON
|
||||
error 146: expected expression
|
||||
error 148: expected expression
|
||||
error 155: expected type
|
||||
error 158: expected IN_KW
|
||||
error 165: expected expression
|
||||
error 168: expected expression
|
||||
error 179: expected expression
|
||||
error 180: expected a block
|
||||
error 180: expected COMMA
|
||||
error 180: expected expression
|
||||
error 180: expected R_PAREN
|
||||
error 180: expected SEMICOLON
|
||||
error 215: expected COMMA
|
||||
error 215: expected R_ANGLE
|
||||
error 235: expected SEMICOLON
|
||||
error 235: expected expression
|
204
crates/parser/test_data/parser/err/0025_nope.rast
Normal file
204
crates/parser/test_data/parser/err/0025_nope.rast
Normal file
|
@ -0,0 +1,204 @@
|
|||
SOURCE_FILE@0..575
|
||||
FN@0..574
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..7
|
||||
IDENT@3..7 "main"
|
||||
PARAM_LIST@7..9
|
||||
L_PAREN@7..8 "("
|
||||
R_PAREN@8..9 ")"
|
||||
WHITESPACE@9..10 " "
|
||||
BLOCK_EXPR@10..574
|
||||
STMT_LIST@10..574
|
||||
L_CURLY@10..11 "{"
|
||||
WHITESPACE@11..16 "\n "
|
||||
ENUM@16..152
|
||||
ENUM_KW@16..20 "enum"
|
||||
WHITESPACE@20..21 " "
|
||||
NAME@21..25
|
||||
IDENT@21..25 "Test"
|
||||
WHITESPACE@25..26 " "
|
||||
VARIANT_LIST@26..152
|
||||
L_CURLY@26..27 "{"
|
||||
WHITESPACE@27..36 "\n "
|
||||
VARIANT@36..40
|
||||
NAME@36..40
|
||||
IDENT@36..40 "Var1"
|
||||
COMMA@40..41 ","
|
||||
WHITESPACE@41..50 "\n "
|
||||
VARIANT@50..62
|
||||
NAME@50..54
|
||||
IDENT@50..54 "Var2"
|
||||
TUPLE_FIELD_LIST@54..62
|
||||
L_PAREN@54..55 "("
|
||||
TUPLE_FIELD@55..61
|
||||
PATH_TYPE@55..61
|
||||
PATH@55..61
|
||||
PATH_SEGMENT@55..61
|
||||
NAME_REF@55..61
|
||||
IDENT@55..61 "String"
|
||||
R_PAREN@61..62 ")"
|
||||
COMMA@62..63 ","
|
||||
WHITESPACE@63..72 "\n "
|
||||
VARIANT@72..145
|
||||
NAME@72..76
|
||||
IDENT@72..76 "Var3"
|
||||
WHITESPACE@76..77 " "
|
||||
RECORD_FIELD_LIST@77..145
|
||||
L_CURLY@77..78 "{"
|
||||
WHITESPACE@78..91 "\n "
|
||||
RECORD_FIELD@91..95
|
||||
NAME@91..94
|
||||
IDENT@91..94 "abc"
|
||||
COLON@94..95 ":"
|
||||
WHITESPACE@95..96 " "
|
||||
ERROR@96..98
|
||||
L_CURLY@96..97 "{"
|
||||
R_CURLY@97..98 "}"
|
||||
ERROR@98..99
|
||||
COMMA@98..99 ","
|
||||
WHITESPACE@99..100 " "
|
||||
COMMENT@100..135 "//~ ERROR: expected t ..."
|
||||
WHITESPACE@135..144 "\n "
|
||||
R_CURLY@144..145 "}"
|
||||
COMMA@145..146 ","
|
||||
WHITESPACE@146..151 "\n "
|
||||
R_CURLY@151..152 "}"
|
||||
WHITESPACE@152..158 "\n\n "
|
||||
COMMENT@158..171 "// recover..."
|
||||
WHITESPACE@171..176 "\n "
|
||||
LET_STMT@176..186
|
||||
LET_KW@176..179 "let"
|
||||
WHITESPACE@179..180 " "
|
||||
IDENT_PAT@180..181
|
||||
NAME@180..181
|
||||
IDENT@180..181 "a"
|
||||
WHITESPACE@181..182 " "
|
||||
EQ@182..183 "="
|
||||
WHITESPACE@183..184 " "
|
||||
LITERAL@184..185
|
||||
INT_NUMBER@184..185 "1"
|
||||
SEMICOLON@185..186 ";"
|
||||
WHITESPACE@186..191 "\n "
|
||||
ENUM@191..223
|
||||
ENUM_KW@191..195 "enum"
|
||||
WHITESPACE@195..196 " "
|
||||
NAME@196..201
|
||||
IDENT@196..201 "Test2"
|
||||
WHITESPACE@201..202 " "
|
||||
VARIANT_LIST@202..223
|
||||
L_CURLY@202..203 "{"
|
||||
WHITESPACE@203..212 "\n "
|
||||
VARIANT@212..216
|
||||
NAME@212..216
|
||||
IDENT@212..216 "Fine"
|
||||
COMMA@216..217 ","
|
||||
WHITESPACE@217..222 "\n "
|
||||
R_CURLY@222..223 "}"
|
||||
WHITESPACE@223..229 "\n\n "
|
||||
ENUM@229..300
|
||||
ENUM_KW@229..233 "enum"
|
||||
WHITESPACE@233..234 " "
|
||||
NAME@234..239
|
||||
IDENT@234..239 "Test3"
|
||||
WHITESPACE@239..240 " "
|
||||
VARIANT_LIST@240..300
|
||||
L_CURLY@240..241 "{"
|
||||
WHITESPACE@241..250 "\n "
|
||||
VARIANT@250..293
|
||||
NAME@250..259
|
||||
IDENT@250..259 "StillFine"
|
||||
WHITESPACE@259..260 " "
|
||||
RECORD_FIELD_LIST@260..293
|
||||
L_CURLY@260..261 "{"
|
||||
WHITESPACE@261..274 "\n "
|
||||
RECORD_FIELD@274..282
|
||||
NAME@274..277
|
||||
IDENT@274..277 "def"
|
||||
COLON@277..278 ":"
|
||||
WHITESPACE@278..279 " "
|
||||
PATH_TYPE@279..282
|
||||
PATH@279..282
|
||||
PATH_SEGMENT@279..282
|
||||
NAME_REF@279..282
|
||||
IDENT@279..282 "i32"
|
||||
COMMA@282..283 ","
|
||||
WHITESPACE@283..292 "\n "
|
||||
R_CURLY@292..293 "}"
|
||||
COMMA@293..294 ","
|
||||
WHITESPACE@294..299 "\n "
|
||||
R_CURLY@299..300 "}"
|
||||
WHITESPACE@300..306 "\n\n "
|
||||
EXPR_STMT@306..459
|
||||
BLOCK_EXPR@306..459
|
||||
STMT_LIST@306..459
|
||||
L_CURLY@306..307 "{"
|
||||
WHITESPACE@307..316 "\n "
|
||||
ENUM@316..453
|
||||
COMMENT@316..329 "// fail again"
|
||||
WHITESPACE@329..338 "\n "
|
||||
ENUM_KW@338..342 "enum"
|
||||
WHITESPACE@342..343 " "
|
||||
NAME@343..348
|
||||
IDENT@343..348 "Test4"
|
||||
WHITESPACE@348..349 " "
|
||||
VARIANT_LIST@349..453
|
||||
L_CURLY@349..350 "{"
|
||||
WHITESPACE@350..363 "\n "
|
||||
VARIANT@363..372
|
||||
NAME@363..367
|
||||
IDENT@363..367 "Nope"
|
||||
TUPLE_FIELD_LIST@367..372
|
||||
L_PAREN@367..368 "("
|
||||
TUPLE_FIELD@368..371
|
||||
PATH_TYPE@368..371
|
||||
PATH@368..371
|
||||
PATH_SEGMENT@368..371
|
||||
NAME_REF@368..371
|
||||
IDENT@368..371 "i32"
|
||||
WHITESPACE@371..372 " "
|
||||
ERROR@372..372
|
||||
ERROR@372..374
|
||||
L_CURLY@372..373 "{"
|
||||
R_CURLY@373..374 "}"
|
||||
ERROR@374..375
|
||||
R_PAREN@374..375 ")"
|
||||
WHITESPACE@375..376 " "
|
||||
COMMENT@376..396 "//~ ERROR: found `{`"
|
||||
WHITESPACE@396..422 "\n ..."
|
||||
COMMENT@422..443 "//~^ ERROR: found `{`"
|
||||
WHITESPACE@443..452 "\n "
|
||||
R_CURLY@452..453 "}"
|
||||
WHITESPACE@453..458 "\n "
|
||||
R_CURLY@458..459 "}"
|
||||
WHITESPACE@459..464 "\n "
|
||||
COMMENT@464..486 "// still recover later"
|
||||
WHITESPACE@486..491 "\n "
|
||||
LET_STMT@491..510
|
||||
LET_KW@491..494 "let"
|
||||
WHITESPACE@494..495 " "
|
||||
IDENT_PAT@495..505
|
||||
NAME@495..505
|
||||
IDENT@495..505 "bad_syntax"
|
||||
WHITESPACE@505..506 " "
|
||||
EQ@506..507 "="
|
||||
WHITESPACE@507..508 " "
|
||||
ERROR@508..509
|
||||
UNDERSCORE@508..509 "_"
|
||||
SEMICOLON@509..510 ";"
|
||||
WHITESPACE@510..511 " "
|
||||
COMMENT@511..572 "//~ ERROR: expected e ..."
|
||||
WHITESPACE@572..573 "\n"
|
||||
R_CURLY@573..574 "}"
|
||||
WHITESPACE@574..575 "\n"
|
||||
error 95..95: expected type
|
||||
error 95..95: expected COMMA
|
||||
error 96..96: expected field
|
||||
error 98..98: expected field declaration
|
||||
error 371..371: expected COMMA
|
||||
error 372..372: expected a type
|
||||
error 372..372: expected R_PAREN
|
||||
error 372..372: expected COMMA
|
||||
error 372..372: expected enum variant
|
||||
error 374..374: expected enum variant
|
||||
error 508..508: expected expression
|
31
crates/parser/test_data/parser/err/0025_nope.rs
Normal file
31
crates/parser/test_data/parser/err/0025_nope.rs
Normal file
|
@ -0,0 +1,31 @@
|
|||
fn main() {
|
||||
enum Test {
|
||||
Var1,
|
||||
Var2(String),
|
||||
Var3 {
|
||||
abc: {}, //~ ERROR: expected type, found `{`
|
||||
},
|
||||
}
|
||||
|
||||
// recover...
|
||||
let a = 1;
|
||||
enum Test2 {
|
||||
Fine,
|
||||
}
|
||||
|
||||
enum Test3 {
|
||||
StillFine {
|
||||
def: i32,
|
||||
},
|
||||
}
|
||||
|
||||
{
|
||||
// fail again
|
||||
enum Test4 {
|
||||
Nope(i32 {}) //~ ERROR: found `{`
|
||||
//~^ ERROR: found `{`
|
||||
}
|
||||
}
|
||||
// still recover later
|
||||
let bad_syntax = _; //~ ERROR: expected expression, found reserved identifier `_`
|
||||
}
|
204
crates/parser/test_data/parser/err/0025_nope.txt
Normal file
204
crates/parser/test_data/parser/err/0025_nope.txt
Normal file
|
@ -0,0 +1,204 @@
|
|||
SOURCE_FILE
|
||||
FN
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "main"
|
||||
PARAM_LIST
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
ENUM
|
||||
ENUM_KW "enum"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "Test"
|
||||
WHITESPACE " "
|
||||
VARIANT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
VARIANT
|
||||
NAME
|
||||
IDENT "Var1"
|
||||
COMMA ","
|
||||
WHITESPACE "\n "
|
||||
VARIANT
|
||||
NAME
|
||||
IDENT "Var2"
|
||||
TUPLE_FIELD_LIST
|
||||
L_PAREN "("
|
||||
TUPLE_FIELD
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "String"
|
||||
R_PAREN ")"
|
||||
COMMA ","
|
||||
WHITESPACE "\n "
|
||||
VARIANT
|
||||
NAME
|
||||
IDENT "Var3"
|
||||
WHITESPACE " "
|
||||
RECORD_FIELD_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
RECORD_FIELD
|
||||
NAME
|
||||
IDENT "abc"
|
||||
COLON ":"
|
||||
WHITESPACE " "
|
||||
ERROR
|
||||
L_CURLY "{"
|
||||
R_CURLY "}"
|
||||
ERROR
|
||||
COMMA ","
|
||||
WHITESPACE " "
|
||||
COMMENT "//~ ERROR: expected type, found `{`"
|
||||
WHITESPACE "\n "
|
||||
R_CURLY "}"
|
||||
COMMA ","
|
||||
WHITESPACE "\n "
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n\n "
|
||||
COMMENT "// recover..."
|
||||
WHITESPACE "\n "
|
||||
LET_STMT
|
||||
LET_KW "let"
|
||||
WHITESPACE " "
|
||||
IDENT_PAT
|
||||
NAME
|
||||
IDENT "a"
|
||||
WHITESPACE " "
|
||||
EQ "="
|
||||
WHITESPACE " "
|
||||
LITERAL
|
||||
INT_NUMBER "1"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\n "
|
||||
ENUM
|
||||
ENUM_KW "enum"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "Test2"
|
||||
WHITESPACE " "
|
||||
VARIANT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
VARIANT
|
||||
NAME
|
||||
IDENT "Fine"
|
||||
COMMA ","
|
||||
WHITESPACE "\n "
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n\n "
|
||||
ENUM
|
||||
ENUM_KW "enum"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "Test3"
|
||||
WHITESPACE " "
|
||||
VARIANT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
VARIANT
|
||||
NAME
|
||||
IDENT "StillFine"
|
||||
WHITESPACE " "
|
||||
RECORD_FIELD_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
RECORD_FIELD
|
||||
NAME
|
||||
IDENT "def"
|
||||
COLON ":"
|
||||
WHITESPACE " "
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "i32"
|
||||
COMMA ","
|
||||
WHITESPACE "\n "
|
||||
R_CURLY "}"
|
||||
COMMA ","
|
||||
WHITESPACE "\n "
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n\n "
|
||||
EXPR_STMT
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
ENUM
|
||||
COMMENT "// fail again"
|
||||
WHITESPACE "\n "
|
||||
ENUM_KW "enum"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "Test4"
|
||||
WHITESPACE " "
|
||||
VARIANT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
VARIANT
|
||||
NAME
|
||||
IDENT "Nope"
|
||||
TUPLE_FIELD_LIST
|
||||
L_PAREN "("
|
||||
TUPLE_FIELD
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "i32"
|
||||
WHITESPACE " "
|
||||
ERROR
|
||||
ERROR
|
||||
L_CURLY "{"
|
||||
R_CURLY "}"
|
||||
ERROR
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
COMMENT "//~ ERROR: found `{`"
|
||||
WHITESPACE "\n "
|
||||
COMMENT "//~^ ERROR: found `{`"
|
||||
WHITESPACE "\n "
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n "
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n "
|
||||
COMMENT "// still recover later"
|
||||
WHITESPACE "\n "
|
||||
LET_STMT
|
||||
LET_KW "let"
|
||||
WHITESPACE " "
|
||||
IDENT_PAT
|
||||
NAME
|
||||
IDENT "bad_syntax"
|
||||
WHITESPACE " "
|
||||
EQ "="
|
||||
WHITESPACE " "
|
||||
ERROR
|
||||
UNDERSCORE "_"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE " "
|
||||
COMMENT "//~ ERROR: expected expression, found reserved identifier `_`"
|
||||
WHITESPACE "\n"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n"
|
||||
error 95: expected type
|
||||
error 95: expected COMMA
|
||||
error 96: expected field
|
||||
error 98: expected field declaration
|
||||
error 371: expected COMMA
|
||||
error 372: expected a type
|
||||
error 372: expected R_PAREN
|
||||
error 372: expected COMMA
|
||||
error 372: expected enum variant
|
||||
error 374: expected enum variant
|
||||
error 508: expected expression
|
49
crates/parser/test_data/parser/err/0026_imp_recovery.rast
Normal file
49
crates/parser/test_data/parser/err/0026_imp_recovery.rast
Normal file
|
@ -0,0 +1,49 @@
|
|||
SOURCE_FILE@0..38
|
||||
IMPL@0..14
|
||||
IMPL_KW@0..4 "impl"
|
||||
GENERIC_PARAM_LIST@4..14
|
||||
L_ANGLE@4..5 "<"
|
||||
TYPE_PARAM@5..13
|
||||
NAME@5..6
|
||||
IDENT@5..6 "T"
|
||||
COLON@6..7 ":"
|
||||
WHITESPACE@7..8 " "
|
||||
TYPE_BOUND_LIST@8..13
|
||||
TYPE_BOUND@8..13
|
||||
PATH_TYPE@8..13
|
||||
PATH@8..13
|
||||
PATH_SEGMENT@8..13
|
||||
NAME_REF@8..13
|
||||
IDENT@8..13 "Clone"
|
||||
R_ANGLE@13..14 ">"
|
||||
WHITESPACE@14..15 "\n"
|
||||
IMPL@15..37
|
||||
IMPL_KW@15..19 "impl"
|
||||
GENERIC_PARAM_LIST@19..22
|
||||
L_ANGLE@19..20 "<"
|
||||
TYPE_PARAM@20..21
|
||||
NAME@20..21
|
||||
IDENT@20..21 "T"
|
||||
R_ANGLE@21..22 ">"
|
||||
WHITESPACE@22..23 " "
|
||||
PATH_TYPE@23..34
|
||||
PATH@23..34
|
||||
PATH_SEGMENT@23..34
|
||||
NAME_REF@23..31
|
||||
IDENT@23..31 "OnceCell"
|
||||
GENERIC_ARG_LIST@31..34
|
||||
L_ANGLE@31..32 "<"
|
||||
TYPE_ARG@32..33
|
||||
PATH_TYPE@32..33
|
||||
PATH@32..33
|
||||
PATH_SEGMENT@32..33
|
||||
NAME_REF@32..33
|
||||
IDENT@32..33 "T"
|
||||
R_ANGLE@33..34 ">"
|
||||
WHITESPACE@34..35 " "
|
||||
ASSOC_ITEM_LIST@35..37
|
||||
L_CURLY@35..36 "{"
|
||||
R_CURLY@36..37 "}"
|
||||
WHITESPACE@37..38 "\n"
|
||||
error 14..14: expected trait or type
|
||||
error 14..14: expected `{`
|
2
crates/parser/test_data/parser/err/0026_imp_recovery.rs
Normal file
2
crates/parser/test_data/parser/err/0026_imp_recovery.rs
Normal file
|
@ -0,0 +1,2 @@
|
|||
impl<T: Clone>
|
||||
impl<T> OnceCell<T> {}
|
49
crates/parser/test_data/parser/err/0026_imp_recovery.txt
Normal file
49
crates/parser/test_data/parser/err/0026_imp_recovery.txt
Normal file
|
@ -0,0 +1,49 @@
|
|||
SOURCE_FILE
|
||||
IMPL
|
||||
IMPL_KW "impl"
|
||||
GENERIC_PARAM_LIST
|
||||
L_ANGLE "<"
|
||||
TYPE_PARAM
|
||||
NAME
|
||||
IDENT "T"
|
||||
COLON ":"
|
||||
WHITESPACE " "
|
||||
TYPE_BOUND_LIST
|
||||
TYPE_BOUND
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "Clone"
|
||||
R_ANGLE ">"
|
||||
WHITESPACE "\n"
|
||||
IMPL
|
||||
IMPL_KW "impl"
|
||||
GENERIC_PARAM_LIST
|
||||
L_ANGLE "<"
|
||||
TYPE_PARAM
|
||||
NAME
|
||||
IDENT "T"
|
||||
R_ANGLE ">"
|
||||
WHITESPACE " "
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "OnceCell"
|
||||
GENERIC_ARG_LIST
|
||||
L_ANGLE "<"
|
||||
TYPE_ARG
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "T"
|
||||
R_ANGLE ">"
|
||||
WHITESPACE " "
|
||||
ASSOC_ITEM_LIST
|
||||
L_CURLY "{"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n"
|
||||
error 14: expected trait or type
|
||||
error 14: expected `{`
|
|
@ -0,0 +1,29 @@
|
|||
SOURCE_FILE@0..30
|
||||
FN@0..29
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..6
|
||||
IDENT@3..6 "foo"
|
||||
PARAM_LIST@6..8
|
||||
L_PAREN@6..7 "("
|
||||
R_PAREN@7..8 ")"
|
||||
WHITESPACE@8..13 "\n "
|
||||
WHERE_CLAUSE@13..26
|
||||
WHERE_KW@13..18 "where"
|
||||
WHITESPACE@18..19 " "
|
||||
WHERE_PRED@19..26
|
||||
FOR_KW@19..22 "for"
|
||||
GENERIC_PARAM_LIST@22..26
|
||||
L_ANGLE@22..23 "<"
|
||||
LIFETIME_PARAM@23..25
|
||||
LIFETIME@23..25
|
||||
LIFETIME_IDENT@23..25 "'a"
|
||||
R_ANGLE@25..26 ">"
|
||||
WHITESPACE@26..27 "\n"
|
||||
BLOCK_EXPR@27..29
|
||||
STMT_LIST@27..29
|
||||
L_CURLY@27..28 "{"
|
||||
R_CURLY@28..29 "}"
|
||||
WHITESPACE@29..30 "\n"
|
||||
error 26..26: expected type
|
||||
error 26..26: expected colon
|
|
@ -0,0 +1,3 @@
|
|||
fn foo()
|
||||
where for<'a>
|
||||
{}
|
|
@ -0,0 +1,29 @@
|
|||
SOURCE_FILE
|
||||
FN
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "foo"
|
||||
PARAM_LIST
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE "\n "
|
||||
WHERE_CLAUSE
|
||||
WHERE_KW "where"
|
||||
WHITESPACE " "
|
||||
WHERE_PRED
|
||||
FOR_KW "for"
|
||||
GENERIC_PARAM_LIST
|
||||
L_ANGLE "<"
|
||||
LIFETIME_PARAM
|
||||
LIFETIME
|
||||
LIFETIME_IDENT "'a"
|
||||
R_ANGLE ">"
|
||||
WHITESPACE "\n"
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n"
|
||||
error 26: expected type
|
||||
error 26: expected colon
|
|
@ -0,0 +1,36 @@
|
|||
SOURCE_FILE@0..24
|
||||
FN@0..23
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..6
|
||||
IDENT@3..6 "foo"
|
||||
PARAM_LIST@6..12
|
||||
L_PAREN@6..7 "("
|
||||
PARAM@7..11
|
||||
IDENT_PAT@7..8
|
||||
NAME@7..8
|
||||
IDENT@7..8 "a"
|
||||
COLON@8..9 ":"
|
||||
WHITESPACE@9..10 " "
|
||||
PATH_TYPE@10..11
|
||||
PATH@10..11
|
||||
PATH_SEGMENT@10..11
|
||||
NAME_REF@10..11
|
||||
IDENT@10..11 "A"
|
||||
R_PAREN@11..12 ")"
|
||||
WHITESPACE@12..13 " "
|
||||
BLOCK_EXPR@13..23
|
||||
STMT_LIST@13..23
|
||||
L_CURLY@13..14 "{"
|
||||
WHITESPACE@14..19 "\n "
|
||||
FIELD_EXPR@19..21
|
||||
PATH_EXPR@19..20
|
||||
PATH@19..20
|
||||
PATH_SEGMENT@19..20
|
||||
NAME_REF@19..20
|
||||
IDENT@19..20 "a"
|
||||
DOT@20..21 "."
|
||||
WHITESPACE@21..22 "\n"
|
||||
R_CURLY@22..23 "}"
|
||||
WHITESPACE@23..24 "\n"
|
||||
error 21..21: expected field name or number
|
|
@ -0,0 +1,3 @@
|
|||
fn foo(a: A) {
|
||||
a.
|
||||
}
|
36
crates/parser/test_data/parser/err/0029_field_completion.txt
Normal file
36
crates/parser/test_data/parser/err/0029_field_completion.txt
Normal file
|
@ -0,0 +1,36 @@
|
|||
SOURCE_FILE
|
||||
FN
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "foo"
|
||||
PARAM_LIST
|
||||
L_PAREN "("
|
||||
PARAM
|
||||
IDENT_PAT
|
||||
NAME
|
||||
IDENT "a"
|
||||
COLON ":"
|
||||
WHITESPACE " "
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "A"
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
FIELD_EXPR
|
||||
PATH_EXPR
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "a"
|
||||
DOT "."
|
||||
WHITESPACE "\n"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n"
|
||||
error 21: expected field name or number
|
|
@ -0,0 +1,205 @@
|
|||
SOURCE_FILE@0..293
|
||||
FN@0..292
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..6
|
||||
IDENT@3..6 "foo"
|
||||
PARAM_LIST@6..8
|
||||
L_PAREN@6..7 "("
|
||||
R_PAREN@7..8 ")"
|
||||
WHITESPACE@8..9 " "
|
||||
BLOCK_EXPR@9..292
|
||||
STMT_LIST@9..292
|
||||
L_CURLY@9..10 "{"
|
||||
WHITESPACE@10..15 "\n "
|
||||
EXPR_STMT@15..101
|
||||
MATCH_EXPR@15..101
|
||||
MATCH_KW@15..20 "match"
|
||||
WHITESPACE@20..21 " "
|
||||
TUPLE_EXPR@21..23
|
||||
L_PAREN@21..22 "("
|
||||
R_PAREN@22..23 ")"
|
||||
WHITESPACE@23..24 " "
|
||||
MATCH_ARM_LIST@24..101
|
||||
L_CURLY@24..25 "{"
|
||||
WHITESPACE@25..34 "\n "
|
||||
MATCH_ARM@34..42
|
||||
WILDCARD_PAT@34..35
|
||||
UNDERSCORE@34..35 "_"
|
||||
WHITESPACE@35..36 " "
|
||||
FAT_ARROW@36..38 "=>"
|
||||
WHITESPACE@38..39 " "
|
||||
TUPLE_EXPR@39..41
|
||||
L_PAREN@39..40 "("
|
||||
R_PAREN@40..41 ")"
|
||||
COMMA@41..42 ","
|
||||
WHITESPACE@42..51 "\n "
|
||||
MATCH_ARM@51..78
|
||||
ATTR@51..52
|
||||
POUND@51..52 "#"
|
||||
ERROR@52..53
|
||||
BANG@52..53 "!"
|
||||
ARRAY_EXPR@53..78
|
||||
L_BRACK@53..54 "["
|
||||
CALL_EXPR@54..77
|
||||
PATH_EXPR@54..57
|
||||
PATH@54..57
|
||||
PATH_SEGMENT@54..57
|
||||
NAME_REF@54..57
|
||||
IDENT@54..57 "doc"
|
||||
ARG_LIST@57..77
|
||||
L_PAREN@57..58 "("
|
||||
LITERAL@58..76
|
||||
STRING@58..76 "\"Not allowed here\""
|
||||
R_PAREN@76..77 ")"
|
||||
R_BRACK@77..78 "]"
|
||||
WHITESPACE@78..87 "\n "
|
||||
MATCH_ARM@87..95
|
||||
WILDCARD_PAT@87..88
|
||||
UNDERSCORE@87..88 "_"
|
||||
WHITESPACE@88..89 " "
|
||||
FAT_ARROW@89..91 "=>"
|
||||
WHITESPACE@91..92 " "
|
||||
TUPLE_EXPR@92..94
|
||||
L_PAREN@92..93 "("
|
||||
R_PAREN@93..94 ")"
|
||||
COMMA@94..95 ","
|
||||
WHITESPACE@95..100 "\n "
|
||||
R_CURLY@100..101 "}"
|
||||
WHITESPACE@101..107 "\n\n "
|
||||
EXPR_STMT@107..185
|
||||
MATCH_EXPR@107..185
|
||||
MATCH_KW@107..112 "match"
|
||||
WHITESPACE@112..113 " "
|
||||
TUPLE_EXPR@113..115
|
||||
L_PAREN@113..114 "("
|
||||
R_PAREN@114..115 ")"
|
||||
WHITESPACE@115..116 " "
|
||||
MATCH_ARM_LIST@116..185
|
||||
L_CURLY@116..117 "{"
|
||||
WHITESPACE@117..126 "\n "
|
||||
MATCH_ARM@126..134
|
||||
WILDCARD_PAT@126..127
|
||||
UNDERSCORE@126..127 "_"
|
||||
WHITESPACE@127..128 " "
|
||||
FAT_ARROW@128..130 "=>"
|
||||
WHITESPACE@130..131 " "
|
||||
TUPLE_EXPR@131..133
|
||||
L_PAREN@131..132 "("
|
||||
R_PAREN@132..133 ")"
|
||||
COMMA@133..134 ","
|
||||
WHITESPACE@134..143 "\n "
|
||||
MATCH_ARM@143..151
|
||||
WILDCARD_PAT@143..144
|
||||
UNDERSCORE@143..144 "_"
|
||||
WHITESPACE@144..145 " "
|
||||
FAT_ARROW@145..147 "=>"
|
||||
WHITESPACE@147..148 " "
|
||||
TUPLE_EXPR@148..150
|
||||
L_PAREN@148..149 "("
|
||||
R_PAREN@149..150 ")"
|
||||
COMMA@150..151 ","
|
||||
WHITESPACE@151..160 "\n "
|
||||
MATCH_ARM@160..179
|
||||
ATTR@160..161
|
||||
POUND@160..161 "#"
|
||||
ERROR@161..162
|
||||
BANG@161..162 "!"
|
||||
ARRAY_EXPR@162..179
|
||||
L_BRACK@162..163 "["
|
||||
CALL_EXPR@163..178
|
||||
PATH_EXPR@163..166
|
||||
PATH@163..166
|
||||
PATH_SEGMENT@163..166
|
||||
NAME_REF@163..166
|
||||
IDENT@163..166 "doc"
|
||||
ARG_LIST@166..178
|
||||
L_PAREN@166..167 "("
|
||||
LITERAL@167..177
|
||||
STRING@167..177 "\"Nor here\""
|
||||
R_PAREN@177..178 ")"
|
||||
R_BRACK@178..179 "]"
|
||||
WHITESPACE@179..184 "\n "
|
||||
R_CURLY@184..185 "}"
|
||||
WHITESPACE@185..191 "\n\n "
|
||||
MATCH_EXPR@191..290
|
||||
MATCH_KW@191..196 "match"
|
||||
WHITESPACE@196..197 " "
|
||||
TUPLE_EXPR@197..199
|
||||
L_PAREN@197..198 "("
|
||||
R_PAREN@198..199 ")"
|
||||
WHITESPACE@199..200 " "
|
||||
MATCH_ARM_LIST@200..290
|
||||
L_CURLY@200..201 "{"
|
||||
WHITESPACE@201..210 "\n "
|
||||
MATCH_ARM@210..250
|
||||
ATTR@210..222
|
||||
POUND@210..211 "#"
|
||||
L_BRACK@211..212 "["
|
||||
META@212..221
|
||||
PATH@212..215
|
||||
PATH_SEGMENT@212..215
|
||||
NAME_REF@212..215
|
||||
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 "\n "
|
||||
ATTR@231..232
|
||||
POUND@231..232 "#"
|
||||
ERROR@232..233
|
||||
BANG@232..233 "!"
|
||||
ARRAY_EXPR@233..250
|
||||
L_BRACK@233..234 "["
|
||||
CALL_EXPR@234..249
|
||||
PATH_EXPR@234..237
|
||||
PATH@234..237
|
||||
PATH_SEGMENT@234..237
|
||||
NAME_REF@234..237
|
||||
IDENT@234..237 "doc"
|
||||
ARG_LIST@237..249
|
||||
L_PAREN@237..238 "("
|
||||
LITERAL@238..248
|
||||
STRING@238..248 "\"Nor here\""
|
||||
R_PAREN@248..249 ")"
|
||||
R_BRACK@249..250 "]"
|
||||
WHITESPACE@250..259 "\n "
|
||||
MATCH_ARM@259..267
|
||||
WILDCARD_PAT@259..260
|
||||
UNDERSCORE@259..260 "_"
|
||||
WHITESPACE@260..261 " "
|
||||
FAT_ARROW@261..263 "=>"
|
||||
WHITESPACE@263..264 " "
|
||||
TUPLE_EXPR@264..266
|
||||
L_PAREN@264..265 "("
|
||||
R_PAREN@265..266 ")"
|
||||
COMMA@266..267 ","
|
||||
WHITESPACE@267..276 "\n "
|
||||
MATCH_ARM@276..284
|
||||
WILDCARD_PAT@276..277
|
||||
UNDERSCORE@276..277 "_"
|
||||
WHITESPACE@277..278 " "
|
||||
FAT_ARROW@278..280 "=>"
|
||||
WHITESPACE@280..281 " "
|
||||
TUPLE_EXPR@281..283
|
||||
L_PAREN@281..282 "("
|
||||
R_PAREN@282..283 ")"
|
||||
COMMA@283..284 ","
|
||||
WHITESPACE@284..289 "\n "
|
||||
R_CURLY@289..290 "}"
|
||||
WHITESPACE@290..291 "\n"
|
||||
R_CURLY@291..292 "}"
|
||||
WHITESPACE@292..293 "\n"
|
||||
error 52..52: expected `[`
|
||||
error 52..52: expected pattern
|
||||
error 53..53: expected FAT_ARROW
|
||||
error 78..78: expected `,`
|
||||
error 161..161: expected `[`
|
||||
error 161..161: expected pattern
|
||||
error 162..162: expected FAT_ARROW
|
||||
error 232..232: expected `[`
|
||||
error 232..232: expected pattern
|
||||
error 233..233: expected FAT_ARROW
|
||||
error 250..250: expected `,`
|
|
@ -0,0 +1,20 @@
|
|||
fn foo() {
|
||||
match () {
|
||||
_ => (),
|
||||
#![doc("Not allowed here")]
|
||||
_ => (),
|
||||
}
|
||||
|
||||
match () {
|
||||
_ => (),
|
||||
_ => (),
|
||||
#![doc("Nor here")]
|
||||
}
|
||||
|
||||
match () {
|
||||
#[cfg(test)]
|
||||
#![doc("Nor here")]
|
||||
_ => (),
|
||||
_ => (),
|
||||
}
|
||||
}
|
|
@ -0,0 +1,205 @@
|
|||
SOURCE_FILE
|
||||
FN
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "foo"
|
||||
PARAM_LIST
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
EXPR_STMT
|
||||
MATCH_EXPR
|
||||
MATCH_KW "match"
|
||||
WHITESPACE " "
|
||||
TUPLE_EXPR
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
MATCH_ARM_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
MATCH_ARM
|
||||
WILDCARD_PAT
|
||||
UNDERSCORE "_"
|
||||
WHITESPACE " "
|
||||
FAT_ARROW "=>"
|
||||
WHITESPACE " "
|
||||
TUPLE_EXPR
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
COMMA ","
|
||||
WHITESPACE "\n "
|
||||
MATCH_ARM
|
||||
ATTR
|
||||
POUND "#"
|
||||
ERROR
|
||||
BANG "!"
|
||||
ARRAY_EXPR
|
||||
L_BRACK "["
|
||||
CALL_EXPR
|
||||
PATH_EXPR
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "doc"
|
||||
ARG_LIST
|
||||
L_PAREN "("
|
||||
LITERAL
|
||||
STRING "\"Not allowed here\""
|
||||
R_PAREN ")"
|
||||
R_BRACK "]"
|
||||
WHITESPACE "\n "
|
||||
MATCH_ARM
|
||||
WILDCARD_PAT
|
||||
UNDERSCORE "_"
|
||||
WHITESPACE " "
|
||||
FAT_ARROW "=>"
|
||||
WHITESPACE " "
|
||||
TUPLE_EXPR
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
COMMA ","
|
||||
WHITESPACE "\n "
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n\n "
|
||||
EXPR_STMT
|
||||
MATCH_EXPR
|
||||
MATCH_KW "match"
|
||||
WHITESPACE " "
|
||||
TUPLE_EXPR
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
MATCH_ARM_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
MATCH_ARM
|
||||
WILDCARD_PAT
|
||||
UNDERSCORE "_"
|
||||
WHITESPACE " "
|
||||
FAT_ARROW "=>"
|
||||
WHITESPACE " "
|
||||
TUPLE_EXPR
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
COMMA ","
|
||||
WHITESPACE "\n "
|
||||
MATCH_ARM
|
||||
WILDCARD_PAT
|
||||
UNDERSCORE "_"
|
||||
WHITESPACE " "
|
||||
FAT_ARROW "=>"
|
||||
WHITESPACE " "
|
||||
TUPLE_EXPR
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
COMMA ","
|
||||
WHITESPACE "\n "
|
||||
MATCH_ARM
|
||||
ATTR
|
||||
POUND "#"
|
||||
ERROR
|
||||
BANG "!"
|
||||
ARRAY_EXPR
|
||||
L_BRACK "["
|
||||
CALL_EXPR
|
||||
PATH_EXPR
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "doc"
|
||||
ARG_LIST
|
||||
L_PAREN "("
|
||||
LITERAL
|
||||
STRING "\"Nor here\""
|
||||
R_PAREN ")"
|
||||
R_BRACK "]"
|
||||
WHITESPACE "\n "
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n\n "
|
||||
MATCH_EXPR
|
||||
MATCH_KW "match"
|
||||
WHITESPACE " "
|
||||
TUPLE_EXPR
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
MATCH_ARM_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
MATCH_ARM
|
||||
ATTR
|
||||
POUND "#"
|
||||
L_BRACK "["
|
||||
META
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "cfg"
|
||||
TOKEN_TREE
|
||||
L_PAREN "("
|
||||
IDENT "test"
|
||||
R_PAREN ")"
|
||||
R_BRACK "]"
|
||||
WHITESPACE "\n "
|
||||
ATTR
|
||||
POUND "#"
|
||||
ERROR
|
||||
BANG "!"
|
||||
ARRAY_EXPR
|
||||
L_BRACK "["
|
||||
CALL_EXPR
|
||||
PATH_EXPR
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "doc"
|
||||
ARG_LIST
|
||||
L_PAREN "("
|
||||
LITERAL
|
||||
STRING "\"Nor here\""
|
||||
R_PAREN ")"
|
||||
R_BRACK "]"
|
||||
WHITESPACE "\n "
|
||||
MATCH_ARM
|
||||
WILDCARD_PAT
|
||||
UNDERSCORE "_"
|
||||
WHITESPACE " "
|
||||
FAT_ARROW "=>"
|
||||
WHITESPACE " "
|
||||
TUPLE_EXPR
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
COMMA ","
|
||||
WHITESPACE "\n "
|
||||
MATCH_ARM
|
||||
WILDCARD_PAT
|
||||
UNDERSCORE "_"
|
||||
WHITESPACE " "
|
||||
FAT_ARROW "=>"
|
||||
WHITESPACE " "
|
||||
TUPLE_EXPR
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
COMMA ","
|
||||
WHITESPACE "\n "
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n"
|
||||
error 52: expected `[`
|
||||
error 52: expected pattern
|
||||
error 53: expected FAT_ARROW
|
||||
error 78: expected `,`
|
||||
error 161: expected `[`
|
||||
error 161: expected pattern
|
||||
error 162: expected FAT_ARROW
|
||||
error 232: expected `[`
|
||||
error 232: expected pattern
|
||||
error 233: expected FAT_ARROW
|
||||
error 250: expected `,`
|
|
@ -0,0 +1,68 @@
|
|||
SOURCE_FILE@0..89
|
||||
FN@0..88
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..6
|
||||
IDENT@3..6 "foo"
|
||||
PARAM_LIST@6..8
|
||||
L_PAREN@6..7 "("
|
||||
R_PAREN@7..8 ")"
|
||||
WHITESPACE@8..9 " "
|
||||
BLOCK_EXPR@9..88
|
||||
STMT_LIST@9..88
|
||||
L_CURLY@9..10 "{"
|
||||
WHITESPACE@10..15 "\n "
|
||||
MATCH_EXPR@15..86
|
||||
MATCH_KW@15..20 "match"
|
||||
WHITESPACE@20..21 " "
|
||||
TUPLE_EXPR@21..23
|
||||
L_PAREN@21..22 "("
|
||||
R_PAREN@22..23 ")"
|
||||
WHITESPACE@23..24 " "
|
||||
MATCH_ARM_LIST@24..86
|
||||
L_CURLY@24..25 "{"
|
||||
WHITESPACE@25..34 "\n "
|
||||
MATCH_ARM@34..42
|
||||
WILDCARD_PAT@34..35
|
||||
UNDERSCORE@34..35 "_"
|
||||
WHITESPACE@35..36 " "
|
||||
FAT_ARROW@36..38 "=>"
|
||||
WHITESPACE@38..39 " "
|
||||
TUPLE_EXPR@39..41
|
||||
L_PAREN@39..40 "("
|
||||
R_PAREN@40..41 ")"
|
||||
COMMA@41..42 ","
|
||||
WHITESPACE@42..51 "\n "
|
||||
MATCH_ARM@51..59
|
||||
WILDCARD_PAT@51..52
|
||||
UNDERSCORE@51..52 "_"
|
||||
WHITESPACE@52..53 " "
|
||||
FAT_ARROW@53..55 "=>"
|
||||
WHITESPACE@55..56 " "
|
||||
TUPLE_EXPR@56..58
|
||||
L_PAREN@56..57 "("
|
||||
R_PAREN@57..58 ")"
|
||||
COMMA@58..59 ","
|
||||
WHITESPACE@59..68 "\n "
|
||||
MATCH_ARM@68..80
|
||||
ATTR@68..80
|
||||
POUND@68..69 "#"
|
||||
L_BRACK@69..70 "["
|
||||
META@70..79
|
||||
PATH@70..73
|
||||
PATH_SEGMENT@70..73
|
||||
NAME_REF@70..73
|
||||
IDENT@70..73 "cfg"
|
||||
TOKEN_TREE@73..79
|
||||
L_PAREN@73..74 "("
|
||||
IDENT@74..78 "test"
|
||||
R_PAREN@78..79 ")"
|
||||
R_BRACK@79..80 "]"
|
||||
WHITESPACE@80..85 "\n "
|
||||
R_CURLY@85..86 "}"
|
||||
WHITESPACE@86..87 "\n"
|
||||
R_CURLY@87..88 "}"
|
||||
WHITESPACE@88..89 "\n"
|
||||
error 80..80: expected pattern
|
||||
error 80..80: expected FAT_ARROW
|
||||
error 80..80: expected expression
|
|
@ -0,0 +1,7 @@
|
|||
fn foo() {
|
||||
match () {
|
||||
_ => (),
|
||||
_ => (),
|
||||
#[cfg(test)]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,68 @@
|
|||
SOURCE_FILE
|
||||
FN
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "foo"
|
||||
PARAM_LIST
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
MATCH_EXPR
|
||||
MATCH_KW "match"
|
||||
WHITESPACE " "
|
||||
TUPLE_EXPR
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
MATCH_ARM_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
MATCH_ARM
|
||||
WILDCARD_PAT
|
||||
UNDERSCORE "_"
|
||||
WHITESPACE " "
|
||||
FAT_ARROW "=>"
|
||||
WHITESPACE " "
|
||||
TUPLE_EXPR
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
COMMA ","
|
||||
WHITESPACE "\n "
|
||||
MATCH_ARM
|
||||
WILDCARD_PAT
|
||||
UNDERSCORE "_"
|
||||
WHITESPACE " "
|
||||
FAT_ARROW "=>"
|
||||
WHITESPACE " "
|
||||
TUPLE_EXPR
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
COMMA ","
|
||||
WHITESPACE "\n "
|
||||
MATCH_ARM
|
||||
ATTR
|
||||
POUND "#"
|
||||
L_BRACK "["
|
||||
META
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "cfg"
|
||||
TOKEN_TREE
|
||||
L_PAREN "("
|
||||
IDENT "test"
|
||||
R_PAREN ")"
|
||||
R_BRACK "]"
|
||||
WHITESPACE "\n "
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n"
|
||||
error 80: expected pattern
|
||||
error 80: expected FAT_ARROW
|
||||
error 80: expected expression
|
96
crates/parser/test_data/parser/err/0034_bad_box_pattern.rast
Normal file
96
crates/parser/test_data/parser/err/0034_bad_box_pattern.rast
Normal file
|
@ -0,0 +1,96 @@
|
|||
SOURCE_FILE@0..91
|
||||
FN@0..89
|
||||
FN_KW@0..2 "fn"
|
||||
WHITESPACE@2..3 " "
|
||||
NAME@3..7
|
||||
IDENT@3..7 "main"
|
||||
PARAM_LIST@7..9
|
||||
L_PAREN@7..8 "("
|
||||
R_PAREN@8..9 ")"
|
||||
WHITESPACE@9..10 " "
|
||||
BLOCK_EXPR@10..89
|
||||
STMT_LIST@10..89
|
||||
L_CURLY@10..11 "{"
|
||||
WHITESPACE@11..16 "\n "
|
||||
LET_STMT@16..27
|
||||
LET_KW@16..19 "let"
|
||||
WHITESPACE@19..20 " "
|
||||
IDENT_PAT@20..27
|
||||
REF_KW@20..23 "ref"
|
||||
WHITESPACE@23..24 " "
|
||||
ERROR@24..27
|
||||
BOX_KW@24..27 "box"
|
||||
WHITESPACE@27..28 " "
|
||||
EXPR_STMT@28..35
|
||||
BIN_EXPR@28..34
|
||||
PATH_EXPR@28..29
|
||||
PATH@28..29
|
||||
PATH_SEGMENT@28..29
|
||||
NAME_REF@28..29
|
||||
IDENT@28..29 "i"
|
||||
WHITESPACE@29..30 " "
|
||||
EQ@30..31 "="
|
||||
WHITESPACE@31..32 " "
|
||||
TUPLE_EXPR@32..34
|
||||
L_PAREN@32..33 "("
|
||||
R_PAREN@33..34 ")"
|
||||
SEMICOLON@34..35 ";"
|
||||
WHITESPACE@35..40 "\n "
|
||||
LET_STMT@40..51
|
||||
LET_KW@40..43 "let"
|
||||
WHITESPACE@43..44 " "
|
||||
IDENT_PAT@44..51
|
||||
MUT_KW@44..47 "mut"
|
||||
WHITESPACE@47..48 " "
|
||||
ERROR@48..51
|
||||
BOX_KW@48..51 "box"
|
||||
WHITESPACE@51..52 " "
|
||||
EXPR_STMT@52..59
|
||||
BIN_EXPR@52..58
|
||||
PATH_EXPR@52..53
|
||||
PATH@52..53
|
||||
PATH_SEGMENT@52..53
|
||||
NAME_REF@52..53
|
||||
IDENT@52..53 "i"
|
||||
WHITESPACE@53..54 " "
|
||||
EQ@54..55 "="
|
||||
WHITESPACE@55..56 " "
|
||||
TUPLE_EXPR@56..58
|
||||
L_PAREN@56..57 "("
|
||||
R_PAREN@57..58 ")"
|
||||
SEMICOLON@58..59 ";"
|
||||
WHITESPACE@59..64 "\n "
|
||||
LET_STMT@64..79
|
||||
LET_KW@64..67 "let"
|
||||
WHITESPACE@67..68 " "
|
||||
IDENT_PAT@68..79
|
||||
REF_KW@68..71 "ref"
|
||||
WHITESPACE@71..72 " "
|
||||
MUT_KW@72..75 "mut"
|
||||
WHITESPACE@75..76 " "
|
||||
ERROR@76..79
|
||||
BOX_KW@76..79 "box"
|
||||
WHITESPACE@79..80 " "
|
||||
EXPR_STMT@80..87
|
||||
BIN_EXPR@80..86
|
||||
PATH_EXPR@80..81
|
||||
PATH@80..81
|
||||
PATH_SEGMENT@80..81
|
||||
NAME_REF@80..81
|
||||
IDENT@80..81 "i"
|
||||
WHITESPACE@81..82 " "
|
||||
EQ@82..83 "="
|
||||
WHITESPACE@83..84 " "
|
||||
TUPLE_EXPR@84..86
|
||||
L_PAREN@84..85 "("
|
||||
R_PAREN@85..86 ")"
|
||||
SEMICOLON@86..87 ";"
|
||||
WHITESPACE@87..88 "\n"
|
||||
R_CURLY@88..89 "}"
|
||||
WHITESPACE@89..91 "\n\n"
|
||||
error 24..24: expected a name
|
||||
error 27..27: expected SEMICOLON
|
||||
error 48..48: expected a name
|
||||
error 51..51: expected SEMICOLON
|
||||
error 76..76: expected a name
|
||||
error 79..79: expected SEMICOLON
|
|
@ -0,0 +1,6 @@
|
|||
fn main() {
|
||||
let ref box i = ();
|
||||
let mut box i = ();
|
||||
let ref mut box i = ();
|
||||
}
|
||||
|
96
crates/parser/test_data/parser/err/0034_bad_box_pattern.txt
Normal file
96
crates/parser/test_data/parser/err/0034_bad_box_pattern.txt
Normal file
|
@ -0,0 +1,96 @@
|
|||
SOURCE_FILE
|
||||
FN
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "main"
|
||||
PARAM_LIST
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\n "
|
||||
LET_STMT
|
||||
LET_KW "let"
|
||||
WHITESPACE " "
|
||||
IDENT_PAT
|
||||
REF_KW "ref"
|
||||
WHITESPACE " "
|
||||
ERROR
|
||||
BOX_KW "box"
|
||||
WHITESPACE " "
|
||||
EXPR_STMT
|
||||
BIN_EXPR
|
||||
PATH_EXPR
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "i"
|
||||
WHITESPACE " "
|
||||
EQ "="
|
||||
WHITESPACE " "
|
||||
TUPLE_EXPR
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\n "
|
||||
LET_STMT
|
||||
LET_KW "let"
|
||||
WHITESPACE " "
|
||||
IDENT_PAT
|
||||
MUT_KW "mut"
|
||||
WHITESPACE " "
|
||||
ERROR
|
||||
BOX_KW "box"
|
||||
WHITESPACE " "
|
||||
EXPR_STMT
|
||||
BIN_EXPR
|
||||
PATH_EXPR
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "i"
|
||||
WHITESPACE " "
|
||||
EQ "="
|
||||
WHITESPACE " "
|
||||
TUPLE_EXPR
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\n "
|
||||
LET_STMT
|
||||
LET_KW "let"
|
||||
WHITESPACE " "
|
||||
IDENT_PAT
|
||||
REF_KW "ref"
|
||||
WHITESPACE " "
|
||||
MUT_KW "mut"
|
||||
WHITESPACE " "
|
||||
ERROR
|
||||
BOX_KW "box"
|
||||
WHITESPACE " "
|
||||
EXPR_STMT
|
||||
BIN_EXPR
|
||||
PATH_EXPR
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "i"
|
||||
WHITESPACE " "
|
||||
EQ "="
|
||||
WHITESPACE " "
|
||||
TUPLE_EXPR
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\n"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n\n"
|
||||
error 24: expected a name
|
||||
error 27: expected SEMICOLON
|
||||
error 48: expected a name
|
||||
error 51: expected SEMICOLON
|
||||
error 76: expected a name
|
||||
error 79: expected SEMICOLON
|
55
crates/parser/test_data/parser/err/0035_use_recover.rast
Normal file
55
crates/parser/test_data/parser/err/0035_use_recover.rast
Normal file
|
@ -0,0 +1,55 @@
|
|||
SOURCE_FILE@0..48
|
||||
USE@0..13
|
||||
USE_KW@0..3 "use"
|
||||
WHITESPACE@3..4 " "
|
||||
USE_TREE@4..12
|
||||
PATH@4..12
|
||||
PATH@4..7
|
||||
PATH_SEGMENT@4..7
|
||||
NAME_REF@4..7
|
||||
IDENT@4..7 "foo"
|
||||
COLON2@7..9 "::"
|
||||
PATH_SEGMENT@9..12
|
||||
NAME_REF@9..12
|
||||
IDENT@9..12 "bar"
|
||||
SEMICOLON@12..13 ";"
|
||||
WHITESPACE@13..14 "\n"
|
||||
USE@14..17
|
||||
USE_KW@14..17 "use"
|
||||
WHITESPACE@17..18 "\n"
|
||||
USE@18..33
|
||||
USE_KW@18..21 "use"
|
||||
WHITESPACE@21..22 " "
|
||||
USE_TREE@22..32
|
||||
PATH@22..32
|
||||
PATH@22..27
|
||||
PATH_SEGMENT@22..27
|
||||
NAME_REF@22..27
|
||||
CRATE_KW@22..27 "crate"
|
||||
COLON2@27..29 "::"
|
||||
PATH_SEGMENT@29..32
|
||||
NAME_REF@29..32
|
||||
IDENT@29..32 "baz"
|
||||
SEMICOLON@32..33 ";"
|
||||
WHITESPACE@33..34 "\n"
|
||||
USE@34..37
|
||||
USE_KW@34..37 "use"
|
||||
WHITESPACE@37..38 "\n"
|
||||
FN@38..47
|
||||
FN_KW@38..40 "fn"
|
||||
WHITESPACE@40..41 " "
|
||||
NAME@41..42
|
||||
IDENT@41..42 "f"
|
||||
PARAM_LIST@42..44
|
||||
L_PAREN@42..43 "("
|
||||
R_PAREN@43..44 ")"
|
||||
WHITESPACE@44..45 " "
|
||||
BLOCK_EXPR@45..47
|
||||
STMT_LIST@45..47
|
||||
L_CURLY@45..46 "{"
|
||||
R_CURLY@46..47 "}"
|
||||
WHITESPACE@47..48 "\n"
|
||||
error 17..17: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
|
||||
error 17..17: expected SEMICOLON
|
||||
error 37..37: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
|
||||
error 37..37: expected SEMICOLON
|
5
crates/parser/test_data/parser/err/0035_use_recover.rs
Normal file
5
crates/parser/test_data/parser/err/0035_use_recover.rs
Normal file
|
@ -0,0 +1,5 @@
|
|||
use foo::bar;
|
||||
use
|
||||
use crate::baz;
|
||||
use
|
||||
fn f() {}
|
55
crates/parser/test_data/parser/err/0035_use_recover.txt
Normal file
55
crates/parser/test_data/parser/err/0035_use_recover.txt
Normal file
|
@ -0,0 +1,55 @@
|
|||
SOURCE_FILE
|
||||
USE
|
||||
USE_KW "use"
|
||||
WHITESPACE " "
|
||||
USE_TREE
|
||||
PATH
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "foo"
|
||||
COLON2 "::"
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "bar"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\n"
|
||||
USE
|
||||
USE_KW "use"
|
||||
WHITESPACE "\n"
|
||||
USE
|
||||
USE_KW "use"
|
||||
WHITESPACE " "
|
||||
USE_TREE
|
||||
PATH
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
CRATE_KW "crate"
|
||||
COLON2 "::"
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "baz"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\n"
|
||||
USE
|
||||
USE_KW "use"
|
||||
WHITESPACE "\n"
|
||||
FN
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "f"
|
||||
PARAM_LIST
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\n"
|
||||
error 17: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
|
||||
error 17: expected SEMICOLON
|
||||
error 37: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
|
||||
error 37: expected SEMICOLON
|
51
crates/parser/test_data/parser/err/0036_partial_use.rast
Normal file
51
crates/parser/test_data/parser/err/0036_partial_use.rast
Normal file
|
@ -0,0 +1,51 @@
|
|||
SOURCE_FILE@0..37
|
||||
USE@0..36
|
||||
USE_KW@0..3 "use"
|
||||
WHITESPACE@3..4 " "
|
||||
USE_TREE@4..36
|
||||
PATH@4..7
|
||||
PATH_SEGMENT@4..7
|
||||
NAME_REF@4..7
|
||||
IDENT@4..7 "std"
|
||||
COLON2@7..9 "::"
|
||||
USE_TREE_LIST@9..36
|
||||
L_CURLY@9..10 "{"
|
||||
USE_TREE@10..22
|
||||
PATH@10..22
|
||||
PATH@10..15
|
||||
PATH_SEGMENT@10..15
|
||||
NAME_REF@10..15
|
||||
IDENT@10..15 "error"
|
||||
COLON2@15..17 "::"
|
||||
PATH_SEGMENT@17..22
|
||||
NAME_REF@17..22
|
||||
IDENT@17..22 "Error"
|
||||
ERROR@22..23
|
||||
SEMICOLON@22..23 ";"
|
||||
WHITESPACE@23..24 "\n"
|
||||
ERROR@24..27
|
||||
USE_KW@24..27 "use"
|
||||
WHITESPACE@27..28 " "
|
||||
USE_TREE@28..35
|
||||
PATH@28..35
|
||||
PATH@28..31
|
||||
PATH_SEGMENT@28..31
|
||||
NAME_REF@28..31
|
||||
IDENT@28..31 "std"
|
||||
COLON2@31..33 "::"
|
||||
PATH_SEGMENT@33..35
|
||||
NAME_REF@33..35
|
||||
IDENT@33..35 "io"
|
||||
ERROR@35..36
|
||||
SEMICOLON@35..36 ";"
|
||||
WHITESPACE@36..37 "\n"
|
||||
error 22..22: expected COMMA
|
||||
error 22..22: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
|
||||
error 23..23: expected COMMA
|
||||
error 24..24: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
|
||||
error 27..27: expected COMMA
|
||||
error 35..35: expected COMMA
|
||||
error 35..35: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
|
||||
error 36..36: expected COMMA
|
||||
error 36..36: expected R_CURLY
|
||||
error 36..36: expected SEMICOLON
|
2
crates/parser/test_data/parser/err/0036_partial_use.rs
Normal file
2
crates/parser/test_data/parser/err/0036_partial_use.rs
Normal file
|
@ -0,0 +1,2 @@
|
|||
use std::{error::Error;
|
||||
use std::io;
|
51
crates/parser/test_data/parser/err/0036_partial_use.txt
Normal file
51
crates/parser/test_data/parser/err/0036_partial_use.txt
Normal file
|
@ -0,0 +1,51 @@
|
|||
SOURCE_FILE
|
||||
USE
|
||||
USE_KW "use"
|
||||
WHITESPACE " "
|
||||
USE_TREE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "std"
|
||||
COLON2 "::"
|
||||
USE_TREE_LIST
|
||||
L_CURLY "{"
|
||||
USE_TREE
|
||||
PATH
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "error"
|
||||
COLON2 "::"
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "Error"
|
||||
ERROR
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\n"
|
||||
ERROR
|
||||
USE_KW "use"
|
||||
WHITESPACE " "
|
||||
USE_TREE
|
||||
PATH
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "std"
|
||||
COLON2 "::"
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "io"
|
||||
ERROR
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\n"
|
||||
error 22: expected COMMA
|
||||
error 22: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
|
||||
error 23: expected COMMA
|
||||
error 24: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
|
||||
error 27: expected COMMA
|
||||
error 35: expected COMMA
|
||||
error 35: expected one of `*`, `::`, `{`, `self`, `super` or an identifier
|
||||
error 36: expected COMMA
|
||||
error 36: expected R_CURLY
|
||||
error 36: expected SEMICOLON
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue