Skip to content

Commit 05712c6

Browse files
committed
added tests
1 parent 715e457 commit 05712c6

20 files changed

+597
-0
lines changed
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
SOURCE_FILE
2+
STRUCT
3+
STRUCT_KW "struct"
4+
WHITESPACE " "
5+
NAME
6+
IDENT "X"
7+
WHITESPACE " "
8+
RECORD_FIELD_LIST
9+
L_CURLY "{"
10+
RECORD_FIELD
11+
NAME
12+
IDENT "a"
13+
COLON ":"
14+
WHITESPACE " "
15+
PATH_TYPE
16+
PATH
17+
PATH_SEGMENT
18+
NAME_REF
19+
IDENT "i32"
20+
R_CURLY "}"
21+
WHITESPACE "\r\n"
22+
ERROR
23+
LET_KW "let"
24+
WHITESPACE " "
25+
IDENT_PAT
26+
NAME
27+
IDENT "foo"
28+
WHITESPACE " "
29+
EQ "="
30+
WHITESPACE " "
31+
RECORD_EXPR
32+
PATH
33+
PATH_SEGMENT
34+
NAME_REF
35+
IDENT "X"
36+
WHITESPACE " "
37+
RECORD_EXPR_FIELD_LIST
38+
L_CURLY "{"
39+
WHITESPACE "\r\n "
40+
RECORD_EXPR_FIELD
41+
NAME_REF
42+
IDENT "a"
43+
COLON ":"
44+
WHITESPACE " "
45+
LITERAL
46+
INT_NUMBER "1"
47+
WHITESPACE "\r\n"
48+
R_CURLY "}"
49+
WHITESPACE " "
50+
LET_ELSE
51+
ELSE_KW "else"
52+
WHITESPACE " "
53+
BLOCK_EXPR
54+
STMT_LIST
55+
L_CURLY "{"
56+
WHITESPACE "\r\n "
57+
EXPR_STMT
58+
RETURN_EXPR
59+
RETURN_KW "return"
60+
SEMICOLON ";"
61+
WHITESPACE "\r\n"
62+
R_CURLY "}"
63+
SEMICOLON ";"
64+
WHITESPACE "\r\n"
65+
error 19: expected an item
66+
error 45: right curly brace `}` before `else` in a `let...else` statement not allowed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
struct X {a: i32}
2+
let foo = X {
3+
a: 1
4+
} else {
5+
return;
6+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
SOURCE_FILE
2+
ERROR
3+
LET_KW "let"
4+
WHITESPACE " "
5+
IDENT_PAT
6+
NAME
7+
IDENT "foo"
8+
WHITESPACE " "
9+
EQ "="
10+
WHITESPACE " "
11+
BIN_EXPR
12+
LITERAL
13+
INT_NUMBER "1"
14+
WHITESPACE " "
15+
PLUS "+"
16+
WHITESPACE " "
17+
BLOCK_EXPR
18+
STMT_LIST
19+
L_CURLY "{"
20+
WHITESPACE "\r\n "
21+
LITERAL
22+
INT_NUMBER "1"
23+
WHITESPACE "\r\n"
24+
R_CURLY "}"
25+
WHITESPACE " "
26+
LET_ELSE
27+
ELSE_KW "else"
28+
WHITESPACE " "
29+
BLOCK_EXPR
30+
STMT_LIST
31+
L_CURLY "{"
32+
WHITESPACE "\r\n "
33+
EXPR_STMT
34+
RETURN_EXPR
35+
RETURN_KW "return"
36+
SEMICOLON ";"
37+
WHITESPACE "\r\n"
38+
R_CURLY "}"
39+
SEMICOLON ";"
40+
WHITESPACE "\r\n"
41+
error 0: expected an item
42+
error 25: right curly brace `}` before `else` in a `let...else` statement not allowed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
let foo = 1 + {
2+
1
3+
} else {
4+
return;
5+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
SOURCE_FILE
2+
FN
3+
FN_KW "fn"
4+
WHITESPACE " "
5+
NAME
6+
IDENT "r"
7+
PARAM_LIST
8+
L_PAREN "("
9+
R_PAREN ")"
10+
WHITESPACE " "
11+
BLOCK_EXPR
12+
STMT_LIST
13+
L_CURLY "{"
14+
WHITESPACE "\r\n "
15+
LET_STMT
16+
LET_KW "let"
17+
WHITESPACE " "
18+
IDENT_PAT
19+
NAME
20+
IDENT "ok"
21+
WHITESPACE " "
22+
EQ "="
23+
WHITESPACE " "
24+
MACRO_EXPR
25+
MACRO_CALL
26+
PATH
27+
PATH_SEGMENT
28+
NAME_REF
29+
IDENT "format_args"
30+
BANG "!"
31+
TOKEN_TREE
32+
L_PAREN "("
33+
STRING "\"\""
34+
R_PAREN ")"
35+
WHITESPACE " "
36+
LET_ELSE
37+
ELSE_KW "else"
38+
WHITESPACE " "
39+
BLOCK_EXPR
40+
STMT_LIST
41+
L_CURLY "{"
42+
WHITESPACE " "
43+
EXPR_STMT
44+
RETURN_EXPR
45+
RETURN_KW "return"
46+
SEMICOLON ";"
47+
WHITESPACE " "
48+
R_CURLY "}"
49+
SEMICOLON ";"
50+
WHITESPACE "\r\n\r\n "
51+
LET_STMT
52+
LET_KW "let"
53+
WHITESPACE " "
54+
IDENT_PAT
55+
NAME
56+
IDENT "bad"
57+
WHITESPACE " "
58+
EQ "="
59+
WHITESPACE " "
60+
MACRO_EXPR
61+
MACRO_CALL
62+
PATH
63+
PATH_SEGMENT
64+
NAME_REF
65+
IDENT "format_args"
66+
BANG "!"
67+
WHITESPACE " "
68+
TOKEN_TREE
69+
L_CURLY "{"
70+
STRING "\"\""
71+
R_CURLY "}"
72+
WHITESPACE " "
73+
LET_ELSE
74+
ELSE_KW "else"
75+
WHITESPACE " "
76+
BLOCK_EXPR
77+
STMT_LIST
78+
L_CURLY "{"
79+
WHITESPACE " "
80+
EXPR_STMT
81+
RETURN_EXPR
82+
RETURN_KW "return"
83+
SEMICOLON ";"
84+
WHITESPACE " "
85+
R_CURLY "}"
86+
SEMICOLON ";"
87+
WHITESPACE "\r\n"
88+
R_CURLY "}"
89+
WHITESPACE "\r\n"
90+
error 92: right curly brace `}` before `else` in a `let...else` statement not allowed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
fn r() {
2+
let ok = format_args!("") else { return; };
3+
4+
let bad = format_args! {""} else { return; };
5+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
SOURCE_FILE
2+
ERROR
3+
LET_KW "let"
4+
WHITESPACE " "
5+
IDENT_PAT
6+
NAME
7+
IDENT "foo"
8+
WHITESPACE " "
9+
EQ "="
10+
WHITESPACE " "
11+
RANGE_EXPR
12+
LITERAL
13+
INT_NUMBER "1"
14+
DOT2 ".."
15+
BLOCK_EXPR
16+
STMT_LIST
17+
L_CURLY "{"
18+
WHITESPACE "\r\n "
19+
LITERAL
20+
INT_NUMBER "1"
21+
WHITESPACE "\r\n"
22+
R_CURLY "}"
23+
WHITESPACE " "
24+
LET_ELSE
25+
ELSE_KW "else"
26+
WHITESPACE " "
27+
BLOCK_EXPR
28+
STMT_LIST
29+
L_CURLY "{"
30+
WHITESPACE "\r\n "
31+
EXPR_STMT
32+
RETURN_EXPR
33+
RETURN_KW "return"
34+
SEMICOLON ";"
35+
WHITESPACE "\r\n"
36+
R_CURLY "}"
37+
SEMICOLON ";"
38+
WHITESPACE "\r\n"
39+
error 0: expected an item
40+
error 24: right curly brace `}` before `else` in a `let...else` statement not allowed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
let foo = 1..{
2+
1
3+
} else {
4+
return;
5+
};
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
SOURCE_FILE
2+
ERROR
3+
LET_KW "let"
4+
WHITESPACE " "
5+
IDENT_PAT
6+
NAME
7+
IDENT "foo"
8+
WHITESPACE " "
9+
EQ "="
10+
WHITESPACE " "
11+
CLOSURE_EXPR
12+
PARAM_LIST
13+
PIPE "|"
14+
PARAM
15+
IDENT_PAT
16+
NAME
17+
IDENT "x"
18+
COLON ":"
19+
WHITESPACE " "
20+
PATH_TYPE
21+
PATH
22+
PATH_SEGMENT
23+
NAME_REF
24+
IDENT "i32"
25+
PIPE "|"
26+
WHITESPACE " "
27+
BLOCK_EXPR
28+
STMT_LIST
29+
L_CURLY "{"
30+
WHITESPACE "\r\n "
31+
PATH_EXPR
32+
PATH
33+
PATH_SEGMENT
34+
NAME_REF
35+
IDENT "x"
36+
WHITESPACE "\r\n"
37+
R_CURLY "}"
38+
WHITESPACE " "
39+
LET_ELSE
40+
ELSE_KW "else"
41+
WHITESPACE " "
42+
BLOCK_EXPR
43+
STMT_LIST
44+
L_CURLY "{"
45+
WHITESPACE "\r\n "
46+
EXPR_STMT
47+
RETURN_EXPR
48+
RETURN_KW "return"
49+
SEMICOLON ";"
50+
WHITESPACE "\r\n"
51+
R_CURLY "}"
52+
SEMICOLON ";"
53+
WHITESPACE "\r\n"
54+
error 0: expected an item
55+
error 30: right curly brace `}` before `else` in a `let...else` statement not allowed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
let foo = |x: i32| {
2+
x
3+
} else {
4+
return;
5+
};

0 commit comments

Comments
 (0)