aboutsummaryrefslogtreecommitdiff
path: root/crates/syntax/test_data/parser/ok
diff options
context:
space:
mode:
Diffstat (limited to 'crates/syntax/test_data/parser/ok')
-rw-r--r--crates/syntax/test_data/parser/ok/0000_empty.rast1
-rw-r--r--crates/syntax/test_data/parser/ok/0000_empty.rs0
-rw-r--r--crates/syntax/test_data/parser/ok/0001_struct_item.rast39
-rw-r--r--crates/syntax/test_data/parser/ok/0001_struct_item.rs3
-rw-r--r--crates/syntax/test_data/parser/ok/0002_struct_item_field.rast22
-rw-r--r--crates/syntax/test_data/parser/ok/0002_struct_item_field.rs3
-rw-r--r--crates/syntax/test_data/parser/ok/0004_file_shebang.rast2
-rw-r--r--crates/syntax/test_data/parser/ok/0004_file_shebang.rs1
-rw-r--r--crates/syntax/test_data/parser/ok/0005_fn_item.rast15
-rw-r--r--crates/syntax/test_data/parser/ok/0005_fn_item.rs2
-rw-r--r--crates/syntax/test_data/parser/ok/0006_inner_attributes.rast184
-rw-r--r--crates/syntax/test_data/parser/ok/0006_inner_attributes.rs10
-rw-r--r--crates/syntax/test_data/parser/ok/0007_extern_crate.rast39
-rw-r--r--crates/syntax/test_data/parser/ok/0007_extern_crate.rs3
-rw-r--r--crates/syntax/test_data/parser/ok/0008_mod_item.rast92
-rw-r--r--crates/syntax/test_data/parser/ok/0008_mod_item.rs17
-rw-r--r--crates/syntax/test_data/parser/ok/0009_use_item.rast21
-rw-r--r--crates/syntax/test_data/parser/ok/0009_use_item.rs2
-rw-r--r--crates/syntax/test_data/parser/ok/0010_use_path_segments.rast42
-rw-r--r--crates/syntax/test_data/parser/ok/0010_use_path_segments.rs2
-rw-r--r--crates/syntax/test_data/parser/ok/0011_outer_attribute.rast57
-rw-r--r--crates/syntax/test_data/parser/ok/0011_outer_attribute.rs6
-rw-r--r--crates/syntax/test_data/parser/ok/0012_visibility.rast102
-rw-r--r--crates/syntax/test_data/parser/ok/0012_visibility.rs5
-rw-r--r--crates/syntax/test_data/parser/ok/0013_use_path_self_super.rast33
-rw-r--r--crates/syntax/test_data/parser/ok/0013_use_path_self_super.rs2
-rw-r--r--crates/syntax/test_data/parser/ok/0014_use_tree.rast95
-rw-r--r--crates/syntax/test_data/parser/ok/0014_use_tree.rs7
-rw-r--r--crates/syntax/test_data/parser/ok/0015_use_tree.rast65
-rw-r--r--crates/syntax/test_data/parser/ok/0015_use_tree.rs2
-rw-r--r--crates/syntax/test_data/parser/ok/0016_struct_flavors.rast93
-rw-r--r--crates/syntax/test_data/parser/ok/0016_struct_flavors.rs10
-rw-r--r--crates/syntax/test_data/parser/ok/0017_attr_trailing_comma.rast28
-rw-r--r--crates/syntax/test_data/parser/ok/0017_attr_trailing_comma.rs2
-rw-r--r--crates/syntax/test_data/parser/ok/0018_struct_type_params.rast257
-rw-r--r--crates/syntax/test_data/parser/ok/0018_struct_type_params.rs17
-rw-r--r--crates/syntax/test_data/parser/ok/0019_enums.rast155
-rw-r--r--crates/syntax/test_data/parser/ok/0019_enums.rs25
-rw-r--r--crates/syntax/test_data/parser/ok/0020_type_param_bounds.rast268
-rw-r--r--crates/syntax/test_data/parser/ok/0020_type_param_bounds.rs10
-rw-r--r--crates/syntax/test_data/parser/ok/0022_empty_extern_block.rast21
-rw-r--r--crates/syntax/test_data/parser/ok/0022_empty_extern_block.rs5
-rw-r--r--crates/syntax/test_data/parser/ok/0023_static_items.rast41
-rw-r--r--crates/syntax/test_data/parser/ok/0023_static_items.rs2
-rw-r--r--crates/syntax/test_data/parser/ok/0024_const_item.rast59
-rw-r--r--crates/syntax/test_data/parser/ok/0024_const_item.rs3
-rw-r--r--crates/syntax/test_data/parser/ok/0025_extern_fn_in_block.rast31
-rw-r--r--crates/syntax/test_data/parser/ok/0025_extern_fn_in_block.rs3
-rw-r--r--crates/syntax/test_data/parser/ok/0026_const_fn_in_block.rast30
-rw-r--r--crates/syntax/test_data/parser/ok/0026_const_fn_in_block.rs3
-rw-r--r--crates/syntax/test_data/parser/ok/0027_unsafe_fn_in_block.rast41
-rw-r--r--crates/syntax/test_data/parser/ok/0027_unsafe_fn_in_block.rs4
-rw-r--r--crates/syntax/test_data/parser/ok/0028_operator_binding_power.rast185
-rw-r--r--crates/syntax/test_data/parser/ok/0028_operator_binding_power.rs14
-rw-r--r--crates/syntax/test_data/parser/ok/0029_range_forms.rast151
-rw-r--r--crates/syntax/test_data/parser/ok/0029_range_forms.rs11
-rw-r--r--crates/syntax/test_data/parser/ok/0030_string_suffixes.rast63
-rw-r--r--crates/syntax/test_data/parser/ok/0030_string_suffixes.rs6
-rw-r--r--crates/syntax/test_data/parser/ok/0030_traits.rast61
-rw-r--r--crates/syntax/test_data/parser/ok/0030_traits.rs7
-rw-r--r--crates/syntax/test_data/parser/ok/0031_extern.rast973
-rw-r--r--crates/syntax/test_data/parser/ok/0031_extern.rs29
-rw-r--r--crates/syntax/test_data/parser/ok/0032_where_for.rast90
-rw-r--r--crates/syntax/test_data/parser/ok/0032_where_for.rs4
-rw-r--r--crates/syntax/test_data/parser/ok/0033_label_break.rast215
-rw-r--r--crates/syntax/test_data/parser/ok/0033_label_break.rs28
-rw-r--r--crates/syntax/test_data/parser/ok/0034_crate_path_in_call.rast41
-rw-r--r--crates/syntax/test_data/parser/ok/0034_crate_path_in_call.rs3
-rw-r--r--crates/syntax/test_data/parser/ok/0035_weird_exprs.rast2291
-rw-r--r--crates/syntax/test_data/parser/ok/0035_weird_exprs.rs154
-rw-r--r--crates/syntax/test_data/parser/ok/0036_fully_qualified.rast92
-rw-r--r--crates/syntax/test_data/parser/ok/0036_fully_qualified.rs8
-rw-r--r--crates/syntax/test_data/parser/ok/0037_mod.rast16
-rw-r--r--crates/syntax/test_data/parser/ok/0037_mod.rs5
-rw-r--r--crates/syntax/test_data/parser/ok/0038_where_pred_type.rast42
-rw-r--r--crates/syntax/test_data/parser/ok/0038_where_pred_type.rs1
-rw-r--r--crates/syntax/test_data/parser/ok/0039_raw_fn_item.rast15
-rw-r--r--crates/syntax/test_data/parser/ok/0039_raw_fn_item.rs2
-rw-r--r--crates/syntax/test_data/parser/ok/0040_raw_struct_item_field.rast22
-rw-r--r--crates/syntax/test_data/parser/ok/0040_raw_struct_item_field.rs3
-rw-r--r--crates/syntax/test_data/parser/ok/0041_raw_keywords.rast49
-rw-r--r--crates/syntax/test_data/parser/ok/0041_raw_keywords.rs1
-rw-r--r--crates/syntax/test_data/parser/ok/0042_ufcs_call_list.rast123
-rw-r--r--crates/syntax/test_data/parser/ok/0042_ufcs_call_list.rs15
-rw-r--r--crates/syntax/test_data/parser/ok/0043_complex_assignment.rast109
-rw-r--r--crates/syntax/test_data/parser/ok/0043_complex_assignment.rs8
-rw-r--r--crates/syntax/test_data/parser/ok/0044_let_attrs.rast75
-rw-r--r--crates/syntax/test_data/parser/ok/0044_let_attrs.rs5
-rw-r--r--crates/syntax/test_data/parser/ok/0045_block_inner_attrs.rast177
-rw-r--r--crates/syntax/test_data/parser/ok/0045_block_inner_attrs.rs20
-rw-r--r--crates/syntax/test_data/parser/ok/0046_extern_inner_attributes.rast28
-rw-r--r--crates/syntax/test_data/parser/ok/0046_extern_inner_attributes.rs4
-rw-r--r--crates/syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast320
-rw-r--r--crates/syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rs27
-rw-r--r--crates/syntax/test_data/parser/ok/0048_compound_assignment.rast200
-rw-r--r--crates/syntax/test_data/parser/ok/0048_compound_assignment.rs17
-rw-r--r--crates/syntax/test_data/parser/ok/0049_async_block.rast35
-rw-r--r--crates/syntax/test_data/parser/ok/0049_async_block.rs5
-rw-r--r--crates/syntax/test_data/parser/ok/0050_async_block_as_argument.rast90
-rw-r--r--crates/syntax/test_data/parser/ok/0050_async_block_as_argument.rs5
-rw-r--r--crates/syntax/test_data/parser/ok/0051_parameter_attrs.rast508
-rw-r--r--crates/syntax/test_data/parser/ok/0051_parameter_attrs.rs21
-rw-r--r--crates/syntax/test_data/parser/ok/0052_for_range_block.rast78
-rw-r--r--crates/syntax/test_data/parser/ok/0052_for_range_block.rs5
-rw-r--r--crates/syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rast39
-rw-r--r--crates/syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rs5
-rw-r--r--crates/syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rast123
-rw-r--r--crates/syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rs5
-rw-r--r--crates/syntax/test_data/parser/ok/0055_dot_dot_dot.rast49
-rw-r--r--crates/syntax/test_data/parser/ok/0055_dot_dot_dot.rs5
-rw-r--r--crates/syntax/test_data/parser/ok/0056_neq_in_type.rast64
-rw-r--r--crates/syntax/test_data/parser/ok/0056_neq_in_type.rs3
-rw-r--r--crates/syntax/test_data/parser/ok/0057_loop_in_call.rast56
-rw-r--r--crates/syntax/test_data/parser/ok/0057_loop_in_call.rs5
-rw-r--r--crates/syntax/test_data/parser/ok/0058_unary_expr_precedence.rast96
-rw-r--r--crates/syntax/test_data/parser/ok/0058_unary_expr_precedence.rs7
-rw-r--r--crates/syntax/test_data/parser/ok/0059_loops_in_parens.rast97
-rw-r--r--crates/syntax/test_data/parser/ok/0059_loops_in_parens.rs5
-rw-r--r--crates/syntax/test_data/parser/ok/0060_as_range.rast55
-rw-r--r--crates/syntax/test_data/parser/ok/0060_as_range.rs4
-rw-r--r--crates/syntax/test_data/parser/ok/0061_match_full_range.rast26
-rw-r--r--crates/syntax/test_data/parser/ok/0061_match_full_range.rs4
-rw-r--r--crates/syntax/test_data/parser/ok/0062_macro_2.0.rast175
-rw-r--r--crates/syntax/test_data/parser/ok/0062_macro_2.0.rs15
-rw-r--r--crates/syntax/test_data/parser/ok/0063_trait_fn_patterns.rast194
-rw-r--r--crates/syntax/test_data/parser/ok/0063_trait_fn_patterns.rs7
-rw-r--r--crates/syntax/test_data/parser/ok/0063_variadic_fun.rast133
-rw-r--r--crates/syntax/test_data/parser/ok/0063_variadic_fun.rs5
-rw-r--r--crates/syntax/test_data/parser/ok/0064_impl_fn_params.rast162
-rw-r--r--crates/syntax/test_data/parser/ok/0064_impl_fn_params.rs6
-rw-r--r--crates/syntax/test_data/parser/ok/0065_comment_newline.rast16
-rw-r--r--crates/syntax/test_data/parser/ok/0065_comment_newline.rs3
-rw-r--r--crates/syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast60
-rw-r--r--crates/syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rs1
-rw-r--r--crates/syntax/test_data/parser/ok/0066_default_modifier.rast218
-rw-r--r--crates/syntax/test_data/parser/ok/0066_default_modifier.rs16
-rw-r--r--crates/syntax/test_data/parser/ok/0067_where_for_pred.rast392
-rw-r--r--crates/syntax/test_data/parser/ok/0067_where_for_pred.rs30
-rw-r--r--crates/syntax/test_data/parser/ok/0068_item_modifiers.rast218
-rw-r--r--crates/syntax/test_data/parser/ok/0068_item_modifiers.rs16
140 files changed, 10754 insertions, 0 deletions
diff --git a/crates/syntax/test_data/parser/ok/0000_empty.rast b/crates/syntax/test_data/parser/ok/0000_empty.rast
new file mode 100644
index 000000000..6b234b0b2
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0000_empty.rast
@@ -0,0 +1 @@
[email protected]
diff --git a/crates/syntax/test_data/parser/ok/0000_empty.rs b/crates/syntax/test_data/parser/ok/0000_empty.rs
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0000_empty.rs
diff --git a/crates/syntax/test_data/parser/ok/0001_struct_item.rast b/crates/syntax/test_data/parser/ok/0001_struct_item.rast
new file mode 100644
index 000000000..a171fe7a8
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0001_struct_item.rast
@@ -0,0 +1,39 @@
1[email protected]
2 [email protected]
3 [email protected] "struct"
4 [email protected] " "
5 [email protected]
6 [email protected] "S"
7 [email protected]
8 [email protected] "<"
9 [email protected]
10 [email protected]
11 [email protected] "T"
12 [email protected] ":"
13 [email protected] " "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "Copy"
21 [email protected] ">"
22 [email protected] " "
23 [email protected]
24 [email protected] "{"
25 [email protected] "\n "
26 [email protected]
27 [email protected]
28 [email protected] "f"
29 [email protected] ":"
30 [email protected] " "
31 [email protected]
32 [email protected]
33 [email protected]
34 [email protected]
35 [email protected] "T"
36 [email protected] ","
37 [email protected] "\n"
38 [email protected] "}"
39 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0001_struct_item.rs b/crates/syntax/test_data/parser/ok/0001_struct_item.rs
new file mode 100644
index 000000000..512aeb3e7
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0001_struct_item.rs
@@ -0,0 +1,3 @@
1struct S<T: Copy> {
2 f: T,
3}
diff --git a/crates/syntax/test_data/parser/ok/0002_struct_item_field.rast b/crates/syntax/test_data/parser/ok/0002_struct_item_field.rast
new file mode 100644
index 000000000..362892b91
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0002_struct_item_field.rast
@@ -0,0 +1,22 @@
1[email protected]
2 [email protected]
3 [email protected] "struct"
4 [email protected] " "
5 [email protected]
6 [email protected] "S"
7 [email protected] " "
8 [email protected]
9 [email protected] "{"
10 [email protected] "\n "
11 [email protected]
12 [email protected]
13 [email protected] "foo"
14 [email protected] ":"
15 [email protected] " "
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "u32"
21 [email protected] "\n"
22 [email protected] "}"
diff --git a/crates/syntax/test_data/parser/ok/0002_struct_item_field.rs b/crates/syntax/test_data/parser/ok/0002_struct_item_field.rs
new file mode 100644
index 000000000..cc3866d25
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0002_struct_item_field.rs
@@ -0,0 +1,3 @@
1struct S {
2 foo: u32
3} \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/ok/0004_file_shebang.rast b/crates/syntax/test_data/parser/ok/0004_file_shebang.rast
new file mode 100644
index 000000000..67e21df13
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0004_file_shebang.rast
@@ -0,0 +1,2 @@
1[email protected]
2 [email protected] "#!/use/bin/env rusti"
diff --git a/crates/syntax/test_data/parser/ok/0004_file_shebang.rs b/crates/syntax/test_data/parser/ok/0004_file_shebang.rs
new file mode 100644
index 000000000..53dc9e617
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0004_file_shebang.rs
@@ -0,0 +1 @@
#!/use/bin/env rusti \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/ok/0005_fn_item.rast b/crates/syntax/test_data/parser/ok/0005_fn_item.rast
new file mode 100644
index 000000000..a7a2b11a7
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0005_fn_item.rast
@@ -0,0 +1,15 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n"
14 [email protected] "}"
15 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0005_fn_item.rs b/crates/syntax/test_data/parser/ok/0005_fn_item.rs
new file mode 100644
index 000000000..03210551c
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0005_fn_item.rs
@@ -0,0 +1,2 @@
1fn foo() {
2}
diff --git a/crates/syntax/test_data/parser/ok/0006_inner_attributes.rast b/crates/syntax/test_data/parser/ok/0006_inner_attributes.rast
new file mode 100644
index 000000000..42587243a
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0006_inner_attributes.rast
@@ -0,0 +1,184 @@
1[email protected]
2 [email protected]
3 [email protected] "#"
4 [email protected] "!"
5 [email protected] "["
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected] "attr"
10 [email protected] "]"
11 [email protected] "\n"
12 [email protected]
13 [email protected] "#"
14 [email protected] "!"
15 [email protected] "["
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected] "attr"
20 [email protected]
21 [email protected] "("
22 [email protected] "true"
23 [email protected] ")"
24 [email protected] "]"
25 [email protected] "\n"
26 [email protected]
27 [email protected] "#"
28 [email protected] "!"
29 [email protected] "["
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected] "attr"
34 [email protected]
35 [email protected] "("
36 [email protected] "ident"
37 [email protected] ")"
38 [email protected] "]"
39 [email protected] "\n"
40 [email protected]
41 [email protected] "#"
42 [email protected] "!"
43 [email protected] "["
44 [email protected]
45 [email protected]
46 [email protected]
47 [email protected] "attr"
48 [email protected]
49 [email protected] "("
50 [email protected] "ident"
51 [email protected] ","
52 [email protected] " "
53 [email protected] "100"
54 [email protected] ","
55 [email protected] " "
56 [email protected] "true"
57 [email protected] ","
58 [email protected] " "
59 [email protected] "\"true\""
60 [email protected] ","
61 [email protected] " "
62 [email protected] "ident"
63 [email protected] " "
64 [email protected] "="
65 [email protected] " "
66 [email protected] "100"
67 [email protected] ","
68 [email protected] " "
69 [email protected] "ident"
70 [email protected] " "
71 [email protected] "="
72 [email protected] " "
73 [email protected] "\"hello\""
74 [email protected] ","
75 [email protected] " "
76 [email protected] "ident"
77 [email protected]
78 [email protected] "("
79 [email protected] "100"
80 [email protected] ")"
81 [email protected] ")"
82 [email protected] "]"
83 [email protected] "\n"
84 [email protected]
85 [email protected] "#"
86 [email protected] "!"
87 [email protected] "["
88 [email protected]
89 [email protected]
90 [email protected]
91 [email protected] "attr"
92 [email protected]
93 [email protected] "("
94 [email protected] "100"
95 [email protected] ")"
96 [email protected] "]"
97 [email protected] "\n"
98 [email protected]
99 [email protected] "#"
100 [email protected] "!"
101 [email protected] "["
102 [email protected]
103 [email protected]
104 [email protected]
105 [email protected] "attr"
106 [email protected]
107 [email protected] "("
108 [email protected] "enabled"
109 [email protected] " "
110 [email protected] "="
111 [email protected] " "
112 [email protected] "true"
113 [email protected] ")"
114 [email protected] "]"
115 [email protected] "\n"
116 [email protected]
117 [email protected] "#"
118 [email protected] "!"
119 [email protected] "["
120 [email protected]
121 [email protected]
122 [email protected]
123 [email protected] "enabled"
124 [email protected]
125 [email protected] "("
126 [email protected] "true"
127 [email protected] ")"
128 [email protected] "]"
129 [email protected] "\n"
130 [email protected]
131 [email protected] "#"
132 [email protected] "!"
133 [email protected] "["
134 [email protected]
135 [email protected]
136 [email protected]
137 [email protected] "attr"
138 [email protected]
139 [email protected] "("
140 [email protected] "\"hello\""
141 [email protected] ")"
142 [email protected] "]"
143 [email protected] "\n"
144 [email protected]
145 [email protected] "#"
146 [email protected] "!"
147 [email protected] "["
148 [email protected]
149 [email protected]
150 [email protected]
151 [email protected] "repr"
152 [email protected]
153 [email protected] "("
154 [email protected] "C"
155 [email protected] ","
156 [email protected] " "
157 [email protected] "align"
158 [email protected] " "
159 [email protected] "="
160 [email protected] " "
161 [email protected] "4"
162 [email protected] ")"
163 [email protected] "]"
164 [email protected] "\n"
165 [email protected]
166 [email protected] "#"
167 [email protected] "!"
168 [email protected] "["
169 [email protected]
170 [email protected]
171 [email protected]
172 [email protected] "repr"
173 [email protected]
174 [email protected] "("
175 [email protected] "C"
176 [email protected] ","
177 [email protected] " "
178 [email protected] "align"
179 [email protected]
180 [email protected] "("
181 [email protected] "4"
182 [email protected] ")"
183 [email protected] ")"
184 [email protected] "]"
diff --git a/crates/syntax/test_data/parser/ok/0006_inner_attributes.rs b/crates/syntax/test_data/parser/ok/0006_inner_attributes.rs
new file mode 100644
index 000000000..e81f8b1e8
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0006_inner_attributes.rs
@@ -0,0 +1,10 @@
1#![attr]
2#![attr(true)]
3#![attr(ident)]
4#![attr(ident, 100, true, "true", ident = 100, ident = "hello", ident(100))]
5#![attr(100)]
6#![attr(enabled = true)]
7#![enabled(true)]
8#![attr("hello")]
9#![repr(C, align = 4)]
10#![repr(C, align(4))] \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/ok/0007_extern_crate.rast b/crates/syntax/test_data/parser/ok/0007_extern_crate.rast
new file mode 100644
index 000000000..594c2f8f2
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0007_extern_crate.rast
@@ -0,0 +1,39 @@
1[email protected]
2 [email protected]
3 [email protected] "extern"
4 [email protected] " "
5 [email protected] "crate"
6 [email protected] " "
7 [email protected]
8 [email protected] "foo"
9 [email protected] ";"
10 [email protected] "\n"
11 [email protected]
12 [email protected] "extern"
13 [email protected] " "
14 [email protected] "crate"
15 [email protected] " "
16 [email protected]
17 [email protected] "foo"
18 [email protected] " "
19 [email protected]
20 [email protected] "as"
21 [email protected] " "
22 [email protected]
23 [email protected] "bar"
24 [email protected] ";"
25 [email protected] "\n"
26 [email protected]
27 [email protected] "extern"
28 [email protected] " "
29 [email protected] "crate"
30 [email protected] " "
31 [email protected] "self"
32 [email protected] " "
33 [email protected]
34 [email protected] "as"
35 [email protected] " "
36 [email protected]
37 [email protected] "baz"
38 [email protected] ";"
39 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0007_extern_crate.rs b/crates/syntax/test_data/parser/ok/0007_extern_crate.rs
new file mode 100644
index 000000000..ab81a608c
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0007_extern_crate.rs
@@ -0,0 +1,3 @@
1extern crate foo;
2extern crate foo as bar;
3extern crate self as baz;
diff --git a/crates/syntax/test_data/parser/ok/0008_mod_item.rast b/crates/syntax/test_data/parser/ok/0008_mod_item.rast
new file mode 100644
index 000000000..b2c1d791f
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0008_mod_item.rast
@@ -0,0 +1,92 @@
1[email protected]
2 [email protected]
3 [email protected] "mod"
4 [email protected] " "
5 [email protected]
6 [email protected] "a"
7 [email protected] ";"
8 [email protected] "\n\n"
9 [email protected]
10 [email protected] "mod"
11 [email protected] " "
12 [email protected]
13 [email protected] "b"
14 [email protected] " "
15 [email protected]
16 [email protected] "{"
17 [email protected] "\n"
18 [email protected] "}"
19 [email protected] "\n\n"
20 [email protected]
21 [email protected] "mod"
22 [email protected] " "
23 [email protected]
24 [email protected] "c"
25 [email protected] " "
26 [email protected]
27 [email protected] "{"
28 [email protected] "\n "
29 [email protected]
30 [email protected] "fn"
31 [email protected] " "
32 [email protected]
33 [email protected] "foo"
34 [email protected]
35 [email protected] "("
36 [email protected] ")"
37 [email protected] " "
38 [email protected]
39 [email protected] "{"
40 [email protected] "\n "
41 [email protected] "}"
42 [email protected] "\n "
43 [email protected]
44 [email protected] "struct"
45 [email protected] " "
46 [email protected]
47 [email protected] "S"
48 [email protected] " "
49 [email protected]
50 [email protected] "{"
51 [email protected] "}"
52 [email protected] "\n"
53 [email protected] "}"
54 [email protected] "\n\n"
55 [email protected]
56 [email protected] "mod"
57 [email protected] " "
58 [email protected]
59 [email protected] "d"
60 [email protected] " "
61 [email protected]
62 [email protected] "{"
63 [email protected] "\n "
64 [email protected]
65 [email protected] "#"
66 [email protected] "!"
67 [email protected] "["
68 [email protected]
69 [email protected]
70 [email protected]
71 [email protected] "attr"
72 [email protected] "]"
73 [email protected] "\n "
74 [email protected]
75 [email protected] "mod"
76 [email protected] " "
77 [email protected]
78 [email protected] "e"
79 [email protected] ";"
80 [email protected] "\n "
81 [email protected]
82 [email protected] "mod"
83 [email protected] " "
84 [email protected]
85 [email protected] "f"
86 [email protected] " "
87 [email protected]
88 [email protected] "{"
89 [email protected] "\n "
90 [email protected] "}"
91 [email protected] "\n"
92 [email protected] "}"
diff --git a/crates/syntax/test_data/parser/ok/0008_mod_item.rs b/crates/syntax/test_data/parser/ok/0008_mod_item.rs
new file mode 100644
index 000000000..d22993bc1
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0008_mod_item.rs
@@ -0,0 +1,17 @@
1mod a;
2
3mod b {
4}
5
6mod c {
7 fn foo() {
8 }
9 struct S {}
10}
11
12mod d {
13 #![attr]
14 mod e;
15 mod f {
16 }
17} \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/ok/0009_use_item.rast b/crates/syntax/test_data/parser/ok/0009_use_item.rast
new file mode 100644
index 000000000..6be1cf9fc
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0009_use_item.rast
@@ -0,0 +1,21 @@
1[email protected]
2 [email protected]
3 [email protected] "use"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected] "foo"
10 [email protected] ";"
11 [email protected] "\n"
12 [email protected]
13 [email protected] "use"
14 [email protected] " "
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected] "::"
19 [email protected]
20 [email protected] "bar"
21 [email protected] ";"
diff --git a/crates/syntax/test_data/parser/ok/0009_use_item.rs b/crates/syntax/test_data/parser/ok/0009_use_item.rs
new file mode 100644
index 000000000..05a6aff83
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0009_use_item.rs
@@ -0,0 +1,2 @@
1use foo;
2use ::bar; \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/ok/0010_use_path_segments.rast b/crates/syntax/test_data/parser/ok/0010_use_path_segments.rast
new file mode 100644
index 000000000..4d49e7933
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0010_use_path_segments.rast
@@ -0,0 +1,42 @@
1[email protected]
2 [email protected]
3 [email protected] "use"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected]
10 [email protected] "::"
11 [email protected]
12 [email protected] "foo"
13 [email protected] "::"
14 [email protected]
15 [email protected]
16 [email protected] "bar"
17 [email protected] "::"
18 [email protected]
19 [email protected]
20 [email protected] "baz"
21 [email protected] ";"
22 [email protected] "\n"
23 [email protected]
24 [email protected] "use"
25 [email protected] " "
26 [email protected]
27 [email protected]
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected] "foo"
33 [email protected] "::"
34 [email protected]
35 [email protected]
36 [email protected] "bar"
37 [email protected] "::"
38 [email protected]
39 [email protected]
40 [email protected] "baz"
41 [email protected] ";"
42 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0010_use_path_segments.rs b/crates/syntax/test_data/parser/ok/0010_use_path_segments.rs
new file mode 100644
index 000000000..1e71b7a6c
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0010_use_path_segments.rs
@@ -0,0 +1,2 @@
1use ::foo::bar::baz;
2use foo::bar::baz;
diff --git a/crates/syntax/test_data/parser/ok/0011_outer_attribute.rast b/crates/syntax/test_data/parser/ok/0011_outer_attribute.rast
new file mode 100644
index 000000000..478fdba75
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0011_outer_attribute.rast
@@ -0,0 +1,57 @@
1[email protected]
2 [email protected]
3 [email protected]
4 [email protected] "#"
5 [email protected] "["
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected] "cfg"
10 [email protected]
11 [email protected] "("
12 [email protected] "test"
13 [email protected] ")"
14 [email protected] "]"
15 [email protected] "\n"
16 [email protected]
17 [email protected] "#"
18 [email protected] "["
19 [email protected]
20 [email protected]
21 [email protected]
22 [email protected] "ignore"
23 [email protected] "]"
24 [email protected] "\n"
25 [email protected] "fn"
26 [email protected] " "
27 [email protected]
28 [email protected] "foo"
29 [email protected]
30 [email protected] "("
31 [email protected] ")"
32 [email protected] " "
33 [email protected]
34 [email protected] "{"
35 [email protected] "}"
36 [email protected] "\n\n"
37 [email protected]
38 [email protected]
39 [email protected] "#"
40 [email protected] "["
41 [email protected]
42 [email protected]
43 [email protected]
44 [email protected] "path"
45 [email protected] " "
46 [email protected] "="
47 [email protected] " "
48 [email protected]
49 [email protected] "\"a.rs\""
50 [email protected] "]"
51 [email protected] "\n"
52 [email protected] "mod"
53 [email protected] " "
54 [email protected]
55 [email protected] "b"
56 [email protected] ";"
57 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0011_outer_attribute.rs b/crates/syntax/test_data/parser/ok/0011_outer_attribute.rs
new file mode 100644
index 000000000..3d2e01d5c
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0011_outer_attribute.rs
@@ -0,0 +1,6 @@
1#[cfg(test)]
2#[ignore]
3fn foo() {}
4
5#[path = "a.rs"]
6mod b;
diff --git a/crates/syntax/test_data/parser/ok/0012_visibility.rast b/crates/syntax/test_data/parser/ok/0012_visibility.rast
new file mode 100644
index 000000000..83a93b5a9
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0012_visibility.rast
@@ -0,0 +1,102 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "a"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "}"
14 [email protected] "\n"
15 [email protected]
16 [email protected]
17 [email protected] "pub"
18 [email protected] " "
19 [email protected] "fn"
20 [email protected] " "
21 [email protected]
22 [email protected] "b"
23 [email protected]
24 [email protected] "("
25 [email protected] ")"
26 [email protected] " "
27 [email protected]
28 [email protected] "{"
29 [email protected] "}"
30 [email protected] "\n"
31 [email protected]
32 [email protected]
33 [email protected] "pub"
34 [email protected] "("
35 [email protected] "crate"
36 [email protected] ")"
37 [email protected] " "
38 [email protected] "fn"
39 [email protected] " "
40 [email protected]
41 [email protected] "c"
42 [email protected]
43 [email protected] "("
44 [email protected] ")"
45 [email protected] " "
46 [email protected]
47 [email protected] "{"
48 [email protected] "}"
49 [email protected] "\n"
50 [email protected]
51 [email protected]
52 [email protected] "pub"
53 [email protected] "("
54 [email protected] "super"
55 [email protected] ")"
56 [email protected] " "
57 [email protected] "fn"
58 [email protected] " "
59 [email protected]
60 [email protected] "d"
61 [email protected]
62 [email protected] "("
63 [email protected] ")"
64 [email protected] " "
65 [email protected]
66 [email protected] "{"
67 [email protected] "}"
68 [email protected] "\n"
69 [email protected]
70 [email protected]
71 [email protected] "pub"
72 [email protected] "("
73 [email protected] "in"
74 [email protected] " "
75 [email protected]
76 [email protected]
77 [email protected]
78 [email protected]
79 [email protected]
80 [email protected] "foo"
81 [email protected] "::"
82 [email protected]
83 [email protected]
84 [email protected] "bar"
85 [email protected] "::"
86 [email protected]
87 [email protected]
88 [email protected] "baz"
89 [email protected] ")"
90 [email protected] " "
91 [email protected] "fn"
92 [email protected] " "
93 [email protected]
94 [email protected] "e"
95 [email protected]
96 [email protected] "("
97 [email protected] ")"
98 [email protected] " "
99 [email protected]
100 [email protected] "{"
101 [email protected] "}"
102 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0012_visibility.rs b/crates/syntax/test_data/parser/ok/0012_visibility.rs
new file mode 100644
index 000000000..75b1db121
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0012_visibility.rs
@@ -0,0 +1,5 @@
1fn a() {}
2pub fn b() {}
3pub(crate) fn c() {}
4pub(super) fn d() {}
5pub(in foo::bar::baz) fn e() {}
diff --git a/crates/syntax/test_data/parser/ok/0013_use_path_self_super.rast b/crates/syntax/test_data/parser/ok/0013_use_path_self_super.rast
new file mode 100644
index 000000000..66ab13660
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0013_use_path_self_super.rast
@@ -0,0 +1,33 @@
1[email protected]
2 [email protected]
3 [email protected] "use"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected] "self"
10 [email protected] "::"
11 [email protected]
12 [email protected]
13 [email protected] "foo"
14 [email protected] ";"
15 [email protected] "\n"
16 [email protected]
17 [email protected] "use"
18 [email protected] " "
19 [email protected]
20 [email protected]
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected] "super"
25 [email protected] "::"
26 [email protected]
27 [email protected] "super"
28 [email protected] "::"
29 [email protected]
30 [email protected]
31 [email protected] "bar"
32 [email protected] ";"
33 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0013_use_path_self_super.rs b/crates/syntax/test_data/parser/ok/0013_use_path_self_super.rs
new file mode 100644
index 000000000..9d9eb9917
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0013_use_path_self_super.rs
@@ -0,0 +1,2 @@
1use self::foo;
2use super::super::bar;
diff --git a/crates/syntax/test_data/parser/ok/0014_use_tree.rast b/crates/syntax/test_data/parser/ok/0014_use_tree.rast
new file mode 100644
index 000000000..4389d2d4b
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0014_use_tree.rast
@@ -0,0 +1,95 @@
1[email protected]
2 [email protected]
3 [email protected] "use"
4 [email protected] " "
5 [email protected]
6 [email protected] "*"
7 [email protected] ";"
8 [email protected] "\n"
9 [email protected]
10 [email protected] "use"
11 [email protected] " "
12 [email protected]
13 [email protected] "::"
14 [email protected] "*"
15 [email protected] ";"
16 [email protected] "\n"
17 [email protected]
18 [email protected] "use"
19 [email protected] " "
20 [email protected]
21 [email protected] "::"
22 [email protected]
23 [email protected] "{"
24 [email protected] "}"
25 [email protected] ";"
26 [email protected] "\n"
27 [email protected]
28 [email protected] "use"
29 [email protected] " "
30 [email protected]
31 [email protected]
32 [email protected] "{"
33 [email protected] "}"
34 [email protected] ";"
35 [email protected] "\n"
36 [email protected]
37 [email protected] "use"
38 [email protected] " "
39 [email protected]
40 [email protected]
41 [email protected]
42 [email protected]
43 [email protected] "foo"
44 [email protected] "::"
45 [email protected] "*"
46 [email protected] ";"
47 [email protected] "\n"
48 [email protected]
49 [email protected] "use"
50 [email protected] " "
51 [email protected]
52 [email protected]
53 [email protected]
54 [email protected]
55 [email protected] "foo"
56 [email protected] "::"
57 [email protected]
58 [email protected] "{"
59 [email protected] "}"
60 [email protected] ";"
61 [email protected] "\n"
62 [email protected]
63 [email protected] "use"
64 [email protected] " "
65 [email protected]
66 [email protected]
67 [email protected]
68 [email protected] "::"
69 [email protected]
70 [email protected] "foo"
71 [email protected] "::"
72 [email protected]
73 [email protected] "{"
74 [email protected]
75 [email protected]
76 [email protected]
77 [email protected]
78 [email protected] "a"
79 [email protected] ","
80 [email protected] " "
81 [email protected]
82 [email protected]
83 [email protected]
84 [email protected]
85 [email protected] "b"
86 [email protected] ","
87 [email protected] " "
88 [email protected]
89 [email protected]
90 [email protected]
91 [email protected]
92 [email protected] "c"
93 [email protected] "}"
94 [email protected] ";"
95 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0014_use_tree.rs b/crates/syntax/test_data/parser/ok/0014_use_tree.rs
new file mode 100644
index 000000000..5e4aa3a33
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0014_use_tree.rs
@@ -0,0 +1,7 @@
1use *;
2use ::*;
3use ::{};
4use {};
5use foo::*;
6use foo::{};
7use ::foo::{a, b, c};
diff --git a/crates/syntax/test_data/parser/ok/0015_use_tree.rast b/crates/syntax/test_data/parser/ok/0015_use_tree.rast
new file mode 100644
index 000000000..d7e93f7eb
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0015_use_tree.rast
@@ -0,0 +1,65 @@
1[email protected]
2 [email protected]
3 [email protected] "use"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected] "foo"
10 [email protected] " "
11 [email protected]
12 [email protected] "as"
13 [email protected] " "
14 [email protected]
15 [email protected] "bar"
16 [email protected] ";"
17 [email protected] "\n"
18 [email protected]
19 [email protected] "use"
20 [email protected] " "
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected] "foo"
26 [email protected] "::"
27 [email protected]
28 [email protected] "{"
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected] "a"
34 [email protected] " "
35 [email protected]
36 [email protected] "as"
37 [email protected] " "
38 [email protected]
39 [email protected] "b"
40 [email protected] ","
41 [email protected] " "
42 [email protected]
43 [email protected] "*"
44 [email protected] ","
45 [email protected] " "
46 [email protected]
47 [email protected] "::"
48 [email protected] "*"
49 [email protected] ","
50 [email protected] " "
51 [email protected]
52 [email protected]
53 [email protected]
54 [email protected] "::"
55 [email protected]
56 [email protected] "foo"
57 [email protected] " "
58 [email protected]
59 [email protected] "as"
60 [email protected] " "
61 [email protected]
62 [email protected] "x"
63 [email protected] "}"
64 [email protected] ";"
65 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0015_use_tree.rs b/crates/syntax/test_data/parser/ok/0015_use_tree.rs
new file mode 100644
index 000000000..46a0783a2
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0015_use_tree.rs
@@ -0,0 +1,2 @@
1use foo as bar;
2use foo::{a as b, *, ::*, ::foo as x};
diff --git a/crates/syntax/test_data/parser/ok/0016_struct_flavors.rast b/crates/syntax/test_data/parser/ok/0016_struct_flavors.rast
new file mode 100644
index 000000000..b15f41dd7
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0016_struct_flavors.rast
@@ -0,0 +1,93 @@
1[email protected]
2 [email protected]
3 [email protected] "struct"
4 [email protected] " "
5 [email protected]
6 [email protected] "A"
7 [email protected] ";"
8 [email protected] "\n"
9 [email protected]
10 [email protected] "struct"
11 [email protected] " "
12 [email protected]
13 [email protected] "B"
14 [email protected] " "
15 [email protected]
16 [email protected] "{"
17 [email protected] "}"
18 [email protected] "\n"
19 [email protected]
20 [email protected] "struct"
21 [email protected] " "
22 [email protected]
23 [email protected] "C"
24 [email protected]
25 [email protected] "("
26 [email protected] ")"
27 [email protected] ";"
28 [email protected] "\n\n"
29 [email protected]
30 [email protected] "struct"
31 [email protected] " "
32 [email protected]
33 [email protected] "D"
34 [email protected] " "
35 [email protected]
36 [email protected] "{"
37 [email protected] "\n "
38 [email protected]
39 [email protected]
40 [email protected] "a"
41 [email protected] ":"
42 [email protected] " "
43 [email protected]
44 [email protected]
45 [email protected]
46 [email protected]
47 [email protected] "u32"
48 [email protected] ","
49 [email protected] "\n "
50 [email protected]
51 [email protected]
52 [email protected] "pub"
53 [email protected] " "
54 [email protected]
55 [email protected] "b"
56 [email protected] ":"
57 [email protected] " "
58 [email protected]
59 [email protected]
60 [email protected]
61 [email protected]
62 [email protected] "u32"
63 [email protected] "\n"
64 [email protected] "}"
65 [email protected] "\n\n"
66 [email protected]
67 [email protected] "struct"
68 [email protected] " "
69 [email protected]
70 [email protected] "E"
71 [email protected]
72 [email protected] "("
73 [email protected]
74 [email protected]
75 [email protected] "pub"
76 [email protected] " "
77 [email protected]
78 [email protected]
79 [email protected]
80 [email protected]
81 [email protected] "x"
82 [email protected] ","
83 [email protected] " "
84 [email protected]
85 [email protected]
86 [email protected]
87 [email protected]
88 [email protected]
89 [email protected] "y"
90 [email protected] ","
91 [email protected] ")"
92 [email protected] ";"
93 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0016_struct_flavors.rs b/crates/syntax/test_data/parser/ok/0016_struct_flavors.rs
new file mode 100644
index 000000000..69638350c
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0016_struct_flavors.rs
@@ -0,0 +1,10 @@
1struct A;
2struct B {}
3struct C();
4
5struct D {
6 a: u32,
7 pub b: u32
8}
9
10struct E(pub x, y,);
diff --git a/crates/syntax/test_data/parser/ok/0017_attr_trailing_comma.rast b/crates/syntax/test_data/parser/ok/0017_attr_trailing_comma.rast
new file mode 100644
index 000000000..a3e091ad3
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0017_attr_trailing_comma.rast
@@ -0,0 +1,28 @@
1[email protected]
2 [email protected]
3 [email protected]
4 [email protected] "#"
5 [email protected] "["
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected] "foo"
10 [email protected]
11 [email protected] "("
12 [email protected] "a"
13 [email protected] ","
14 [email protected] ")"
15 [email protected] "]"
16 [email protected] "\n"
17 [email protected] "fn"
18 [email protected] " "
19 [email protected]
20 [email protected] "foo"
21 [email protected]
22 [email protected] "("
23 [email protected] ")"
24 [email protected] " "
25 [email protected]
26 [email protected] "{"
27 [email protected] "}"
28 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0017_attr_trailing_comma.rs b/crates/syntax/test_data/parser/ok/0017_attr_trailing_comma.rs
new file mode 100644
index 000000000..fe0a7bb97
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0017_attr_trailing_comma.rs
@@ -0,0 +1,2 @@
1#[foo(a,)]
2fn foo() {}
diff --git a/crates/syntax/test_data/parser/ok/0018_struct_type_params.rast b/crates/syntax/test_data/parser/ok/0018_struct_type_params.rast
new file mode 100644
index 000000000..630aa0708
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0018_struct_type_params.rast
@@ -0,0 +1,257 @@
1[email protected]
2 [email protected]
3 [email protected] "struct"
4 [email protected] " "
5 [email protected]
6 [email protected] "S1"
7 [email protected]
8 [email protected] "<"
9 [email protected]
10 [email protected]
11 [email protected] "T"
12 [email protected] ">"
13 [email protected] ";"
14 [email protected] "\n"
15 [email protected]
16 [email protected] "struct"
17 [email protected] " "
18 [email protected]
19 [email protected] "S2"
20 [email protected]
21 [email protected] "<"
22 [email protected]
23 [email protected]
24 [email protected] "T"
25 [email protected] ">"
26 [email protected]
27 [email protected] "("
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected] "u32"
34 [email protected] ")"
35 [email protected] ";"
36 [email protected] "\n"
37 [email protected]
38 [email protected] "struct"
39 [email protected] " "
40 [email protected]
41 [email protected] "S3"
42 [email protected]
43 [email protected] "<"
44 [email protected]
45 [email protected]
46 [email protected] "T"
47 [email protected] ">"
48 [email protected] " "
49 [email protected]
50 [email protected] "{"
51 [email protected] " "
52 [email protected]
53 [email protected]
54 [email protected] "u"
55 [email protected] ":"
56 [email protected] " "
57 [email protected]
58 [email protected]
59 [email protected]
60 [email protected]
61 [email protected] "u32"
62 [email protected] " "
63 [email protected] "}"
64 [email protected] "\n\n"
65 [email protected]
66 [email protected] "struct"
67 [email protected] " "
68 [email protected]
69 [email protected] "S4"
70 [email protected]
71 [email protected] "<"
72 [email protected] ">"
73 [email protected] ";"
74 [email protected] "\n"
75 [email protected]
76 [email protected] "struct"
77 [email protected] " "
78 [email protected]
79 [email protected] "S5"
80 [email protected]
81 [email protected] "<"
82 [email protected]
83 [email protected] "\'a"
84 [email protected] ">"
85 [email protected] ";"
86 [email protected] "\n"
87 [email protected]
88 [email protected] "struct"
89 [email protected] " "
90 [email protected]
91 [email protected] "S6"
92 [email protected]
93 [email protected] "<"
94 [email protected]
95 [email protected] "\'a"
96 [email protected] ":"
97 [email protected] ">"
98 [email protected] ";"
99 [email protected] "\n"
100 [email protected]
101 [email protected] "struct"
102 [email protected] " "
103 [email protected]
104 [email protected] "S7"
105 [email protected]
106 [email protected] "<"
107 [email protected]
108 [email protected] "\'a"
109 [email protected] ":"
110 [email protected] " "
111 [email protected] "\'b"
112 [email protected] ">"
113 [email protected] ";"
114 [email protected] "\n"
115 [email protected]
116 [email protected] "struct"
117 [email protected] " "
118 [email protected]
119 [email protected] "S8"
120 [email protected]
121 [email protected] "<"
122 [email protected]
123 [email protected] "\'a"
124 [email protected] ":"
125 [email protected] " "
126 [email protected] "\'b"
127 [email protected] " "
128 [email protected] "+"
129 [email protected] " "
130 [email protected] ">"
131 [email protected] ";"
132 [email protected] "\n"
133 [email protected]
134 [email protected] "struct"
135 [email protected] " "
136 [email protected]
137 [email protected] "S9"
138 [email protected]
139 [email protected] "<"
140 [email protected]
141 [email protected] "\'a"
142 [email protected] ":"
143 [email protected] " "
144 [email protected] "\'b"
145 [email protected] " "
146 [email protected] "+"
147 [email protected] " "
148 [email protected] "\'c"
149 [email protected] ">"
150 [email protected] ";"
151 [email protected] "\n"
152 [email protected]
153 [email protected] "struct"
154 [email protected] " "
155 [email protected]
156 [email protected] "S10"
157 [email protected]
158 [email protected] "<"
159 [email protected]
160 [email protected] "\'a"
161 [email protected] ","
162 [email protected] ">"
163 [email protected] ";"
164 [email protected] "\n"
165 [email protected]
166 [email protected] "struct"
167 [email protected] " "
168 [email protected]
169 [email protected] "S11"
170 [email protected]
171 [email protected] "<"
172 [email protected]
173 [email protected] "\'a"
174 [email protected] ","
175 [email protected] " "
176 [email protected]
177 [email protected] "\'b"
178 [email protected] ">"
179 [email protected] ";"
180 [email protected] "\n"
181 [email protected]
182 [email protected] "struct"
183 [email protected] " "
184 [email protected]
185 [email protected] "S12"
186 [email protected]
187 [email protected] "<"
188 [email protected]
189 [email protected] "\'a"
190 [email protected] ":"
191 [email protected] " "
192 [email protected] "\'b"
193 [email protected] "+"
194 [email protected] ","
195 [email protected] " "
196 [email protected]
197 [email protected] "\'b"
198 [email protected] ":"
199 [email protected] " "
200 [email protected] "\'c"
201 [email protected] ","
202 [email protected] ">"
203 [email protected] ";"
204 [email protected] "\n\n"
205 [email protected]
206 [email protected] "struct"
207 [email protected] " "
208 [email protected]
209 [email protected] "S13"
210 [email protected]
211 [email protected] "<"
212 [email protected]
213 [email protected]
214 [email protected] "T"
215 [email protected] ">"
216 [email protected] ";"
217 [email protected] "\n"
218 [email protected]
219 [email protected] "struct"
220 [email protected] " "
221 [email protected]
222 [email protected] "S14"
223 [email protected]
224 [email protected] "<"
225 [email protected]
226 [email protected]
227 [email protected] "T"
228 [email protected] ","
229 [email protected] " "
230 [email protected]
231 [email protected]
232 [email protected] "U"
233 [email protected] ">"
234 [email protected] ";"
235 [email protected] "\n"
236 [email protected]
237 [email protected] "struct"
238 [email protected] " "
239 [email protected]
240 [email protected] "S15"
241 [email protected]
242 [email protected] "<"
243 [email protected]
244 [email protected] "\'a"
245 [email protected] ","
246 [email protected] " "
247 [email protected]
248 [email protected]
249 [email protected] "T"
250 [email protected] ","
251 [email protected] " "
252 [email protected]
253 [email protected]
254 [email protected] "U"
255 [email protected] ">"
256 [email protected] ";"
257 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0018_struct_type_params.rs b/crates/syntax/test_data/parser/ok/0018_struct_type_params.rs
new file mode 100644
index 000000000..88c544923
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0018_struct_type_params.rs
@@ -0,0 +1,17 @@
1struct S1<T>;
2struct S2<T>(u32);
3struct S3<T> { u: u32 }
4
5struct S4<>;
6struct S5<'a>;
7struct S6<'a:>;
8struct S7<'a: 'b>;
9struct S8<'a: 'b + >;
10struct S9<'a: 'b + 'c>;
11struct S10<'a,>;
12struct S11<'a, 'b>;
13struct S12<'a: 'b+, 'b: 'c,>;
14
15struct S13<T>;
16struct S14<T, U>;
17struct S15<'a, T, U>;
diff --git a/crates/syntax/test_data/parser/ok/0019_enums.rast b/crates/syntax/test_data/parser/ok/0019_enums.rast
new file mode 100644
index 000000000..c3df00814
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0019_enums.rast
@@ -0,0 +1,155 @@
1[email protected]
2 [email protected]
3 [email protected] "enum"
4 [email protected] " "
5 [email protected]
6 [email protected] "E1"
7 [email protected] " "
8 [email protected]
9 [email protected] "{"
10 [email protected] "\n"
11 [email protected] "}"
12 [email protected] "\n\n"
13 [email protected]
14 [email protected] "enum"
15 [email protected] " "
16 [email protected]
17 [email protected] "E2"
18 [email protected]
19 [email protected] "<"
20 [email protected]
21 [email protected]
22 [email protected] "T"
23 [email protected] ">"
24 [email protected] " "
25 [email protected]
26 [email protected] "{"
27 [email protected] "\n"
28 [email protected] "}"
29 [email protected] "\n\n"
30 [email protected]
31 [email protected] "enum"
32 [email protected] " "
33 [email protected]
34 [email protected] "E3"
35 [email protected] " "
36 [email protected]
37 [email protected] "{"
38 [email protected] "\n "
39 [email protected]
40 [email protected]
41 [email protected] "X"
42 [email protected] "\n"
43 [email protected] "}"
44 [email protected] "\n\n"
45 [email protected]
46 [email protected] "enum"
47 [email protected] " "
48 [email protected]
49 [email protected] "E4"
50 [email protected] " "
51 [email protected]
52 [email protected] "{"
53 [email protected] "\n "
54 [email protected]
55 [email protected]
56 [email protected] "X"
57 [email protected] ","
58 [email protected] "\n"
59 [email protected] "}"
60 [email protected] "\n\n"
61 [email protected]
62 [email protected] "enum"
63 [email protected] " "
64 [email protected]
65 [email protected] "E5"
66 [email protected] " "
67 [email protected]
68 [email protected] "{"
69 [email protected] "\n "
70 [email protected]
71 [email protected]
72 [email protected] "A"
73 [email protected] ","
74 [email protected] "\n "
75 [email protected]
76 [email protected]
77 [email protected] "B"
78 [email protected] " "
79 [email protected] "="
80 [email protected] " "
81 [email protected]
82 [email protected] "92"
83 [email protected] ","
84 [email protected] "\n "
85 [email protected]
86 [email protected]
87 [email protected] "C"
88 [email protected] " "
89 [email protected]
90 [email protected] "{"
91 [email protected] "\n "
92 [email protected]
93 [email protected]
94 [email protected] "a"
95 [email protected] ":"
96 [email protected] " "
97 [email protected]
98 [email protected]
99 [email protected]
100 [email protected]
101 [email protected] "u32"
102 [email protected] ","
103 [email protected] "\n "
104 [email protected]
105 [email protected]
106 [email protected] "pub"
107 [email protected] " "
108 [email protected]
109 [email protected] "b"
110 [email protected] ":"
111 [email protected] " "
112 [email protected]
113 [email protected]
114 [email protected]
115 [email protected]
116 [email protected] "f64"
117 [email protected] ","
118 [email protected] "\n "
119 [email protected] "}"
120 [email protected] ","
121 [email protected] "\n "
122 [email protected]
123 [email protected]
124 [email protected] "F"
125 [email protected] " "
126 [email protected]
127 [email protected] "{"
128 [email protected] "}"
129 [email protected] ","
130 [email protected] "\n "
131 [email protected]
132 [email protected]
133 [email protected] "D"
134 [email protected]
135 [email protected] "("
136 [email protected]
137 [email protected]
138 [email protected]
139 [email protected]
140 [email protected]
141 [email protected] "u32"
142 [email protected] ","
143 [email protected] ")"
144 [email protected] ","
145 [email protected] "\n "
146 [email protected]
147 [email protected]
148 [email protected] "E"
149 [email protected]
150 [email protected] "("
151 [email protected] ")"
152 [email protected] ","
153 [email protected] "\n"
154 [email protected] "}"
155 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0019_enums.rs b/crates/syntax/test_data/parser/ok/0019_enums.rs
new file mode 100644
index 000000000..7a1afa0e6
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0019_enums.rs
@@ -0,0 +1,25 @@
1enum E1 {
2}
3
4enum E2<T> {
5}
6
7enum E3 {
8 X
9}
10
11enum E4 {
12 X,
13}
14
15enum E5 {
16 A,
17 B = 92,
18 C {
19 a: u32,
20 pub b: f64,
21 },
22 F {},
23 D(u32,),
24 E(),
25}
diff --git a/crates/syntax/test_data/parser/ok/0020_type_param_bounds.rast b/crates/syntax/test_data/parser/ok/0020_type_param_bounds.rast
new file mode 100644
index 000000000..9bdc50e1e
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0020_type_param_bounds.rast
@@ -0,0 +1,268 @@
1[email protected]
2 [email protected]
3 [email protected] "struct"
4 [email protected] " "
5 [email protected]
6 [email protected] "A"
7 [email protected]
8 [email protected] "<"
9 [email protected]
10 [email protected]
11 [email protected] "T"
12 [email protected] ">"
13 [email protected] ";"
14 [email protected] "\n"
15 [email protected]
16 [email protected] "struct"
17 [email protected] " "
18 [email protected]
19 [email protected] "B"
20 [email protected]
21 [email protected] "<"
22 [email protected]
23 [email protected]
24 [email protected] "T"
25 [email protected] ":"
26 [email protected]
27 [email protected] ">"
28 [email protected] ";"
29 [email protected] "\n"
30 [email protected]
31 [email protected] "struct"
32 [email protected] " "
33 [email protected]
34 [email protected] "C"
35 [email protected]
36 [email protected] "<"
37 [email protected]
38 [email protected]
39 [email protected] "T"
40 [email protected] ":"
41 [email protected] " "
42 [email protected]
43 [email protected]
44 [email protected] "\'a"
45 [email protected] ">"
46 [email protected] ";"
47 [email protected] "\n"
48 [email protected]
49 [email protected] "struct"
50 [email protected] " "
51 [email protected]
52 [email protected] "D"
53 [email protected]
54 [email protected] "<"
55 [email protected]
56 [email protected]
57 [email protected] "T"
58 [email protected] ":"
59 [email protected] " "
60 [email protected]
61 [email protected]
62 [email protected] "\'a"
63 [email protected] " "
64 [email protected] "+"
65 [email protected] " "
66 [email protected] ">"
67 [email protected] ";"
68 [email protected] "\n"
69 [email protected]
70 [email protected] "struct"
71 [email protected] " "
72 [email protected]
73 [email protected] "E"
74 [email protected]
75 [email protected] "<"
76 [email protected]
77 [email protected]
78 [email protected] "T"
79 [email protected] ":"
80 [email protected] " "
81 [email protected]
82 [email protected]
83 [email protected] "\'a"
84 [email protected] " "
85 [email protected] "+"
86 [email protected] " "
87 [email protected]
88 [email protected] "\'d"
89 [email protected] " "
90 [email protected] ">"
91 [email protected] ";"
92 [email protected] "\n"
93 [email protected]
94 [email protected] "struct"
95 [email protected] " "
96 [email protected]
97 [email protected] "F"
98 [email protected]
99 [email protected] "<"
100 [email protected]
101 [email protected]
102 [email protected] "T"
103 [email protected] ":"
104 [email protected] " "
105 [email protected]
106 [email protected]
107 [email protected] "\'a"
108 [email protected] " "
109 [email protected] "+"
110 [email protected] " "
111 [email protected]
112 [email protected] "\'d"
113 [email protected] " "
114 [email protected] "+"
115 [email protected] " "
116 [email protected]
117 [email protected]
118 [email protected]
119 [email protected]
120 [email protected]
121 [email protected] "Clone"
122 [email protected] ">"
123 [email protected] ";"
124 [email protected] "\n"
125 [email protected]
126 [email protected] "struct"
127 [email protected] " "
128 [email protected]
129 [email protected] "G"
130 [email protected]
131 [email protected] "<"
132 [email protected]
133 [email protected]
134 [email protected] "T"
135 [email protected] ":"
136 [email protected] " "
137 [email protected]
138 [email protected]
139 [email protected]
140 [email protected]
141 [email protected]
142 [email protected]
143 [email protected] "Clone"
144 [email protected] " "
145 [email protected] "+"
146 [email protected] " "
147 [email protected]
148 [email protected]
149 [email protected]
150 [email protected]
151 [email protected]
152 [email protected] "Copy"
153 [email protected] ">"
154 [email protected] ";"
155 [email protected] "\n"
156 [email protected]
157 [email protected] "struct"
158 [email protected] " "
159 [email protected]
160 [email protected] "H"
161 [email protected]
162 [email protected] "<"
163 [email protected]
164 [email protected]
165 [email protected] "T"
166 [email protected] ":"
167 [email protected] " "
168 [email protected]
169 [email protected]
170 [email protected]
171 [email protected]
172 [email protected]
173 [email protected] "::"
174 [email protected]
175 [email protected] "Foo"
176 [email protected] " "
177 [email protected] "+"
178 [email protected] " "
179 [email protected]
180 [email protected]
181 [email protected]
182 [email protected]
183 [email protected]
184 [email protected] "self"
185 [email protected] "::"
186 [email protected]
187 [email protected]
188 [email protected] "Bar"
189 [email protected] " "
190 [email protected] "+"
191 [email protected] " "
192 [email protected]
193 [email protected] "\'a"
194 [email protected] ">"
195 [email protected] ";"
196 [email protected] "\n"
197 [email protected]
198 [email protected] "struct"
199 [email protected] " "
200 [email protected]
201 [email protected] "I"
202 [email protected]
203 [email protected] "<"
204 [email protected]
205 [email protected]
206 [email protected] "T"
207 [email protected] ":"
208 [email protected]
209 [email protected] ","
210 [email protected] " "
211 [email protected]
212 [email protected]
213 [email protected] "U"
214 [email protected] ":"
215 [email protected]
216 [email protected] ","
217 [email protected] ">"
218 [email protected] ";"
219 [email protected] "\n"
220 [email protected]
221 [email protected] "struct"
222 [email protected] " "
223 [email protected]
224 [email protected] "K"
225 [email protected]
226 [email protected] "<"
227 [email protected]
228 [email protected] "\'a"
229 [email protected] ":"
230 [email protected] " "
231 [email protected] "\'d"
232 [email protected] ","
233 [email protected] " "
234 [email protected]
235 [email protected] "\'d"
236 [email protected] ":"
237 [email protected] " "
238 [email protected] "\'a"
239 [email protected] " "
240 [email protected] "+"
241 [email protected] " "
242 [email protected] "\'b"
243 [email protected] ","
244 [email protected] " "
245 [email protected]
246 [email protected]
247 [email protected] "T"
248 [email protected] ":"
249 [email protected] " "
250 [email protected]
251 [email protected]
252 [email protected] "\'a"
253 [email protected] " "
254 [email protected] "+"
255 [email protected] " "
256 [email protected]
257 [email protected] "\'d"
258 [email protected] " "
259 [email protected] "+"
260 [email protected] " "
261 [email protected]
262 [email protected]
263 [email protected]
264 [email protected]
265 [email protected]
266 [email protected] "Clone"
267 [email protected] ">"
268 [email protected] ";"
diff --git a/crates/syntax/test_data/parser/ok/0020_type_param_bounds.rs b/crates/syntax/test_data/parser/ok/0020_type_param_bounds.rs
new file mode 100644
index 000000000..712898978
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0020_type_param_bounds.rs
@@ -0,0 +1,10 @@
1struct A<T>;
2struct B<T:>;
3struct C<T: 'a>;
4struct D<T: 'a + >;
5struct E<T: 'a + 'd >;
6struct F<T: 'a + 'd + Clone>;
7struct G<T: Clone + Copy>;
8struct H<T: ::Foo + self::Bar + 'a>;
9struct I<T:, U:,>;
10struct K<'a: 'd, 'd: 'a + 'b, T: 'a + 'd + Clone>; \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/ok/0022_empty_extern_block.rast b/crates/syntax/test_data/parser/ok/0022_empty_extern_block.rast
new file mode 100644
index 000000000..26abae3b2
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0022_empty_extern_block.rast
@@ -0,0 +1,21 @@
1[email protected]
2 [email protected]
3 [email protected]
4 [email protected] "extern"
5 [email protected] " "
6 [email protected]
7 [email protected] "{"
8 [email protected] "\n"
9 [email protected] "}"
10 [email protected] "\n\n"
11 [email protected]
12 [email protected]
13 [email protected] "extern"
14 [email protected] " "
15 [email protected] "\"C\""
16 [email protected] " "
17 [email protected]
18 [email protected] "{"
19 [email protected] "\n"
20 [email protected] "}"
21 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0022_empty_extern_block.rs b/crates/syntax/test_data/parser/ok/0022_empty_extern_block.rs
new file mode 100644
index 000000000..f5fe0e6ef
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0022_empty_extern_block.rs
@@ -0,0 +1,5 @@
1extern {
2}
3
4extern "C" {
5}
diff --git a/crates/syntax/test_data/parser/ok/0023_static_items.rast b/crates/syntax/test_data/parser/ok/0023_static_items.rast
new file mode 100644
index 000000000..9374cf5e9
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0023_static_items.rast
@@ -0,0 +1,41 @@
1[email protected]
2 [email protected]
3 [email protected] "static"
4 [email protected] " "
5 [email protected]
6 [email protected] "FOO"
7 [email protected] ":"
8 [email protected] " "
9 [email protected]
10 [email protected]
11 [email protected]
12 [email protected]
13 [email protected] "u32"
14 [email protected] " "
15 [email protected] "="
16 [email protected] " "
17 [email protected]
18 [email protected] "1"
19 [email protected] ";"
20 [email protected] "\n"
21 [email protected]
22 [email protected] "static"
23 [email protected] " "
24 [email protected] "mut"
25 [email protected] " "
26 [email protected]
27 [email protected] "BAR"
28 [email protected] ":"
29 [email protected] " "
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected]
34 [email protected] "i32"
35 [email protected] " "
36 [email protected] "="
37 [email protected] " "
38 [email protected]
39 [email protected] "92"
40 [email protected] ";"
41 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0023_static_items.rs b/crates/syntax/test_data/parser/ok/0023_static_items.rs
new file mode 100644
index 000000000..5fb92ce33
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0023_static_items.rs
@@ -0,0 +1,2 @@
1static FOO: u32 = 1;
2static mut BAR: i32 = 92;
diff --git a/crates/syntax/test_data/parser/ok/0024_const_item.rast b/crates/syntax/test_data/parser/ok/0024_const_item.rast
new file mode 100644
index 000000000..dd1b9c9a0
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0024_const_item.rast
@@ -0,0 +1,59 @@
1[email protected]
2 [email protected]
3 [email protected] "const"
4 [email protected] " "
5 [email protected] "_"
6 [email protected] ":"
7 [email protected] " "
8 [email protected]
9 [email protected]
10 [email protected]
11 [email protected]
12 [email protected] "u32"
13 [email protected] " "
14 [email protected] "="
15 [email protected] " "
16 [email protected]
17 [email protected] "0"
18 [email protected] ";"
19 [email protected] "\n"
20 [email protected]
21 [email protected] "const"
22 [email protected] " "
23 [email protected]
24 [email protected] "FOO"
25 [email protected] ":"
26 [email protected] " "
27 [email protected]
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected] "u32"
32 [email protected] " "
33 [email protected] "="
34 [email protected] " "
35 [email protected]
36 [email protected] "92"
37 [email protected] ";"
38 [email protected] "\n"
39 [email protected]
40 [email protected] "const"
41 [email protected] " "
42 [email protected] "mut"
43 [email protected] " "
44 [email protected]
45 [email protected] "BAR"
46 [email protected] ":"
47 [email protected] " "
48 [email protected]
49 [email protected]
50 [email protected]
51 [email protected]
52 [email protected] "u32"
53 [email protected] " "
54 [email protected] "="
55 [email protected] " "
56 [email protected]
57 [email protected] "62"
58 [email protected] ";"
59 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0024_const_item.rs b/crates/syntax/test_data/parser/ok/0024_const_item.rs
new file mode 100644
index 000000000..a806a209d
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0024_const_item.rs
@@ -0,0 +1,3 @@
1const _: u32 = 0;
2const FOO: u32 = 92;
3const mut BAR: u32 = 62;
diff --git a/crates/syntax/test_data/parser/ok/0025_extern_fn_in_block.rast b/crates/syntax/test_data/parser/ok/0025_extern_fn_in_block.rast
new file mode 100644
index 000000000..bb6527b48
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0025_extern_fn_in_block.rast
@@ -0,0 +1,31 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected] "extern"
17 [email protected] " "
18 [email protected] "fn"
19 [email protected] " "
20 [email protected]
21 [email protected] "f"
22 [email protected]
23 [email protected] "("
24 [email protected] ")"
25 [email protected] " "
26 [email protected]
27 [email protected] "{"
28 [email protected] "}"
29 [email protected] "\n"
30 [email protected] "}"
31 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0025_extern_fn_in_block.rs b/crates/syntax/test_data/parser/ok/0025_extern_fn_in_block.rs
new file mode 100644
index 000000000..289809809
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0025_extern_fn_in_block.rs
@@ -0,0 +1,3 @@
1fn main() {
2 extern fn f() {}
3}
diff --git a/crates/syntax/test_data/parser/ok/0026_const_fn_in_block.rast b/crates/syntax/test_data/parser/ok/0026_const_fn_in_block.rast
new file mode 100644
index 000000000..5bcf54deb
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0026_const_fn_in_block.rast
@@ -0,0 +1,30 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "const"
16 [email protected] " "
17 [email protected] "fn"
18 [email protected] " "
19 [email protected]
20 [email protected] "f"
21 [email protected]
22 [email protected] "("
23 [email protected] ")"
24 [email protected] " "
25 [email protected]
26 [email protected] "{"
27 [email protected] "}"
28 [email protected] "\n"
29 [email protected] "}"
30 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0026_const_fn_in_block.rs b/crates/syntax/test_data/parser/ok/0026_const_fn_in_block.rs
new file mode 100644
index 000000000..7641a3d28
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0026_const_fn_in_block.rs
@@ -0,0 +1,3 @@
1fn main() {
2 const fn f() {}
3}
diff --git a/crates/syntax/test_data/parser/ok/0027_unsafe_fn_in_block.rast b/crates/syntax/test_data/parser/ok/0027_unsafe_fn_in_block.rast
new file mode 100644
index 000000000..a7cc12295
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0027_unsafe_fn_in_block.rast
@@ -0,0 +1,41 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "unsafe"
16 [email protected] " "
17 [email protected] "fn"
18 [email protected] " "
19 [email protected]
20 [email protected] "f"
21 [email protected]
22 [email protected] "("
23 [email protected] ")"
24 [email protected] " "
25 [email protected]
26 [email protected] "{"
27 [email protected] "}"
28 [email protected] "\n "
29 [email protected]
30 [email protected] "unsafe"
31 [email protected] " "
32 [email protected]
33 [email protected] "{"
34 [email protected] " "
35 [email protected]
36 [email protected] "92"
37 [email protected] " "
38 [email protected] "}"
39 [email protected] "\n"
40 [email protected] "}"
41 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0027_unsafe_fn_in_block.rs b/crates/syntax/test_data/parser/ok/0027_unsafe_fn_in_block.rs
new file mode 100644
index 000000000..f3c5ff938
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0027_unsafe_fn_in_block.rs
@@ -0,0 +1,4 @@
1fn main() {
2 unsafe fn f() {}
3 unsafe { 92 }
4}
diff --git a/crates/syntax/test_data/parser/ok/0028_operator_binding_power.rast b/crates/syntax/test_data/parser/ok/0028_operator_binding_power.rast
new file mode 100644
index 000000000..3271a4695
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0028_operator_binding_power.rast
@@ -0,0 +1,185 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "binding_power"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected]
19 [email protected] "x"
20 [email protected] " "
21 [email protected] "="
22 [email protected] " "
23 [email protected]
24 [email protected]
25 [email protected]
26 [email protected] "1"
27 [email protected] " "
28 [email protected] "+"
29 [email protected] " "
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected] "2"
34 [email protected] " "
35 [email protected] "*"
36 [email protected] " "
37 [email protected]
38 [email protected] "3"
39 [email protected] " "
40 [email protected] "%"
41 [email protected] " "
42 [email protected]
43 [email protected] "4"
44 [email protected] " "
45 [email protected] "-"
46 [email protected] " "
47 [email protected]
48 [email protected]
49 [email protected] "5"
50 [email protected] " "
51 [email protected] "/"
52 [email protected] " "
53 [email protected]
54 [email protected] "6"
55 [email protected] ";"
56 [email protected] "\n "
57 [email protected]
58 [email protected]
59 [email protected]
60 [email protected] "1"
61 [email protected] " "
62 [email protected] "+"
63 [email protected] " "
64 [email protected]
65 [email protected]
66 [email protected] "2"
67 [email protected] " "
68 [email protected] "*"
69 [email protected] " "
70 [email protected]
71 [email protected] "3"
72 [email protected] ";"
73 [email protected] "\n "
74 [email protected]
75 [email protected]
76 [email protected]
77 [email protected] "1"
78 [email protected] " "
79 [email protected] "<<"
80 [email protected] " "
81 [email protected]
82 [email protected]
83 [email protected] "2"
84 [email protected] " "
85 [email protected] "+"
86 [email protected] " "
87 [email protected]
88 [email protected] "3"
89 [email protected] ";"
90 [email protected] "\n "
91 [email protected]
92 [email protected]
93 [email protected]
94 [email protected] "1"
95 [email protected] " "
96 [email protected] "&"
97 [email protected] " "
98 [email protected]
99 [email protected]
100 [email protected] "2"
101 [email protected] " "
102 [email protected] ">>"
103 [email protected] " "
104 [email protected]
105 [email protected] "3"
106 [email protected] ";"
107 [email protected] "\n "
108 [email protected]
109 [email protected]
110 [email protected]
111 [email protected] "1"
112 [email protected] " "
113 [email protected] "^"
114 [email protected] " "
115 [email protected]
116 [email protected]
117 [email protected] "2"
118 [email protected] " "
119 [email protected] "&"
120 [email protected] " "
121 [email protected]
122 [email protected] "3"
123 [email protected] ";"
124 [email protected] "\n "
125 [email protected]
126 [email protected]
127 [email protected]
128 [email protected] "1"
129 [email protected] " "
130 [email protected] "|"
131 [email protected] " "
132 [email protected]
133 [email protected]
134 [email protected] "2"
135 [email protected] " "
136 [email protected] "^"
137 [email protected] " "
138 [email protected]
139 [email protected] "3"
140 [email protected] ";"
141 [email protected] "\n "
142 [email protected]
143 [email protected]
144 [email protected]
145 [email protected] "1"
146 [email protected] " "
147 [email protected] "=="
148 [email protected] " "
149 [email protected]
150 [email protected]
151 [email protected] "2"
152 [email protected] " "
153 [email protected] "|"
154 [email protected] " "
155 [email protected]
156 [email protected] "3"
157 [email protected] ";"
158 [email protected] "\n "
159 [email protected]
160 [email protected]
161 [email protected]
162 [email protected] "1"
163 [email protected] " "
164 [email protected] "&&"
165 [email protected] " "
166 [email protected]
167 [email protected]
168 [email protected] "2"
169 [email protected] " "
170 [email protected] "=="
171 [email protected] " "
172 [email protected]
173 [email protected] "3"
174 [email protected] ";"
175 [email protected] "\n "
176 [email protected] "//1 || 2 && 2;"
177 [email protected] "\n "
178 [email protected] "//1 .. 2 || 3;"
179 [email protected] "\n "
180 [email protected] "//1 = 2 .. 3;"
181 [email protected] "\n "
182 [email protected] "//---&*1 - --2 * 9;"
183 [email protected] "\n"
184 [email protected] "}"
185 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0028_operator_binding_power.rs b/crates/syntax/test_data/parser/ok/0028_operator_binding_power.rs
new file mode 100644
index 000000000..cc9598470
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0028_operator_binding_power.rs
@@ -0,0 +1,14 @@
1fn binding_power() {
2 let x = 1 + 2 * 3 % 4 - 5 / 6;
3 1 + 2 * 3;
4 1 << 2 + 3;
5 1 & 2 >> 3;
6 1 ^ 2 & 3;
7 1 | 2 ^ 3;
8 1 == 2 | 3;
9 1 && 2 == 3;
10 //1 || 2 && 2;
11 //1 .. 2 || 3;
12 //1 = 2 .. 3;
13 //---&*1 - --2 * 9;
14}
diff --git a/crates/syntax/test_data/parser/ok/0029_range_forms.rast b/crates/syntax/test_data/parser/ok/0029_range_forms.rast
new file mode 100644
index 000000000..a732f11c4
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0029_range_forms.rast
@@ -0,0 +1,151 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected] ".."
17 [email protected]
18 [email protected]
19 [email protected] "1"
20 [email protected] " "
21 [email protected] "+"
22 [email protected] " "
23 [email protected]
24 [email protected] "1"
25 [email protected] ";"
26 [email protected] "\n "
27 [email protected]
28 [email protected]
29 [email protected]
30 [email protected] ".."
31 [email protected]
32 [email protected]
33 [email protected]
34 [email protected]
35 [email protected] "z"
36 [email protected] " "
37 [email protected] "="
38 [email protected] " "
39 [email protected]
40 [email protected] "2"
41 [email protected] ";"
42 [email protected] "\n "
43 [email protected]
44 [email protected]
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected]
49 [email protected] "x"
50 [email protected] " "
51 [email protected] "="
52 [email protected] " "
53 [email protected]
54 [email protected]
55 [email protected] "false"
56 [email protected] ".."
57 [email protected]
58 [email protected]
59 [email protected] "1"
60 [email protected] " "
61 [email protected] "=="
62 [email protected] " "
63 [email protected]
64 [email protected] "1"
65 [email protected] ";"
66 [email protected] "\n "
67 [email protected]
68 [email protected] "let"
69 [email protected] " "
70 [email protected]
71 [email protected]
72 [email protected] "x"
73 [email protected] " "
74 [email protected] "="
75 [email protected] " "
76 [email protected]
77 [email protected]
78 [email protected] "1"
79 [email protected] ".."
80 [email protected] ";"
81 [email protected] "\n \n "
82 [email protected]
83 [email protected]
84 [email protected] "..="
85 [email protected]
86 [email protected]
87 [email protected] "1"
88 [email protected] " "
89 [email protected] "+"
90 [email protected] " "
91 [email protected]
92 [email protected] "1"
93 [email protected] ";"
94 [email protected] "\n "
95 [email protected]
96 [email protected]
97 [email protected]
98 [email protected] "..="
99 [email protected]
100 [email protected]
101 [email protected]
102 [email protected]
103 [email protected] "z"
104 [email protected] " "
105 [email protected] "="
106 [email protected] " "
107 [email protected]
108 [email protected] "2"
109 [email protected] ";"
110 [email protected] "\n "
111 [email protected]
112 [email protected]
113 [email protected]
114 [email protected]
115 [email protected]
116 [email protected]
117 [email protected] "x"
118 [email protected] " "
119 [email protected] "="
120 [email protected] " "
121 [email protected]
122 [email protected]
123 [email protected] "false"
124 [email protected] "..="
125 [email protected]
126 [email protected]
127 [email protected] "1"
128 [email protected] " "
129 [email protected] "=="
130 [email protected] " "
131 [email protected]
132 [email protected] "1"
133 [email protected] ";"
134 [email protected] "\n "
135 [email protected]
136 [email protected] "let"
137 [email protected] " "
138 [email protected]
139 [email protected]
140 [email protected] "x"
141 [email protected] " "
142 [email protected] "="
143 [email protected] " "
144 [email protected]
145 [email protected]
146 [email protected] "1"
147 [email protected] ".."
148 [email protected] ";"
149 [email protected] "\n"
150 [email protected] "}"
151 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0029_range_forms.rs b/crates/syntax/test_data/parser/ok/0029_range_forms.rs
new file mode 100644
index 000000000..f9ff444d4
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0029_range_forms.rs
@@ -0,0 +1,11 @@
1fn foo() {
2 ..1 + 1;
3 ..z = 2;
4 x = false..1 == 1;
5 let x = 1..;
6
7 ..=1 + 1;
8 ..=z = 2;
9 x = false..=1 == 1;
10 let x = 1..;
11}
diff --git a/crates/syntax/test_data/parser/ok/0030_string_suffixes.rast b/crates/syntax/test_data/parser/ok/0030_string_suffixes.rast
new file mode 100644
index 000000000..80f7f5942
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0030_string_suffixes.rast
@@ -0,0 +1,63 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected] "_"
19 [email protected] " "
20 [email protected] "="
21 [email protected] " "
22 [email protected]
23 [email protected] "\'c\'u32"
24 [email protected] ";"
25 [email protected] "\n "
26 [email protected]
27 [email protected] "let"
28 [email protected] " "
29 [email protected]
30 [email protected] "_"
31 [email protected] " "
32 [email protected] "="
33 [email protected] " "
34 [email protected]
35 [email protected] "\"string\"invalid"
36 [email protected] ";"
37 [email protected] "\n "
38 [email protected]
39 [email protected] "let"
40 [email protected] " "
41 [email protected]
42 [email protected] "_"
43 [email protected] " "
44 [email protected] "="
45 [email protected] " "
46 [email protected]
47 [email protected] "b\'b\'_suff"
48 [email protected] ";"
49 [email protected] "\n "
50 [email protected]
51 [email protected] "let"
52 [email protected] " "
53 [email protected]
54 [email protected] "_"
55 [email protected] " "
56 [email protected] "="
57 [email protected] " "
58 [email protected]
59 [email protected] "b\"bs\"invalid"
60 [email protected] ";"
61 [email protected] "\n"
62 [email protected] "}"
63 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0030_string_suffixes.rs b/crates/syntax/test_data/parser/ok/0030_string_suffixes.rs
new file mode 100644
index 000000000..261aad1fb
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0030_string_suffixes.rs
@@ -0,0 +1,6 @@
1fn main() {
2 let _ = 'c'u32;
3 let _ = "string"invalid;
4 let _ = b'b'_suff;
5 let _ = b"bs"invalid;
6}
diff --git a/crates/syntax/test_data/parser/ok/0030_traits.rast b/crates/syntax/test_data/parser/ok/0030_traits.rast
new file mode 100644
index 000000000..d07c6683a
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0030_traits.rast
@@ -0,0 +1,61 @@
1[email protected]
2 [email protected]
3 [email protected] "trait"
4 [email protected] " "
5 [email protected]
6 [email protected] "Runnable"
7 [email protected] " "
8 [email protected]
9 [email protected] "{"
10 [email protected] "\n "
11 [email protected]
12 [email protected] "fn"
13 [email protected] " "
14 [email protected]
15 [email protected] "handler"
16 [email protected]
17 [email protected] "("
18 [email protected] ")"
19 [email protected] ";"
20 [email protected] "\n"
21 [email protected] "}"
22 [email protected] "\n\n"
23 [email protected]
24 [email protected] "trait"
25 [email protected] " "
26 [email protected]
27 [email protected] "TraitWithExpr"
28 [email protected] " "
29 [email protected]
30 [email protected] "{"
31 [email protected] "\n "
32 [email protected]
33 [email protected] "fn"
34 [email protected] " "
35 [email protected]
36 [email protected] "fn_with_expr"
37 [email protected]
38 [email protected] "("
39 [email protected]
40 [email protected]
41 [email protected]
42 [email protected] "x"
43 [email protected] ":"
44 [email protected] " "
45 [email protected]
46 [email protected] "["
47 [email protected]
48 [email protected]
49 [email protected]
50 [email protected]
51 [email protected] "i32"
52 [email protected] ";"
53 [email protected] " "
54 [email protected]
55 [email protected] "1"
56 [email protected] "]"
57 [email protected] ")"
58 [email protected] ";"
59 [email protected] "\n"
60 [email protected] "}"
61 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0030_traits.rs b/crates/syntax/test_data/parser/ok/0030_traits.rs
new file mode 100644
index 000000000..ac30843ef
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0030_traits.rs
@@ -0,0 +1,7 @@
1trait Runnable {
2 fn handler();
3}
4
5trait TraitWithExpr {
6 fn fn_with_expr(x: [i32; 1]);
7}
diff --git a/crates/syntax/test_data/parser/ok/0031_extern.rast b/crates/syntax/test_data/parser/ok/0031_extern.rast
new file mode 100644
index 000000000..8150d445f
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0031_extern.rast
@@ -0,0 +1,973 @@
1[email protected]
2 [email protected]
3 [email protected]
4 [email protected] "extern"
5 [email protected] " "
6 [email protected]
7 [email protected] "{"
8 [email protected] "\n "
9 [email protected]
10 [email protected]
11 [email protected] "pub"
12 [email protected] " "
13 [email protected] "fn"
14 [email protected] " "
15 [email protected]
16 [email protected] "socket"
17 [email protected]
18 [email protected] "("
19 [email protected]
20 [email protected]
21 [email protected]
22 [email protected] "domain"
23 [email protected] ":"
24 [email protected] " "
25 [email protected]
26 [email protected]
27 [email protected]
28 [email protected] "::"
29 [email protected]
30 [email protected] "c_int"
31 [email protected] ","
32 [email protected] " "
33 [email protected]
34 [email protected]
35 [email protected]
36 [email protected] "ty"
37 [email protected] ":"
38 [email protected] " "
39 [email protected]
40 [email protected]
41 [email protected]
42 [email protected] "::"
43 [email protected]
44 [email protected] "c_int"
45 [email protected] ","
46 [email protected] " "
47 [email protected]
48 [email protected]
49 [email protected]
50 [email protected] "protocol"
51 [email protected] ":"
52 [email protected] " "
53 [email protected]
54 [email protected]
55 [email protected]
56 [email protected] "::"
57 [email protected]
58 [email protected] "c_int"
59 [email protected] ")"
60 [email protected] " "
61 [email protected]
62 [email protected] "->"
63 [email protected] " "
64 [email protected]
65 [email protected]
66 [email protected]
67 [email protected] "::"
68 [email protected]
69 [email protected] "c_int"
70 [email protected] ";"
71 [email protected] "\n "
72 [email protected]
73 [email protected]
74 [email protected] "pub"
75 [email protected] " "
76 [email protected] "fn"
77 [email protected] " "
78 [email protected]
79 [email protected] "bind"
80 [email protected]
81 [email protected] "("
82 [email protected]
83 [email protected]
84 [email protected]
85 [email protected] "fd"
86 [email protected] ":"
87 [email protected] " "
88 [email protected]
89 [email protected]
90 [email protected]
91 [email protected] "::"
92 [email protected]
93 [email protected] "c_int"
94 [email protected] ","
95 [email protected] " "
96 [email protected]
97 [email protected]
98 [email protected]
99 [email protected] "addr"
100 [email protected] ":"
101 [email protected] " "
102 [email protected]
103 [email protected] "*"
104 [email protected] "const"
105 [email protected] " "
106 [email protected]
107 [email protected]
108 [email protected]
109 [email protected]
110 [email protected] "sockaddr"
111 [email protected] ","
112 [email protected] " "
113 [email protected]
114 [email protected]
115 [email protected]
116 [email protected] "len"
117 [email protected] ":"
118 [email protected] " "
119 [email protected]
120 [email protected]
121 [email protected]
122 [email protected]
123 [email protected] "socklen_t"
124 [email protected] ")"
125 [email protected] " "
126 [email protected]
127 [email protected] "->"
128 [email protected] " "
129 [email protected]
130 [email protected]
131 [email protected]
132 [email protected] "::"
133 [email protected]
134 [email protected] "c_int"
135 [email protected] ";"
136 [email protected] "\n "
137 [email protected]
138 [email protected]
139 [email protected] "pub"
140 [email protected] " "
141 [email protected] "fn"
142 [email protected] " "
143 [email protected]
144 [email protected] "connect"
145 [email protected]
146 [email protected] "("
147 [email protected]
148 [email protected]
149 [email protected]
150 [email protected] "socket"
151 [email protected] ":"
152 [email protected] " "
153 [email protected]
154 [email protected]
155 [email protected]
156 [email protected] "::"
157 [email protected]
158 [email protected] "c_int"
159 [email protected] ","
160 [email protected] " "
161 [email protected]
162 [email protected]
163 [email protected]
164 [email protected] "address"
165 [email protected] ":"
166 [email protected] " "
167 [email protected]
168 [email protected] "*"
169 [email protected] "const"
170 [email protected] " "
171 [email protected]
172 [email protected]
173 [email protected]
174 [email protected]
175 [email protected] "sockaddr"
176 [email protected] ","
177 [email protected] "\n "
178 [email protected]
179 [email protected]
180 [email protected]
181 [email protected] "len"
182 [email protected] ":"
183 [email protected] " "
184 [email protected]
185 [email protected]
186 [email protected]
187 [email protected]
188 [email protected] "socklen_t"
189 [email protected] ")"
190 [email protected] " "
191 [email protected]
192 [email protected] "->"
193 [email protected] " "
194 [email protected]
195 [email protected]
196 [email protected]
197 [email protected] "::"
198 [email protected]
199 [email protected] "c_int"
200 [email protected] ";"
201 [email protected] "\n "
202 [email protected]
203 [email protected]
204 [email protected] "pub"
205 [email protected] " "
206 [email protected] "fn"
207 [email protected] " "
208 [email protected]
209 [email protected] "listen"
210 [email protected]
211 [email protected] "("
212 [email protected]
213 [email protected]
214 [email protected]
215 [email protected] "socket"
216 [email protected] ":"
217 [email protected] " "
218 [email protected]
219 [email protected]
220 [email protected]
221 [email protected] "::"
222 [email protected]
223 [email protected] "c_int"
224 [email protected] ","
225 [email protected] " "
226 [email protected]
227 [email protected]
228 [email protected]
229 [email protected] "backlog"
230 [email protected] ":"
231 [email protected] " "
232 [email protected]
233 [email protected]
234 [email protected]
235 [email protected] "::"
236 [email protected]
237 [email protected] "c_int"
238 [email protected] ")"
239 [email protected] " "
240 [email protected]
241 [email protected] "->"
242 [email protected] " "
243 [email protected]
244 [email protected]
245 [email protected]
246 [email protected] "::"
247 [email protected]
248 [email protected] "c_int"
249 [email protected] ";"
250 [email protected] "\n "
251 [email protected]
252 [email protected]
253 [email protected] "pub"
254 [email protected] " "
255 [email protected] "fn"
256 [email protected] " "
257 [email protected]
258 [email protected] "getsockname"
259 [email protected]
260 [email protected] "("
261 [email protected]
262 [email protected]
263 [email protected]
264 [email protected] "socket"
265 [email protected] ":"
266 [email protected] " "
267 [email protected]
268 [email protected]
269 [email protected]
270 [email protected] "::"
271 [email protected]
272 [email protected] "c_int"
273 [email protected] ","
274 [email protected] " "
275 [email protected]
276 [email protected]
277 [email protected]
278 [email protected] "address"
279 [email protected] ":"
280 [email protected] " "
281 [email protected]
282 [email protected] "*"
283 [email protected] "mut"
284 [email protected] " "
285 [email protected]
286 [email protected]
287 [email protected]
288 [email protected]
289 [email protected] "sockaddr"
290 [email protected] ","
291 [email protected] "\n "
292 [email protected]
293 [email protected]
294 [email protected]
295 [email protected] "address_len"
296 [email protected] ":"
297 [email protected] " "
298 [email protected]
299 [email protected] "*"
300 [email protected] "mut"
301 [email protected] " "
302 [email protected]
303 [email protected]
304 [email protected]
305 [email protected]
306 [email protected] "socklen_t"
307 [email protected] ")"
308 [email protected] " "
309 [email protected]
310 [email protected] "->"
311 [email protected] " "
312 [email protected]
313 [email protected]
314 [email protected]
315 [email protected] "::"
316 [email protected]
317 [email protected] "c_int"
318 [email protected] ";"
319 [email protected] "\n "
320 [email protected]
321 [email protected]
322 [email protected] "pub"
323 [email protected] " "
324 [email protected] "fn"
325 [email protected] " "
326 [email protected]
327 [email protected] "getsockopt"
328 [email protected]
329 [email protected] "("
330 [email protected]
331 [email protected]
332 [email protected]
333 [email protected] "sockfd"
334 [email protected] ":"
335 [email protected] " "
336 [email protected]
337 [email protected]
338 [email protected]
339 [email protected] "::"
340 [email protected]
341 [email protected] "c_int"
342 [email protected] ","
343 [email protected] "\n "
344 [email protected]
345 [email protected]
346 [email protected]
347 [email protected] "level"
348 [email protected] ":"
349 [email protected] " "
350 [email protected]
351 [email protected]
352 [email protected]
353 [email protected] "::"
354 [email protected]
355 [email protected] "c_int"
356 [email protected] ","
357 [email protected] "\n "
358 [email protected]
359 [email protected]
360 [email protected]
361 [email protected] "optname"
362 [email protected] ":"
363 [email protected] " "
364 [email protected]
365 [email protected]
366 [email protected]
367 [email protected] "::"
368 [email protected]
369 [email protected] "c_int"
370 [email protected] ","
371 [email protected] "\n "
372 [email protected]
373 [email protected]
374 [email protected]
375 [email protected] "optval"
376 [email protected] ":"
377 [email protected] " "
378 [email protected]
379 [email protected] "*"
380 [email protected] "mut"
381 [email protected] " "
382 [email protected]
383 [email protected]
384 [email protected]
385 [email protected] "::"
386 [email protected]
387 [email protected] "c_void"
388 [email protected] ","
389 [email protected] "\n "
390 [email protected]
391 [email protected]
392 [email protected]
393 [email protected] "optlen"
394 [email protected] ":"
395 [email protected] " "
396 [email protected]
397 [email protected] "*"
398 [email protected] "mut"
399 [email protected] " "
400 [email protected]
401 [email protected]
402 [email protected]
403 [email protected] "::"
404 [email protected]
405 [email protected] "socklen_t"
406 [email protected] ")"
407 [email protected] " "
408 [email protected]
409 [email protected] "->"
410 [email protected] " "
411 [email protected]
412 [email protected]
413 [email protected]
414 [email protected] "::"
415 [email protected]
416 [email protected] "c_int"
417 [email protected] ";"
418 [email protected] "\n "
419 [email protected]
420 [email protected]
421 [email protected] "pub"
422 [email protected] " "
423 [email protected] "fn"
424 [email protected] " "
425 [email protected]
426 [email protected] "setsockopt"
427 [email protected]
428 [email protected] "("
429 [email protected]
430 [email protected]
431 [email protected]
432 [email protected] "socket"
433 [email protected] ":"
434 [email protected] " "
435 [email protected]
436 [email protected]
437 [email protected]
438 [email protected] "::"
439 [email protected]
440 [email protected] "c_int"
441 [email protected] ","
442 [email protected] " "
443 [email protected]
444 [email protected]
445 [email protected]
446 [email protected] "level"
447 [email protected] ":"
448 [email protected] " "
449 [email protected]
450 [email protected]
451 [email protected]
452 [email protected] "::"
453 [email protected]
454 [email protected] "c_int"
455 [email protected] ","
456 [email protected] " "
457 [email protected]
458 [email protected]
459 [email protected]
460 [email protected] "name"
461 [email protected] ":"
462 [email protected] " "
463 [email protected]
464 [email protected]
465 [email protected]
466 [email protected] "::"
467 [email protected]
468 [email protected] "c_int"
469 [email protected] ","
470 [email protected] "\n "
471 [email protected]
472 [email protected]
473 [email protected]
474 [email protected] "value"
475 [email protected] ":"
476 [email protected] " "
477 [email protected]
478 [email protected] "*"
479 [email protected] "const"
480 [email protected] " "
481 [email protected]
482 [email protected]
483 [email protected]
484 [email protected] "::"
485 [email protected]
486 [email protected] "c_void"
487 [email protected] ","
488 [email protected] "\n "
489 [email protected]
490 [email protected]
491 [email protected]
492 [email protected] "option_len"
493 [email protected] ":"
494 [email protected] " "
495 [email protected]
496 [email protected]
497 [email protected]
498 [email protected]
499 [email protected] "socklen_t"
500 [email protected] ")"
501 [email protected] " "
502 [email protected]
503 [email protected] "->"
504 [email protected] " "
505 [email protected]
506 [email protected]
507 [email protected]
508 [email protected] "::"
509 [email protected]
510 [email protected] "c_int"
511 [email protected] ";"
512 [email protected] "\n "
513 [email protected]
514 [email protected]
515 [email protected] "pub"
516 [email protected] " "
517 [email protected] "fn"
518 [email protected] " "
519 [email protected]
520 [email protected] "getpeername"
521 [email protected]
522 [email protected] "("
523 [email protected]
524 [email protected]
525 [email protected]
526 [email protected] "socket"
527 [email protected] ":"
528 [email protected] " "
529 [email protected]
530 [email protected]
531 [email protected]
532 [email protected] "::"
533 [email protected]
534 [email protected] "c_int"
535 [email protected] ","
536 [email protected] " "
537 [email protected]
538 [email protected]
539 [email protected]
540 [email protected] "address"
541 [email protected] ":"
542 [email protected] " "
543 [email protected]
544 [email protected] "*"
545 [email protected] "mut"
546 [email protected] " "
547 [email protected]
548 [email protected]
549 [email protected]
550 [email protected]
551 [email protected] "sockaddr"
552 [email protected] ","
553 [email protected] "\n "
554 [email protected]
555 [email protected]
556 [email protected]
557 [email protected] "address_len"
558 [email protected] ":"
559 [email protected] " "
560 [email protected]
561 [email protected] "*"
562 [email protected] "mut"
563 [email protected] " "
564 [email protected]
565 [email protected]
566 [email protected]
567 [email protected]
568 [email protected] "socklen_t"
569 [email protected] ")"
570 [email protected] " "
571 [email protected]
572 [email protected] "->"
573 [email protected] " "
574 [email protected]
575 [email protected]
576 [email protected]
577 [email protected] "::"
578 [email protected]
579 [email protected] "c_int"
580 [email protected] ";"
581 [email protected] "\n "
582 [email protected]
583 [email protected]
584 [email protected] "pub"
585 [email protected] " "
586 [email protected] "fn"
587 [email protected] " "
588 [email protected]
589 [email protected] "sendto"
590 [email protected]
591 [email protected] "("
592 [email protected]
593 [email protected]
594 [email protected]
595 [email protected] "socket"
596 [email protected] ":"
597 [email protected] " "
598 [email protected]
599 [email protected]
600 [email protected]
601 [email protected] "::"
602 [email protected]
603 [email protected] "c_int"
604 [email protected] ","
605 [email protected] " "
606 [email protected]
607 [email protected]
608 [email protected]
609 [email protected] "buf"
610 [email protected] ":"
611 [email protected] " "
612 [email protected]
613 [email protected] "*"
614 [email protected] "const"
615 [email protected] " "
616 [email protected]
617 [email protected]
618 [email protected]
619 [email protected] "::"
620 [email protected]
621 [email protected] "c_void"
622 [email protected] ","
623 [email protected] " "
624 [email protected]
625 [email protected]
626 [email protected]
627 [email protected] "len"
628 [email protected] ":"
629 [email protected] " "
630 [email protected]
631 [email protected]
632 [email protected]
633 [email protected] "::"
634 [email protected]
635 [email protected] "size_t"
636 [email protected] ","
637 [email protected] "\n "
638 [email protected]
639 [email protected]
640 [email protected]
641 [email protected] "flags"
642 [email protected] ":"
643 [email protected] " "
644 [email protected]
645 [email protected]
646 [email protected]
647 [email protected] "::"
648 [email protected]
649 [email protected] "c_int"
650 [email protected] ","
651 [email protected] " "
652 [email protected]
653 [email protected]
654 [email protected]
655 [email protected] "addr"
656 [email protected] ":"
657 [email protected] " "
658 [email protected]
659 [email protected] "*"
660 [email protected] "const"
661 [email protected] " "
662 [email protected]
663 [email protected]
664 [email protected]
665 [email protected]
666 [email protected] "sockaddr"
667 [email protected] ","
668 [email protected] "\n "
669 [email protected]
670 [email protected]
671 [email protected]
672 [email protected] "addrlen"
673 [email protected] ":"
674 [email protected] " "
675 [email protected]
676 [email protected]
677 [email protected]
678 [email protected]
679 [email protected] "socklen_t"
680 [email protected] ")"
681 [email protected] " "
682 [email protected]
683 [email protected] "->"
684 [email protected] " "
685 [email protected]
686 [email protected]
687 [email protected]
688 [email protected] "::"
689 [email protected]
690 [email protected] "ssize_t"
691 [email protected] ";"
692 [email protected] "\n "
693 [email protected]
694 [email protected]
695 [email protected] "pub"
696 [email protected] " "
697 [email protected] "fn"
698 [email protected] " "
699 [email protected]
700 [email protected] "send"
701 [email protected]
702 [email protected] "("
703 [email protected]
704 [email protected]
705 [email protected]
706 [email protected] "socket"
707 [email protected] ":"
708 [email protected] " "
709 [email protected]
710 [email protected]
711 [email protected]
712 [email protected] "::"
713 [email protected]
714 [email protected] "c_int"
715 [email protected] ","
716 [email protected] " "
717 [email protected]
718 [email protected]
719 [email protected]
720 [email protected] "buf"
721 [email protected] ":"
722 [email protected] " "
723 [email protected]
724 [email protected] "*"
725 [email protected] "const"
726 [email protected] " "
727 [email protected]
728 [email protected]
729 [email protected]
730 [email protected] "::"
731 [email protected]
732 [email protected] "c_void"
733 [email protected] ","
734 [email protected] " "
735 [email protected]
736 [email protected]
737 [email protected]
738 [email protected] "len"
739 [email protected] ":"
740 [email protected] " "
741 [email protected]
742 [email protected]
743 [email protected]
744 [email protected] "::"
745 [email protected]
746 [email protected] "size_t"
747 [email protected] ","
748 [email protected] "\n "
749 [email protected]
750 [email protected]
751 [email protected]
752 [email protected] "flags"
753 [email protected] ":"
754 [email protected] " "
755 [email protected]
756 [email protected]
757 [email protected]
758 [email protected] "::"
759 [email protected]
760 [email protected] "c_int"
761 [email protected] ")"
762 [email protected] " "
763 [email protected]
764 [email protected] "->"
765 [email protected] " "
766 [email protected]
767 [email protected]
768 [email protected]
769 [email protected] "::"
770 [email protected]
771 [email protected] "ssize_t"
772 [email protected] ";"
773 [email protected] "\n "
774 [email protected]
775 [email protected]
776 [email protected] "pub"
777 [email protected] " "
778 [email protected] "fn"
779 [email protected] " "
780 [email protected]
781 [email protected] "recvfrom"
782 [email protected]
783 [email protected] "("
784 [email protected]
785 [email protected]
786 [email protected]
787 [email protected] "socket"
788 [email protected] ":"
789 [email protected] " "
790 [email protected]
791 [email protected]
792 [email protected]
793 [email protected] "::"
794 [email protected]
795 [email protected] "c_int"
796 [email protected] ","
797 [email protected] " "
798 [email protected]
799 [email protected]
800 [email protected]
801 [email protected] "buf"
802 [email protected] ":"
803 [email protected] " "
804 [email protected]
805 [email protected] "*"
806 [email protected] "mut"
807 [email protected] " "
808 [email protected]
809 [email protected]
810 [email protected]
811 [email protected] "::"
812 [email protected]
813 [email protected] "c_void"
814 [email protected] ","
815 [email protected] " "
816 [email protected]
817 [email protected]
818 [email protected]
819 [email protected] "len"
820 [email protected] ":"
821 [email protected] " "
822 [email protected]
823 [email protected]
824 [email protected]
825 [email protected] "::"
826 [email protected]
827 [email protected] "size_t"
828 [email protected] ","
829 [email protected] "\n "
830 [email protected]
831 [email protected]
832 [email protected]
833 [email protected] "flags"
834 [email protected] ":"
835 [email protected] " "
836 [email protected]
837 [email protected]
838 [email protected]
839 [email protected] "::"
840 [email protected]
841 [email protected] "c_int"
842 [email protected] ","
843 [email protected] " "
844 [email protected]
845 [email protected]
846 [email protected]
847 [email protected] "addr"
848 [email protected] ":"
849 [email protected] " "
850 [email protected]
851 [email protected] "*"
852 [email protected] "mut"
853 [email protected] " "
854 [email protected]
855 [email protected]
856 [email protected]
857 [email protected] "::"
858 [email protected]
859 [email protected] "sockaddr"
860 [email protected] ","
861 [email protected] "\n "
862 [email protected]
863 [email protected]
864 [email protected]
865 [email protected] "addrlen"
866 [email protected] ":"
867 [email protected] " "
868 [email protected]
869 [email protected] "*"
870 [email protected] "mut"
871 [email protected] " "
872 [email protected]
873 [email protected]
874 [email protected]
875 [email protected] "::"
876 [email protected]
877 [email protected] "socklen_t"
878 [email protected] ")"
879 [email protected] " "
880 [email protected]
881 [email protected] "->"
882 [email protected] " "
883 [email protected]
884 [email protected]
885 [email protected]
886 [email protected] "::"
887 [email protected]
888 [email protected] "ssize_t"
889 [email protected] ";"
890 [email protected] "\n "
891 [email protected]
892 [email protected]
893 [email protected] "pub"
894 [email protected] " "
895 [email protected] "fn"
896 [email protected] " "
897 [email protected]
898 [email protected] "recv"
899 [email protected]
900 [email protected] "("
901 [email protected]
902 [email protected]
903 [email protected]
904 [email protected] "socket"
905 [email protected] ":"
906 [email protected] " "
907 [email protected]
908 [email protected]
909 [email protected]
910 [email protected] "::"
911 [email protected]
912 [email protected] "c_int"
913 [email protected] ","
914 [email protected] " "
915 [email protected]
916 [email protected]
917 [email protected]
918 [email protected] "buf"
919 [email protected] ":"
920 [email protected] " "
921 [email protected]
922 [email protected] "*"
923 [email protected] "mut"
924 [email protected] " "
925 [email protected]
926 [email protected]
927 [email protected]
928 [email protected] "::"
929 [email protected]
930 [email protected] "c_void"
931 [email protected] ","
932 [email protected] " "
933 [email protected]
934 [email protected]
935 [email protected]
936 [email protected] "len"
937 [email protected] ":"
938 [email protected] " "
939 [email protected]
940 [email protected]
941 [email protected]
942 [email protected] "::"
943 [email protected]
944 [email protected] "size_t"
945 [email protected] ","
946 [email protected] "\n "
947 [email protected]
948 [email protected]
949 [email protected]
950 [email protected] "flags"
951 [email protected] ":"
952 [email protected] " "
953 [email protected]
954 [email protected]
955 [email protected]
956 [email protected] "::"
957 [email protected]
958 [email protected] "c_int"
959 [email protected] ")"
960 [email protected] " "
961 [email protected]
962 [email protected] "->"
963 [email protected] " "
964 [email protected]
965 [email protected]
966 [email protected]
967 [email protected] "::"
968 [email protected]
969 [email protected] "ssize_t"
970 [email protected] ";"
971 [email protected] "\n"
972 [email protected] "}"
973 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0031_extern.rs b/crates/syntax/test_data/parser/ok/0031_extern.rs
new file mode 100644
index 000000000..b33ac273c
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0031_extern.rs
@@ -0,0 +1,29 @@
1extern {
2 pub fn socket(domain: ::c_int, ty: ::c_int, protocol: ::c_int) -> ::c_int;
3 pub fn bind(fd: ::c_int, addr: *const sockaddr, len: socklen_t) -> ::c_int;
4 pub fn connect(socket: ::c_int, address: *const sockaddr,
5 len: socklen_t) -> ::c_int;
6 pub fn listen(socket: ::c_int, backlog: ::c_int) -> ::c_int;
7 pub fn getsockname(socket: ::c_int, address: *mut sockaddr,
8 address_len: *mut socklen_t) -> ::c_int;
9 pub fn getsockopt(sockfd: ::c_int,
10 level: ::c_int,
11 optname: ::c_int,
12 optval: *mut ::c_void,
13 optlen: *mut ::socklen_t) -> ::c_int;
14 pub fn setsockopt(socket: ::c_int, level: ::c_int, name: ::c_int,
15 value: *const ::c_void,
16 option_len: socklen_t) -> ::c_int;
17 pub fn getpeername(socket: ::c_int, address: *mut sockaddr,
18 address_len: *mut socklen_t) -> ::c_int;
19 pub fn sendto(socket: ::c_int, buf: *const ::c_void, len: ::size_t,
20 flags: ::c_int, addr: *const sockaddr,
21 addrlen: socklen_t) -> ::ssize_t;
22 pub fn send(socket: ::c_int, buf: *const ::c_void, len: ::size_t,
23 flags: ::c_int) -> ::ssize_t;
24 pub fn recvfrom(socket: ::c_int, buf: *mut ::c_void, len: ::size_t,
25 flags: ::c_int, addr: *mut ::sockaddr,
26 addrlen: *mut ::socklen_t) -> ::ssize_t;
27 pub fn recv(socket: ::c_int, buf: *mut ::c_void, len: ::size_t,
28 flags: ::c_int) -> ::ssize_t;
29}
diff --git a/crates/syntax/test_data/parser/ok/0032_where_for.rast b/crates/syntax/test_data/parser/ok/0032_where_for.rast
new file mode 100644
index 000000000..d59548f21
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0032_where_for.rast
@@ -0,0 +1,90 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "test_serialization"
7 [email protected]
8 [email protected] "<"
9 [email protected]
10 [email protected]
11 [email protected] "SER"
12 [email protected] ">"
13 [email protected]
14 [email protected] "("
15 [email protected] ")"
16 [email protected] "\n"
17 [email protected]
18 [email protected] "where"
19 [email protected] "\n "
20 [email protected]
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected] "SER"
26 [email protected] ":"
27 [email protected] " "
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected]
34 [email protected] "Serialize"
35 [email protected] " "
36 [email protected] "+"
37 [email protected] " "
38 [email protected]
39 [email protected]
40 [email protected] "for"
41 [email protected]
42 [email protected] "<"
43 [email protected]
44 [email protected] "\'de"
45 [email protected] ">"
46 [email protected] " "
47 [email protected]
48 [email protected]
49 [email protected]
50 [email protected]
51 [email protected] "Deserialize"
52 [email protected]
53 [email protected] "<"
54 [email protected]
55 [email protected] "\'de"
56 [email protected] ">"
57 [email protected] " "
58 [email protected] "+"
59 [email protected] " "
60 [email protected]
61 [email protected]
62 [email protected]
63 [email protected]
64 [email protected]
65 [email protected] "PartialEq"
66 [email protected] " "
67 [email protected] "+"
68 [email protected] " "
69 [email protected]
70 [email protected]
71 [email protected]
72 [email protected]
73 [email protected]
74 [email protected]
75 [email protected]
76 [email protected] "std"
77 [email protected] "::"
78 [email protected]
79 [email protected]
80 [email protected] "fmt"
81 [email protected] "::"
82 [email protected]
83 [email protected]
84 [email protected] "Debug"
85 [email protected] ","
86 [email protected] "\n"
87 [email protected]
88 [email protected] "{"
89 [email protected] "}"
90 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0032_where_for.rs b/crates/syntax/test_data/parser/ok/0032_where_for.rs
new file mode 100644
index 000000000..588170fbe
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0032_where_for.rs
@@ -0,0 +1,4 @@
1fn test_serialization<SER>()
2where
3 SER: Serialize + for<'de> Deserialize<'de> + PartialEq + std::fmt::Debug,
4{}
diff --git a/crates/syntax/test_data/parser/ok/0033_label_break.rast b/crates/syntax/test_data/parser/ok/0033_label_break.rast
new file mode 100644
index 000000000..88800ca7a
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0033_label_break.rast
@@ -0,0 +1,215 @@
1[email protected]
2 [email protected]
3 [email protected] "// format with label ..."
4 [email protected] "\n"
5 [email protected] "fn"
6 [email protected] " "
7 [email protected]
8 [email protected] "main"
9 [email protected]
10 [email protected] "("
11 [email protected] ")"
12 [email protected] " "
13 [email protected]
14 [email protected] "{"
15 [email protected] "\n "
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected] "\'empty_block"
20 [email protected] ":"
21 [email protected] " "
22 [email protected]
23 [email protected] "{"
24 [email protected] "}"
25 [email protected] "\n\n "
26 [email protected]
27 [email protected]
28 [email protected]
29 [email protected] "\'block"
30 [email protected] ":"
31 [email protected] " "
32 [email protected]
33 [email protected] "{"
34 [email protected] "\n "
35 [email protected]
36 [email protected]
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected] "do_thing"
42 [email protected]
43 [email protected] "("
44 [email protected] ")"
45 [email protected] ";"
46 [email protected] "\n "
47 [email protected]
48 [email protected]
49 [email protected] "if"
50 [email protected] " "
51 [email protected]
52 [email protected]
53 [email protected]
54 [email protected]
55 [email protected]
56 [email protected]
57 [email protected] "condition_not_met"
58 [email protected]
59 [email protected] "("
60 [email protected] ")"
61 [email protected] " "
62 [email protected]
63 [email protected] "{"
64 [email protected] "\n "
65 [email protected]
66 [email protected]
67 [email protected] "break"
68 [email protected] " "
69 [email protected] "\'block"
70 [email protected] ";"
71 [email protected] "\n "
72 [email protected] "}"
73 [email protected] "\n "
74 [email protected]
75 [email protected]
76 [email protected]
77 [email protected]
78 [email protected]
79 [email protected]
80 [email protected] "do_next_thing"
81 [email protected]
82 [email protected] "("
83 [email protected] ")"
84 [email protected] ";"
85 [email protected] "\n "
86 [email protected]
87 [email protected]
88 [email protected] "if"
89 [email protected] " "
90 [email protected]
91 [email protected]
92 [email protected]
93 [email protected]
94 [email protected]
95 [email protected]
96 [email protected] "condition_not_met"
97 [email protected]
98 [email protected] "("
99 [email protected] ")"
100 [email protected] " "
101 [email protected]
102 [email protected] "{"
103 [email protected] "\n "
104 [email protected]
105 [email protected]
106 [email protected] "break"
107 [email protected] " "
108 [email protected] "\'block"
109 [email protected] ";"
110 [email protected] "\n "
111 [email protected] "}"
112 [email protected] "\n "
113 [email protected]
114 [email protected]
115 [email protected]
116 [email protected]
117 [email protected]
118 [email protected]
119 [email protected] "do_last_thing"
120 [email protected]
121 [email protected] "("
122 [email protected] ")"
123 [email protected] ";"
124 [email protected] "\n "
125 [email protected] "}"
126 [email protected] "\n\n "
127 [email protected]
128 [email protected] "let"
129 [email protected] " "
130 [email protected]
131 [email protected]
132 [email protected] "result"
133 [email protected] " "
134 [email protected] "="
135 [email protected] " "
136 [email protected]
137 [email protected]
138 [email protected] "\'block"
139 [email protected] ":"
140 [email protected] " "
141 [email protected]
142 [email protected] "{"
143 [email protected] "\n "
144 [email protected]
145 [email protected]
146 [email protected] "if"
147 [email protected] " "
148 [email protected]
149 [email protected]
150 [email protected]
151 [email protected]
152 [email protected]
153 [email protected]
154 [email protected] "foo"
155 [email protected]
156 [email protected] "("
157 [email protected] ")"
158 [email protected] " "
159 [email protected]
160 [email protected] "{"
161 [email protected] "\n "
162 [email protected] "// comment"
163 [email protected] "\n "
164 [email protected]
165 [email protected]
166 [email protected] "break"
167 [email protected] " "
168 [email protected] "\'block"
169 [email protected] " "
170 [email protected]
171 [email protected] "1"
172 [email protected] ";"
173 [email protected] "\n "
174 [email protected] "}"
175 [email protected] "\n "
176 [email protected]
177 [email protected]
178 [email protected] "if"
179 [email protected] " "
180 [email protected]
181 [email protected]
182 [email protected]
183 [email protected]
184 [email protected]
185 [email protected]
186 [email protected] "bar"
187 [email protected]
188 [email protected] "("
189 [email protected] ")"
190 [email protected] " "
191 [email protected]
192 [email protected] "{"
193 [email protected] "\n "
194 [email protected] "/* comment */"
195 [email protected] "\n "
196 [email protected]
197 [email protected]
198 [email protected] "break"
199 [email protected] " "
200 [email protected] "\'block"
201 [email protected] " "
202 [email protected]
203 [email protected] "2"
204 [email protected] ";"
205 [email protected] "\n "
206 [email protected] "}"
207 [email protected] "\n "
208 [email protected]
209 [email protected] "3"
210 [email protected] "\n "
211 [email protected] "}"
212 [email protected] ";"
213 [email protected] "\n"
214 [email protected] "}"
215 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0033_label_break.rs b/crates/syntax/test_data/parser/ok/0033_label_break.rs
new file mode 100644
index 000000000..728d78137
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0033_label_break.rs
@@ -0,0 +1,28 @@
1// format with label break value.
2fn main() {
3 'empty_block: {}
4
5 'block: {
6 do_thing();
7 if condition_not_met() {
8 break 'block;
9 }
10 do_next_thing();
11 if condition_not_met() {
12 break 'block;
13 }
14 do_last_thing();
15 }
16
17 let result = 'block: {
18 if foo() {
19 // comment
20 break 'block 1;
21 }
22 if bar() {
23 /* comment */
24 break 'block 2;
25 }
26 3
27 };
28}
diff --git a/crates/syntax/test_data/parser/ok/0034_crate_path_in_call.rast b/crates/syntax/test_data/parser/ok/0034_crate_path_in_call.rast
new file mode 100644
index 000000000..5ad8c570d
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0034_crate_path_in_call.rast
@@ -0,0 +1,41 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "make_query"
21 [email protected]
22 [email protected] "("
23 [email protected]
24 [email protected]
25 [email protected]
26 [email protected]
27 [email protected]
28 [email protected] "crate"
29 [email protected] "::"
30 [email protected]
31 [email protected]
32 [email protected] "module_map"
33 [email protected] "::"
34 [email protected]
35 [email protected]
36 [email protected] "module_tree"
37 [email protected] ")"
38 [email protected] ";"
39 [email protected] "\n"
40 [email protected] "}"
41 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0034_crate_path_in_call.rs b/crates/syntax/test_data/parser/ok/0034_crate_path_in_call.rs
new file mode 100644
index 000000000..f1ed30220
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0034_crate_path_in_call.rs
@@ -0,0 +1,3 @@
1fn main() {
2 make_query(crate::module_map::module_tree);
3}
diff --git a/crates/syntax/test_data/parser/ok/0035_weird_exprs.rast b/crates/syntax/test_data/parser/ok/0035_weird_exprs.rast
new file mode 100644
index 000000000..7c61b5006
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0035_weird_exprs.rast
@@ -0,0 +1,2291 @@
1[email protected]
2 [email protected] "//! Adapted from a `r ..."
3 [email protected] "\n"
4 [email protected] "//! https://github.co ..."
5 [email protected] "\n"
6 [email protected] "//! "
7 [email protected] "\n"
8 [email protected] "//! Reported to rust- ..."
9 [email protected] "\n\n"
10 [email protected]
11 [email protected] "#"
12 [email protected] "!"
13 [email protected] "["
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected] "allow"
18 [email protected]
19 [email protected] "("
20 [email protected] "non_camel_case_types"
21 [email protected] ")"
22 [email protected] "]"
23 [email protected] "\n"
24 [email protected]
25 [email protected] "#"
26 [email protected] "!"
27 [email protected] "["
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected] "allow"
32 [email protected]
33 [email protected] "("
34 [email protected] "dead_code"
35 [email protected] ")"
36 [email protected] "]"
37 [email protected] "\n"
38 [email protected]
39 [email protected] "#"
40 [email protected] "!"
41 [email protected] "["
42 [email protected]
43 [email protected]
44 [email protected]
45 [email protected] "allow"
46 [email protected]
47 [email protected] "("
48 [email protected] "unreachable_code"
49 [email protected] ")"
50 [email protected] "]"
51 [email protected] "\n"
52 [email protected]
53 [email protected] "#"
54 [email protected] "!"
55 [email protected] "["
56 [email protected]
57 [email protected]
58 [email protected]
59 [email protected] "allow"
60 [email protected]
61 [email protected] "("
62 [email protected] "unused_parens"
63 [email protected] ")"
64 [email protected] "]"
65 [email protected] "\n\n"
66 [email protected]
67 [email protected] "#"
68 [email protected] "!"
69 [email protected] "["
70 [email protected]
71 [email protected]
72 [email protected]
73 [email protected] "recursion_limit"
74 [email protected] " "
75 [email protected] "="
76 [email protected] " "
77 [email protected]
78 [email protected] "\"128\""
79 [email protected] "]"
80 [email protected] "\n\n"
81 [email protected]
82 [email protected] "use"
83 [email protected] " "
84 [email protected]
85 [email protected]
86 [email protected]
87 [email protected]
88 [email protected]
89 [email protected]
90 [email protected] "std"
91 [email protected] "::"
92 [email protected]
93 [email protected]
94 [email protected] "cell"
95 [email protected] "::"
96 [email protected]
97 [email protected]
98 [email protected] "Cell"
99 [email protected] ";"
100 [email protected] "\n"
101 [email protected]
102 [email protected] "use"
103 [email protected] " "
104 [email protected]
105 [email protected]
106 [email protected]
107 [email protected]
108 [email protected]
109 [email protected]
110 [email protected] "std"
111 [email protected] "::"
112 [email protected]
113 [email protected]
114 [email protected] "mem"
115 [email protected] "::"
116 [email protected]
117 [email protected]
118 [email protected] "swap"
119 [email protected] ";"
120 [email protected] "\n\n"
121 [email protected] "// Just a grab bag of ..."
122 [email protected] "\n\n"
123 [email protected]
124 [email protected] "fn"
125 [email protected] " "
126 [email protected]
127 [email protected] "strange"
128 [email protected]
129 [email protected] "("
130 [email protected] ")"
131 [email protected] " "
132 [email protected]
133 [email protected] "->"
134 [email protected] " "
135 [email protected]
136 [email protected]
137 [email protected]
138 [email protected]
139 [email protected] "bool"
140 [email protected] " "
141 [email protected]
142 [email protected] "{"
143 [email protected] " "
144 [email protected]
145 [email protected] "let"
146 [email protected] " "
147 [email protected]
148 [email protected]
149 [email protected] "_x"
150 [email protected] ":"
151 [email protected] " "
152 [email protected]
153 [email protected]
154 [email protected]
155 [email protected]
156 [email protected] "bool"
157 [email protected] " "
158 [email protected] "="
159 [email protected] " "
160 [email protected]
161 [email protected] "return"
162 [email protected] " "
163 [email protected]
164 [email protected] "true"
165 [email protected] ";"
166 [email protected] " "
167 [email protected] "}"
168 [email protected] "\n\n"
169 [email protected]
170 [email protected] "fn"
171 [email protected] " "
172 [email protected]
173 [email protected] "funny"
174 [email protected]
175 [email protected] "("
176 [email protected] ")"
177 [email protected] " "
178 [email protected]
179 [email protected] "{"
180 [email protected] "\n "
181 [email protected]
182 [email protected] "fn"
183 [email protected] " "
184 [email protected]
185 [email protected] "f"
186 [email protected]
187 [email protected] "("
188 [email protected]
189 [email protected]
190 [email protected]
191 [email protected] "_x"
192 [email protected] ":"
193 [email protected] " "
194 [email protected]
195 [email protected] "("
196 [email protected] ")"
197 [email protected] ")"
198 [email protected] " "
199 [email protected]
200 [email protected] "{"
201 [email protected] " "
202 [email protected] "}"
203 [email protected] "\n "
204 [email protected]
205 [email protected]
206 [email protected]
207 [email protected]
208 [email protected]
209 [email protected]
210 [email protected] "f"
211 [email protected]
212 [email protected] "("
213 [email protected]
214 [email protected] "return"
215 [email protected] ")"
216 [email protected] ";"
217 [email protected] "\n"
218 [email protected] "}"
219 [email protected] "\n\n"
220 [email protected]
221 [email protected] "fn"
222 [email protected] " "
223 [email protected]
224 [email protected] "what"
225 [email protected]
226 [email protected] "("
227 [email protected] ")"
228 [email protected] " "
229 [email protected]
230 [email protected] "{"
231 [email protected] "\n "
232 [email protected]
233 [email protected] "fn"
234 [email protected] " "
235 [email protected]
236 [email protected] "the"
237 [email protected]
238 [email protected] "("
239 [email protected]
240 [email protected]
241 [email protected]
242 [email protected] "x"
243 [email protected] ":"
244 [email protected] " "
245 [email protected]
246 [email protected] "&"
247 [email protected]
248 [email protected]
249 [email protected]
250 [email protected]
251 [email protected] "Cell"
252 [email protected]
253 [email protected] "<"
254 [email protected]
255 [email protected]
256 [email protected]
257 [email protected]
258 [email protected]
259 [email protected] "bool"
260 [email protected] ">"
261 [email protected] ")"
262 [email protected] " "
263 [email protected]
264 [email protected] "{"
265 [email protected] "\n "
266 [email protected]
267 [email protected]
268 [email protected] "return"
269 [email protected] " "
270 [email protected]
271 [email protected] "while"
272 [email protected] " "
273 [email protected]
274 [email protected]
275 [email protected] "!"
276 [email protected]
277 [email protected]
278 [email protected]
279 [email protected]
280 [email protected]
281 [email protected] "x"
282 [email protected] "."
283 [email protected]
284 [email protected] "get"
285 [email protected]
286 [email protected] "("
287 [email protected] ")"
288 [email protected] " "
289 [email protected]
290 [email protected] "{"
291 [email protected] " "
292 [email protected]
293 [email protected]
294 [email protected]
295 [email protected]
296 [email protected]
297 [email protected]
298 [email protected] "x"
299 [email protected] "."
300 [email protected]
301 [email protected] "set"
302 [email protected]
303 [email protected] "("
304 [email protected]
305 [email protected] "true"
306 [email protected] ")"
307 [email protected] ";"
308 [email protected] " "
309 [email protected] "}"
310 [email protected] ";"
311 [email protected] "\n "
312 [email protected] "}"
313 [email protected] "\n "
314 [email protected]
315 [email protected] "let"
316 [email protected] " "
317 [email protected]
318 [email protected]
319 [email protected] "i"
320 [email protected] " "
321 [email protected] "="
322 [email protected] " "
323 [email protected]
324 [email protected] "&"
325 [email protected]
326 [email protected]
327 [email protected]
328 [email protected]
329 [email protected]
330 [email protected]
331 [email protected] "Cell"
332 [email protected] "::"
333 [email protected]
334 [email protected]
335 [email protected] "new"
336 [email protected]
337 [email protected] "("
338 [email protected]
339 [email protected] "false"
340 [email protected] ")"
341 [email protected] ";"
342 [email protected] "\n "
343 [email protected]
344 [email protected] "let"
345 [email protected] " "
346 [email protected]
347 [email protected]
348 [email protected] "dont"
349 [email protected] " "
350 [email protected] "="
351 [email protected] " "
352 [email protected]
353 [email protected] "{"
354 [email protected]
355 [email protected]
356 [email protected] "|"
357 [email protected] "|"
358 [email protected]
359 [email protected]
360 [email protected]
361 [email protected]
362 [email protected]
363 [email protected] "the"
364 [email protected]
365 [email protected] "("
366 [email protected]
367 [email protected]
368 [email protected]
369 [email protected]
370 [email protected] "i"
371 [email protected] ")"
372 [email protected] "}"
373 [email protected] ";"
374 [email protected] "\n "
375 [email protected]
376 [email protected]
377 [email protected]
378 [email protected]
379 [email protected]
380 [email protected]
381 [email protected] "dont"
382 [email protected]
383 [email protected] "("
384 [email protected] ")"
385 [email protected] ";"
386 [email protected] "\n "
387 [email protected]
388 [email protected]
389 [email protected]
390 [email protected]
391 [email protected]
392 [email protected] "assert"
393 [email protected] "!"
394 [email protected]
395 [email protected] "("
396 [email protected]
397 [email protected] "("
398 [email protected] "i"
399 [email protected] "."
400 [email protected] "get"
401 [email protected]
402 [email protected] "("
403 [email protected] ")"
404 [email protected] ")"
405 [email protected] ")"
406 [email protected] ";"
407 [email protected] "\n"
408 [email protected] "}"
409 [email protected] "\n\n"
410 [email protected]
411 [email protected] "fn"
412 [email protected] " "
413 [email protected]
414 [email protected] "zombiejesus"
415 [email protected]
416 [email protected] "("
417 [email protected] ")"
418 [email protected] " "
419 [email protected]
420 [email protected] "{"
421 [email protected] "\n "
422 [email protected]
423 [email protected] "loop"
424 [email protected] " "
425 [email protected]
426 [email protected] "{"
427 [email protected] "\n "
428 [email protected]
429 [email protected]
430 [email protected] "while"
431 [email protected] " "
432 [email protected]
433 [email protected]
434 [email protected] "("
435 [email protected]
436 [email protected] "return"
437 [email protected] ")"
438 [email protected] " "
439 [email protected]
440 [email protected] "{"
441 [email protected] "\n "
442 [email protected]
443 [email protected] "if"
444 [email protected] " "
445 [email protected]
446 [email protected]
447 [email protected] "("
448 [email protected]
449 [email protected] "return"
450 [email protected] ")"
451 [email protected] " "
452 [email protected]
453 [email protected] "{"
454 [email protected] "\n "
455 [email protected]
456 [email protected]
457 [email protected] "match"
458 [email protected] " "
459 [email protected]
460 [email protected] "("
461 [email protected]
462 [email protected] "return"
463 [email protected] ")"
464 [email protected] " "
465 [email protected]
466 [email protected] "{"
467 [email protected] "\n "
468 [email protected]
469 [email protected]
470 [email protected]
471 [email protected] "1"
472 [email protected] " "
473 [email protected] "=>"
474 [email protected] " "
475 [email protected]
476 [email protected] "{"
477 [email protected] "\n ..."
478 [email protected]
479 [email protected] "if"
480 [email protected] " "
481 [email protected]
482 [email protected]
483 [email protected] "("
484 [email protected]
485 [email protected] "return"
486 [email protected] ")"
487 [email protected] " "
488 [email protected]
489 [email protected] "{"
490 [email protected] "\n ..."
491 [email protected]
492 [email protected] "return"
493 [email protected] "\n ..."
494 [email protected] "}"
495 [email protected] " "
496 [email protected] "else"
497 [email protected] " "
498 [email protected]
499 [email protected] "{"
500 [email protected] "\n ..."
501 [email protected]
502 [email protected] "return"
503 [email protected] "\n ..."
504 [email protected] "}"
505 [email protected] "\n "
506 [email protected] "}"
507 [email protected] "\n "
508 [email protected]
509 [email protected]
510 [email protected] "_"
511 [email protected] " "
512 [email protected] "=>"
513 [email protected] " "
514 [email protected]
515 [email protected] "{"
516 [email protected] " "
517 [email protected]
518 [email protected] "return"
519 [email protected] " "
520 [email protected] "}"
521 [email protected] "\n "
522 [email protected] "}"
523 [email protected] ";"
524 [email protected] "\n "
525 [email protected] "}"
526 [email protected] " "
527 [email protected] "else"
528 [email protected] " "
529 [email protected]
530 [email protected] "if"
531 [email protected] " "
532 [email protected]
533 [email protected]
534 [email protected] "("
535 [email protected]
536 [email protected] "return"
537 [email protected] ")"
538 [email protected] " "
539 [email protected]
540 [email protected] "{"
541 [email protected] "\n "
542 [email protected]
543 [email protected]
544 [email protected] "return"
545 [email protected] ";"
546 [email protected] "\n "
547 [email protected] "}"
548 [email protected] "\n "
549 [email protected] "}"
550 [email protected] "\n "
551 [email protected]
552 [email protected] "if"
553 [email protected] " "
554 [email protected]
555 [email protected]
556 [email protected] "("
557 [email protected]
558 [email protected] "return"
559 [email protected] ")"
560 [email protected] " "
561 [email protected]
562 [email protected] "{"
563 [email protected] " "
564 [email protected]
565 [email protected]
566 [email protected] "break"
567 [email protected] ";"
568 [email protected] " "
569 [email protected] "}"
570 [email protected] "\n "
571 [email protected] "}"
572 [email protected] "\n"
573 [email protected] "}"
574 [email protected] "\n\n"
575 [email protected]
576 [email protected] "fn"
577 [email protected] " "
578 [email protected]
579 [email protected] "notsure"
580 [email protected]
581 [email protected] "("
582 [email protected] ")"
583 [email protected] " "
584 [email protected]
585 [email protected] "{"
586 [email protected] "\n "
587 [email protected]
588 [email protected] "let"
589 [email protected] " "
590 [email protected]
591 [email protected] "mut"
592 [email protected] " "
593 [email protected]
594 [email protected] "_x"
595 [email protected] ":"
596 [email protected] " "
597 [email protected]
598 [email protected]
599 [email protected]
600 [email protected]
601 [email protected] "isize"
602 [email protected] ";"
603 [email protected] "\n "
604 [email protected]
605 [email protected] "let"
606 [email protected] " "
607 [email protected]
608 [email protected] "mut"
609 [email protected] " "
610 [email protected]
611 [email protected] "_y"
612 [email protected] " "
613 [email protected] "="
614 [email protected] " "
615 [email protected]
616 [email protected]
617 [email protected] "("
618 [email protected]
619 [email protected]
620 [email protected]
621 [email protected]
622 [email protected]
623 [email protected] "_x"
624 [email protected] " "
625 [email protected] "="
626 [email protected] " "
627 [email protected]
628 [email protected] "0"
629 [email protected] ")"
630 [email protected] " "
631 [email protected] "=="
632 [email protected] " "
633 [email protected]
634 [email protected] "("
635 [email protected]
636 [email protected]
637 [email protected]
638 [email protected]
639 [email protected]
640 [email protected] "_x"
641 [email protected] " "
642 [email protected] "="
643 [email protected] " "
644 [email protected]
645 [email protected] "0"
646 [email protected] ")"
647 [email protected] ";"
648 [email protected] "\n "
649 [email protected]
650 [email protected] "let"
651 [email protected] " "
652 [email protected]
653 [email protected] "mut"
654 [email protected] " "
655 [email protected]
656 [email protected] "_z"
657 [email protected] " "
658 [email protected] "="
659 [email protected] " "
660 [email protected]
661 [email protected]
662 [email protected] "("
663 [email protected]
664 [email protected]
665 [email protected]
666 [email protected]
667 [email protected]
668 [email protected] "_x"
669 [email protected] " "
670 [email protected] "="
671 [email protected] " "
672 [email protected]
673 [email protected] "0"
674 [email protected] ")"
675 [email protected] " "
676 [email protected] "<"
677 [email protected] " "
678 [email protected]
679 [email protected] "("
680 [email protected]
681 [email protected]
682 [email protected]
683 [email protected]
684 [email protected]
685 [email protected] "_x"
686 [email protected] " "
687 [email protected] "="
688 [email protected] " "
689 [email protected]
690 [email protected] "0"
691 [email protected] ")"
692 [email protected] ";"
693 [email protected] "\n "
694 [email protected]
695 [email protected] "let"
696 [email protected] " "
697 [email protected]
698 [email protected]
699 [email protected] "_a"
700 [email protected] " "
701 [email protected] "="
702 [email protected] " "
703 [email protected]
704 [email protected]
705 [email protected] "("
706 [email protected]
707 [email protected]
708 [email protected]
709 [email protected]
710 [email protected]
711 [email protected] "_x"
712 [email protected] " "
713 [email protected] "+="
714 [email protected] " "
715 [email protected]
716 [email protected] "0"
717 [email protected] ")"
718 [email protected] " "
719 [email protected] "=="
720 [email protected] " "
721 [email protected]
722 [email protected] "("
723 [email protected]
724 [email protected]
725 [email protected]
726 [email protected]
727 [email protected]
728 [email protected] "_x"
729 [email protected] " "
730 [email protected] "="
731 [email protected] " "
732 [email protected]
733 [email protected] "0"
734 [email protected] ")"
735 [email protected] ";"
736 [email protected] "\n "
737 [email protected]
738 [email protected] "let"
739 [email protected] " "
740 [email protected]
741 [email protected]
742 [email protected] "_b"
743 [email protected] " "
744 [email protected] "="
745 [email protected] " "
746 [email protected]
747 [email protected]
748 [email protected]
749 [email protected]
750 [email protected]
751 [email protected]
752 [email protected] "swap"
753 [email protected]
754 [email protected] "("
755 [email protected]
756 [email protected] "&"
757 [email protected] "mut"
758 [email protected] " "
759 [email protected]
760 [email protected]
761 [email protected]
762 [email protected]
763 [email protected] "_y"
764 [email protected] ","
765 [email protected] " "
766 [email protected]
767 [email protected] "&"
768 [email protected] "mut"
769 [email protected] " "
770 [email protected]
771 [email protected]
772 [email protected]
773 [email protected]
774 [email protected] "_z"
775 [email protected] ")"
776 [email protected] " "
777 [email protected] "=="
778 [email protected] " "
779 [email protected]
780 [email protected]
781 [email protected]
782 [email protected]
783 [email protected]
784 [email protected] "swap"
785 [email protected]
786 [email protected] "("
787 [email protected]
788 [email protected] "&"
789 [email protected] "mut"
790 [email protected] " "
791 [email protected]
792 [email protected]
793 [email protected]
794 [email protected]
795 [email protected] "_y"
796 [email protected] ","
797 [email protected] " "
798 [email protected]
799 [email protected] "&"
800 [email protected] "mut"
801 [email protected] " "
802 [email protected]
803 [email protected]
804 [email protected]
805 [email protected]
806 [email protected] "_z"
807 [email protected] ")"
808 [email protected] ";"
809 [email protected] "\n"
810 [email protected] "}"
811 [email protected] "\n\n"
812 [email protected]
813 [email protected] "fn"
814 [email protected] " "
815 [email protected]
816 [email protected] "canttouchthis"
817 [email protected]
818 [email protected] "("
819 [email protected] ")"
820 [email protected] " "
821 [email protected]
822 [email protected] "->"
823 [email protected] " "
824 [email protected]
825 [email protected]
826 [email protected]
827 [email protected]
828 [email protected] "usize"
829 [email protected] " "
830 [email protected]
831 [email protected] "{"
832 [email protected] "\n "
833 [email protected]
834 [email protected] "fn"
835 [email protected] " "
836 [email protected]
837 [email protected] "p"
838 [email protected]
839 [email protected] "("
840 [email protected] ")"
841 [email protected] " "
842 [email protected]
843 [email protected] "->"
844 [email protected] " "
845 [email protected]
846 [email protected]
847 [email protected]
848 [email protected]
849 [email protected] "bool"
850 [email protected] " "
851 [email protected]
852 [email protected] "{"
853 [email protected] " "
854 [email protected]
855 [email protected] "true"
856 [email protected] " "
857 [email protected] "}"
858 [email protected] "\n "
859 [email protected]
860 [email protected] "let"
861 [email protected] " "
862 [email protected]
863 [email protected]
864 [email protected] "_a"
865 [email protected] " "
866 [email protected] "="
867 [email protected] " "
868 [email protected]
869 [email protected] "("
870 [email protected]
871 [email protected]
872 [email protected]
873 [email protected]
874 [email protected]
875 [email protected] "assert"
876 [email protected] "!"
877 [email protected]
878 [email protected] "("
879 [email protected]
880 [email protected] "("
881 [email protected] "true"
882 [email protected] ")"
883 [email protected] ")"
884 [email protected] " "
885 [email protected] "=="
886 [email protected] " "
887 [email protected]
888 [email protected] "("
889 [email protected]
890 [email protected]
891 [email protected]
892 [email protected]
893 [email protected] "assert"
894 [email protected] "!"
895 [email protected]
896 [email protected] "("
897 [email protected] "p"
898 [email protected]
899 [email protected] "("
900 [email protected] ")"
901 [email protected] ")"
902 [email protected] ")"
903 [email protected] ")"
904 [email protected] ";"
905 [email protected] "\n "
906 [email protected]
907 [email protected] "let"
908 [email protected] " "
909 [email protected]
910 [email protected]
911 [email protected] "_c"
912 [email protected] " "
913 [email protected] "="
914 [email protected] " "
915 [email protected]
916 [email protected] "("
917 [email protected]
918 [email protected]
919 [email protected]
920 [email protected]
921 [email protected]
922 [email protected] "assert"
923 [email protected] "!"
924 [email protected]
925 [email protected] "("
926 [email protected]
927 [email protected] "("
928 [email protected] "p"
929 [email protected]
930 [email protected] "("
931 [email protected] ")"
932 [email protected] ")"
933 [email protected] ")"
934 [email protected] " "
935 [email protected] "=="
936 [email protected] " "
937 [email protected]
938 [email protected] "("
939 [email protected] ")"
940 [email protected] ")"
941 [email protected] ";"
942 [email protected] "\n "
943 [email protected]
944 [email protected] "let"
945 [email protected] " "
946 [email protected]
947 [email protected]
948 [email protected] "_b"
949 [email protected] ":"
950 [email protected] " "
951 [email protected]
952 [email protected]
953 [email protected]
954 [email protected]
955 [email protected] "bool"
956 [email protected] " "
957 [email protected] "="
958 [email protected] " "
959 [email protected]
960 [email protected] "("
961 [email protected]
962 [email protected]
963 [email protected]
964 [email protected]
965 [email protected]
966 [email protected] "println"
967 [email protected] "!"
968 [email protected]
969 [email protected] "("
970 [email protected] "\"{}\""
971 [email protected] ","
972 [email protected] " "
973 [email protected] "0"
974 [email protected] ")"
975 [email protected] " "
976 [email protected] "=="
977 [email protected] " "
978 [email protected]
979 [email protected] "("
980 [email protected]
981 [email protected] "return"
982 [email protected] " "
983 [email protected]
984 [email protected] "0"
985 [email protected] ")"
986 [email protected] ")"
987 [email protected] ";"
988 [email protected] "\n"
989 [email protected] "}"
990 [email protected] "\n\n"
991 [email protected]
992 [email protected] "fn"
993 [email protected] " "
994 [email protected]
995 [email protected] "angrydome"
996 [email protected]
997 [email protected] "("
998 [email protected] ")"
999 [email protected] " "
1000 [email protected]
1001 [email protected] "{"
1002 [email protected] "\n "
1003 [email protected]
1004 [email protected]
1005 [email protected] "loop"
1006 [email protected] " "
1007 [email protected]
1008 [email protected] "{"
1009 [email protected] " "
1010 [email protected]
1011 [email protected] "if"
1012 [email protected] " "
1013 [email protected]
1014 [email protected]
1015 [email protected] "break"
1016 [email protected] " "
1017 [email protected]
1018 [email protected] "{"
1019 [email protected] " "
1020 [email protected] "}"
1021 [email protected] " "
1022 [email protected] "}"
1023 [email protected] "\n "
1024 [email protected]
1025 [email protected] "let"
1026 [email protected] " "
1027 [email protected]
1028 [email protected] "mut"
1029 [email protected] " "
1030 [email protected]
1031 [email protected] "i"
1032 [email protected] " "
1033 [email protected] "="
1034 [email protected] " "
1035 [email protected]
1036 [email protected] "0"
1037 [email protected] ";"
1038 [email protected] "\n "
1039 [email protected]
1040 [email protected] "loop"
1041 [email protected] " "
1042 [email protected]
1043 [email protected] "{"
1044 [email protected] " "
1045 [email protected]
1046 [email protected]
1047 [email protected]
1048 [email protected]
1049 [email protected]
1050 [email protected]
1051 [email protected] "i"
1052 [email protected] " "
1053 [email protected] "+="
1054 [email protected] " "
1055 [email protected]
1056 [email protected] "1"
1057 [email protected] ";"
1058 [email protected] " "
1059 [email protected]
1060 [email protected]
1061 [email protected] "if"
1062 [email protected] " "
1063 [email protected]
1064 [email protected]
1065 [email protected]
1066 [email protected]
1067 [email protected]
1068 [email protected]
1069 [email protected] "i"
1070 [email protected] " "
1071 [email protected] "=="
1072 [email protected] " "
1073 [email protected]
1074 [email protected] "1"
1075 [email protected] " "
1076 [email protected]
1077 [email protected] "{"
1078 [email protected] " "
1079 [email protected]
1080 [email protected] "match"
1081 [email protected] " "
1082 [email protected]
1083 [email protected] "("
1084 [email protected]
1085 [email protected] "continue"
1086 [email protected] ")"
1087 [email protected] " "
1088 [email protected]
1089 [email protected] "{"
1090 [email protected] " "
1091 [email protected]
1092 [email protected]
1093 [email protected]
1094 [email protected] "1"
1095 [email protected] " "
1096 [email protected] "=>"
1097 [email protected] " "
1098 [email protected]
1099 [email protected] "{"
1100 [email protected] " "
1101 [email protected] "}"
1102 [email protected] ","
1103 [email protected] " "
1104 [email protected]
1105 [email protected]
1106 [email protected] "_"
1107 [email protected] " "
1108 [email protected] "=>"
1109 [email protected] " "
1110 [email protected]
1111 [email protected]
1112 [email protected]
1113 [email protected]
1114 [email protected] "panic"
1115 [email protected] "!"
1116 [email protected]
1117 [email protected] "("
1118 [email protected] "\"wat\""
1119 [email protected] ")"
1120 [email protected] " "
1121 [email protected] "}"
1122 [email protected] " "
1123 [email protected] "}"
1124 [email protected] "\n "
1125 [email protected]
1126 [email protected]
1127 [email protected] "break"
1128 [email protected] ";"
1129 [email protected] " "
1130 [email protected] "}"
1131 [email protected] "\n"
1132 [email protected] "}"
1133 [email protected] "\n\n"
1134 [email protected]
1135 [email protected] "fn"
1136 [email protected] " "
1137 [email protected]
1138 [email protected] "evil_lincoln"
1139 [email protected]
1140 [email protected] "("
1141 [email protected] ")"
1142 [email protected] " "
1143 [email protected]
1144 [email protected] "{"
1145 [email protected] " "
1146 [email protected]
1147 [email protected] "let"
1148 [email protected] " "
1149 [email protected]
1150 [email protected]
1151 [email protected] "_evil"
1152 [email protected] " "
1153 [email protected] "="
1154 [email protected] " "
1155 [email protected]
1156 [email protected]
1157 [email protected]
1158 [email protected]
1159 [email protected] "println"
1160 [email protected] "!"
1161 [email protected]
1162 [email protected] "("
1163 [email protected] "\"lincoln\""
1164 [email protected] ")"
1165 [email protected] ";"
1166 [email protected] " "
1167 [email protected] "}"
1168 [email protected] "\n\n"
1169 [email protected]
1170 [email protected] "fn"
1171 [email protected] " "
1172 [email protected]
1173 [email protected] "dots"
1174 [email protected]
1175 [email protected] "("
1176 [email protected] ")"
1177 [email protected] " "
1178 [email protected]
1179 [email protected] "{"
1180 [email protected] "\n "
1181 [email protected]
1182 [email protected]
1183 [email protected]
1184 [email protected]
1185 [email protected]
1186 [email protected] "assert_eq"
1187 [email protected] "!"
1188 [email protected]
1189 [email protected] "("
1190 [email protected] "String"
1191 [email protected] ":"
1192 [email protected] ":"
1193 [email protected] "from"
1194 [email protected]
1195 [email protected] "("
1196 [email protected] "\".................... ..."
1197 [email protected] ")"
1198 [email protected] ","
1199 [email protected] "\n "
1200 [email protected] "format"
1201 [email protected] "!"
1202 [email protected]
1203 [email protected] "("
1204 [email protected] "\"{:?}\""
1205 [email protected] ","
1206 [email protected] " "
1207 [email protected] "."
1208 [email protected] "."
1209 [email protected] " "
1210 [email protected] "."
1211 [email protected] "."
1212 [email protected] " "
1213 [email protected] "."
1214 [email protected] "."
1215 [email protected] " "
1216 [email protected] "."
1217 [email protected] "."
1218 [email protected] " "
1219 [email protected] "."
1220 [email protected] "."
1221 [email protected] " "
1222 [email protected] "."
1223 [email protected] "."
1224 [email protected] " "
1225 [email protected] "."
1226 [email protected] "."
1227 [email protected] " "
1228 [email protected] "."
1229 [email protected] "."
1230 [email protected] " "
1231 [email protected] "."
1232 [email protected] "."
1233 [email protected] " "
1234 [email protected] "."
1235 [email protected] "."
1236 [email protected] " "
1237 [email protected] "."
1238 [email protected] "."
1239 [email protected] " "
1240 [email protected] "."
1241 [email protected] "."
1242 [email protected] " "
1243 [email protected] "."
1244 [email protected] "."
1245 [email protected] "\n ..."
1246 [email protected] "."
1247 [email protected] "."
1248 [email protected] " "
1249 [email protected] "."
1250 [email protected] "."
1251 [email protected] " "
1252 [email protected] "."
1253 [email protected] "."
1254 [email protected] " "
1255 [email protected] "."
1256 [email protected] "."
1257 [email protected] " "
1258 [email protected] "."
1259 [email protected] "."
1260 [email protected] " "
1261 [email protected] "."
1262 [email protected] "."
1263 [email protected] " "
1264 [email protected] "."
1265 [email protected] "."
1266 [email protected] " "
1267 [email protected] "."
1268 [email protected] "."
1269 [email protected] " "
1270 [email protected] "."
1271 [email protected] "."
1272 [email protected] " "
1273 [email protected] "."
1274 [email protected] "."
1275 [email protected] " "
1276 [email protected] "."
1277 [email protected] "."
1278 [email protected] " "
1279 [email protected] "."
1280 [email protected] "."
1281 [email protected] ")"
1282 [email protected] ")"
1283 [email protected] ";"
1284 [email protected] "\n"
1285 [email protected] "}"
1286 [email protected] "\n\n"
1287 [email protected]
1288 [email protected] "fn"
1289 [email protected] " "
1290 [email protected]
1291 [email protected] "u8"
1292 [email protected]
1293 [email protected] "("
1294 [email protected]
1295 [email protected]
1296 [email protected]
1297 [email protected] "u8"
1298 [email protected] ":"
1299 [email protected] " "
1300 [email protected]
1301 [email protected]
1302 [email protected]
1303 [email protected]
1304 [email protected] "u8"
1305 [email protected] ")"
1306 [email protected] " "
1307 [email protected]
1308 [email protected] "{"
1309 [email protected] "\n "
1310 [email protected]
1311 [email protected] "if"
1312 [email protected] " "
1313 [email protected]
1314 [email protected]
1315 [email protected]
1316 [email protected]
1317 [email protected]
1318 [email protected]
1319 [email protected] "u8"
1320 [email protected] " "
1321 [email protected] "!="
1322 [email protected] " "
1323 [email protected]
1324 [email protected] "0u8"
1325 [email protected] " "
1326 [email protected]
1327 [email protected] "{"
1328 [email protected] "\n "
1329 [email protected]
1330 [email protected]
1331 [email protected]
1332 [email protected]
1333 [email protected]
1334 [email protected] "assert_eq"
1335 [email protected] "!"
1336 [email protected]
1337 [email protected] "("
1338 [email protected] "8u8"
1339 [email protected] ","
1340 [email protected] " "
1341 [email protected]
1342 [email protected] "{"
1343 [email protected] "\n "
1344 [email protected] "macro_rules"
1345 [email protected] "!"
1346 [email protected] " "
1347 [email protected] "u8"
1348 [email protected] " "
1349 [email protected]
1350 [email protected] "{"
1351 [email protected] "\n "
1352 [email protected]
1353 [email protected] "("
1354 [email protected] "u8"
1355 [email protected] ")"
1356 [email protected] " "
1357 [email protected] "="
1358 [email protected] ">"
1359 [email protected] " "
1360 [email protected]
1361 [email protected] "{"
1362 [email protected] "\n "
1363 [email protected] "mod"
1364 [email protected] " "
1365 [email protected] "u8"
1366 [email protected] " "
1367 [email protected]
1368 [email protected] "{"
1369 [email protected] "\n ..."
1370 [email protected] "pub"
1371 [email protected] " "
1372 [email protected] "fn"
1373 [email protected] " "
1374 [email protected] "u8"
1375 [email protected] "<"
1376 [email protected] "\'u8"
1377 [email protected] ":"
1378 [email protected] " "
1379 [email protected] "\'u8"
1380 [email protected] " "
1381 [email protected] "+"
1382 [email protected] " "
1383 [email protected] "\'u8"
1384 [email protected] ">"
1385 [email protected]
1386 [email protected] "("
1387 [email protected] "u8"
1388 [email protected] ":"
1389 [email protected] " "
1390 [email protected] "&"
1391 [email protected] "\'u8"
1392 [email protected] " "
1393 [email protected] "u8"
1394 [email protected] ")"
1395 [email protected] " "
1396 [email protected] "-"
1397 [email protected] ">"
1398 [email protected] " "
1399 [email protected] "&"
1400 [email protected] "\'u8"
1401 [email protected] " "
1402 [email protected] "u8"
1403 [email protected] " "
1404 [email protected]
1405 [email protected] "{"
1406 [email protected] "\n ..."
1407 [email protected] "\"u8\""
1408 [email protected] ";"
1409 [email protected] "\n ..."
1410 [email protected] "u8"
1411 [email protected] "\n ..."
1412 [email protected] "}"
1413 [email protected] "\n "
1414 [email protected] "}"
1415 [email protected] "\n "
1416 [email protected] "}"
1417 [email protected] ";"
1418 [email protected] "\n "
1419 [email protected] "}"
1420 [email protected] "\n\n "
1421 [email protected] "u8"
1422 [email protected] "!"
1423 [email protected]
1424 [email protected] "("
1425 [email protected] "u8"
1426 [email protected] ")"
1427 [email protected] ";"
1428 [email protected] "\n "
1429 [email protected] "let"
1430 [email protected] " "
1431 [email protected] "&"
1432 [email protected] "u8"
1433 [email protected] ":"
1434 [email protected] " "
1435 [email protected] "&"
1436 [email protected] "u8"
1437 [email protected] " "
1438 [email protected] "="
1439 [email protected] " "
1440 [email protected] "u8"
1441 [email protected] ":"
1442 [email protected] ":"
1443 [email protected] "u8"
1444 [email protected]
1445 [email protected] "("
1446 [email protected] "&"
1447 [email protected] "8u8"
1448 [email protected] ")"
1449 [email protected] ";"
1450 [email protected] "\n "
1451 [email protected] "crate"
1452 [email protected] ":"
1453 [email protected] ":"
1454 [email protected] "u8"
1455 [email protected]
1456 [email protected] "("
1457 [email protected] "0u8"
1458 [email protected] ")"
1459 [email protected] ";"
1460 [email protected] "\n "
1461 [email protected] "u8"
1462 [email protected] "\n "
1463 [email protected] "}"
1464 [email protected] ")"
1465 [email protected] ";"
1466 [email protected] "\n "
1467 [email protected] "}"
1468 [email protected] "\n"
1469 [email protected] "}"
1470 [email protected] "\n\n"
1471 [email protected]
1472 [email protected] "fn"
1473 [email protected] " "
1474 [email protected]
1475 [email protected] "fishy"
1476 [email protected]
1477 [email protected] "("
1478 [email protected] ")"
1479 [email protected] " "
1480 [email protected]
1481 [email protected] "{"
1482 [email protected] "\n "
1483 [email protected]
1484 [email protected]
1485 [email protected]
1486 [email protected]
1487 [email protected]
1488 [email protected] "assert_eq"
1489 [email protected] "!"
1490 [email protected]
1491 [email protected] "("
1492 [email protected] "String"
1493 [email protected] ":"
1494 [email protected] ":"
1495 [email protected] "from"
1496 [email protected]
1497 [email protected] "("
1498 [email protected] "\"><>\""
1499 [email protected] ")"
1500 [email protected] ","
1501 [email protected] "\n "
1502 [email protected] "String"
1503 [email protected] ":"
1504 [email protected] ":"
1505 [email protected] "<"
1506 [email protected] ">"
1507 [email protected] ":"
1508 [email protected] ":"
1509 [email protected] "from"
1510 [email protected] ":"
1511 [email protected] ":"
1512 [email protected] "<"
1513 [email protected] ">"
1514 [email protected]
1515 [email protected] "("
1516 [email protected] "\"><>\""
1517 [email protected] ")"
1518 [email protected] "."
1519 [email protected] "chars"
1520 [email protected] ":"
1521 [email protected] ":"
1522 [email protected] "<"
1523 [email protected] ">"
1524 [email protected]
1525 [email protected] "("
1526 [email protected] ")"
1527 [email protected] "."
1528 [email protected] "rev"
1529 [email protected] ":"
1530 [email protected] ":"
1531 [email protected] "<"
1532 [email protected] ">"
1533 [email protected]
1534 [email protected] "("
1535 [email protected] ")"
1536 [email protected] "."
1537 [email protected] "collect"
1538 [email protected] ":"
1539 [email protected] ":"
1540 [email protected] "<"
1541 [email protected] "String"
1542 [email protected] ">"
1543 [email protected]
1544 [email protected] "("
1545 [email protected] ")"
1546 [email protected] ")"
1547 [email protected] ";"
1548 [email protected] "\n"
1549 [email protected] "}"
1550 [email protected] "\n\n"
1551 [email protected]
1552 [email protected] "fn"
1553 [email protected] " "
1554 [email protected]
1555 [email protected] "union"
1556 [email protected]
1557 [email protected] "("
1558 [email protected] ")"
1559 [email protected] " "
1560 [email protected]
1561 [email protected] "{"
1562 [email protected] "\n "
1563 [email protected]
1564 [email protected] "union"
1565 [email protected] " "
1566 [email protected]
1567 [email protected] "union"
1568 [email protected]
1569 [email protected] "<"
1570 [email protected]
1571 [email protected] "\'union"
1572 [email protected] ">"
1573 [email protected] " "
1574 [email protected]
1575 [email protected] "{"
1576 [email protected] " "
1577 [email protected]
1578 [email protected]
1579 [email protected] "union"
1580 [email protected] ":"
1581 [email protected] " "
1582 [email protected]
1583 [email protected] "&"
1584 [email protected] "\'union"
1585 [email protected] " "
1586 [email protected]
1587 [email protected]
1588 [email protected]
1589 [email protected]
1590 [email protected] "union"
1591 [email protected]
1592 [email protected] "<"
1593 [email protected]
1594 [email protected] "\'union"
1595 [email protected] ">"
1596 [email protected] ","
1597 [email protected] " "
1598 [email protected] "}"
1599 [email protected] "\n"
1600 [email protected] "}"
1601 [email protected] "\n\n"
1602 [email protected]
1603 [email protected] "fn"
1604 [email protected] " "
1605 [email protected]
1606 [email protected] "special_characters"
1607 [email protected]
1608 [email protected] "("
1609 [email protected] ")"
1610 [email protected] " "
1611 [email protected]
1612 [email protected] "{"
1613 [email protected] "\n "
1614 [email protected]
1615 [email protected] "let"
1616 [email protected] " "
1617 [email protected]
1618 [email protected]
1619 [email protected] "val"
1620 [email protected] " "
1621 [email protected] "="
1622 [email protected] " "
1623 [email protected]
1624 [email protected] "!"
1625 [email protected]
1626 [email protected] "("
1627 [email protected]
1628 [email protected]
1629 [email protected]
1630 [email protected] "("
1631 [email protected]
1632 [email protected]
1633 [email protected] "|"
1634 [email protected]
1635 [email protected]
1636 [email protected] "("
1637 [email protected]
1638 [email protected] ".."
1639 [email protected] ")"
1640 [email protected] ":"
1641 [email protected]
1642 [email protected] "("
1643 [email protected]
1644 [email protected] "_"
1645 [email protected] ","
1646 [email protected]
1647 [email protected] "_"
1648 [email protected] ")"
1649 [email protected] ","
1650 [email protected]
1651 [email protected]
1652 [email protected]
1653 [email protected] "__"
1654 [email protected] "@"
1655 [email protected]
1656 [email protected] "_"
1657 [email protected] "|"
1658 [email protected]
1659 [email protected]
1660 [email protected]
1661 [email protected]
1662 [email protected] "__"
1663 [email protected] ")"
1664 [email protected]
1665 [email protected] "("
1666 [email protected]
1667 [email protected] "("
1668 [email protected]
1669 [email protected] "&"
1670 [email protected]
1671 [email protected] "*"
1672 [email protected]
1673 [email protected] "\"\\\\\""
1674 [email protected] ","
1675 [email protected]
1676 [email protected] "\'🤔\'"
1677 [email protected] ")"
1678 [email protected] "/**/"
1679 [email protected] ","
1680 [email protected]
1681 [email protected] "{"
1682 [email protected] "}"
1683 [email protected] ")"
1684 [email protected] "=="
1685 [email protected]
1686 [email protected] "{"
1687 [email protected]
1688 [email protected]
1689 [email protected] "&"
1690 [email protected]
1691 [email protected]
1692 [email protected] "["
1693 [email protected]
1694 [email protected] "..="
1695 [email protected]
1696 [email protected] ".."
1697 [email protected] "]"
1698 [email protected] "["
1699 [email protected]
1700 [email protected] ".."
1701 [email protected] "]"
1702 [email protected] ";"
1703 [email protected] "}"
1704 [email protected] ")"
1705 [email protected] "//"
1706 [email protected] "\n "
1707 [email protected] ";"
1708 [email protected] "\n "
1709 [email protected]
1710 [email protected]
1711 [email protected]
1712 [email protected]
1713 [email protected]
1714 [email protected] "assert"
1715 [email protected] "!"
1716 [email protected]
1717 [email protected] "("
1718 [email protected] "!"
1719 [email protected] "val"
1720 [email protected] ")"
1721 [email protected] ";"
1722 [email protected] "\n"
1723 [email protected] "}"
1724 [email protected] "\n\n"
1725 [email protected]
1726 [email protected] "fn"
1727 [email protected] " "
1728 [email protected]
1729 [email protected] "punch_card"
1730 [email protected]
1731 [email protected] "("
1732 [email protected] ")"
1733 [email protected] " "
1734 [email protected]
1735 [email protected] "->"
1736 [email protected] " "
1737 [email protected]
1738 [email protected] "impl"
1739 [email protected] " "
1740 [email protected]
1741 [email protected]
1742 [email protected]
1743 [email protected]
1744 [email protected]
1745 [email protected]
1746 [email protected]
1747 [email protected]
1748 [email protected] "std"
1749 [email protected] "::"
1750 [email protected]
1751 [email protected]
1752 [email protected] "fmt"
1753 [email protected] "::"
1754 [email protected]
1755 [email protected]
1756 [email protected] "Debug"
1757 [email protected] " "
1758 [email protected]
1759 [email protected] "{"
1760 [email protected] "\n "
1761 [email protected]
1762 [email protected] "..="
1763 [email protected]
1764 [email protected] "..="
1765 [email protected]
1766 [email protected] ".."
1767 [email protected] " "
1768 [email protected]
1769 [email protected] ".."
1770 [email protected] " "
1771 [email protected]
1772 [email protected] ".."
1773 [email protected] " "
1774 [email protected]
1775 [email protected] ".."
1776 [email protected] " "
1777 [email protected]
1778 [email protected] ".."
1779 [email protected] " "
1780 [email protected]
1781 [email protected] ".."
1782 [email protected] " "
1783 [email protected]
1784 [email protected] ".."
1785 [email protected] " "
1786 [email protected]
1787 [email protected] ".."
1788 [email protected] " "
1789 [email protected]
1790 [email protected] ".."
1791 [email protected] " "
1792 [email protected]
1793 [email protected] ".."
1794 [email protected] " "
1795 [email protected]
1796 [email protected] ".."
1797 [email protected] " "
1798 [email protected]
1799 [email protected] "..="
1800 [email protected]
1801 [email protected] ".."
1802 [email protected] " "
1803 [email protected]
1804 [email protected] ".."
1805 [email protected] "\n "
1806 [email protected]
1807 [email protected] "..="
1808 [email protected]
1809 [email protected] ".."
1810 [email protected] " "
1811 [email protected]
1812 [email protected] "..="
1813 [email protected]
1814 [email protected] ".."
1815 [email protected] " "
1816 [email protected]
1817 [email protected] ".."
1818 [email protected] " "
1819 [email protected]
1820 [email protected] ".."
1821 [email protected] " "
1822 [email protected]
1823 [email protected] ".."
1824 [email protected] " "
1825 [email protected]
1826 [email protected] ".."
1827 [email protected] " "
1828 [email protected]
1829 [email protected] ".."
1830 [email protected] " "
1831 [email protected]
1832 [email protected] ".."
1833 [email protected] " "
1834 [email protected]
1835 [email protected] ".."
1836 [email protected] " "
1837 [email protected]
1838 [email protected] ".."
1839 [email protected] " "
1840 [email protected]
1841 [email protected] "..="
1842 [email protected]
1843 [email protected] "..="
1844 [email protected]
1845 [email protected] "..="
1846 [email protected]
1847 [email protected] ".."
1848 [email protected] "\n "
1849 [email protected]
1850 [email protected] "..="
1851 [email protected]
1852 [email protected] ".."
1853 [email protected] " "
1854 [email protected]
1855 [email protected] "..="
1856 [email protected]
1857 [email protected] ".."
1858 [email protected] " "
1859 [email protected]
1860 [email protected] "..="
1861 [email protected]
1862 [email protected] ".."
1863 [email protected] " "
1864 [email protected]
1865 [email protected] "..="
1866 [email protected]
1867 [email protected] ".."
1868 [email protected] " "
1869 [email protected]
1870 [email protected] ".."
1871 [email protected] " "
1872 [email protected]
1873 [email protected] "..="
1874 [email protected]
1875 [email protected] "..="
1876 [email protected]
1877 [email protected] ".."
1878 [email protected] " "
1879 [email protected]
1880 [email protected] ".."
1881 [email protected] " "
1882 [email protected]
1883 [email protected] "..="
1884 [email protected]
1885 [email protected] ".."
1886 [email protected] " "
1887 [email protected]
1888 [email protected] ".."
1889 [email protected] "\n "
1890 [email protected]
1891 [email protected] "..="
1892 [email protected]
1893 [email protected] "..="
1894 [email protected]
1895 [email protected] ".."
1896 [email protected] " "
1897 [email protected]
1898 [email protected] ".."
1899 [email protected] " "
1900 [email protected]
1901 [email protected] "..="
1902 [email protected]
1903 [email protected] ".."
1904 [email protected] " "
1905 [email protected]
1906 [email protected] "..="
1907 [email protected]
1908 [email protected] ".."
1909 [email protected] " "
1910 [email protected]
1911 [email protected] "..="
1912 [email protected]
1913 [email protected] ".."
1914 [email protected] " "
1915 [email protected]
1916 [email protected] ".."
1917 [email protected] " "
1918 [email protected]
1919 [email protected] ".."
1920 [email protected] " "
1921 [email protected]
1922 [email protected] ".."
1923 [email protected] " "
1924 [email protected]
1925 [email protected] "..="
1926 [email protected]
1927 [email protected] ".."
1928 [email protected] " "
1929 [email protected]
1930 [email protected] ".."
1931 [email protected] "\n "
1932 [email protected]
1933 [email protected] "..="
1934 [email protected]
1935 [email protected] ".."
1936 [email protected] " "
1937 [email protected]
1938 [email protected] "..="
1939 [email protected]
1940 [email protected] ".."
1941 [email protected] " "
1942 [email protected]
1943 [email protected] "..="
1944 [email protected]
1945 [email protected] ".."
1946 [email protected] " "
1947 [email protected]
1948 [email protected] "..="
1949 [email protected]
1950 [email protected] ".."
1951 [email protected] " "
1952 [email protected]
1953 [email protected] ".."
1954 [email protected] " "
1955 [email protected]
1956 [email protected] "..="
1957 [email protected]
1958 [email protected] ".."
1959 [email protected] " "
1960 [email protected]
1961 [email protected] ".."
1962 [email protected] " "
1963 [email protected]
1964 [email protected] ".."
1965 [email protected] " "
1966 [email protected]
1967 [email protected] "..="
1968 [email protected]
1969 [email protected] ".."
1970 [email protected] " "
1971 [email protected]
1972 [email protected] ".."
1973 [email protected] "\n "
1974 [email protected]
1975 [email protected] "..="
1976 [email protected]
1977 [email protected] ".."
1978 [email protected] " "
1979 [email protected]
1980 [email protected] "..="
1981 [email protected]
1982 [email protected] ".."
1983 [email protected] " "
1984 [email protected]
1985 [email protected] "..="
1986 [email protected]
1987 [email protected] ".."
1988 [email protected] " "
1989 [email protected]
1990 [email protected] "..="
1991 [email protected]
1992 [email protected] ".."
1993 [email protected] " "
1994 [email protected]
1995 [email protected] ".."
1996 [email protected] " "
1997 [email protected]
1998 [email protected] ".."
1999 [email protected] " "
2000 [email protected]
2001 [email protected] "..="
2002 [email protected]
2003 [email protected] ".."
2004 [email protected] " "
2005 [email protected]
2006 [email protected] ".."
2007 [email protected] " "
2008 [email protected]
2009 [email protected] "..="
2010 [email protected]
2011 [email protected] ".."
2012 [email protected] " "
2013 [email protected]
2014 [email protected] ".."
2015 [email protected] "\n "
2016 [email protected]
2017 [email protected] "..="
2018 [email protected]
2019 [email protected] ".."
2020 [email protected] " "
2021 [email protected]
2022 [email protected] "..="
2023 [email protected]
2024 [email protected] ".."
2025 [email protected] " "
2026 [email protected]
2027 [email protected] ".."
2028 [email protected] " "
2029 [email protected]
2030 [email protected] "..="
2031 [email protected]
2032 [email protected] "..="
2033 [email protected]
2034 [email protected] ".."
2035 [email protected] " "
2036 [email protected]
2037 [email protected] "..="
2038 [email protected]
2039 [email protected] "..="
2040 [email protected]
2041 [email protected] ".."
2042 [email protected] " "
2043 [email protected]
2044 [email protected] ".."
2045 [email protected] " "
2046 [email protected]
2047 [email protected] ".."
2048 [email protected] " "
2049 [email protected]
2050 [email protected] "..="
2051 [email protected]
2052 [email protected] ".."
2053 [email protected] " "
2054 [email protected]
2055 [email protected] ".."
2056 [email protected] "\n"
2057 [email protected] "}"
2058 [email protected] "\n\n"
2059 [email protected]
2060 [email protected] "fn"
2061 [email protected] " "
2062 [email protected]
2063 [email protected] "ktulhu"
2064 [email protected]
2065 [email protected] "("
2066 [email protected] ")"
2067 [email protected] " "
2068 [email protected]
2069 [email protected] "{"
2070 [email protected] "\n "
2071 [email protected] ";"
2072 [email protected] ";"
2073 [email protected] ";"
2074 [email protected]
2075 [email protected]
2076 [email protected] "("
2077 [email protected] ")"
2078 [email protected] ";"
2079 [email protected] ";"
2080 [email protected] ";"
2081 [email protected] ";"
2082 [email protected] ";"
2083 [email protected] ";"
2084 [email protected] ";"
2085 [email protected] ";"
2086 [email protected] ";"
2087 [email protected]
2088 [email protected] "("
2089 [email protected] ")"
2090 [email protected] "\n"
2091 [email protected] "}"
2092 [email protected] "\n\n"
2093 [email protected]
2094 [email protected]
2095 [email protected] "pub"
2096 [email protected] " "
2097 [email protected] "fn"
2098 [email protected] " "
2099 [email protected]
2100 [email protected] "main"
2101 [email protected]
2102 [email protected] "("
2103 [email protected] ")"
2104 [email protected] " "
2105 [email protected]
2106 [email protected] "{"
2107 [email protected] "\n "
2108 [email protected]
2109 [email protected]
2110 [email protected]
2111 [email protected]
2112 [email protected]
2113 [email protected]
2114 [email protected] "strange"
2115 [email protected]
2116 [email protected] "("
2117 [email protected] ")"
2118 [email protected] ";"
2119 [email protected] "\n "
2120 [email protected]
2121 [email protected]
2122 [email protected]
2123 [email protected]
2124 [email protected]
2125 [email protected]
2126 [email protected] "funny"
2127 [email protected]
2128 [email protected] "("
2129 [email protected] ")"
2130 [email protected] ";"
2131 [email protected] "\n "
2132 [email protected]
2133 [email protected]
2134 [email protected]
2135 [email protected]
2136 [email protected]
2137 [email protected]
2138 [email protected] "what"
2139 [email protected]
2140 [email protected] "("
2141 [email protected] ")"
2142 [email protected] ";"
2143 [email protected] "\n "
2144 [email protected]
2145 [email protected]
2146 [email protected]
2147 [email protected]
2148 [email protected]
2149 [email protected]
2150 [email protected] "zombiejesus"
2151 [email protected]
2152 [email protected] "("
2153 [email protected] ")"
2154 [email protected] ";"
2155 [email protected] "\n "
2156 [email protected]
2157 [email protected]
2158 [email protected]
2159 [email protected]
2160 [email protected]
2161 [email protected]
2162 [email protected] "notsure"
2163 [email protected]
2164 [email protected] "("
2165 [email protected] ")"
2166 [email protected] ";"
2167 [email protected] "\n "
2168 [email protected]
2169 [email protected]
2170 [email protected]
2171 [email protected]
2172 [email protected]
2173 [email protected]
2174 [email protected] "canttouchthis"
2175 [email protected]
2176 [email protected] "("
2177 [email protected] ")"
2178 [email protected] ";"
2179 [email protected] "\n "
2180 [email protected]
2181 [email protected]
2182 [email protected]
2183 [email protected]
2184 [email protected]
2185 [email protected]
2186 [email protected] "angrydome"
2187 [email protected]
2188 [email protected] "("
2189 [email protected] ")"
2190 [email protected] ";"
2191 [email protected] "\n "
2192 [email protected]
2193 [email protected]
2194 [email protected]
2195 [email protected]
2196 [email protected]
2197 [email protected]
2198 [email protected] "evil_lincoln"
2199 [email protected]
2200 [email protected] "("
2201 [email protected] ")"
2202 [email protected] ";"
2203 [email protected] "\n "
2204 [email protected]
2205 [email protected]
2206 [email protected]
2207 [email protected]
2208 [email protected]
2209 [email protected]
2210 [email protected] "dots"
2211 [email protected]
2212 [email protected] "("
2213 [email protected] ")"
2214 [email protected] ";"
2215 [email protected] "\n "
2216 [email protected]
2217 [email protected]
2218 [email protected]
2219 [email protected]
2220 [email protected]
2221 [email protected]
2222 [email protected] "u8"
2223 [email protected]
2224 [email protected] "("
2225 [email protected]
2226 [email protected] "8u8"
2227 [email protected] ")"
2228 [email protected] ";"
2229 [email protected] "\n "
2230 [email protected]
2231 [email protected]
2232 [email protected]
2233 [email protected]
2234 [email protected]
2235 [email protected]
2236 [email protected] "fishy"
2237 [email protected]
2238 [email protected] "("
2239 [email protected] ")"
2240 [email protected] ";"
2241 [email protected] "\n "
2242 [email protected]
2243 [email protected]
2244 [email protected]
2245 [email protected]
2246 [email protected]
2247 [email protected]
2248 [email protected] "union"
2249 [email protected]
2250 [email protected] "("
2251 [email protected] ")"
2252 [email protected] ";"
2253 [email protected] "\n "
2254 [email protected]
2255 [email protected]
2256 [email protected]
2257 [email protected]
2258 [email protected]
2259 [email protected]
2260 [email protected] "special_characters"
2261 [email protected]
2262 [email protected] "("
2263 [email protected] ")"
2264 [email protected] ";"
2265 [email protected] "\n "
2266 [email protected]
2267 [email protected]
2268 [email protected]
2269 [email protected]
2270 [email protected]
2271 [email protected]
2272 [email protected] "punch_card"
2273 [email protected]
2274 [email protected] "("
2275 [email protected] ")"
2276 [email protected] ";"
2277 [email protected] "\n "
2278 [email protected]
2279 [email protected]
2280 [email protected]
2281 [email protected]
2282 [email protected]
2283 [email protected]
2284 [email protected] "ktulhu"
2285 [email protected]
2286 [email protected] "("
2287 [email protected] ")"
2288 [email protected] ";"
2289 [email protected] "\n"
2290 [email protected] "}"
2291 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0035_weird_exprs.rs b/crates/syntax/test_data/parser/ok/0035_weird_exprs.rs
new file mode 100644
index 000000000..8c1323163
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0035_weird_exprs.rs
@@ -0,0 +1,154 @@
1//! Adapted from a `rustc` test, which can be found at
2//! https://github.com/rust-lang/rust/blob/6d34ec18c7d7e574553f6347ecf08e1e1c45c13d/src/test/run-pass/weird-exprs.rs.
3//!
4//! Reported to rust-analyzer in https://github.com/rust-analyzer/rust-analyzer/issues/290
5
6#![allow(non_camel_case_types)]
7#![allow(dead_code)]
8#![allow(unreachable_code)]
9#![allow(unused_parens)]
10
11#![recursion_limit = "128"]
12
13use std::cell::Cell;
14use std::mem::swap;
15
16// Just a grab bag of stuff that you wouldn't want to actually write.
17
18fn strange() -> bool { let _x: bool = return true; }
19
20fn funny() {
21 fn f(_x: ()) { }
22 f(return);
23}
24
25fn what() {
26 fn the(x: &Cell<bool>) {
27 return while !x.get() { x.set(true); };
28 }
29 let i = &Cell::new(false);
30 let dont = {||the(i)};
31 dont();
32 assert!((i.get()));
33}
34
35fn zombiejesus() {
36 loop {
37 while (return) {
38 if (return) {
39 match (return) {
40 1 => {
41 if (return) {
42 return
43 } else {
44 return
45 }
46 }
47 _ => { return }
48 };
49 } else if (return) {
50 return;
51 }
52 }
53 if (return) { break; }
54 }
55}
56
57fn notsure() {
58 let mut _x: isize;
59 let mut _y = (_x = 0) == (_x = 0);
60 let mut _z = (_x = 0) < (_x = 0);
61 let _a = (_x += 0) == (_x = 0);
62 let _b = swap(&mut _y, &mut _z) == swap(&mut _y, &mut _z);
63}
64
65fn canttouchthis() -> usize {
66 fn p() -> bool { true }
67 let _a = (assert!((true)) == (assert!(p())));
68 let _c = (assert!((p())) == ());
69 let _b: bool = (println!("{}", 0) == (return 0));
70}
71
72fn angrydome() {
73 loop { if break { } }
74 let mut i = 0;
75 loop { i += 1; if i == 1 { match (continue) { 1 => { }, _ => panic!("wat") } }
76 break; }
77}
78
79fn evil_lincoln() { let _evil = println!("lincoln"); }
80
81fn dots() {
82 assert_eq!(String::from(".................................................."),
83 format!("{:?}", .. .. .. .. .. .. .. .. .. .. .. .. ..
84 .. .. .. .. .. .. .. .. .. .. .. ..));
85}
86
87fn u8(u8: u8) {
88 if u8 != 0u8 {
89 assert_eq!(8u8, {
90 macro_rules! u8 {
91 (u8) => {
92 mod u8 {
93 pub fn u8<'u8: 'u8 + 'u8>(u8: &'u8 u8) -> &'u8 u8 {
94 "u8";
95 u8
96 }
97 }
98 };
99 }
100
101 u8!(u8);
102 let &u8: &u8 = u8::u8(&8u8);
103 crate::u8(0u8);
104 u8
105 });
106 }
107}
108
109fn fishy() {
110 assert_eq!(String::from("><>"),
111 String::<>::from::<>("><>").chars::<>().rev::<>().collect::<String>());
112}
113
114fn union() {
115 union union<'union> { union: &'union union<'union>, }
116}
117
118fn special_characters() {
119 let val = !((|(..):(_,_),__@_|__)((&*"\\",'🤔')/**/,{})=={&[..=..][..];})//
120 ;
121 assert!(!val);
122}
123
124fn punch_card() -> impl std::fmt::Debug {
125 ..=..=.. .. .. .. .. .. .. .. .. .. .. ..=.. ..
126 ..=.. ..=.. .. .. .. .. .. .. .. .. ..=..=..=..
127 ..=.. ..=.. ..=.. ..=.. .. ..=..=.. .. ..=.. ..
128 ..=..=.. .. ..=.. ..=.. ..=.. .. .. .. ..=.. ..
129 ..=.. ..=.. ..=.. ..=.. .. ..=.. .. .. ..=.. ..
130 ..=.. ..=.. ..=.. ..=.. .. .. ..=.. .. ..=.. ..
131 ..=.. ..=.. .. ..=..=.. ..=..=.. .. .. ..=.. ..
132}
133
134fn ktulhu() {
135 ;;;();;;;;;;;;()
136}
137
138pub fn main() {
139 strange();
140 funny();
141 what();
142 zombiejesus();
143 notsure();
144 canttouchthis();
145 angrydome();
146 evil_lincoln();
147 dots();
148 u8(8u8);
149 fishy();
150 union();
151 special_characters();
152 punch_card();
153 ktulhu();
154}
diff --git a/crates/syntax/test_data/parser/ok/0036_fully_qualified.rast b/crates/syntax/test_data/parser/ok/0036_fully_qualified.rast
new file mode 100644
index 000000000..c4da317b9
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0036_fully_qualified.rast
@@ -0,0 +1,92 @@
1[email protected]
2 [email protected] "// https://github.com ..."
3 [email protected] "\n\n"
4 [email protected]
5 [email protected]
6 [email protected] "pub"
7 [email protected] " "
8 [email protected] "fn"
9 [email protected] " "
10 [email protected]
11 [email protected] "foo"
12 [email protected]
13 [email protected] "<"
14 [email protected]
15 [email protected]
16 [email protected] "S"
17 [email protected] ":"
18 [email protected] " "
19 [email protected]
20 [email protected]
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected] "Iterator"
26 [email protected] ">"
27 [email protected]
28 [email protected] "("
29 [email protected] ")"
30 [email protected] " "
31 [email protected]
32 [email protected] "->"
33 [email protected] " "
34 [email protected]
35 [email protected]
36 [email protected]
37 [email protected]
38 [email protected] "String"
39 [email protected] "\n"
40 [email protected]
41 [email protected] "where"
42 [email protected] "\n "
43 [email protected]
44 [email protected]
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected] "<"
49 [email protected]
50 [email protected]
51 [email protected]
52 [email protected]
53 [email protected] "S"
54 [email protected] " "
55 [email protected] "as"
56 [email protected] " "
57 [email protected]
58 [email protected]
59 [email protected]
60 [email protected]
61 [email protected] "Iterator"
62 [email protected] ">"
63 [email protected] "::"
64 [email protected]
65 [email protected]
66 [email protected] "Item"
67 [email protected] ":"
68 [email protected] " "
69 [email protected]
70 [email protected]
71 [email protected]
72 [email protected]
73 [email protected]
74 [email protected]
75 [email protected] "Eq"
76 [email protected] ","
77 [email protected] "\n"
78 [email protected]
79 [email protected] "{"
80 [email protected] "\n "
81 [email protected]
82 [email protected]
83 [email protected] "\"\""
84 [email protected] "."
85 [email protected]
86 [email protected] "to_owned"
87 [email protected]
88 [email protected] "("
89 [email protected] ")"
90 [email protected] "\n"
91 [email protected] "}"
92 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0036_fully_qualified.rs b/crates/syntax/test_data/parser/ok/0036_fully_qualified.rs
new file mode 100644
index 000000000..6da27933e
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0036_fully_qualified.rs
@@ -0,0 +1,8 @@
1// https://github.com/rust-analyzer/rust-analyzer/issues/311
2
3pub fn foo<S: Iterator>() -> String
4where
5 <S as Iterator>::Item: Eq,
6{
7 "".to_owned()
8}
diff --git a/crates/syntax/test_data/parser/ok/0037_mod.rast b/crates/syntax/test_data/parser/ok/0037_mod.rast
new file mode 100644
index 000000000..1d5d94bde
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0037_mod.rast
@@ -0,0 +1,16 @@
1[email protected]
2 [email protected] "// https://github.com ..."
3 [email protected] "\n\n"
4 [email protected]
5 [email protected] "//! docs"
6 [email protected] "\n"
7 [email protected] "// non-docs"
8 [email protected] "\n"
9 [email protected] "mod"
10 [email protected] " "
11 [email protected]
12 [email protected] "foo"
13 [email protected] " "
14 [email protected]
15 [email protected] "{"
16 [email protected] "}"
diff --git a/crates/syntax/test_data/parser/ok/0037_mod.rs b/crates/syntax/test_data/parser/ok/0037_mod.rs
new file mode 100644
index 000000000..7e5a1b835
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0037_mod.rs
@@ -0,0 +1,5 @@
1// https://github.com/rust-analyzer/rust-analyzer/issues/357
2
3//! docs
4// non-docs
5mod foo {} \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/ok/0038_where_pred_type.rast b/crates/syntax/test_data/parser/ok/0038_where_pred_type.rast
new file mode 100644
index 000000000..22168eaf1
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0038_where_pred_type.rast
@@ -0,0 +1,42 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "test"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "where"
13 [email protected] " "
14 [email protected]
15 [email protected]
16 [email protected] "("
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected] "u64"
22 [email protected] ","
23 [email protected] " "
24 [email protected]
25 [email protected]
26 [email protected]
27 [email protected]
28 [email protected] "u64"
29 [email protected] ")"
30 [email protected] ":"
31 [email protected] " "
32 [email protected]
33 [email protected]
34 [email protected]
35 [email protected]
36 [email protected]
37 [email protected]
38 [email protected] "Foo"
39 [email protected] " "
40 [email protected]
41 [email protected] "{"
42 [email protected] "}"
diff --git a/crates/syntax/test_data/parser/ok/0038_where_pred_type.rs b/crates/syntax/test_data/parser/ok/0038_where_pred_type.rs
new file mode 100644
index 000000000..8bfc341a5
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0038_where_pred_type.rs
@@ -0,0 +1 @@
fn test() where (u64, u64): Foo {} \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/ok/0039_raw_fn_item.rast b/crates/syntax/test_data/parser/ok/0039_raw_fn_item.rast
new file mode 100644
index 000000000..68a366354
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0039_raw_fn_item.rast
@@ -0,0 +1,15 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "r#foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n"
14 [email protected] "}"
15 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0039_raw_fn_item.rs b/crates/syntax/test_data/parser/ok/0039_raw_fn_item.rs
new file mode 100644
index 000000000..8380d1e79
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0039_raw_fn_item.rs
@@ -0,0 +1,2 @@
1fn r#foo() {
2}
diff --git a/crates/syntax/test_data/parser/ok/0040_raw_struct_item_field.rast b/crates/syntax/test_data/parser/ok/0040_raw_struct_item_field.rast
new file mode 100644
index 000000000..8cfc14f49
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0040_raw_struct_item_field.rast
@@ -0,0 +1,22 @@
1[email protected]
2 [email protected]
3 [email protected] "struct"
4 [email protected] " "
5 [email protected]
6 [email protected] "S"
7 [email protected] " "
8 [email protected]
9 [email protected] "{"
10 [email protected] "\n "
11 [email protected]
12 [email protected]
13 [email protected] "r#foo"
14 [email protected] ":"
15 [email protected] " "
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "u32"
21 [email protected] "\n"
22 [email protected] "}"
diff --git a/crates/syntax/test_data/parser/ok/0040_raw_struct_item_field.rs b/crates/syntax/test_data/parser/ok/0040_raw_struct_item_field.rs
new file mode 100644
index 000000000..098a60a72
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0040_raw_struct_item_field.rs
@@ -0,0 +1,3 @@
1struct S {
2 r#foo: u32
3} \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/ok/0041_raw_keywords.rast b/crates/syntax/test_data/parser/ok/0041_raw_keywords.rast
new file mode 100644
index 000000000..4035aef6f
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0041_raw_keywords.rast
@@ -0,0 +1,49 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] " "
14 [email protected]
15 [email protected] "let"
16 [email protected] " "
17 [email protected]
18 [email protected]
19 [email protected] "r#struct"
20 [email protected] " "
21 [email protected] "="
22 [email protected] " "
23 [email protected]
24 [email protected] "92"
25 [email protected] ";"
26 [email protected] " "
27 [email protected]
28 [email protected] "let"
29 [email protected] " "
30 [email protected]
31 [email protected]
32 [email protected] "r#trait"
33 [email protected] " "
34 [email protected] "="
35 [email protected] " "
36 [email protected]
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected] "r#struct"
42 [email protected] " "
43 [email protected] "*"
44 [email protected] " "
45 [email protected]
46 [email protected] "2"
47 [email protected] ";"
48 [email protected] " "
49 [email protected] "}"
diff --git a/crates/syntax/test_data/parser/ok/0041_raw_keywords.rs b/crates/syntax/test_data/parser/ok/0041_raw_keywords.rs
new file mode 100644
index 000000000..d59a6d347
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0041_raw_keywords.rs
@@ -0,0 +1 @@
fn foo() { let r#struct = 92; let r#trait = r#struct * 2; } \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/ok/0042_ufcs_call_list.rast b/crates/syntax/test_data/parser/ok/0042_ufcs_call_list.rast
new file mode 100644
index 000000000..e71e069f1
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0042_ufcs_call_list.rast
@@ -0,0 +1,123 @@
1[email protected]
2 [email protected] "// https://github.com ..."
3 [email protected] "\n\n"
4 [email protected]
5 [email protected] "struct"
6 [email protected] " "
7 [email protected]
8 [email protected] "Foo"
9 [email protected] ";"
10 [email protected] "\n\n"
11 [email protected]
12 [email protected] "impl"
13 [email protected] " "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected] "Foo"
19 [email protected] " "
20 [email protected]
21 [email protected] "{"
22 [email protected] "\n "
23 [email protected]
24 [email protected] "fn"
25 [email protected] " "
26 [email protected]
27 [email protected] "bar"
28 [email protected]
29 [email protected] "("
30 [email protected] ")"
31 [email protected] " "
32 [email protected]
33 [email protected] "->"
34 [email protected] " "
35 [email protected]
36 [email protected]
37 [email protected]
38 [email protected]
39 [email protected] "bool"
40 [email protected] " "
41 [email protected]
42 [email protected] "{"
43 [email protected] "\n "
44 [email protected]
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected] "unimplemented"
49 [email protected] "!"
50 [email protected]
51 [email protected] "("
52 [email protected] ")"
53 [email protected] "\n "
54 [email protected] "}"
55 [email protected] "\n"
56 [email protected] "}"
57 [email protected] "\n\n"
58 [email protected]
59 [email protected] "fn"
60 [email protected] " "
61 [email protected]
62 [email protected] "baz"
63 [email protected]
64 [email protected] "("
65 [email protected]
66 [email protected]
67 [email protected] "_"
68 [email protected] ":"
69 [email protected] " "
70 [email protected]
71 [email protected]
72 [email protected]
73 [email protected]
74 [email protected] "bool"
75 [email protected] ")"
76 [email protected] " "
77 [email protected]
78 [email protected] "{"
79 [email protected] "}"
80 [email protected] "\n\n"
81 [email protected]
82 [email protected] "fn"
83 [email protected] " "
84 [email protected]
85 [email protected] "main"
86 [email protected]
87 [email protected] "("
88 [email protected] ")"
89 [email protected] " "
90 [email protected]
91 [email protected] "{"
92 [email protected] "\n "
93 [email protected]
94 [email protected]
95 [email protected]
96 [email protected]
97 [email protected]
98 [email protected] "baz"
99 [email protected]
100 [email protected] "("
101 [email protected]
102 [email protected]
103 [email protected]
104 [email protected]
105 [email protected]
106 [email protected] "<"
107 [email protected]
108 [email protected]
109 [email protected]
110 [email protected]
111 [email protected] "Foo"
112 [email protected] ">"
113 [email protected] "::"
114 [email protected]
115 [email protected]
116 [email protected] "bar"
117 [email protected]
118 [email protected] "("
119 [email protected] ")"
120 [email protected] ")"
121 [email protected] "\n"
122 [email protected] "}"
123 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0042_ufcs_call_list.rs b/crates/syntax/test_data/parser/ok/0042_ufcs_call_list.rs
new file mode 100644
index 000000000..6c02e65ed
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0042_ufcs_call_list.rs
@@ -0,0 +1,15 @@
1// https://github.com/rust-analyzer/rust-analyzer/issues/596
2
3struct Foo;
4
5impl Foo {
6 fn bar() -> bool {
7 unimplemented!()
8 }
9}
10
11fn baz(_: bool) {}
12
13fn main() {
14 baz(<Foo>::bar())
15}
diff --git a/crates/syntax/test_data/parser/ok/0043_complex_assignment.rast b/crates/syntax/test_data/parser/ok/0043_complex_assignment.rast
new file mode 100644
index 000000000..adc4a22e9
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0043_complex_assignment.rast
@@ -0,0 +1,109 @@
1[email protected]
2 [email protected] "// https://github.com ..."
3 [email protected] "\n\n"
4 [email protected]
5 [email protected] "struct"
6 [email protected] " "
7 [email protected]
8 [email protected] "Repr"
9 [email protected] " "
10 [email protected]
11 [email protected] "{"
12 [email protected] " "
13 [email protected]
14 [email protected]
15 [email protected] "raw"
16 [email protected] ":"
17 [email protected] " "
18 [email protected]
19 [email protected] "["
20 [email protected]
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected] "u8"
25 [email protected] ";"
26 [email protected] " "
27 [email protected]
28 [email protected] "1"
29 [email protected] "]"
30 [email protected] " "
31 [email protected] "}"
32 [email protected] "\n\n"
33 [email protected]
34 [email protected] "fn"
35 [email protected] " "
36 [email protected]
37 [email protected] "abc"
38 [email protected]
39 [email protected] "("
40 [email protected] ")"
41 [email protected] " "
42 [email protected]
43 [email protected] "{"
44 [email protected] "\n "
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected]
49 [email protected]
50 [email protected]
51 [email protected]
52 [email protected]
53 [email protected] "Repr"
54 [email protected] " "
55 [email protected]
56 [email protected] "{"
57 [email protected] " "
58 [email protected]
59 [email protected]
60 [email protected] "raw"
61 [email protected] ":"
62 [email protected] " "
63 [email protected]
64 [email protected] "["
65 [email protected]
66 [email protected] "0"
67 [email protected] "]"
68 [email protected] " "
69 [email protected] "}"
70 [email protected] "."
71 [email protected]
72 [email protected] "raw"
73 [email protected] "["
74 [email protected]
75 [email protected] "0"
76 [email protected] "]"
77 [email protected] " "
78 [email protected] "="
79 [email protected] " "
80 [email protected]
81 [email protected] "0"
82 [email protected] ";"
83 [email protected] "\n "
84 [email protected]
85 [email protected]
86 [email protected]
87 [email protected]
88 [email protected]
89 [email protected]
90 [email protected] "Repr"
91 [email protected]
92 [email protected] "{"
93 [email protected]
94 [email protected]
95 [email protected] "raw"
96 [email protected] ":"
97 [email protected]
98 [email protected] "["
99 [email protected]
100 [email protected] "0"
101 [email protected] "]"
102 [email protected] "}"
103 [email protected]
104 [email protected] "("
105 [email protected] ")"
106 [email protected] ";"
107 [email protected] "\n"
108 [email protected] "}"
109 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0043_complex_assignment.rs b/crates/syntax/test_data/parser/ok/0043_complex_assignment.rs
new file mode 100644
index 000000000..7e4a28bf7
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0043_complex_assignment.rs
@@ -0,0 +1,8 @@
1// https://github.com/rust-analyzer/rust-analyzer/issues/674
2
3struct Repr { raw: [u8; 1] }
4
5fn abc() {
6 Repr { raw: [0] }.raw[0] = 0;
7 Repr{raw:[0]}();
8}
diff --git a/crates/syntax/test_data/parser/ok/0044_let_attrs.rast b/crates/syntax/test_data/parser/ok/0044_let_attrs.rast
new file mode 100644
index 000000000..af44a4dbe
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0044_let_attrs.rast
@@ -0,0 +1,75 @@
1[email protected]
2 [email protected]
3 [email protected] "// https://github.com ..."
4 [email protected] "\n"
5 [email protected] "fn"
6 [email protected] " "
7 [email protected]
8 [email protected] "main"
9 [email protected]
10 [email protected] "("
11 [email protected] ")"
12 [email protected] " "
13 [email protected]
14 [email protected] "{"
15 [email protected] "\n "
16 [email protected]
17 [email protected]
18 [email protected] "#"
19 [email protected] "["
20 [email protected]
21 [email protected]
22 [email protected]
23 [email protected] "cfg"
24 [email protected]
25 [email protected] "("
26 [email protected] "feature"
27 [email protected] " "
28 [email protected] "="
29 [email protected] " "
30 [email protected] "\"backtrace\""
31 [email protected] ")"
32 [email protected] "]"
33 [email protected] "\n "
34 [email protected] "let"
35 [email protected] " "
36 [email protected]
37 [email protected]
38 [email protected] "exit_code"
39 [email protected] " "
40 [email protected] "="
41 [email protected] " "
42 [email protected]
43 [email protected]
44 [email protected]
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected] "panic"
49 [email protected] "::"
50 [email protected]
51 [email protected]
52 [email protected] "catch_unwind"
53 [email protected]
54 [email protected] "("
55 [email protected]
56 [email protected] "move"
57 [email protected] " "
58 [email protected]
59 [email protected] "|"
60 [email protected] "|"
61 [email protected] " "
62 [email protected]
63 [email protected]
64 [email protected]
65 [email protected]
66 [email protected]
67 [email protected] "main"
68 [email protected]
69 [email protected] "("
70 [email protected] ")"
71 [email protected] ")"
72 [email protected] ";"
73 [email protected] "\n"
74 [email protected] "}"
75 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0044_let_attrs.rs b/crates/syntax/test_data/parser/ok/0044_let_attrs.rs
new file mode 100644
index 000000000..325a97aeb
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0044_let_attrs.rs
@@ -0,0 +1,5 @@
1// https://github.com/rust-analyzer/rust-analyzer/issues/677
2fn main() {
3 #[cfg(feature = "backtrace")]
4 let exit_code = panic::catch_unwind(move || main());
5}
diff --git a/crates/syntax/test_data/parser/ok/0045_block_inner_attrs.rast b/crates/syntax/test_data/parser/ok/0045_block_inner_attrs.rast
new file mode 100644
index 000000000..0ac56df6d
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0045_block_inner_attrs.rast
@@ -0,0 +1,177 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "block"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "#"
16 [email protected] "!"
17 [email protected] "["
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected] "doc"
22 [email protected]
23 [email protected] "("
24 [email protected] "\"Inner attributes all ..."
25 [email protected] ")"
26 [email protected] "]"
27 [email protected] "\n "
28 [email protected] "//! As are ModuleDoc ..."
29 [email protected] "\n "
30 [email protected]
31 [email protected]
32 [email protected] "{"
33 [email protected] "\n "
34 [email protected]
35 [email protected] "#"
36 [email protected] "!"
37 [email protected] "["
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected] "doc"
42 [email protected]
43 [email protected] "("
44 [email protected] "\"Inner attributes are ..."
45 [email protected] ")"
46 [email protected] "]"
47 [email protected] "\n "
48 [email protected]
49 [email protected] "#"
50 [email protected] "!"
51 [email protected] "["
52 [email protected]
53 [email protected]
54 [email protected]
55 [email protected] "doc"
56 [email protected]
57 [email protected] "("
58 [email protected] "\"Being validated is n ..."
59 [email protected] ")"
60 [email protected] "]"
61 [email protected] "\n "
62 [email protected] "//! As are ModuleDoc ..."
63 [email protected] "\n "
64 [email protected] "}"
65 [email protected] ";"
66 [email protected] "\n "
67 [email protected]
68 [email protected] "{"
69 [email protected] "\n "
70 [email protected]
71 [email protected] "#"
72 [email protected] "!"
73 [email protected] "["
74 [email protected]
75 [email protected]
76 [email protected]
77 [email protected] "doc"
78 [email protected]
79 [email protected] "("
80 [email protected] "\"Inner attributes are ..."
81 [email protected] ")"
82 [email protected] "]"
83 [email protected] "\n "
84 [email protected] "//! As are ModuleDoc ..."
85 [email protected] "\n "
86 [email protected] "}"
87 [email protected] "\n"
88 [email protected] "}"
89 [email protected] "\n\n"
90 [email protected] "// https://github.com ..."
91 [email protected] "\n"
92 [email protected]
93 [email protected] "impl"
94 [email protected] " "
95 [email protected]
96 [email protected]
97 [email protected]
98 [email protected]
99 [email protected] "Whatever"
100 [email protected] " "
101 [email protected]
102 [email protected] "{"
103 [email protected] "\n "
104 [email protected]
105 [email protected] "fn"
106 [email protected] " "
107 [email protected]
108 [email protected] "salsa_event"
109 [email protected]
110 [email protected] "("
111 [email protected]
112 [email protected] "&"
113 [email protected] "self"
114 [email protected] ","
115 [email protected] " "
116 [email protected]
117 [email protected]
118 [email protected]
119 [email protected] "event_fn"
120 [email protected] ":"
121 [email protected] " "
122 [email protected]
123 [email protected] "impl"
124 [email protected] " "
125 [email protected]
126 [email protected]
127 [email protected]
128 [email protected]
129 [email protected]
130 [email protected]
131 [email protected] "Fn"
132 [email protected]
133 [email protected] "("
134 [email protected] ")"
135 [email protected] " "
136 [email protected]
137 [email protected] "->"
138 [email protected] " "
139 [email protected]
140 [email protected]
141 [email protected]
142 [email protected]
143 [email protected] "Event"
144 [email protected]
145 [email protected] "<"
146 [email protected]
147 [email protected]
148 [email protected]
149 [email protected]
150 [email protected]
151 [email protected] "Self"
152 [email protected] ">"
153 [email protected] ")"
154 [email protected] " "
155 [email protected]
156 [email protected] "{"
157 [email protected] "\n "
158 [email protected]
159 [email protected] "#"
160 [email protected] "!"
161 [email protected] "["
162 [email protected]
163 [email protected]
164 [email protected]
165 [email protected] "allow"
166 [email protected]
167 [email protected] "("
168 [email protected] "unused_variables"
169 [email protected] ")"
170 [email protected] "]"
171 [email protected] " "
172 [email protected] "// this is `inner_at ..."
173 [email protected] "\n "
174 [email protected] "}"
175 [email protected] "\n"
176 [email protected] "}"
177 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0045_block_inner_attrs.rs b/crates/syntax/test_data/parser/ok/0045_block_inner_attrs.rs
new file mode 100644
index 000000000..88df8138e
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0045_block_inner_attrs.rs
@@ -0,0 +1,20 @@
1fn block() {
2 #![doc("Inner attributes allowed here")]
3 //! As are ModuleDoc style comments
4 {
5 #![doc("Inner attributes are allowed in blocks used as statements")]
6 #![doc("Being validated is not affected by duplcates")]
7 //! As are ModuleDoc style comments
8 };
9 {
10 #![doc("Inner attributes are allowed in blocks when they are the last statement of another block")]
11 //! As are ModuleDoc style comments
12 }
13}
14
15// https://github.com/rust-analyzer/rust-analyzer/issues/689
16impl Whatever {
17 fn salsa_event(&self, event_fn: impl Fn() -> Event<Self>) {
18 #![allow(unused_variables)] // this is `inner_attr` of the block
19 }
20}
diff --git a/crates/syntax/test_data/parser/ok/0046_extern_inner_attributes.rast b/crates/syntax/test_data/parser/ok/0046_extern_inner_attributes.rast
new file mode 100644
index 000000000..37594769a
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0046_extern_inner_attributes.rast
@@ -0,0 +1,28 @@
1[email protected]
2 [email protected]
3 [email protected]
4 [email protected] "extern"
5 [email protected] " "
6 [email protected] "\"C\""
7 [email protected] " "
8 [email protected]
9 [email protected] "{"
10 [email protected] "\n "
11 [email protected] "//! This is a doc com ..."
12 [email protected] "\n "
13 [email protected]
14 [email protected] "#"
15 [email protected] "!"
16 [email protected] "["
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "doc"
21 [email protected]
22 [email protected] "("
23 [email protected] "\"This is also a doc c ..."
24 [email protected] ")"
25 [email protected] "]"
26 [email protected] "\n"
27 [email protected] "}"
28 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0046_extern_inner_attributes.rs b/crates/syntax/test_data/parser/ok/0046_extern_inner_attributes.rs
new file mode 100644
index 000000000..fe67e2df4
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0046_extern_inner_attributes.rs
@@ -0,0 +1,4 @@
1extern "C" {
2 //! This is a doc comment
3 #![doc("This is also a doc comment")]
4}
diff --git a/crates/syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast b/crates/syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast
new file mode 100644
index 000000000..4f8dff909
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast
@@ -0,0 +1,320 @@
1[email protected]
2 [email protected] "// https://github.com ..."
3 [email protected] "\n\n"
4 [email protected]
5 [email protected] "fn"
6 [email protected] " "
7 [email protected]
8 [email protected] "main"
9 [email protected]
10 [email protected] "("
11 [email protected] ")"
12 [email protected] " "
13 [email protected]
14 [email protected] "{"
15 [email protected] "\n "
16 [email protected]
17 [email protected]
18 [email protected] "match"
19 [email protected] " "
20 [email protected]
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected] "Some"
26 [email protected]
27 [email protected] "("
28 [email protected]
29 [email protected] "-"
30 [email protected]
31 [email protected] "1"
32 [email protected] ")"
33 [email protected] " "
34 [email protected]
35 [email protected] "{"
36 [email protected] "\n "
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected]
42 [email protected] "Some"
43 [email protected] "("
44 [email protected]
45 [email protected] "-"
46 [email protected]
47 [email protected] "1"
48 [email protected] ")"
49 [email protected] " "
50 [email protected] "=>"
51 [email protected] " "
52 [email protected]
53 [email protected] "("
54 [email protected] ")"
55 [email protected] ","
56 [email protected] "\n "
57 [email protected]
58 [email protected]
59 [email protected] "_"
60 [email protected] " "
61 [email protected] "=>"
62 [email protected] " "
63 [email protected]
64 [email protected] "("
65 [email protected] ")"
66 [email protected] ","
67 [email protected] "\n "
68 [email protected] "}"
69 [email protected] "\n\n "
70 [email protected]
71 [email protected]
72 [email protected] "match"
73 [email protected] " "
74 [email protected]
75 [email protected]
76 [email protected]
77 [email protected]
78 [email protected]
79 [email protected] "Some"
80 [email protected]
81 [email protected] "("
82 [email protected]
83 [email protected] "("
84 [email protected]
85 [email protected] "-"
86 [email protected]
87 [email protected] "1"
88 [email protected] ","
89 [email protected] " "
90 [email protected]
91 [email protected] "-"
92 [email protected]
93 [email protected] "1"
94 [email protected] ")"
95 [email protected] ")"
96 [email protected] " "
97 [email protected]
98 [email protected] "{"
99 [email protected] "\n "
100 [email protected]
101 [email protected]
102 [email protected]
103 [email protected]
104 [email protected]
105 [email protected] "Some"
106 [email protected] "("
107 [email protected]
108 [email protected] "("
109 [email protected]
110 [email protected] "-"
111 [email protected]
112 [email protected] "1"
113 [email protected] ","
114 [email protected] " "
115 [email protected]
116 [email protected] "-"
117 [email protected]
118 [email protected] "1"
119 [email protected] ")"
120 [email protected] ")"
121 [email protected] " "
122 [email protected] "=>"
123 [email protected] " "
124 [email protected]
125 [email protected] "("
126 [email protected] ")"
127 [email protected] ","
128 [email protected] "\n "
129 [email protected]
130 [email protected]
131 [email protected] "_"
132 [email protected] " "
133 [email protected] "=>"
134 [email protected] " "
135 [email protected]
136 [email protected] "("
137 [email protected] ")"
138 [email protected] ","
139 [email protected] "\n "
140 [email protected] "}"
141 [email protected] "\n\n "
142 [email protected]
143 [email protected]
144 [email protected] "match"
145 [email protected] " "
146 [email protected]
147 [email protected]
148 [email protected]
149 [email protected]
150 [email protected]
151 [email protected]
152 [email protected] "A"
153 [email protected] "::"
154 [email protected]
155 [email protected]
156 [email protected] "B"
157 [email protected]
158 [email protected] "("
159 [email protected]
160 [email protected] "-"
161 [email protected]
162 [email protected] "1"
163 [email protected] ","
164 [email protected] " "
165 [email protected]
166 [email protected] "-"
167 [email protected]
168 [email protected] "1"
169 [email protected] ")"
170 [email protected] " "
171 [email protected]
172 [email protected] "{"
173 [email protected] "\n "
174 [email protected]
175 [email protected]
176 [email protected]
177 [email protected]
178 [email protected]
179 [email protected]
180 [email protected] "A"
181 [email protected] "::"
182 [email protected]
183 [email protected]
184 [email protected] "B"
185 [email protected] "("
186 [email protected]
187 [email protected] "-"
188 [email protected]
189 [email protected] "1"
190 [email protected] ","
191 [email protected] " "
192 [email protected]
193 [email protected] "-"
194 [email protected]
195 [email protected] "1"
196 [email protected] ")"
197 [email protected] " "
198 [email protected] "=>"
199 [email protected] " "
200 [email protected]
201 [email protected] "("
202 [email protected] ")"
203 [email protected] ","
204 [email protected] "\n "
205 [email protected]
206 [email protected]
207 [email protected] "_"
208 [email protected] " "
209 [email protected] "=>"
210 [email protected] " "
211 [email protected]
212 [email protected] "("
213 [email protected] ")"
214 [email protected] ","
215 [email protected] "\n "
216 [email protected] "}"
217 [email protected] "\n\n "
218 [email protected]
219 [email protected] "if"
220 [email protected] " "
221 [email protected]
222 [email protected] "let"
223 [email protected] " "
224 [email protected]
225 [email protected]
226 [email protected]
227 [email protected]
228 [email protected] "Some"
229 [email protected] "("
230 [email protected]
231 [email protected] "-"
232 [email protected]
233 [email protected] "1"
234 [email protected] ")"
235 [email protected] " "
236 [email protected] "="
237 [email protected] " "
238 [email protected]
239 [email protected]
240 [email protected]
241 [email protected]
242 [email protected]
243 [email protected] "Some"
244 [email protected]
245 [email protected] "("
246 [email protected]
247 [email protected] "-"
248 [email protected]
249 [email protected] "1"
250 [email protected] ")"
251 [email protected] " "
252 [email protected]
253 [email protected] "{"
254 [email protected] "\n "
255 [email protected] "}"
256 [email protected] "\n"
257 [email protected] "}"
258 [email protected] "\n\n"
259 [email protected]
260 [email protected] "enum"
261 [email protected] " "
262 [email protected]
263 [email protected] "A"
264 [email protected] " "
265 [email protected]
266 [email protected] "{"
267 [email protected] "\n "
268 [email protected]
269 [email protected]
270 [email protected] "B"
271 [email protected]
272 [email protected] "("
273 [email protected]
274 [email protected]
275 [email protected]
276 [email protected]
277 [email protected]
278 [email protected] "i8"
279 [email protected] ","
280 [email protected] " "
281 [email protected]
282 [email protected]
283 [email protected]
284 [email protected]
285 [email protected]
286 [email protected] "i8"
287 [email protected] ")"
288 [email protected] "\n"
289 [email protected] "}"
290 [email protected] "\n\n"
291 [email protected]
292 [email protected] "fn"
293 [email protected] " "
294 [email protected]
295 [email protected] "foo"
296 [email protected]
297 [email protected] "("
298 [email protected]
299 [email protected]
300 [email protected]
301 [email protected] "-"
302 [email protected]
303 [email protected] "128"
304 [email protected] "..="
305 [email protected]
306 [email protected]
307 [email protected] "127"
308 [email protected] ":"
309 [email protected] " "
310 [email protected]
311 [email protected]
312 [email protected]
313 [email protected]
314 [email protected] "i8"
315 [email protected] ")"
316 [email protected] " "
317 [email protected]
318 [email protected] "{"
319 [email protected] "}"
320 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rs b/crates/syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rs
new file mode 100644
index 000000000..bbd6b0f6e
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rs
@@ -0,0 +1,27 @@
1// https://github.com/rust-analyzer/rust-analyzer/issues/972
2
3fn main() {
4 match Some(-1) {
5 Some(-1) => (),
6 _ => (),
7 }
8
9 match Some((-1, -1)) {
10 Some((-1, -1)) => (),
11 _ => (),
12 }
13
14 match A::B(-1, -1) {
15 A::B(-1, -1) => (),
16 _ => (),
17 }
18
19 if let Some(-1) = Some(-1) {
20 }
21}
22
23enum A {
24 B(i8, i8)
25}
26
27fn foo(-128..=127: i8) {}
diff --git a/crates/syntax/test_data/parser/ok/0048_compound_assignment.rast b/crates/syntax/test_data/parser/ok/0048_compound_assignment.rast
new file mode 100644
index 000000000..eaab47843
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0048_compound_assignment.rast
@@ -0,0 +1,200 @@
1[email protected]
2 [email protected] "// https://github.com ..."
3 [email protected] "\n\n"
4 [email protected]
5 [email protected] "fn"
6 [email protected] " "
7 [email protected]
8 [email protected] "compound_assignment"
9 [email protected]
10 [email protected] "("
11 [email protected] ")"
12 [email protected] " "
13 [email protected]
14 [email protected] "{"
15 [email protected] "\n "
16 [email protected]
17 [email protected] "let"
18 [email protected] " "
19 [email protected]
20 [email protected] "mut"
21 [email protected] " "
22 [email protected]
23 [email protected] "a"
24 [email protected] " "
25 [email protected] "="
26 [email protected] " "
27 [email protected]
28 [email protected] "0"
29 [email protected] ";"
30 [email protected] "\n "
31 [email protected]
32 [email protected]
33 [email protected]
34 [email protected]
35 [email protected]
36 [email protected]
37 [email protected] "a"
38 [email protected] " "
39 [email protected] "+="
40 [email protected] " "
41 [email protected]
42 [email protected] "1"
43 [email protected] ";"
44 [email protected] "\n "
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected]
49 [email protected]
50 [email protected]
51 [email protected] "a"
52 [email protected] " "
53 [email protected] "-="
54 [email protected] " "
55 [email protected]
56 [email protected] "2"
57 [email protected] ";"
58 [email protected] "\n "
59 [email protected]
60 [email protected]
61 [email protected]
62 [email protected]
63 [email protected]
64 [email protected]
65 [email protected] "a"
66 [email protected] " "
67 [email protected] "*="
68 [email protected] " "
69 [email protected]
70 [email protected] "3"
71 [email protected] ";"
72 [email protected] "\n "
73 [email protected]
74 [email protected]
75 [email protected]
76 [email protected]
77 [email protected]
78 [email protected]
79 [email protected] "a"
80 [email protected] " "
81 [email protected] "%="
82 [email protected] " "
83 [email protected]
84 [email protected] "4"
85 [email protected] ";"
86 [email protected] "\n "
87 [email protected]
88 [email protected]
89 [email protected]
90 [email protected]
91 [email protected]
92 [email protected]
93 [email protected] "a"
94 [email protected] " "
95 [email protected] "/="
96 [email protected] " "
97 [email protected]
98 [email protected] "5"
99 [email protected] ";"
100 [email protected] "\n "
101 [email protected]
102 [email protected]
103 [email protected]
104 [email protected]
105 [email protected]
106 [email protected]
107 [email protected] "a"
108 [email protected] " "
109 [email protected] "|="
110 [email protected] " "
111 [email protected]
112 [email protected] "6"
113 [email protected] ";"
114 [email protected] "\n "
115 [email protected]
116 [email protected]
117 [email protected]
118 [email protected]
119 [email protected]
120 [email protected]
121 [email protected] "a"
122 [email protected] " "
123 [email protected] "&="
124 [email protected] " "
125 [email protected]
126 [email protected] "7"
127 [email protected] ";"
128 [email protected] "\n "
129 [email protected]
130 [email protected]
131 [email protected]
132 [email protected]
133 [email protected]
134 [email protected]
135 [email protected] "a"
136 [email protected] " "
137 [email protected] "^="
138 [email protected] " "
139 [email protected]
140 [email protected] "8"
141 [email protected] ";"
142 [email protected] "\n "
143 [email protected]
144 [email protected]
145 [email protected]
146 [email protected]
147 [email protected]
148 [email protected]
149 [email protected] "a"
150 [email protected] " "
151 [email protected] "<="
152 [email protected] " "
153 [email protected]
154 [email protected] "9"
155 [email protected] ";"
156 [email protected] "\n "
157 [email protected]
158 [email protected]
159 [email protected]
160 [email protected]
161 [email protected]
162 [email protected]
163 [email protected] "a"
164 [email protected] " "
165 [email protected] ">="
166 [email protected] " "
167 [email protected]
168 [email protected] "10"
169 [email protected] ";"
170 [email protected] "\n "
171 [email protected]
172 [email protected]
173 [email protected]
174 [email protected]
175 [email protected]
176 [email protected]
177 [email protected] "a"
178 [email protected] " "
179 [email protected] ">>="
180 [email protected] " "
181 [email protected]
182 [email protected] "11"
183 [email protected] ";"
184 [email protected] "\n "
185 [email protected]
186 [email protected]
187 [email protected]
188 [email protected]
189 [email protected]
190 [email protected]
191 [email protected] "a"
192 [email protected] " "
193 [email protected] "<<="
194 [email protected] " "
195 [email protected]
196 [email protected] "12"
197 [email protected] ";"
198 [email protected] "\n"
199 [email protected] "}"
200 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0048_compound_assignment.rs b/crates/syntax/test_data/parser/ok/0048_compound_assignment.rs
new file mode 100644
index 000000000..871720a49
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0048_compound_assignment.rs
@@ -0,0 +1,17 @@
1// https://github.com/rust-analyzer/rust-analyzer/pull/983
2
3fn compound_assignment() {
4 let mut a = 0;
5 a += 1;
6 a -= 2;
7 a *= 3;
8 a %= 4;
9 a /= 5;
10 a |= 6;
11 a &= 7;
12 a ^= 8;
13 a <= 9;
14 a >= 10;
15 a >>= 11;
16 a <<= 12;
17}
diff --git a/crates/syntax/test_data/parser/ok/0049_async_block.rast b/crates/syntax/test_data/parser/ok/0049_async_block.rast
new file mode 100644
index 000000000..57ecad3cf
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0049_async_block.rast
@@ -0,0 +1,35 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected] "async"
17 [email protected] " "
18 [email protected]
19 [email protected] "{"
20 [email protected] "}"
21 [email protected] ";"
22 [email protected] "\n "
23 [email protected]
24 [email protected]
25 [email protected] "async"
26 [email protected] " "
27 [email protected] "move"
28 [email protected] " "
29 [email protected]
30 [email protected] "{"
31 [email protected] "}"
32 [email protected] ";"
33 [email protected] "\n"
34 [email protected] "}"
35 [email protected] "\n\n"
diff --git a/crates/syntax/test_data/parser/ok/0049_async_block.rs b/crates/syntax/test_data/parser/ok/0049_async_block.rs
new file mode 100644
index 000000000..4781b3225
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0049_async_block.rs
@@ -0,0 +1,5 @@
1fn foo() {
2 async {};
3 async move {};
4}
5
diff --git a/crates/syntax/test_data/parser/ok/0050_async_block_as_argument.rast b/crates/syntax/test_data/parser/ok/0050_async_block_as_argument.rast
new file mode 100644
index 000000000..c7ce12e93
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0050_async_block_as_argument.rast
@@ -0,0 +1,90 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected]
10 [email protected]
11 [email protected]
12 [email protected] "x"
13 [email protected] ":"
14 [email protected] " "
15 [email protected]
16 [email protected] "impl"
17 [email protected] " "
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected]
26 [email protected] "std"
27 [email protected] "::"
28 [email protected]
29 [email protected]
30 [email protected] "future"
31 [email protected] "::"
32 [email protected]
33 [email protected]
34 [email protected] "Future"
35 [email protected]
36 [email protected] "<"
37 [email protected]
38 [email protected]
39 [email protected] "Output"
40 [email protected] " "
41 [email protected] "="
42 [email protected] " "
43 [email protected]
44 [email protected]
45 [email protected]
46 [email protected]
47 [email protected] "i32"
48 [email protected] ">"
49 [email protected] ")"
50 [email protected] " "
51 [email protected]
52 [email protected] "{"
53 [email protected] "}"
54 [email protected] "\n\n"
55 [email protected]
56 [email protected] "fn"
57 [email protected] " "
58 [email protected]
59 [email protected] "main"
60 [email protected]
61 [email protected] "("
62 [email protected] ")"
63 [email protected] " "
64 [email protected]
65 [email protected] "{"
66 [email protected] "\n "
67 [email protected]
68 [email protected]
69 [email protected]
70 [email protected]
71 [email protected]
72 [email protected] "foo"
73 [email protected]
74 [email protected] "("
75 [email protected]
76 [email protected] "async"
77 [email protected] " "
78 [email protected] "move"
79 [email protected] " "
80 [email protected]
81 [email protected] "{"
82 [email protected] " "
83 [email protected]
84 [email protected] "12"
85 [email protected] " "
86 [email protected] "}"
87 [email protected] ")"
88 [email protected] "\n"
89 [email protected] "}"
90 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0050_async_block_as_argument.rs b/crates/syntax/test_data/parser/ok/0050_async_block_as_argument.rs
new file mode 100644
index 000000000..ec4612cff
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0050_async_block_as_argument.rs
@@ -0,0 +1,5 @@
1fn foo(x: impl std::future::Future<Output = i32>) {}
2
3fn main() {
4 foo(async move { 12 })
5}
diff --git a/crates/syntax/test_data/parser/ok/0051_parameter_attrs.rast b/crates/syntax/test_data/parser/ok/0051_parameter_attrs.rast
new file mode 100644
index 000000000..d4f05f279
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0051_parameter_attrs.rast
@@ -0,0 +1,508 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "g1"
7 [email protected]
8 [email protected] "("
9 [email protected]
10 [email protected] "#"
11 [email protected] "["
12 [email protected]
13 [email protected]
14 [email protected]
15 [email protected] "attr1"
16 [email protected] "]"
17 [email protected] " "
18 [email protected]
19 [email protected] "#"
20 [email protected] "["
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected] "attr2"
25 [email protected] "]"
26 [email protected] " "
27 [email protected]
28 [email protected]
29 [email protected]
30 [email protected] "pat"
31 [email protected] ":"
32 [email protected] " "
33 [email protected]
34 [email protected]
35 [email protected]
36 [email protected]
37 [email protected] "Type"
38 [email protected] ")"
39 [email protected] " "
40 [email protected]
41 [email protected] "{"
42 [email protected] "}"
43 [email protected] "\n"
44 [email protected]
45 [email protected] "fn"
46 [email protected] " "
47 [email protected]
48 [email protected] "g2"
49 [email protected]
50 [email protected] "("
51 [email protected]
52 [email protected] "#"
53 [email protected] "["
54 [email protected]
55 [email protected]
56 [email protected]
57 [email protected] "attr1"
58 [email protected] "]"
59 [email protected] " "
60 [email protected]
61 [email protected]
62 [email protected]
63 [email protected] "x"
64 [email protected] ":"
65 [email protected] " "
66 [email protected]
67 [email protected]
68 [email protected]
69 [email protected]
70 [email protected] "u8"
71 [email protected] ")"
72 [email protected] " "
73 [email protected]
74 [email protected] "{"
75 [email protected] "}"
76 [email protected] "\n\n"
77 [email protected]
78 [email protected]
79 [email protected] "extern"
80 [email protected] " "
81 [email protected] "\"C\""
82 [email protected] " "
83 [email protected]
84 [email protected] "{"
85 [email protected] " "
86 [email protected]
87 [email protected] "fn"
88 [email protected] " "
89 [email protected]
90 [email protected] "printf"
91 [email protected]
92 [email protected] "("
93 [email protected]
94 [email protected]
95 [email protected]
96 [email protected] "format"
97 [email protected] ":"
98 [email protected] " "
99 [email protected]
100 [email protected] "*"
101 [email protected] "const"
102 [email protected] " "
103 [email protected]
104 [email protected]
105 [email protected]
106 [email protected]
107 [email protected] "i8"
108 [email protected] ","
109 [email protected] " "
110 [email protected]
111 [email protected] "#"
112 [email protected] "["
113 [email protected]
114 [email protected]
115 [email protected]
116 [email protected] "attr"
117 [email protected] "]"
118 [email protected] " "
119 [email protected]
120 [email protected] "..."
121 [email protected] ")"
122 [email protected] " "
123 [email protected]
124 [email protected] "->"
125 [email protected] " "
126 [email protected]
127 [email protected]
128 [email protected]
129 [email protected]
130 [email protected] "i32"
131 [email protected] ";"
132 [email protected] " "
133 [email protected] "}"
134 [email protected] "\n\n"
135 [email protected]
136 [email protected] "fn"
137 [email protected] " "
138 [email protected]
139 [email protected] "foo"
140 [email protected]
141 [email protected] "<"
142 [email protected]
143 [email protected]
144 [email protected] "F"
145 [email protected] ":"
146 [email protected] " "
147 [email protected]
148 [email protected]
149 [email protected]
150 [email protected]
151 [email protected]
152 [email protected]
153 [email protected] "FnMut"
154 [email protected]
155 [email protected] "("
156 [email protected]
157 [email protected] "#"
158 [email protected] "["
159 [email protected]
160 [email protected]
161 [email protected]
162 [email protected] "attr"
163 [email protected] "]"
164 [email protected] " "
165 [email protected]
166 [email protected]
167 [email protected] "&"
168 [email protected] "mut"
169 [email protected] " "
170 [email protected]
171 [email protected]
172 [email protected]
173 [email protected]
174 [email protected] "Foo"
175 [email protected]
176 [email protected] "<"
177 [email protected]
178 [email protected] "\'a"
179 [email protected] ">"
180 [email protected] ")"
181 [email protected] ">"
182 [email protected]
183 [email protected] "("
184 [email protected] ")"
185 [email protected]
186 [email protected] "{"
187 [email protected] "}"
188 [email protected] "\n\n"
189 [email protected]
190 [email protected] "trait"
191 [email protected] " "
192 [email protected]
193 [email protected] "Foo"
194 [email protected] " "
195 [email protected]
196 [email protected] "{"
197 [email protected] "\n "
198 [email protected]
199 [email protected] "fn"
200 [email protected] " "
201 [email protected]
202 [email protected] "bar"
203 [email protected]
204 [email protected] "("
205 [email protected]
206 [email protected] "#"
207 [email protected] "["
208 [email protected]
209 [email protected]
210 [email protected]
211 [email protected] "attr"
212 [email protected] "]"
213 [email protected] " "
214 [email protected]
215 [email protected]
216 [email protected] "_"
217 [email protected] ":"
218 [email protected] " "
219 [email protected]
220 [email protected]
221 [email protected]
222 [email protected]
223 [email protected] "u64"
224 [email protected] ","
225 [email protected] " "
226 [email protected]
227 [email protected] "#"
228 [email protected] " "
229 [email protected] "["
230 [email protected]
231 [email protected]
232 [email protected]
233 [email protected] "attr"
234 [email protected] "]"
235 [email protected] " "
236 [email protected]
237 [email protected]
238 [email protected] "mut"
239 [email protected] " "
240 [email protected]
241 [email protected] "x"
242 [email protected] ":"
243 [email protected] " "
244 [email protected]
245 [email protected]
246 [email protected]
247 [email protected]
248 [email protected] "i32"
249 [email protected] ")"
250 [email protected] ";"
251 [email protected] "\n"
252 [email protected] "}"
253 [email protected] "\n\n"
254 [email protected]
255 [email protected] "impl"
256 [email protected] " "
257 [email protected]
258 [email protected]
259 [email protected]
260 [email protected]
261 [email protected] "S"
262 [email protected] " "
263 [email protected]
264 [email protected] "{"
265 [email protected] "\n "
266 [email protected]
267 [email protected] "fn"
268 [email protected] " "
269 [email protected]
270 [email protected] "f"
271 [email protected]
272 [email protected] "("
273 [email protected]
274 [email protected] "#"
275 [email protected] "["
276 [email protected]
277 [email protected]
278 [email protected]
279 [email protected] "must_use"
280 [email protected] "]"
281 [email protected] " "
282 [email protected]
283 [email protected] "self"
284 [email protected] ")"
285 [email protected] " "
286 [email protected]
287 [email protected] "{"
288 [email protected] "}"
289 [email protected] "\n "
290 [email protected]
291 [email protected] "fn"
292 [email protected] " "
293 [email protected]
294 [email protected] "g1"
295 [email protected]
296 [email protected] "("
297 [email protected]
298 [email protected] "#"
299 [email protected] "["
300 [email protected]
301 [email protected]
302 [email protected]
303 [email protected] "attr"
304 [email protected] "]"
305 [email protected] " "
306 [email protected]
307 [email protected] "self"
308 [email protected] ")"
309 [email protected] " "
310 [email protected]
311 [email protected] "{"
312 [email protected] "}"
313 [email protected] "\n "
314 [email protected]
315 [email protected] "fn"
316 [email protected] " "
317 [email protected]
318 [email protected] "g2"
319 [email protected]
320 [email protected] "("
321 [email protected]
322 [email protected] "#"
323 [email protected] "["
324 [email protected]
325 [email protected]
326 [email protected]
327 [email protected] "attr"
328 [email protected] "]"
329 [email protected] " "
330 [email protected]
331 [email protected] "&"
332 [email protected] "self"
333 [email protected] ")"
334 [email protected] " "
335 [email protected]
336 [email protected] "{"
337 [email protected] "}"
338 [email protected] "\n "
339 [email protected]
340 [email protected] "fn"
341 [email protected] " "
342 [email protected]
343 [email protected] "g3"
344 [email protected]
345 [email protected] "<"
346 [email protected]
347 [email protected] "\'a"
348 [email protected] ">"
349 [email protected]
350 [email protected] "("
351 [email protected]
352 [email protected] "#"
353 [email protected] "["
354 [email protected]
355 [email protected]
356 [email protected]
357 [email protected] "attr"
358 [email protected] "]"
359 [email protected] " "
360 [email protected]
361 [email protected] "&"
362 [email protected] "mut"
363 [email protected] " "
364 [email protected] "self"
365 [email protected] ")"
366 [email protected] " "
367 [email protected]
368 [email protected] "{"
369 [email protected] "}"
370 [email protected] "\n "
371 [email protected]
372 [email protected] "fn"
373 [email protected] " "
374 [email protected]
375 [email protected] "g4"
376 [email protected]
377 [email protected] "<"
378 [email protected]
379 [email protected] "\'a"
380 [email protected] ">"
381 [email protected]
382 [email protected] "("
383 [email protected]
384 [email protected] "#"
385 [email protected] "["
386 [email protected]
387 [email protected]
388 [email protected]
389 [email protected] "attr"
390 [email protected] "]"
391 [email protected] " "
392 [email protected]
393 [email protected] "&"
394 [email protected] "\'a"
395 [email protected] " "
396 [email protected] "self"
397 [email protected] ")"
398 [email protected] " "
399 [email protected]
400 [email protected] "{"
401 [email protected] "}"
402 [email protected] "\n "
403 [email protected]
404 [email protected] "fn"
405 [email protected] " "
406 [email protected]
407 [email protected] "g5"
408 [email protected]
409 [email protected] "<"
410 [email protected]
411 [email protected] "\'a"
412 [email protected] ">"
413 [email protected]
414 [email protected] "("
415 [email protected]
416 [email protected] "#"
417 [email protected] "["
418 [email protected]
419 [email protected]
420 [email protected]
421 [email protected] "attr"
422 [email protected] "]"
423 [email protected] " "
424 [email protected]
425 [email protected] "&"
426 [email protected] "\'a"
427 [email protected] " "
428 [email protected] "mut"
429 [email protected] " "
430 [email protected] "self"
431 [email protected] ")"
432 [email protected] " "
433 [email protected]
434 [email protected] "{"
435 [email protected] "}"
436 [email protected] "\n "
437 [email protected]
438 [email protected] "fn"
439 [email protected] " "
440 [email protected]
441 [email protected] "c"
442 [email protected]
443 [email protected] "("
444 [email protected]
445 [email protected] "#"
446 [email protected] "["
447 [email protected]
448 [email protected]
449 [email protected]
450 [email protected] "attr"
451 [email protected] "]"
452 [email protected] " "
453 [email protected]
454 [email protected] "self"
455 [email protected] ":"
456 [email protected] " "
457 [email protected]
458 [email protected]
459 [email protected]
460 [email protected]
461 [email protected] "Self"
462 [email protected] ")"
463 [email protected] " "
464 [email protected]
465 [email protected] "{"
466 [email protected] "}"
467 [email protected] "\n "
468 [email protected]
469 [email protected] "fn"
470 [email protected] " "
471 [email protected]
472 [email protected] "d"
473 [email protected]
474 [email protected] "("
475 [email protected]
476 [email protected] "#"
477 [email protected] "["
478 [email protected]
479 [email protected]
480 [email protected]
481 [email protected] "attr"
482 [email protected] "]"
483 [email protected] " "
484 [email protected]
485 [email protected] "self"
486 [email protected] ":"
487 [email protected] " "
488 [email protected]
489 [email protected]
490 [email protected]
491 [email protected]
492 [email protected] "Rc"
493 [email protected]
494 [email protected] "<"
495 [email protected]
496 [email protected]
497 [email protected]
498 [email protected]
499 [email protected]
500 [email protected] "Self"
501 [email protected] ">"
502 [email protected] ")"
503 [email protected] " "
504 [email protected]
505 [email protected] "{"
506 [email protected] "}"
507 [email protected] "\n"
508 [email protected] "}"
diff --git a/crates/syntax/test_data/parser/ok/0051_parameter_attrs.rs b/crates/syntax/test_data/parser/ok/0051_parameter_attrs.rs
new file mode 100644
index 000000000..de350d858
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0051_parameter_attrs.rs
@@ -0,0 +1,21 @@
1fn g1(#[attr1] #[attr2] pat: Type) {}
2fn g2(#[attr1] x: u8) {}
3
4extern "C" { fn printf(format: *const i8, #[attr] ...) -> i32; }
5
6fn foo<F: FnMut(#[attr] &mut Foo<'a>)>(){}
7
8trait Foo {
9 fn bar(#[attr] _: u64, # [attr] mut x: i32);
10}
11
12impl S {
13 fn f(#[must_use] self) {}
14 fn g1(#[attr] self) {}
15 fn g2(#[attr] &self) {}
16 fn g3<'a>(#[attr] &mut self) {}
17 fn g4<'a>(#[attr] &'a self) {}
18 fn g5<'a>(#[attr] &'a mut self) {}
19 fn c(#[attr] self: Self) {}
20 fn d(#[attr] self: Rc<Self>) {}
21} \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/ok/0052_for_range_block.rast b/crates/syntax/test_data/parser/ok/0052_for_range_block.rast
new file mode 100644
index 000000000..350823ba3
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0052_for_range_block.rast
@@ -0,0 +1,78 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "for"
16 [email protected] " "
17 [email protected]
18 [email protected]
19 [email protected] "_x"
20 [email protected] " "
21 [email protected] "in"
22 [email protected] " "
23 [email protected]
24 [email protected]
25 [email protected] "0"
26 [email protected] " "
27 [email protected] ".."
28 [email protected] " "
29 [email protected]
30 [email protected]
31 [email protected] "("
32 [email protected]
33 [email protected]
34 [email protected] "0"
35 [email protected] " "
36 [email protected] ".."
37 [email protected] " "
38 [email protected]
39 [email protected] "{"
40 [email protected]
41 [email protected]
42 [email protected] "1"
43 [email protected] " "
44 [email protected] "+"
45 [email protected] " "
46 [email protected]
47 [email protected] "2"
48 [email protected] "}"
49 [email protected] ")"
50 [email protected] "."
51 [email protected]
52 [email protected] "sum"
53 [email protected]
54 [email protected] "::"
55 [email protected] "<"
56 [email protected]
57 [email protected]
58 [email protected]
59 [email protected]
60 [email protected]
61 [email protected] "u32"
62 [email protected] ">"
63 [email protected]
64 [email protected] "("
65 [email protected] ")"
66 [email protected] " "
67 [email protected]
68 [email protected] "{"
69 [email protected] "\n "
70 [email protected]
71 [email protected]
72 [email protected] "break"
73 [email protected] ";"
74 [email protected] "\n "
75 [email protected] "}"
76 [email protected] "\n"
77 [email protected] "}"
78 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0052_for_range_block.rs b/crates/syntax/test_data/parser/ok/0052_for_range_block.rs
new file mode 100644
index 000000000..b51b19630
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0052_for_range_block.rs
@@ -0,0 +1,5 @@
1fn foo() {
2 for _x in 0 .. (0 .. {1 + 2}).sum::<u32>() {
3 break;
4 }
5}
diff --git a/crates/syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rast b/crates/syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rast
new file mode 100644
index 000000000..be60f7a8e
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rast
@@ -0,0 +1,39 @@
1[email protected]
2 [email protected]
3 [email protected] "/// Some docs"
4 [email protected] "\n"
5 [email protected]
6 [email protected] "#"
7 [email protected] "["
8 [email protected]
9 [email protected]
10 [email protected]
11 [email protected] "macro_export"
12 [email protected] "]"
13 [email protected] "\n"
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected] "macro_rules"
18 [email protected] "!"
19 [email protected] " "
20 [email protected]
21 [email protected] "foo"
22 [email protected] " "
23 [email protected]
24 [email protected] "{"
25 [email protected] "\n "
26 [email protected]
27 [email protected] "("
28 [email protected] ")"
29 [email protected] " "
30 [email protected] "="
31 [email protected] ">"
32 [email protected] " "
33 [email protected]
34 [email protected] "{"
35 [email protected] "}"
36 [email protected] ";"
37 [email protected] "\n"
38 [email protected] "}"
39 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rs b/crates/syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rs
new file mode 100644
index 000000000..b59c23c56
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rs
@@ -0,0 +1,5 @@
1/// Some docs
2#[macro_export]
3macro_rules! foo {
4 () => {};
5}
diff --git a/crates/syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rast b/crates/syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rast
new file mode 100644
index 000000000..f25c9ac36
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rast
@@ -0,0 +1,123 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "a"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "->"
13 [email protected] " "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected] "Foo"
19 [email protected]
20 [email protected] "<"
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected]
26 [email protected]
27 [email protected] "bar"
28 [email protected] "::"
29 [email protected]
30 [email protected]
31 [email protected] "Baz"
32 [email protected] ">"
33 [email protected] " "
34 [email protected]
35 [email protected] "{"
36 [email protected] "}"
37 [email protected] "\n\n"
38 [email protected]
39 [email protected] "fn"
40 [email protected] " "
41 [email protected]
42 [email protected] "b"
43 [email protected]
44 [email protected] "("
45 [email protected]
46 [email protected]
47 [email protected] "_"
48 [email protected] ":"
49 [email protected] " "
50 [email protected]
51 [email protected] "impl"
52 [email protected] " "
53 [email protected]
54 [email protected]
55 [email protected]
56 [email protected]
57 [email protected]
58 [email protected]
59 [email protected] "FnMut"
60 [email protected]
61 [email protected] "("
62 [email protected]
63 [email protected]
64 [email protected]
65 [email protected]
66 [email protected]
67 [email protected]
68 [email protected] "x"
69 [email protected] "::"
70 [email protected]
71 [email protected]
72 [email protected] "Y"
73 [email protected] ")"
74 [email protected] ")"
75 [email protected] " "
76 [email protected]
77 [email protected] "{"
78 [email protected] "}"
79 [email protected] "\n\n"
80 [email protected]
81 [email protected] "fn"
82 [email protected] " "
83 [email protected]
84 [email protected] "c"
85 [email protected]
86 [email protected] "("
87 [email protected]
88 [email protected]
89 [email protected] "_"
90 [email protected] ":"
91 [email protected] " "
92 [email protected]
93 [email protected] "impl"
94 [email protected] " "
95 [email protected]
96 [email protected]
97 [email protected]
98 [email protected]
99 [email protected]
100 [email protected]
101 [email protected] "FnMut"
102 [email protected]
103 [email protected] "("
104 [email protected]
105 [email protected]
106 [email protected] "&"
107 [email protected]
108 [email protected]
109 [email protected]
110 [email protected]
111 [email protected]
112 [email protected] "x"
113 [email protected] "::"
114 [email protected]
115 [email protected]
116 [email protected] "Y"
117 [email protected] ")"
118 [email protected] ")"
119 [email protected] " "
120 [email protected]
121 [email protected] "{"
122 [email protected] "}"
123 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rs b/crates/syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rs
new file mode 100644
index 000000000..0d3f5722a
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rs
@@ -0,0 +1,5 @@
1fn a() -> Foo<bar::Baz> {}
2
3fn b(_: impl FnMut(x::Y)) {}
4
5fn c(_: impl FnMut(&x::Y)) {}
diff --git a/crates/syntax/test_data/parser/ok/0055_dot_dot_dot.rast b/crates/syntax/test_data/parser/ok/0055_dot_dot_dot.rast
new file mode 100644
index 000000000..7447d516e
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0055_dot_dot_dot.rast
@@ -0,0 +1,49 @@
1[email protected]
2 [email protected]
3 [email protected] "type"
4 [email protected] " "
5 [email protected]
6 [email protected] "X"
7 [email protected] " "
8 [email protected] "="
9 [email protected] " "
10 [email protected]
11 [email protected] "("
12 [email protected] ")"
13 [email protected] ";"
14 [email protected] "\n\n"
15 [email protected]
16 [email protected] "fn"
17 [email protected] " "
18 [email protected]
19 [email protected] "main"
20 [email protected]
21 [email protected] "("
22 [email protected] ")"
23 [email protected] " "
24 [email protected]
25 [email protected] "{"
26 [email protected] "\n "
27 [email protected]
28 [email protected] "let"
29 [email protected] " "
30 [email protected]
31 [email protected] "("
32 [email protected] ")"
33 [email protected] ":"
34 [email protected]
35 [email protected]
36 [email protected]
37 [email protected] "::"
38 [email protected]
39 [email protected] "X"
40 [email protected] " "
41 [email protected] "="
42 [email protected] " "
43 [email protected]
44 [email protected] "("
45 [email protected] ")"
46 [email protected] ";"
47 [email protected] "\n"
48 [email protected] "}"
49 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0055_dot_dot_dot.rs b/crates/syntax/test_data/parser/ok/0055_dot_dot_dot.rs
new file mode 100644
index 000000000..cd204f65e
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0055_dot_dot_dot.rs
@@ -0,0 +1,5 @@
1type X = ();
2
3fn main() {
4 let ():::X = ();
5}
diff --git a/crates/syntax/test_data/parser/ok/0056_neq_in_type.rast b/crates/syntax/test_data/parser/ok/0056_neq_in_type.rast
new file mode 100644
index 000000000..3ef916e55
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0056_neq_in_type.rast
@@ -0,0 +1,64 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "if"
16 [email protected] " "
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected]
21 [email protected]
22 [email protected] "1.0f32"
23 [email protected] "."
24 [email protected]
25 [email protected] "floor"
26 [email protected]
27 [email protected] "("
28 [email protected] ")"
29 [email protected] " "
30 [email protected] "as"
31 [email protected] " "
32 [email protected]
33 [email protected]
34 [email protected]
35 [email protected]
36 [email protected] "i64"
37 [email protected] " "
38 [email protected] "!="
39 [email protected] " "
40 [email protected]
41 [email protected]
42 [email protected]
43 [email protected] "1.0f32"
44 [email protected] "."
45 [email protected]
46 [email protected] "floor"
47 [email protected]
48 [email protected] "("
49 [email protected] ")"
50 [email protected] " "
51 [email protected] "as"
52 [email protected] " "
53 [email protected]
54 [email protected]
55 [email protected]
56 [email protected]
57 [email protected] "i64"
58 [email protected] " "
59 [email protected]
60 [email protected] "{"
61 [email protected] "}"
62 [email protected] "\n"
63 [email protected] "}"
64 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0056_neq_in_type.rs b/crates/syntax/test_data/parser/ok/0056_neq_in_type.rs
new file mode 100644
index 000000000..6210683ce
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0056_neq_in_type.rs
@@ -0,0 +1,3 @@
1fn main() {
2 if 1.0f32.floor() as i64 != 1.0f32.floor() as i64 {}
3}
diff --git a/crates/syntax/test_data/parser/ok/0057_loop_in_call.rast b/crates/syntax/test_data/parser/ok/0057_loop_in_call.rast
new file mode 100644
index 000000000..76301004a
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0057_loop_in_call.rast
@@ -0,0 +1,56 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected]
10 [email protected]
11 [email protected]
12 [email protected] "x"
13 [email protected] ":"
14 [email protected] " "
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected] "i32"
20 [email protected] ")"
21 [email protected] " "
22 [email protected]
23 [email protected] "{"
24 [email protected] "}"
25 [email protected] "\n\n"
26 [email protected]
27 [email protected] "fn"
28 [email protected] " "
29 [email protected]
30 [email protected] "main"
31 [email protected]
32 [email protected] "("
33 [email protected] ")"
34 [email protected] " "
35 [email protected]
36 [email protected] "{"
37 [email protected] "\n "
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected]
42 [email protected]
43 [email protected]
44 [email protected] "foo"
45 [email protected]
46 [email protected] "("
47 [email protected]
48 [email protected] "loop"
49 [email protected] " "
50 [email protected]
51 [email protected] "{"
52 [email protected] "}"
53 [email protected] ")"
54 [email protected] ";"
55 [email protected] "\n"
56 [email protected] "}"
diff --git a/crates/syntax/test_data/parser/ok/0057_loop_in_call.rs b/crates/syntax/test_data/parser/ok/0057_loop_in_call.rs
new file mode 100644
index 000000000..31c12522f
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0057_loop_in_call.rs
@@ -0,0 +1,5 @@
1fn foo(x: i32) {}
2
3fn main() {
4 foo(loop {});
5} \ No newline at end of file
diff --git a/crates/syntax/test_data/parser/ok/0058_unary_expr_precedence.rast b/crates/syntax/test_data/parser/ok/0058_unary_expr_precedence.rast
new file mode 100644
index 000000000..a1dfd58f2
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0058_unary_expr_precedence.rast
@@ -0,0 +1,96 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "foo"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected] "1"
19 [email protected] " "
20 [email protected] "+"
21 [email protected] " "
22 [email protected]
23 [email protected] "*"
24 [email protected]
25 [email protected] "&"
26 [email protected]
27 [email protected] "2"
28 [email protected] " "
29 [email protected] "+"
30 [email protected] " "
31 [email protected]
32 [email protected] "3"
33 [email protected] ";"
34 [email protected] "\n "
35 [email protected]
36 [email protected]
37 [email protected]
38 [email protected] "*"
39 [email protected]
40 [email protected] "&"
41 [email protected]
42 [email protected] "1"
43 [email protected] " "
44 [email protected] "as"
45 [email protected] " "
46 [email protected]
47 [email protected]
48 [email protected]
49 [email protected]
50 [email protected] "u64"
51 [email protected] ";"
52 [email protected] "\n "
53 [email protected]
54 [email protected]
55 [email protected] "*"
56 [email protected]
57 [email protected]
58 [email protected]
59 [email protected]
60 [email protected]
61 [email protected] "x"
62 [email protected]
63 [email protected] "("
64 [email protected]
65 [email protected] "1"
66 [email protected] ")"
67 [email protected] ";"
68 [email protected] "\n "
69 [email protected]
70 [email protected]
71 [email protected] "&"
72 [email protected]
73 [email protected]
74 [email protected]
75 [email protected]
76 [email protected]
77 [email protected] "x"
78 [email protected] "["
79 [email protected]
80 [email protected] "1"
81 [email protected] "]"
82 [email protected] ";"
83 [email protected] "\n "
84 [email protected]
85 [email protected]
86 [email protected]
87 [email protected] "-"
88 [email protected]
89 [email protected] "1"
90 [email protected] ".."
91 [email protected]
92 [email protected] "2"
93 [email protected] ";"
94 [email protected] "\n"
95 [email protected] "}"
96 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0058_unary_expr_precedence.rs b/crates/syntax/test_data/parser/ok/0058_unary_expr_precedence.rs
new file mode 100644
index 000000000..100fccc64
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0058_unary_expr_precedence.rs
@@ -0,0 +1,7 @@
1fn foo() {
2 1 + *&2 + 3;
3 *&1 as u64;
4 *x(1);
5 &x[1];
6 -1..2;
7}
diff --git a/crates/syntax/test_data/parser/ok/0059_loops_in_parens.rast b/crates/syntax/test_data/parser/ok/0059_loops_in_parens.rast
new file mode 100644
index 000000000..213f7b381
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0059_loops_in_parens.rast
@@ -0,0 +1,97 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected]
19 [email protected]
20 [email protected] "Some"
21 [email protected]
22 [email protected] "("
23 [email protected]
24 [email protected] "for"
25 [email protected] " "
26 [email protected]
27 [email protected] "_"
28 [email protected] " "
29 [email protected] "in"
30 [email protected] " "
31 [email protected]
32 [email protected]
33 [email protected] "["
34 [email protected]
35 [email protected] "1"
36 [email protected] "]"
37 [email protected] "."
38 [email protected]
39 [email protected] "into_iter"
40 [email protected]
41 [email protected] "("
42 [email protected] ")"
43 [email protected] " "
44 [email protected]
45 [email protected] "{"
46 [email protected] "}"
47 [email protected] ")"
48 [email protected] ";"
49 [email protected] "\n "
50 [email protected]
51 [email protected]
52 [email protected]
53 [email protected]
54 [email protected]
55 [email protected]
56 [email protected] "Some"
57 [email protected]
58 [email protected] "("
59 [email protected]
60 [email protected] "loop"
61 [email protected] " "
62 [email protected]
63 [email protected] "{"
64 [email protected] " "
65 [email protected]
66 [email protected]
67 [email protected] "break"
68 [email protected] ";"
69 [email protected] " "
70 [email protected] "}"
71 [email protected] ")"
72 [email protected] ";"
73 [email protected] "\n "
74 [email protected]
75 [email protected]
76 [email protected]
77 [email protected]
78 [email protected]
79 [email protected]
80 [email protected] "Some"
81 [email protected]
82 [email protected] "("
83 [email protected]
84 [email protected] "while"
85 [email protected] " "
86 [email protected]
87 [email protected]
88 [email protected] "true"
89 [email protected] " "
90 [email protected]
91 [email protected] "{"
92 [email protected] "}"
93 [email protected] ")"
94 [email protected] ";"
95 [email protected] "\n"
96 [email protected] "}"
97 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0059_loops_in_parens.rs b/crates/syntax/test_data/parser/ok/0059_loops_in_parens.rs
new file mode 100644
index 000000000..6e8b718aa
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0059_loops_in_parens.rs
@@ -0,0 +1,5 @@
1fn main() {
2 Some(for _ in [1].into_iter() {});
3 Some(loop { break; });
4 Some(while true {});
5}
diff --git a/crates/syntax/test_data/parser/ok/0060_as_range.rast b/crates/syntax/test_data/parser/ok/0060_as_range.rast
new file mode 100644
index 000000000..1fd1a2888
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0060_as_range.rast
@@ -0,0 +1,55 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected]
16 [email protected]
17 [email protected]
18 [email protected] "0"
19 [email protected] " "
20 [email protected] "as"
21 [email protected] " "
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected]
26 [email protected] "usize"
27 [email protected] " "
28 [email protected] ".."
29 [email protected] ";"
30 [email protected] "\n "
31 [email protected]
32 [email protected]
33 [email protected]
34 [email protected]
35 [email protected] "1"
36 [email protected] " "
37 [email protected] "+"
38 [email protected] " "
39 [email protected]
40 [email protected]
41 [email protected] "2"
42 [email protected] " "
43 [email protected] "as"
44 [email protected] " "
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected]
49 [email protected] "usize"
50 [email protected] " "
51 [email protected] ".."
52 [email protected] ";"
53 [email protected] "\n"
54 [email protected] "}"
55 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0060_as_range.rs b/crates/syntax/test_data/parser/ok/0060_as_range.rs
new file mode 100644
index 000000000..f063ffadb
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0060_as_range.rs
@@ -0,0 +1,4 @@
1fn main() {
2 0 as usize ..;
3 1 + 2 as usize ..;
4}
diff --git a/crates/syntax/test_data/parser/ok/0061_match_full_range.rast b/crates/syntax/test_data/parser/ok/0061_match_full_range.rast
new file mode 100644
index 000000000..ba49c115b
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0061_match_full_range.rast
@@ -0,0 +1,26 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "main"
7 [email protected]
8 [email protected] "("
9 [email protected] ")"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "match"
16 [email protected] " "
17 [email protected]
18 [email protected] ".."
19 [email protected] " "
20 [email protected]
21 [email protected] "{"
22 [email protected] "\n "
23 [email protected] "}"
24 [email protected] "\n"
25 [email protected] "}"
26 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0061_match_full_range.rs b/crates/syntax/test_data/parser/ok/0061_match_full_range.rs
new file mode 100644
index 000000000..2c4ed11e1
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0061_match_full_range.rs
@@ -0,0 +1,4 @@
1fn main() {
2 match .. {
3 }
4}
diff --git a/crates/syntax/test_data/parser/ok/0062_macro_2.0.rast b/crates/syntax/test_data/parser/ok/0062_macro_2.0.rast
new file mode 100644
index 000000000..0c22c31a4
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0062_macro_2.0.rast
@@ -0,0 +1,175 @@
1[email protected]
2 [email protected]
3 [email protected] "macro"
4 [email protected] " "
5 [email protected]
6 [email protected] "parse_use_trees"
7 [email protected]
8 [email protected]
9 [email protected] "("
10 [email protected] "$"
11 [email protected]
12 [email protected] "("
13 [email protected] "$"
14 [email protected] "s"
15 [email protected] ":"
16 [email protected] "expr"
17 [email protected] ")"
18 [email protected] ","
19 [email protected] "*"
20 [email protected] " "
21 [email protected] "$"
22 [email protected]
23 [email protected] "("
24 [email protected] ","
25 [email protected] ")"
26 [email protected] "*"
27 [email protected] ")"
28 [email protected] " "
29 [email protected]
30 [email protected] "{"
31 [email protected] "\n "
32 [email protected] "vec"
33 [email protected] "!"
34 [email protected]
35 [email protected] "["
36 [email protected] "\n "
37 [email protected] "$"
38 [email protected]
39 [email protected] "("
40 [email protected] "parse_use_tree"
41 [email protected]
42 [email protected] "("
43 [email protected] "$"
44 [email protected] "s"
45 [email protected] ")"
46 [email protected] ","
47 [email protected] ")"
48 [email protected] "*"
49 [email protected] "\n "
50 [email protected] "]"
51 [email protected] "\n"
52 [email protected] "}"
53 [email protected] "\n\n"
54 [email protected]
55 [email protected]
56 [email protected] "#"
57 [email protected] "["
58 [email protected]
59 [email protected]
60 [email protected]
61 [email protected] "test"
62 [email protected] "]"
63 [email protected] "\n"
64 [email protected] "fn"
65 [email protected] " "
66 [email protected]
67 [email protected] "test_use_tree_merge"
68 [email protected]
69 [email protected] "("
70 [email protected] ")"
71 [email protected] " "
72 [email protected]
73 [email protected] "{"
74 [email protected] "\n "
75 [email protected]
76 [email protected] "macro"
77 [email protected] " "
78 [email protected]
79 [email protected] "test_merge"
80 [email protected]
81 [email protected]
82 [email protected] "("
83 [email protected]
84 [email protected] "["
85 [email protected] "$"
86 [email protected]
87 [email protected] "("
88 [email protected] "$"
89 [email protected] "input"
90 [email protected] ":"
91 [email protected] "expr"
92 [email protected] ")"
93 [email protected] ","
94 [email protected] "*"
95 [email protected] " "
96 [email protected] "$"
97 [email protected]
98 [email protected] "("
99 [email protected] ","
100 [email protected] ")"
101 [email protected] "*"
102 [email protected] "]"
103 [email protected] ","
104 [email protected] " "
105 [email protected]
106 [email protected] "["
107 [email protected] "$"
108 [email protected]
109 [email protected] "("
110 [email protected] "$"
111 [email protected] "output"
112 [email protected] ":"
113 [email protected] "expr"
114 [email protected] ")"
115 [email protected] ","
116 [email protected] "*"
117 [email protected] " "
118 [email protected] "$"
119 [email protected]
120 [email protected] "("
121 [email protected] ","
122 [email protected] ")"
123 [email protected] "*"
124 [email protected] "]"
125 [email protected] ")"
126 [email protected] " "
127 [email protected]
128 [email protected] "{"
129 [email protected] "\n "
130 [email protected] "assert_eq"
131 [email protected] "!"
132 [email protected]
133 [email protected] "("
134 [email protected] "\n "
135 [email protected] "merge_use_trees"
136 [email protected]
137 [email protected] "("
138 [email protected] "parse_use_trees"
139 [email protected] "!"
140 [email protected]
141 [email protected] "("
142 [email protected] "$"
143 [email protected]
144 [email protected] "("
145 [email protected] "$"
146 [email protected] "input"
147 [email protected] ","
148 [email protected] ")"
149 [email protected] "*"
150 [email protected] ")"
151 [email protected] ")"
152 [email protected] ","
153 [email protected] "\n "
154 [email protected] "parse_use_trees"
155 [email protected] "!"
156 [email protected]
157 [email protected] "("
158 [email protected] "$"
159 [email protected]
160 [email protected] "("
161 [email protected] "$"
162 [email protected] "output"
163 [email protected] ","
164 [email protected] ")"
165 [email protected] "*"
166 [email protected] ")"
167 [email protected] ","
168 [email protected] "\n "
169 [email protected] ")"
170 [email protected] ";"
171 [email protected] "\n "
172 [email protected] "}"
173 [email protected] "\n"
174 [email protected] "}"
175 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0062_macro_2.0.rs b/crates/syntax/test_data/parser/ok/0062_macro_2.0.rs
new file mode 100644
index 000000000..781047ba1
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0062_macro_2.0.rs
@@ -0,0 +1,15 @@
1macro parse_use_trees($($s:expr),* $(,)*) {
2 vec![
3 $(parse_use_tree($s),)*
4 ]
5}
6
7#[test]
8fn test_use_tree_merge() {
9 macro test_merge([$($input:expr),* $(,)*], [$($output:expr),* $(,)*]) {
10 assert_eq!(
11 merge_use_trees(parse_use_trees!($($input,)*)),
12 parse_use_trees!($($output,)*),
13 );
14 }
15}
diff --git a/crates/syntax/test_data/parser/ok/0063_trait_fn_patterns.rast b/crates/syntax/test_data/parser/ok/0063_trait_fn_patterns.rast
new file mode 100644
index 000000000..8eda59976
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0063_trait_fn_patterns.rast
@@ -0,0 +1,194 @@
1[email protected]
2 [email protected]
3 [email protected] "trait"
4 [email protected] " "
5 [email protected]
6 [email protected] "T"
7 [email protected] " "
8 [email protected]
9 [email protected] "{"
10 [email protected] "\n "
11 [email protected]
12 [email protected] "fn"
13 [email protected] " "
14 [email protected]
15 [email protected] "f1"
16 [email protected]
17 [email protected] "("
18 [email protected]
19 [email protected]
20 [email protected] "("
21 [email protected]
22 [email protected]
23 [email protected] "a"
24 [email protected] ","
25 [email protected] " "
26 [email protected]
27 [email protected]
28 [email protected] "b"
29 [email protected] ")"
30 [email protected] ":"
31 [email protected] " "
32 [email protected]
33 [email protected] "("
34 [email protected]
35 [email protected]
36 [email protected]
37 [email protected]
38 [email protected] "usize"
39 [email protected] ","
40 [email protected] " "
41 [email protected]
42 [email protected]
43 [email protected]
44 [email protected]
45 [email protected] "usize"
46 [email protected] ")"
47 [email protected] ")"
48 [email protected] " "
49 [email protected]
50 [email protected] "{"
51 [email protected] "}"
52 [email protected] "\n "
53 [email protected]
54 [email protected] "fn"
55 [email protected] " "
56 [email protected]
57 [email protected] "f2"
58 [email protected]
59 [email protected] "("
60 [email protected]
61 [email protected]
62 [email protected]
63 [email protected]
64 [email protected]
65 [email protected] "S"
66 [email protected] " "
67 [email protected]
68 [email protected] "{"
69 [email protected] " "
70 [email protected]
71 [email protected]
72 [email protected]
73 [email protected] "a"
74 [email protected] ","
75 [email protected] " "
76 [email protected]
77 [email protected]
78 [email protected]
79 [email protected] "b"
80 [email protected] " "
81 [email protected] "}"
82 [email protected] ":"
83 [email protected] " "
84 [email protected]
85 [email protected]
86 [email protected]
87 [email protected]
88 [email protected] "S"
89 [email protected] ")"
90 [email protected] " "
91 [email protected]
92 [email protected] "{"
93 [email protected] "}"
94 [email protected] "\n "
95 [email protected]
96 [email protected] "fn"
97 [email protected] " "
98 [email protected]
99 [email protected] "f3"
100 [email protected]
101 [email protected] "("
102 [email protected]
103 [email protected]
104 [email protected]
105 [email protected]
106 [email protected]
107 [email protected] "NewType"
108 [email protected] "("
109 [email protected]
110 [email protected]
111 [email protected] "a"
112 [email protected] ")"
113 [email protected] ":"
114 [email protected] " "
115 [email protected]
116 [email protected]
117 [email protected]
118 [email protected]
119 [email protected] "NewType"
120 [email protected] ")"
121 [email protected] " "
122 [email protected]
123 [email protected] "{"
124 [email protected] "}"
125 [email protected] "\n "
126 [email protected]
127 [email protected] "fn"
128 [email protected] " "
129 [email protected]
130 [email protected] "f4"
131 [email protected]
132 [email protected] "("
133 [email protected]
134 [email protected]
135 [email protected] "&"
136 [email protected]
137 [email protected] "&"
138 [email protected]
139 [email protected]
140 [email protected] "a"
141 [email protected] ":"
142 [email protected] " "
143 [email protected]
144 [email protected] "&"
145 [email protected]
146 [email protected] "&"
147 [email protected]
148 [email protected]
149 [email protected]
150 [email protected]
151 [email protected] "usize"
152 [email protected] ")"
153 [email protected] " "
154 [email protected]
155 [email protected] "{"
156 [email protected] "}"
157 [email protected] "\n "
158 [email protected]
159 [email protected] "fn"
160 [email protected] " "
161 [email protected]
162 [email protected] "bar"
163 [email protected]
164 [email protected] "("
165 [email protected]
166 [email protected]
167 [email protected] "_"
168 [email protected] ":"
169 [email protected] " "
170 [email protected]
171 [email protected]
172 [email protected]
173 [email protected]
174 [email protected] "u64"
175 [email protected] ","
176 [email protected] " "
177 [email protected]
178 [email protected]
179 [email protected] "mut"
180 [email protected] " "
181 [email protected]
182 [email protected] "x"
183 [email protected] ":"
184 [email protected] " "
185 [email protected]
186 [email protected]
187 [email protected]
188 [email protected]
189 [email protected] "i32"
190 [email protected] ")"
191 [email protected] ";"
192 [email protected] "\n"
193 [email protected] "}"
194 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0063_trait_fn_patterns.rs b/crates/syntax/test_data/parser/ok/0063_trait_fn_patterns.rs
new file mode 100644
index 000000000..3b666af8e
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0063_trait_fn_patterns.rs
@@ -0,0 +1,7 @@
1trait T {
2 fn f1((a, b): (usize, usize)) {}
3 fn f2(S { a, b }: S) {}
4 fn f3(NewType(a): NewType) {}
5 fn f4(&&a: &&usize) {}
6 fn bar(_: u64, mut x: i32);
7}
diff --git a/crates/syntax/test_data/parser/ok/0063_variadic_fun.rast b/crates/syntax/test_data/parser/ok/0063_variadic_fun.rast
new file mode 100644
index 000000000..4009b3ff8
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0063_variadic_fun.rast
@@ -0,0 +1,133 @@
1[email protected]
2 [email protected]
3 [email protected]
4 [email protected] "extern"
5 [email protected] " "
6 [email protected] "\"C\""
7 [email protected] " "
8 [email protected]
9 [email protected] "{"
10 [email protected] "\n "
11 [email protected]
12 [email protected] "fn"
13 [email protected] " "
14 [email protected]
15 [email protected] "a"
16 [email protected]
17 [email protected] "("
18 [email protected]
19 [email protected]
20 [email protected] "_"
21 [email protected] ":"
22 [email protected] " "
23 [email protected]
24 [email protected] "*"
25 [email protected] "mut"
26 [email protected] " "
27 [email protected]
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected] "u8"
32 [email protected] ","
33 [email protected] " "
34 [email protected]
35 [email protected] "..."
36 [email protected] ","
37 [email protected] ")"
38 [email protected] ";"
39 [email protected] "\n "
40 [email protected]
41 [email protected] "fn"
42 [email protected] " "
43 [email protected]
44 [email protected] "b"
45 [email protected]
46 [email protected] "("
47 [email protected]
48 [email protected]
49 [email protected] "_"
50 [email protected] ":"
51 [email protected] " "
52 [email protected]
53 [email protected] "*"
54 [email protected] "mut"
55 [email protected] " "
56 [email protected]
57 [email protected]
58 [email protected]
59 [email protected]
60 [email protected] "u8"
61 [email protected] ","
62 [email protected] " "
63 [email protected]
64 [email protected]
65 [email protected] "_"
66 [email protected] ":"
67 [email protected] " "
68 [email protected] "..."
69 [email protected] ")"
70 [email protected] ";"
71 [email protected] "\n "
72 [email protected]
73 [email protected] "fn"
74 [email protected] " "
75 [email protected]
76 [email protected] "c"
77 [email protected]
78 [email protected] "("
79 [email protected]
80 [email protected]
81 [email protected] "_"
82 [email protected] ":"
83 [email protected] " "
84 [email protected]
85 [email protected] "*"
86 [email protected] "mut"
87 [email protected] " "
88 [email protected]
89 [email protected]
90 [email protected]
91 [email protected]
92 [email protected] "u8"
93 [email protected] ","
94 [email protected] " "
95 [email protected]
96 [email protected] "#"
97 [email protected] "["
98 [email protected]
99 [email protected]
100 [email protected]
101 [email protected] "cfg"
102 [email protected]
103 [email protected] "("
104 [email protected] "never"
105 [email protected] ")"
106 [email protected] "]"
107 [email protected] " "
108 [email protected]
109 [email protected]
110 [email protected] "["
111 [email protected]
112 [email protected]
113 [email protected] "w"
114 [email protected] ","
115 [email protected] " "
116 [email protected]
117 [email protected]
118 [email protected] "t"
119 [email protected] ","
120 [email protected] " "
121 [email protected]
122 [email protected]
123 [email protected] "f"
124 [email protected] "]"
125 [email protected] ":"
126 [email protected] " "
127 [email protected] "..."
128 [email protected] ","
129 [email protected] ")"
130 [email protected] ";"
131 [email protected] "\n"
132 [email protected] "}"
133 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0063_variadic_fun.rs b/crates/syntax/test_data/parser/ok/0063_variadic_fun.rs
new file mode 100644
index 000000000..a16afbaf3
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0063_variadic_fun.rs
@@ -0,0 +1,5 @@
1extern "C" {
2 fn a(_: *mut u8, ...,);
3 fn b(_: *mut u8, _: ...);
4 fn c(_: *mut u8, #[cfg(never)] [w, t, f]: ...,);
5}
diff --git a/crates/syntax/test_data/parser/ok/0064_impl_fn_params.rast b/crates/syntax/test_data/parser/ok/0064_impl_fn_params.rast
new file mode 100644
index 000000000..a3c6ed82e
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0064_impl_fn_params.rast
@@ -0,0 +1,162 @@
1[email protected]
2 [email protected]
3 [email protected] "impl"
4 [email protected] " "
5 [email protected]
6 [email protected]
7 [email protected]
8 [email protected]
9 [email protected] "U"
10 [email protected] " "
11 [email protected]
12 [email protected] "{"
13 [email protected] "\n "
14 [email protected]
15 [email protected] "fn"
16 [email protected] " "
17 [email protected]
18 [email protected] "f1"
19 [email protected]
20 [email protected] "("
21 [email protected]
22 [email protected]
23 [email protected] "("
24 [email protected]
25 [email protected]
26 [email protected] "a"
27 [email protected] ","
28 [email protected] " "
29 [email protected]
30 [email protected]
31 [email protected] "b"
32 [email protected] ")"
33 [email protected] ":"
34 [email protected] " "
35 [email protected]
36 [email protected] "("
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected] "usize"
42 [email protected] ","
43 [email protected] " "
44 [email protected]
45 [email protected]
46 [email protected]
47 [email protected]
48 [email protected] "usize"
49 [email protected] ")"
50 [email protected] ")"
51 [email protected] " "
52 [email protected]
53 [email protected] "{"
54 [email protected] "}"
55 [email protected] "\n "
56 [email protected]
57 [email protected] "fn"
58 [email protected] " "
59 [email protected]
60 [email protected] "f2"
61 [email protected]
62 [email protected] "("
63 [email protected]
64 [email protected]
65 [email protected]
66 [email protected]
67 [email protected]
68 [email protected] "S"
69 [email protected] " "
70 [email protected]
71 [email protected] "{"
72 [email protected] " "
73 [email protected]
74 [email protected]
75 [email protected]
76 [email protected] "a"
77 [email protected] ","
78 [email protected] " "
79 [email protected]
80 [email protected]
81 [email protected]
82 [email protected] "b"
83 [email protected] " "
84 [email protected] "}"
85 [email protected] ":"
86 [email protected] " "
87 [email protected]
88 [email protected]
89 [email protected]
90 [email protected]
91 [email protected] "S"
92 [email protected] ")"
93 [email protected] " "
94 [email protected]
95 [email protected] "{"
96 [email protected] "}"
97 [email protected] "\n "
98 [email protected]
99 [email protected] "fn"
100 [email protected] " "
101 [email protected]
102 [email protected] "f3"
103 [email protected]
104 [email protected] "("
105 [email protected]
106 [email protected]
107 [email protected]
108 [email protected]
109 [email protected]
110 [email protected] "NewType"
111 [email protected] "("
112 [email protected]
113 [email protected]
114 [email protected] "a"
115 [email protected] ")"
116 [email protected] ":"
117 [email protected] " "
118 [email protected]
119 [email protected]
120 [email protected]
121 [email protected]
122 [email protected] "NewType"
123 [email protected] ")"
124 [email protected] " "
125 [email protected]
126 [email protected] "{"
127 [email protected] "}"
128 [email protected] "\n "
129 [email protected]
130 [email protected] "fn"
131 [email protected] " "
132 [email protected]
133 [email protected] "f4"
134 [email protected]
135 [email protected] "("
136 [email protected]
137 [email protected]
138 [email protected] "&"
139 [email protected]
140 [email protected] "&"
141 [email protected]
142 [email protected]
143 [email protected] "a"
144 [email protected] ":"
145 [email protected] " "
146 [email protected]
147 [email protected] "&"
148 [email protected]
149 [email protected] "&"
150 [email protected]
151 [email protected]
152 [email protected]
153 [email protected]
154 [email protected] "usize"
155 [email protected] ")"
156 [email protected] " "
157 [email protected]
158 [email protected] "{"
159 [email protected] "}"
160 [email protected] "\n"
161 [email protected] "}"
162 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0064_impl_fn_params.rs b/crates/syntax/test_data/parser/ok/0064_impl_fn_params.rs
new file mode 100644
index 000000000..b49e872d7
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0064_impl_fn_params.rs
@@ -0,0 +1,6 @@
1impl U {
2 fn f1((a, b): (usize, usize)) {}
3 fn f2(S { a, b }: S) {}
4 fn f3(NewType(a): NewType) {}
5 fn f4(&&a: &&usize) {}
6}
diff --git a/crates/syntax/test_data/parser/ok/0065_comment_newline.rast b/crates/syntax/test_data/parser/ok/0065_comment_newline.rast
new file mode 100644
index 000000000..29bd38c05
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0065_comment_newline.rast
@@ -0,0 +1,16 @@
1[email protected]
2 [email protected]
3 [email protected] "/// Example"
4 [email protected] "\n\n"
5 [email protected] "fn"
6 [email protected] " "
7 [email protected]
8 [email protected] "test"
9 [email protected]
10 [email protected] "("
11 [email protected] ")"
12 [email protected] " "
13 [email protected]
14 [email protected] "{"
15 [email protected] "}"
16 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0065_comment_newline.rs b/crates/syntax/test_data/parser/ok/0065_comment_newline.rs
new file mode 100644
index 000000000..1fafe216b
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0065_comment_newline.rs
@@ -0,0 +1,3 @@
1/// Example
2
3fn test() {}
diff --git a/crates/syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast b/crates/syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast
new file mode 100644
index 000000000..2c699ffcb
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast
@@ -0,0 +1,60 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "f"
7 [email protected]
8 [email protected] "<"
9 [email protected]
10 [email protected]
11 [email protected] "T"
12 [email protected] ">"
13 [email protected]
14 [email protected] "("
15 [email protected] ")"
16 [email protected] " "
17 [email protected]
18 [email protected] "where"
19 [email protected] " "
20 [email protected]
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected] "T"
26 [email protected] ":"
27 [email protected] " "
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected]
33 [email protected]
34 [email protected] "Fn"
35 [email protected]
36 [email protected] "("
37 [email protected] ")"
38 [email protected] " "
39 [email protected]
40 [email protected] "->"
41 [email protected] " "
42 [email protected]
43 [email protected]
44 [email protected]
45 [email protected]
46 [email protected] "u8"
47 [email protected] " "
48 [email protected] "+"
49 [email protected] " "
50 [email protected]
51 [email protected]
52 [email protected]
53 [email protected]
54 [email protected]
55 [email protected] "Send"
56 [email protected] " "
57 [email protected]
58 [email protected] "{"
59 [email protected] "}"
60 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rs b/crates/syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rs
new file mode 100644
index 000000000..29f3655e0
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rs
@@ -0,0 +1 @@
fn f<T>() where T: Fn() -> u8 + Send {}
diff --git a/crates/syntax/test_data/parser/ok/0066_default_modifier.rast b/crates/syntax/test_data/parser/ok/0066_default_modifier.rast
new file mode 100644
index 000000000..e9b57ec3b
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0066_default_modifier.rast
@@ -0,0 +1,218 @@
1[email protected]
2 [email protected]
3 [email protected] "trait"
4 [email protected] " "
5 [email protected]
6 [email protected] "T"
7 [email protected] " "
8 [email protected]
9 [email protected] "{"
10 [email protected] "\n "
11 [email protected]
12 [email protected] "default"
13 [email protected] " "
14 [email protected] "type"
15 [email protected] " "
16 [email protected]
17 [email protected] "T"
18 [email protected] " "
19 [email protected] "="
20 [email protected] " "
21 [email protected]
22 [email protected]
23 [email protected]
24 [email protected]
25 [email protected] "Bar"
26 [email protected] ";"
27 [email protected] "\n "
28 [email protected]
29 [email protected] "default"
30 [email protected] " "
31 [email protected] "const"
32 [email protected] " "
33 [email protected]
34 [email protected] "f"
35 [email protected] ":"
36 [email protected] " "
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected] "u8"
42 [email protected] " "
43 [email protected] "="
44 [email protected] " "
45 [email protected]
46 [email protected] "0"
47 [email protected] ";"
48 [email protected] "\n "
49 [email protected]
50 [email protected] "default"
51 [email protected] " "
52 [email protected] "fn"
53 [email protected] " "
54 [email protected]
55 [email protected] "foo"
56 [email protected]
57 [email protected] "("
58 [email protected] ")"
59 [email protected] " "
60 [email protected]
61 [email protected] "{"
62 [email protected] "}"
63 [email protected] "\n "
64 [email protected]
65 [email protected] "default"
66 [email protected] " "
67 [email protected] "unsafe"
68 [email protected] " "
69 [email protected] "fn"
70 [email protected] " "
71 [email protected]
72 [email protected] "bar"
73 [email protected]
74 [email protected] "("
75 [email protected] ")"
76 [email protected] " "
77 [email protected]
78 [email protected] "{"
79 [email protected] "}"
80 [email protected] "\n"
81 [email protected] "}"
82 [email protected] "\n\n"
83 [email protected]
84 [email protected] "impl"
85 [email protected] " "
86 [email protected]
87 [email protected]
88 [email protected]
89 [email protected]
90 [email protected] "T"
91 [email protected] " "
92 [email protected] "for"
93 [email protected] " "
94 [email protected]
95 [email protected]
96 [email protected]
97 [email protected]
98 [email protected] "Foo"
99 [email protected] " "
100 [email protected]
101 [email protected] "{"
102 [email protected] "\n "
103 [email protected]
104 [email protected] "default"
105 [email protected] " "
106 [email protected] "type"
107 [email protected] " "
108 [email protected]
109 [email protected] "T"
110 [email protected] " "
111 [email protected] "="
112 [email protected] " "
113 [email protected]
114 [email protected]
115 [email protected]
116 [email protected]
117 [email protected] "Bar"
118 [email protected] ";"
119 [email protected] "\n "
120 [email protected]
121 [email protected] "default"
122 [email protected] " "
123 [email protected] "const"
124 [email protected] " "
125 [email protected]
126 [email protected] "f"
127 [email protected] ":"
128 [email protected] " "
129 [email protected]
130 [email protected]
131 [email protected]
132 [email protected]
133 [email protected] "u8"
134 [email protected] " "
135 [email protected] "="
136 [email protected] " "
137 [email protected]
138 [email protected] "0"
139 [email protected] ";"
140 [email protected] "\n "
141 [email protected]
142 [email protected] "default"
143 [email protected] " "
144 [email protected] "fn"
145 [email protected] " "
146 [email protected]
147 [email protected] "foo"
148 [email protected]
149 [email protected] "("
150 [email protected] ")"
151 [email protected] " "
152 [email protected]
153 [email protected] "{"
154 [email protected] "}"
155 [email protected] "\n "
156 [email protected]
157 [email protected] "default"
158 [email protected] " "
159 [email protected] "unsafe"
160 [email protected] " "
161 [email protected] "fn"
162 [email protected] " "
163 [email protected]
164 [email protected] "bar"
165 [email protected]
166 [email protected] "("
167 [email protected] ")"
168 [email protected] " "
169 [email protected]
170 [email protected] "{"
171 [email protected] "}"
172 [email protected] "\n"
173 [email protected] "}"
174 [email protected] "\n\n"
175 [email protected]
176 [email protected] "default"
177 [email protected] " "
178 [email protected] "impl"
179 [email protected] " "
180 [email protected]
181 [email protected]
182 [email protected]
183 [email protected]
184 [email protected] "T"
185 [email protected] " "
186 [email protected] "for"
187 [email protected] " "
188 [email protected]
189 [email protected] "("
190 [email protected] ")"
191 [email protected] " "
192 [email protected]
193 [email protected] "{"
194 [email protected] "}"
195 [email protected] "\n"
196 [email protected]
197 [email protected] "default"
198 [email protected] " "
199 [email protected] "unsafe"
200 [email protected] " "
201 [email protected] "impl"
202 [email protected] " "
203 [email protected]
204 [email protected]
205 [email protected]
206 [email protected]
207 [email protected] "T"
208 [email protected] " "
209 [email protected] "for"
210 [email protected] " "
211 [email protected]
212 [email protected] "("
213 [email protected] ")"
214 [email protected] " "
215 [email protected]
216 [email protected] "{"
217 [email protected] "}"
218 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0066_default_modifier.rs b/crates/syntax/test_data/parser/ok/0066_default_modifier.rs
new file mode 100644
index 000000000..e443e3495
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0066_default_modifier.rs
@@ -0,0 +1,16 @@
1trait T {
2 default type T = Bar;
3 default const f: u8 = 0;
4 default fn foo() {}
5 default unsafe fn bar() {}
6}
7
8impl T for Foo {
9 default type T = Bar;
10 default const f: u8 = 0;
11 default fn foo() {}
12 default unsafe fn bar() {}
13}
14
15default impl T for () {}
16default unsafe impl T for () {}
diff --git a/crates/syntax/test_data/parser/ok/0067_where_for_pred.rast b/crates/syntax/test_data/parser/ok/0067_where_for_pred.rast
new file mode 100644
index 000000000..8f8639a37
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0067_where_for_pred.rast
@@ -0,0 +1,392 @@
1[email protected]
2 [email protected]
3 [email protected] "fn"
4 [email protected] " "
5 [email protected]
6 [email protected] "for_trait"
7 [email protected]
8 [email protected] "<"
9 [email protected]
10 [email protected]
11 [email protected] "F"
12 [email protected] ">"
13 [email protected]
14 [email protected] "("
15 [email protected] ")"
16 [email protected] "\n"
17 [email protected]
18 [email protected] "where"
19 [email protected] "\n "
20 [email protected]
21 [email protected] "for"
22 [email protected]
23 [email protected] "<"
24 [email protected]
25 [email protected] "\'a"
26 [email protected] ">"
27 [email protected] " "
28 [email protected]
29 [email protected]
30 [email protected]
31 [email protected]
32 [email protected] "F"
33 [email protected] ":"
34 [email protected] " "
35 [email protected]
36 [email protected]
37 [email protected]
38 [email protected]
39 [email protected]
40 [email protected]
41 [email protected] "Fn"
42 [email protected]
43 [email protected] "("
44 [email protected]
45 [email protected]
46 [email protected] "&"
47 [email protected] "\'a"
48 [email protected] " "
49 [email protected]
50 [email protected]
51 [email protected]
52 [email protected]
53 [email protected] "str"
54 [email protected] ")"
55 [email protected] ","
56 [email protected] "\n"
57 [email protected]
58 [email protected] "{"
59 [email protected] "\n"
60 [email protected] "}"
61 [email protected] "\n"
62 [email protected]
63 [email protected] "fn"
64 [email protected] " "
65 [email protected]
66 [email protected] "for_ref"
67 [email protected]
68 [email protected] "<"
69 [email protected]
70 [email protected]
71 [email protected] "F"
72 [email protected] ">"
73 [email protected]
74 [email protected] "("
75 [email protected] ")"
76 [email protected] "\n"
77 [email protected]
78 [email protected] "where"
79 [email protected] "\n "
80 [email protected]
81 [email protected] "for"
82 [email protected]
83 [email protected] "<"
84 [email protected]
85 [email protected] "\'a"
86 [email protected] ">"
87 [email protected] " "
88 [email protected]
89 [email protected] "&"
90 [email protected] "\'a"
91 [email protected] " "
92 [email protected]
93 [email protected]
94 [email protected]
95 [email protected]
96 [email protected] "F"
97 [email protected] ":"
98 [email protected] " "
99 [email protected]
100 [email protected]
101 [email protected]
102 [email protected]
103 [email protected]
104 [email protected]
105 [email protected] "Debug"
106 [email protected] ","
107 [email protected] "\n"
108 [email protected]
109 [email protected] "{"
110 [email protected] "\n"
111 [email protected] "}"
112 [email protected] "\n"
113 [email protected]
114 [email protected] "fn"
115 [email protected] " "
116 [email protected]
117 [email protected] "for_parens"
118 [email protected]
119 [email protected] "<"
120 [email protected]
121 [email protected]
122 [email protected] "F"
123 [email protected] ">"
124 [email protected]
125 [email protected] "("
126 [email protected] ")"
127 [email protected] "\n"
128 [email protected]
129 [email protected] "where"
130 [email protected] "\n "
131 [email protected]
132 [email protected] "for"
133 [email protected]
134 [email protected] "<"
135 [email protected]
136 [email protected] "\'a"
137 [email protected] ">"
138 [email protected] " "
139 [email protected]
140 [email protected] "("
141 [email protected]
142 [email protected] "&"
143 [email protected] "\'a"
144 [email protected] " "
145 [email protected]
146 [email protected]
147 [email protected]
148 [email protected]
149 [email protected] "F"
150 [email protected] ")"
151 [email protected] ":"
152 [email protected] " "
153 [email protected]
154 [email protected]
155 [email protected]
156 [email protected]
157 [email protected]
158 [email protected]
159 [email protected] "Fn"
160 [email protected]
161 [email protected] "("
162 [email protected]
163 [email protected]
164 [email protected] "&"
165 [email protected] "\'a"
166 [email protected] " "
167 [email protected]
168 [email protected]
169 [email protected]
170 [email protected]
171 [email protected] "str"
172 [email protected] ")"
173 [email protected] ","
174 [email protected] "\n"
175 [email protected]
176 [email protected] "{"
177 [email protected] "\n"
178 [email protected] "}"
179 [email protected] "\n"
180 [email protected]
181 [email protected] "fn"
182 [email protected] " "
183 [email protected]
184 [email protected] "for_slice"
185 [email protected]
186 [email protected] "<"
187 [email protected]
188 [email protected]
189 [email protected] "F"
190 [email protected] ">"
191 [email protected]
192 [email protected] "("
193 [email protected] ")"
194 [email protected] "\n"
195 [email protected]
196 [email protected] "where"
197 [email protected] "\n "
198 [email protected]
199 [email protected] "for"
200 [email protected]
201 [email protected] "<"
202 [email protected]
203 [email protected] "\'a"
204 [email protected] ">"
205 [email protected] " "
206 [email protected]
207 [email protected] "["
208 [email protected]
209 [email protected] "&"
210 [email protected] "\'a"
211 [email protected] " "
212 [email protected]
213 [email protected]
214 [email protected]
215 [email protected]
216 [email protected] "F"
217 [email protected] "]"
218 [email protected] ":"
219 [email protected] " "
220 [email protected]
221 [email protected]
222 [email protected]
223 [email protected]
224 [email protected]
225 [email protected]
226 [email protected] "Eq"
227 [email protected] ","
228 [email protected] "\n"
229 [email protected]
230 [email protected] "{"
231 [email protected] "\n"
232 [email protected] "}"
233 [email protected] "\n"
234 [email protected]
235 [email protected] "fn"
236 [email protected] " "
237 [email protected]
238 [email protected] "for_qpath"
239 [email protected]
240 [email protected] "<"
241 [email protected]
242 [email protected]
243 [email protected] "T"
244 [email protected] ">"
245 [email protected]
246 [email protected] "("
247 [email protected]
248 [email protected]
249 [email protected]
250 [email protected] "_t"
251 [email protected] ":"
252 [email protected] " "
253 [email protected]
254 [email protected] "&"
255 [email protected]
256 [email protected]
257 [email protected]
258 [email protected]
259 [email protected] "T"
260 [email protected] ")"
261 [email protected] "\n"
262 [email protected]
263 [email protected] "where"
264 [email protected] "\n "
265 [email protected]
266 [email protected] "for"
267 [email protected]
268 [email protected] "<"
269 [email protected]
270 [email protected] "\'a"
271 [email protected] ">"
272 [email protected] " "
273 [email protected]
274 [email protected]
275 [email protected]
276 [email protected]
277 [email protected] "<"
278 [email protected]
279 [email protected] "&"
280 [email protected] "\'a"
281 [email protected] " "
282 [email protected]
283 [email protected]
284 [email protected]
285 [email protected]
286 [email protected] "T"
287 [email protected] " "
288 [email protected] "as"
289 [email protected] " "
290 [email protected]
291 [email protected]
292 [email protected]
293 [email protected]
294 [email protected] "Baz"
295 [email protected] ">"
296 [email protected] "::"
297 [email protected]
298 [email protected]
299 [email protected] "Foo"
300 [email protected] ":"
301 [email protected] " "
302 [email protected]
303 [email protected]
304 [email protected]
305 [email protected]
306 [email protected]
307 [email protected]
308 [email protected] "Iterator"
309 [email protected] ","
310 [email protected] "\n"
311 [email protected]
312 [email protected] "{"
313 [email protected] "\n"
314 [email protected] "}"
315 [email protected] "\n"
316 [email protected]
317 [email protected] "fn"
318 [email protected] " "
319 [email protected]
320 [email protected] "for_for_fn"
321 [email protected]
322 [email protected] "<"
323 [email protected]
324 [email protected]
325 [email protected] "T"
326 [email protected] ">"
327 [email protected]
328 [email protected] "("
329 [email protected] ")"
330 [email protected] "\n"
331 [email protected]
332 [email protected] "where"
333 [email protected] "\n "
334 [email protected]
335 [email protected] "for"
336 [email protected]
337 [email protected] "<"
338 [email protected]
339 [email protected] "\'a"
340 [email protected] ">"
341 [email protected] " "
342 [email protected]
343 [email protected] "for"
344 [email protected]
345 [email protected] "<"
346 [email protected]
347 [email protected] "\'b"
348 [email protected] ">"
349 [email protected] " "
350 [email protected]
351 [email protected] "fn"
352 [email protected]
353 [email protected] "("
354 [email protected]
355 [email protected]
356 [email protected] "&"
357 [email protected] "\'a"
358 [email protected] " "
359 [email protected]
360 [email protected]
361 [email protected]
362 [email protected]
363 [email protected] "T"
364 [email protected] ","
365 [email protected] " "
366 [email protected]
367 [email protected]
368 [email protected] "&"
369 [email protected] "\'b"
370 [email protected] " "
371 [email protected]
372 [email protected]
373 [email protected]
374 [email protected]
375 [email protected] "T"
376 [email protected] ")"
377 [email protected] ":"
378 [email protected] " "
379 [email protected]
380 [email protected]
381 [email protected]
382 [email protected]
383 [email protected]
384 [email protected]
385 [email protected] "Copy"
386 [email protected] ","
387 [email protected] "\n"
388 [email protected]
389 [email protected] "{"
390 [email protected] "\n"
391 [email protected] "}"
392 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0067_where_for_pred.rs b/crates/syntax/test_data/parser/ok/0067_where_for_pred.rs
new file mode 100644
index 000000000..9058c4619
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0067_where_for_pred.rs
@@ -0,0 +1,30 @@
1fn for_trait<F>()
2where
3 for<'a> F: Fn(&'a str),
4{
5}
6fn for_ref<F>()
7where
8 for<'a> &'a F: Debug,
9{
10}
11fn for_parens<F>()
12where
13 for<'a> (&'a F): Fn(&'a str),
14{
15}
16fn for_slice<F>()
17where
18 for<'a> [&'a F]: Eq,
19{
20}
21fn for_qpath<T>(_t: &T)
22where
23 for<'a> <&'a T as Baz>::Foo: Iterator,
24{
25}
26fn for_for_fn<T>()
27where
28 for<'a> for<'b> fn(&'a T, &'b T): Copy,
29{
30}
diff --git a/crates/syntax/test_data/parser/ok/0068_item_modifiers.rast b/crates/syntax/test_data/parser/ok/0068_item_modifiers.rast
new file mode 100644
index 000000000..50a6d8ee9
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0068_item_modifiers.rast
@@ -0,0 +1,218 @@
1[email protected]
2 [email protected]
3 [email protected] "async"
4 [email protected] " "
5 [email protected] "fn"
6 [email protected] " "
7 [email protected]
8 [email protected] "foo"
9 [email protected]
10 [email protected] "("
11 [email protected] ")"
12 [email protected] " "
13 [email protected]
14 [email protected] "{"
15 [email protected] "}"
16 [email protected] "\n"
17 [email protected]
18 [email protected]
19 [email protected] "extern"
20 [email protected] " "
21 [email protected] "fn"
22 [email protected] " "
23 [email protected]
24 [email protected] "foo"
25 [email protected]
26 [email protected] "("
27 [email protected] ")"
28 [email protected] " "
29 [email protected]
30 [email protected] "{"
31 [email protected] "}"
32 [email protected] "\n"
33 [email protected]
34 [email protected] "const"
35 [email protected] " "
36 [email protected] "fn"
37 [email protected] " "
38 [email protected]
39 [email protected] "foo"
40 [email protected]
41 [email protected] "("
42 [email protected] ")"
43 [email protected] " "
44 [email protected]
45 [email protected] "{"
46 [email protected] "}"
47 [email protected] "\n"
48 [email protected]
49 [email protected] "const"
50 [email protected] " "
51 [email protected] "unsafe"
52 [email protected] " "
53 [email protected] "fn"
54 [email protected] " "
55 [email protected]
56 [email protected] "foo"
57 [email protected]
58 [email protected] "("
59 [email protected] ")"
60 [email protected] " "
61 [email protected]
62 [email protected] "{"
63 [email protected] "}"
64 [email protected] "\n"
65 [email protected]
66 [email protected] "unsafe"
67 [email protected] " "
68 [email protected]
69 [email protected] "extern"
70 [email protected] " "
71 [email protected] "\"C\""
72 [email protected] " "
73 [email protected] "fn"
74 [email protected] " "
75 [email protected]
76 [email protected] "foo"
77 [email protected]
78 [email protected] "("
79 [email protected] ")"
80 [email protected] " "
81 [email protected]
82 [email protected] "{"
83 [email protected] "}"
84 [email protected] "\n"
85 [email protected]
86 [email protected] "unsafe"
87 [email protected] " "
88 [email protected] "fn"
89 [email protected] " "
90 [email protected]
91 [email protected] "foo"
92 [email protected]
93 [email protected] "("
94 [email protected] ")"
95 [email protected] " "
96 [email protected]
97 [email protected] "{"
98 [email protected] "}"
99 [email protected] "\n"
100 [email protected]
101 [email protected] "async"
102 [email protected] " "
103 [email protected] "unsafe"
104 [email protected] " "
105 [email protected] "fn"
106 [email protected] " "
107 [email protected]
108 [email protected] "foo"
109 [email protected]
110 [email protected] "("
111 [email protected] ")"
112 [email protected] " "
113 [email protected]
114 [email protected] "{"
115 [email protected] "}"
116 [email protected] "\n"
117 [email protected]
118 [email protected] "const"
119 [email protected] " "
120 [email protected] "unsafe"
121 [email protected] " "
122 [email protected] "fn"
123 [email protected] " "
124 [email protected]
125 [email protected] "bar"
126 [email protected]
127 [email protected] "("
128 [email protected] ")"
129 [email protected] " "
130 [email protected]
131 [email protected] "{"
132 [email protected] "}"
133 [email protected] "\n\n"
134 [email protected]
135 [email protected] "unsafe"
136 [email protected] " "
137 [email protected] "trait"
138 [email protected] " "
139 [email protected]
140 [email protected] "T"
141 [email protected] " "
142 [email protected]
143 [email protected] "{"
144 [email protected] "}"
145 [email protected] "\n"
146 [email protected]
147 [email protected] "auto"
148 [email protected] " "
149 [email protected] "trait"
150 [email protected] " "
151 [email protected]
152 [email protected] "T"
153 [email protected] " "
154 [email protected]
155 [email protected] "{"
156 [email protected] "}"
157 [email protected] "\n"
158 [email protected]
159 [email protected] "unsafe"
160 [email protected] " "
161 [email protected] "auto"
162 [email protected] " "
163 [email protected] "trait"
164 [email protected] " "
165 [email protected]
166 [email protected] "T"
167 [email protected] " "
168 [email protected]
169 [email protected] "{"
170 [email protected] "}"
171 [email protected] "\n\n"
172 [email protected]
173 [email protected] "unsafe"
174 [email protected] " "
175 [email protected] "impl"
176 [email protected] " "
177 [email protected]
178 [email protected]
179 [email protected]
180 [email protected]
181 [email protected] "Foo"
182 [email protected] " "
183 [email protected]
184 [email protected] "{"
185 [email protected] "}"
186 [email protected] "\n"
187 [email protected]
188 [email protected] "default"
189 [email protected] " "
190 [email protected] "impl"
191 [email protected] " "
192 [email protected]
193 [email protected]
194 [email protected]
195 [email protected]
196 [email protected] "Foo"
197 [email protected] " "
198 [email protected]
199 [email protected] "{"
200 [email protected] "}"
201 [email protected] "\n"
202 [email protected]
203 [email protected] "unsafe"
204 [email protected] " "
205 [email protected] "default"
206 [email protected] " "
207 [email protected] "impl"
208 [email protected] " "
209 [email protected]
210 [email protected]
211 [email protected]
212 [email protected]
213 [email protected] "Foo"
214 [email protected] " "
215 [email protected]
216 [email protected] "{"
217 [email protected] "}"
218 [email protected] "\n"
diff --git a/crates/syntax/test_data/parser/ok/0068_item_modifiers.rs b/crates/syntax/test_data/parser/ok/0068_item_modifiers.rs
new file mode 100644
index 000000000..8d697c04b
--- /dev/null
+++ b/crates/syntax/test_data/parser/ok/0068_item_modifiers.rs
@@ -0,0 +1,16 @@
1async fn foo() {}
2extern fn foo() {}
3const fn foo() {}
4const unsafe fn foo() {}
5unsafe extern "C" fn foo() {}
6unsafe fn foo() {}
7async unsafe fn foo() {}
8const unsafe fn bar() {}
9
10unsafe trait T {}
11auto trait T {}
12unsafe auto trait T {}
13
14unsafe impl Foo {}
15default impl Foo {}
16unsafe default impl Foo {}