From 7c67612b8a894187fa3b64725531a5459f9211bf Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Fri, 10 Aug 2018 22:33:29 +0300 Subject: organizize --- .../libsyntax2/tests/data/parser/ok/0000_empty.rs | 0 .../libsyntax2/tests/data/parser/ok/0000_empty.txt | 1 + .../tests/data/parser/ok/0001_struct_item.rs | 3 + .../tests/data/parser/ok/0001_struct_item.txt | 10 + .../tests/data/parser/ok/0002_struct_item_field.rs | 3 + .../data/parser/ok/0002_struct_item_field.txt | 21 ++ .../tests/data/parser/ok/0004_file_shebang.rs | 1 + .../tests/data/parser/ok/0004_file_shebang.txt | 2 + .../tests/data/parser/ok/0005_fn_item.rs | 2 + .../tests/data/parser/ok/0005_fn_item.txt | 15 ++ .../tests/data/parser/ok/0006_inner_attributes.rs | 10 + .../tests/data/parser/ok/0006_inner_attributes.txt | 176 ++++++++++++++ .../tests/data/parser/ok/0007_extern_crate.rs | 2 + .../tests/data/parser/ok/0007_extern_crate.txt | 25 ++ .../tests/data/parser/ok/0008_mod_item.rs | 17 ++ .../tests/data/parser/ok/0008_mod_item.txt | 85 +++++++ .../tests/data/parser/ok/0009_use_item.rs | 2 + .../tests/data/parser/ok/0009_use_item.txt | 21 ++ .../tests/data/parser/ok/0010_use_path_segments.rs | 2 + .../data/parser/ok/0010_use_path_segments.txt | 42 ++++ .../tests/data/parser/ok/0011_outer_attribute.rs | 3 + .../tests/data/parser/ok/0011_outer_attribute.txt | 32 +++ .../tests/data/parser/ok/0012_visibility.rs | 5 + .../tests/data/parser/ok/0012_visibility.txt | 102 +++++++++ .../data/parser/ok/0013_use_path_self_super.rs | 3 + .../data/parser/ok/0013_use_path_self_super.txt | 57 +++++ .../tests/data/parser/ok/0014_use_tree.rs | 7 + .../tests/data/parser/ok/0014_use_tree.txt | 91 ++++++++ .../tests/data/parser/ok/0015_use_tree.rs | 2 + .../tests/data/parser/ok/0015_use_tree.txt | 64 ++++++ .../tests/data/parser/ok/0016_struct_flavors.rs | 10 + .../tests/data/parser/ok/0016_struct_flavors.txt | 89 +++++++ .../data/parser/ok/0017_attr_trailing_comma.rs | 2 + .../data/parser/ok/0017_attr_trailing_comma.txt | 26 +++ .../data/parser/ok/0018_struct_type_params.rs | 17 ++ .../data/parser/ok/0018_struct_type_params.txt | 255 +++++++++++++++++++++ .../libsyntax2/tests/data/parser/ok/0019_enums.rs | 25 ++ .../libsyntax2/tests/data/parser/ok/0019_enums.txt | 146 ++++++++++++ .../tests/data/parser/ok/0020_type_param_bounds.rs | 9 + .../data/parser/ok/0020_type_param_bounds.txt | 193 ++++++++++++++++ .../tests/data/parser/ok/0021_extern_fn.rs | 8 + .../tests/data/parser/ok/0021_extern_fn.txt | 56 +++++ .../data/parser/ok/0022_empty_extern_block.rs | 5 + .../data/parser/ok/0022_empty_extern_block.txt | 19 ++ .../tests/data/parser/ok/0023_static_items.rs | 2 + .../tests/data/parser/ok/0023_static_items.txt | 41 ++++ .../tests/data/parser/ok/0024_const_item.rs | 2 + .../tests/data/parser/ok/0024_const_item.txt | 41 ++++ .../data/parser/ok/0025_extern_fn_in_block.rs | 3 + .../data/parser/ok/0025_extern_fn_in_block.txt | 31 +++ .../tests/data/parser/ok/0026_const_fn_in_block.rs | 3 + .../data/parser/ok/0026_const_fn_in_block.txt | 30 +++ .../data/parser/ok/0027_unsafe_fn_in_block.rs | 4 + .../data/parser/ok/0027_unsafe_fn_in_block.txt | 40 ++++ .../data/parser/ok/0028_operator_binding_power.rs | 14 ++ .../data/parser/ok/0028_operator_binding_power.txt | 185 +++++++++++++++ .../tests/data/parser/ok/0029_range_forms.rs | 6 + .../tests/data/parser/ok/0029_range_forms.txt | 83 +++++++ 58 files changed, 2151 insertions(+) create mode 100644 crates/libsyntax2/tests/data/parser/ok/0000_empty.rs create mode 100644 crates/libsyntax2/tests/data/parser/ok/0000_empty.txt create mode 100644 crates/libsyntax2/tests/data/parser/ok/0001_struct_item.rs create mode 100644 crates/libsyntax2/tests/data/parser/ok/0001_struct_item.txt create mode 100644 crates/libsyntax2/tests/data/parser/ok/0002_struct_item_field.rs create mode 100644 crates/libsyntax2/tests/data/parser/ok/0002_struct_item_field.txt create mode 100644 crates/libsyntax2/tests/data/parser/ok/0004_file_shebang.rs create mode 100644 crates/libsyntax2/tests/data/parser/ok/0004_file_shebang.txt create mode 100644 crates/libsyntax2/tests/data/parser/ok/0005_fn_item.rs create mode 100644 crates/libsyntax2/tests/data/parser/ok/0005_fn_item.txt create mode 100644 crates/libsyntax2/tests/data/parser/ok/0006_inner_attributes.rs create mode 100644 crates/libsyntax2/tests/data/parser/ok/0006_inner_attributes.txt create mode 100644 crates/libsyntax2/tests/data/parser/ok/0007_extern_crate.rs create mode 100644 crates/libsyntax2/tests/data/parser/ok/0007_extern_crate.txt create mode 100644 crates/libsyntax2/tests/data/parser/ok/0008_mod_item.rs create mode 100644 crates/libsyntax2/tests/data/parser/ok/0008_mod_item.txt create mode 100644 crates/libsyntax2/tests/data/parser/ok/0009_use_item.rs create mode 100644 crates/libsyntax2/tests/data/parser/ok/0009_use_item.txt create mode 100644 crates/libsyntax2/tests/data/parser/ok/0010_use_path_segments.rs create mode 100644 crates/libsyntax2/tests/data/parser/ok/0010_use_path_segments.txt create mode 100644 crates/libsyntax2/tests/data/parser/ok/0011_outer_attribute.rs create mode 100644 crates/libsyntax2/tests/data/parser/ok/0011_outer_attribute.txt create mode 100644 crates/libsyntax2/tests/data/parser/ok/0012_visibility.rs create mode 100644 crates/libsyntax2/tests/data/parser/ok/0012_visibility.txt create mode 100644 crates/libsyntax2/tests/data/parser/ok/0013_use_path_self_super.rs create mode 100644 crates/libsyntax2/tests/data/parser/ok/0013_use_path_self_super.txt create mode 100644 crates/libsyntax2/tests/data/parser/ok/0014_use_tree.rs create mode 100644 crates/libsyntax2/tests/data/parser/ok/0014_use_tree.txt create mode 100644 crates/libsyntax2/tests/data/parser/ok/0015_use_tree.rs create mode 100644 crates/libsyntax2/tests/data/parser/ok/0015_use_tree.txt create mode 100644 crates/libsyntax2/tests/data/parser/ok/0016_struct_flavors.rs create mode 100644 crates/libsyntax2/tests/data/parser/ok/0016_struct_flavors.txt create mode 100644 crates/libsyntax2/tests/data/parser/ok/0017_attr_trailing_comma.rs create mode 100644 crates/libsyntax2/tests/data/parser/ok/0017_attr_trailing_comma.txt create mode 100644 crates/libsyntax2/tests/data/parser/ok/0018_struct_type_params.rs create mode 100644 crates/libsyntax2/tests/data/parser/ok/0018_struct_type_params.txt create mode 100644 crates/libsyntax2/tests/data/parser/ok/0019_enums.rs create mode 100644 crates/libsyntax2/tests/data/parser/ok/0019_enums.txt create mode 100644 crates/libsyntax2/tests/data/parser/ok/0020_type_param_bounds.rs create mode 100644 crates/libsyntax2/tests/data/parser/ok/0020_type_param_bounds.txt create mode 100644 crates/libsyntax2/tests/data/parser/ok/0021_extern_fn.rs create mode 100644 crates/libsyntax2/tests/data/parser/ok/0021_extern_fn.txt create mode 100644 crates/libsyntax2/tests/data/parser/ok/0022_empty_extern_block.rs create mode 100644 crates/libsyntax2/tests/data/parser/ok/0022_empty_extern_block.txt create mode 100644 crates/libsyntax2/tests/data/parser/ok/0023_static_items.rs create mode 100644 crates/libsyntax2/tests/data/parser/ok/0023_static_items.txt create mode 100644 crates/libsyntax2/tests/data/parser/ok/0024_const_item.rs create mode 100644 crates/libsyntax2/tests/data/parser/ok/0024_const_item.txt create mode 100644 crates/libsyntax2/tests/data/parser/ok/0025_extern_fn_in_block.rs create mode 100644 crates/libsyntax2/tests/data/parser/ok/0025_extern_fn_in_block.txt create mode 100644 crates/libsyntax2/tests/data/parser/ok/0026_const_fn_in_block.rs create mode 100644 crates/libsyntax2/tests/data/parser/ok/0026_const_fn_in_block.txt create mode 100644 crates/libsyntax2/tests/data/parser/ok/0027_unsafe_fn_in_block.rs create mode 100644 crates/libsyntax2/tests/data/parser/ok/0027_unsafe_fn_in_block.txt create mode 100644 crates/libsyntax2/tests/data/parser/ok/0028_operator_binding_power.rs create mode 100644 crates/libsyntax2/tests/data/parser/ok/0028_operator_binding_power.txt create mode 100644 crates/libsyntax2/tests/data/parser/ok/0029_range_forms.rs create mode 100644 crates/libsyntax2/tests/data/parser/ok/0029_range_forms.txt (limited to 'crates/libsyntax2/tests/data/parser/ok') diff --git a/crates/libsyntax2/tests/data/parser/ok/0000_empty.rs b/crates/libsyntax2/tests/data/parser/ok/0000_empty.rs new file mode 100644 index 000000000..e69de29bb diff --git a/crates/libsyntax2/tests/data/parser/ok/0000_empty.txt b/crates/libsyntax2/tests/data/parser/ok/0000_empty.txt new file mode 100644 index 000000000..54be3e7bc --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0000_empty.txt @@ -0,0 +1 @@ +FILE@[0; 0) diff --git a/crates/libsyntax2/tests/data/parser/ok/0001_struct_item.rs b/crates/libsyntax2/tests/data/parser/ok/0001_struct_item.rs new file mode 100644 index 000000000..d3a8c1d23 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0001_struct_item.rs @@ -0,0 +1,3 @@ +struct S { + +} \ No newline at end of file diff --git a/crates/libsyntax2/tests/data/parser/ok/0001_struct_item.txt b/crates/libsyntax2/tests/data/parser/ok/0001_struct_item.txt new file mode 100644 index 000000000..3d5b5cb7f --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0001_struct_item.txt @@ -0,0 +1,10 @@ +FILE@[0; 13) + STRUCT_ITEM@[0; 13) + STRUCT_KW@[0; 6) + WHITESPACE@[6; 7) + NAME@[7; 8) + IDENT@[7; 8) "S" + WHITESPACE@[8; 9) + L_CURLY@[9; 10) + WHITESPACE@[10; 12) + R_CURLY@[12; 13) diff --git a/crates/libsyntax2/tests/data/parser/ok/0002_struct_item_field.rs b/crates/libsyntax2/tests/data/parser/ok/0002_struct_item_field.rs new file mode 100644 index 000000000..cc3866d25 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0002_struct_item_field.rs @@ -0,0 +1,3 @@ +struct S { + foo: u32 +} \ No newline at end of file diff --git a/crates/libsyntax2/tests/data/parser/ok/0002_struct_item_field.txt b/crates/libsyntax2/tests/data/parser/ok/0002_struct_item_field.txt new file mode 100644 index 000000000..1129ce39e --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0002_struct_item_field.txt @@ -0,0 +1,21 @@ +FILE@[0; 25) + STRUCT_ITEM@[0; 25) + STRUCT_KW@[0; 6) + WHITESPACE@[6; 7) + NAME@[7; 8) + IDENT@[7; 8) "S" + WHITESPACE@[8; 9) + L_CURLY@[9; 10) + WHITESPACE@[10; 15) + NAMED_FIELD@[15; 23) + NAME@[15; 18) + IDENT@[15; 18) "foo" + COLON@[18; 19) + WHITESPACE@[19; 20) + PATH_TYPE@[20; 23) + PATH@[20; 23) + PATH_SEGMENT@[20; 23) + NAME_REF@[20; 23) + IDENT@[20; 23) "u32" + WHITESPACE@[23; 24) + R_CURLY@[24; 25) diff --git a/crates/libsyntax2/tests/data/parser/ok/0004_file_shebang.rs b/crates/libsyntax2/tests/data/parser/ok/0004_file_shebang.rs new file mode 100644 index 000000000..53dc9e617 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0004_file_shebang.rs @@ -0,0 +1 @@ +#!/use/bin/env rusti \ No newline at end of file diff --git a/crates/libsyntax2/tests/data/parser/ok/0004_file_shebang.txt b/crates/libsyntax2/tests/data/parser/ok/0004_file_shebang.txt new file mode 100644 index 000000000..33055cf3d --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0004_file_shebang.txt @@ -0,0 +1,2 @@ +FILE@[0; 20) + SHEBANG@[0; 20) diff --git a/crates/libsyntax2/tests/data/parser/ok/0005_fn_item.rs b/crates/libsyntax2/tests/data/parser/ok/0005_fn_item.rs new file mode 100644 index 000000000..03210551c --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0005_fn_item.rs @@ -0,0 +1,2 @@ +fn foo() { +} diff --git a/crates/libsyntax2/tests/data/parser/ok/0005_fn_item.txt b/crates/libsyntax2/tests/data/parser/ok/0005_fn_item.txt new file mode 100644 index 000000000..4ab93d408 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0005_fn_item.txt @@ -0,0 +1,15 @@ +FILE@[0; 13) + FUNCTION@[0; 12) + FN_KW@[0; 2) + WHITESPACE@[2; 3) + NAME@[3; 6) + IDENT@[3; 6) "foo" + PARAM_LIST@[6; 8) + L_PAREN@[6; 7) + R_PAREN@[7; 8) + WHITESPACE@[8; 9) + BLOCK_EXPR@[9; 12) + L_CURLY@[9; 10) + WHITESPACE@[10; 11) + R_CURLY@[11; 12) + WHITESPACE@[12; 13) diff --git a/crates/libsyntax2/tests/data/parser/ok/0006_inner_attributes.rs b/crates/libsyntax2/tests/data/parser/ok/0006_inner_attributes.rs new file mode 100644 index 000000000..e81f8b1e8 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0006_inner_attributes.rs @@ -0,0 +1,10 @@ +#![attr] +#![attr(true)] +#![attr(ident)] +#![attr(ident, 100, true, "true", ident = 100, ident = "hello", ident(100))] +#![attr(100)] +#![attr(enabled = true)] +#![enabled(true)] +#![attr("hello")] +#![repr(C, align = 4)] +#![repr(C, align(4))] \ No newline at end of file diff --git a/crates/libsyntax2/tests/data/parser/ok/0006_inner_attributes.txt b/crates/libsyntax2/tests/data/parser/ok/0006_inner_attributes.txt new file mode 100644 index 000000000..562c8d917 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0006_inner_attributes.txt @@ -0,0 +1,176 @@ +FILE@[0; 236) + ATTR@[0; 8) + POUND@[0; 1) + EXCL@[1; 2) + L_BRACK@[2; 3) + META_ITEM@[3; 7) + IDENT@[3; 7) "attr" + R_BRACK@[7; 8) + WHITESPACE@[8; 9) + ATTR@[9; 23) + POUND@[9; 10) + EXCL@[10; 11) + L_BRACK@[11; 12) + META_ITEM@[12; 22) + IDENT@[12; 16) "attr" + L_PAREN@[16; 17) + LITERAL@[17; 21) + TRUE_KW@[17; 21) + R_PAREN@[21; 22) + R_BRACK@[22; 23) + WHITESPACE@[23; 24) + ATTR@[24; 39) + POUND@[24; 25) + EXCL@[25; 26) + L_BRACK@[26; 27) + META_ITEM@[27; 38) + IDENT@[27; 31) "attr" + L_PAREN@[31; 32) + META_ITEM@[32; 37) + IDENT@[32; 37) "ident" + R_PAREN@[37; 38) + R_BRACK@[38; 39) + WHITESPACE@[39; 40) + ATTR@[40; 116) + POUND@[40; 41) + EXCL@[41; 42) + L_BRACK@[42; 43) + META_ITEM@[43; 115) + IDENT@[43; 47) "attr" + L_PAREN@[47; 48) + META_ITEM@[48; 53) + IDENT@[48; 53) "ident" + COMMA@[53; 54) + WHITESPACE@[54; 55) + LITERAL@[55; 58) + INT_NUMBER@[55; 58) "100" + COMMA@[58; 59) + WHITESPACE@[59; 60) + LITERAL@[60; 64) + TRUE_KW@[60; 64) + COMMA@[64; 65) + WHITESPACE@[65; 66) + LITERAL@[66; 72) + STRING@[66; 72) + COMMA@[72; 73) + WHITESPACE@[73; 74) + META_ITEM@[74; 85) + IDENT@[74; 79) "ident" + WHITESPACE@[79; 80) + EQ@[80; 81) + WHITESPACE@[81; 82) + LITERAL@[82; 85) + INT_NUMBER@[82; 85) "100" + COMMA@[85; 86) + WHITESPACE@[86; 87) + META_ITEM@[87; 102) + IDENT@[87; 92) "ident" + WHITESPACE@[92; 93) + EQ@[93; 94) + WHITESPACE@[94; 95) + LITERAL@[95; 102) + STRING@[95; 102) + COMMA@[102; 103) + WHITESPACE@[103; 104) + META_ITEM@[104; 114) + IDENT@[104; 109) "ident" + L_PAREN@[109; 110) + LITERAL@[110; 113) + INT_NUMBER@[110; 113) "100" + R_PAREN@[113; 114) + R_PAREN@[114; 115) + R_BRACK@[115; 116) + WHITESPACE@[116; 117) + ATTR@[117; 130) + POUND@[117; 118) + EXCL@[118; 119) + L_BRACK@[119; 120) + META_ITEM@[120; 129) + IDENT@[120; 124) "attr" + L_PAREN@[124; 125) + LITERAL@[125; 128) + INT_NUMBER@[125; 128) "100" + R_PAREN@[128; 129) + R_BRACK@[129; 130) + WHITESPACE@[130; 131) + ATTR@[131; 155) + POUND@[131; 132) + EXCL@[132; 133) + L_BRACK@[133; 134) + META_ITEM@[134; 154) + IDENT@[134; 138) "attr" + L_PAREN@[138; 139) + META_ITEM@[139; 153) + IDENT@[139; 146) "enabled" + WHITESPACE@[146; 147) + EQ@[147; 148) + WHITESPACE@[148; 149) + LITERAL@[149; 153) + TRUE_KW@[149; 153) + R_PAREN@[153; 154) + R_BRACK@[154; 155) + WHITESPACE@[155; 156) + ATTR@[156; 173) + POUND@[156; 157) + EXCL@[157; 158) + L_BRACK@[158; 159) + META_ITEM@[159; 172) + IDENT@[159; 166) "enabled" + L_PAREN@[166; 167) + LITERAL@[167; 171) + TRUE_KW@[167; 171) + R_PAREN@[171; 172) + R_BRACK@[172; 173) + WHITESPACE@[173; 174) + ATTR@[174; 191) + POUND@[174; 175) + EXCL@[175; 176) + L_BRACK@[176; 177) + META_ITEM@[177; 190) + IDENT@[177; 181) "attr" + L_PAREN@[181; 182) + LITERAL@[182; 189) + STRING@[182; 189) + R_PAREN@[189; 190) + R_BRACK@[190; 191) + WHITESPACE@[191; 192) + ATTR@[192; 214) + POUND@[192; 193) + EXCL@[193; 194) + L_BRACK@[194; 195) + META_ITEM@[195; 213) + IDENT@[195; 199) "repr" + L_PAREN@[199; 200) + META_ITEM@[200; 201) + IDENT@[200; 201) "C" + COMMA@[201; 202) + WHITESPACE@[202; 203) + META_ITEM@[203; 212) + IDENT@[203; 208) "align" + WHITESPACE@[208; 209) + EQ@[209; 210) + WHITESPACE@[210; 211) + LITERAL@[211; 212) + INT_NUMBER@[211; 212) "4" + R_PAREN@[212; 213) + R_BRACK@[213; 214) + WHITESPACE@[214; 215) + ATTR@[215; 236) + POUND@[215; 216) + EXCL@[216; 217) + L_BRACK@[217; 218) + META_ITEM@[218; 235) + IDENT@[218; 222) "repr" + L_PAREN@[222; 223) + META_ITEM@[223; 224) + IDENT@[223; 224) "C" + COMMA@[224; 225) + WHITESPACE@[225; 226) + META_ITEM@[226; 234) + IDENT@[226; 231) "align" + L_PAREN@[231; 232) + LITERAL@[232; 233) + INT_NUMBER@[232; 233) "4" + R_PAREN@[233; 234) + R_PAREN@[234; 235) + R_BRACK@[235; 236) diff --git a/crates/libsyntax2/tests/data/parser/ok/0007_extern_crate.rs b/crates/libsyntax2/tests/data/parser/ok/0007_extern_crate.rs new file mode 100644 index 000000000..3ce336676 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0007_extern_crate.rs @@ -0,0 +1,2 @@ +extern crate foo; +extern crate foo as bar; diff --git a/crates/libsyntax2/tests/data/parser/ok/0007_extern_crate.txt b/crates/libsyntax2/tests/data/parser/ok/0007_extern_crate.txt new file mode 100644 index 000000000..533af33c4 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0007_extern_crate.txt @@ -0,0 +1,25 @@ +FILE@[0; 43) + EXTERN_CRATE_ITEM@[0; 17) + EXTERN_KW@[0; 6) + WHITESPACE@[6; 7) + CRATE_KW@[7; 12) + WHITESPACE@[12; 13) + NAME@[13; 16) + IDENT@[13; 16) "foo" + SEMI@[16; 17) + WHITESPACE@[17; 18) + EXTERN_CRATE_ITEM@[18; 42) + EXTERN_KW@[18; 24) + WHITESPACE@[24; 25) + CRATE_KW@[25; 30) + WHITESPACE@[30; 31) + NAME@[31; 34) + IDENT@[31; 34) "foo" + WHITESPACE@[34; 35) + ALIAS@[35; 41) + AS_KW@[35; 37) + WHITESPACE@[37; 38) + NAME@[38; 41) + IDENT@[38; 41) "bar" + SEMI@[41; 42) + WHITESPACE@[42; 43) diff --git a/crates/libsyntax2/tests/data/parser/ok/0008_mod_item.rs b/crates/libsyntax2/tests/data/parser/ok/0008_mod_item.rs new file mode 100644 index 000000000..d22993bc1 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0008_mod_item.rs @@ -0,0 +1,17 @@ +mod a; + +mod b { +} + +mod c { + fn foo() { + } + struct S {} +} + +mod d { + #![attr] + mod e; + mod f { + } +} \ No newline at end of file diff --git a/crates/libsyntax2/tests/data/parser/ok/0008_mod_item.txt b/crates/libsyntax2/tests/data/parser/ok/0008_mod_item.txt new file mode 100644 index 000000000..1dcaaedce --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0008_mod_item.txt @@ -0,0 +1,85 @@ +FILE@[0; 118) + MOD_ITEM@[0; 6) + MOD_KW@[0; 3) + WHITESPACE@[3; 4) + NAME@[4; 5) + IDENT@[4; 5) "a" + SEMI@[5; 6) + WHITESPACE@[6; 8) + MOD_ITEM@[8; 17) + MOD_KW@[8; 11) + WHITESPACE@[11; 12) + NAME@[12; 13) + IDENT@[12; 13) "b" + WHITESPACE@[13; 14) + L_CURLY@[14; 15) + WHITESPACE@[15; 16) + R_CURLY@[16; 17) + WHITESPACE@[17; 19) + MOD_ITEM@[19; 65) + MOD_KW@[19; 22) + WHITESPACE@[22; 23) + NAME@[23; 24) + IDENT@[23; 24) "c" + WHITESPACE@[24; 25) + L_CURLY@[25; 26) + WHITESPACE@[26; 31) + FUNCTION@[31; 47) + FN_KW@[31; 33) + WHITESPACE@[33; 34) + NAME@[34; 37) + IDENT@[34; 37) "foo" + PARAM_LIST@[37; 39) + L_PAREN@[37; 38) + R_PAREN@[38; 39) + WHITESPACE@[39; 40) + BLOCK_EXPR@[40; 47) + L_CURLY@[40; 41) + WHITESPACE@[41; 46) + R_CURLY@[46; 47) + WHITESPACE@[47; 52) + STRUCT_ITEM@[52; 63) + STRUCT_KW@[52; 58) + WHITESPACE@[58; 59) + NAME@[59; 60) + IDENT@[59; 60) "S" + WHITESPACE@[60; 61) + L_CURLY@[61; 62) + R_CURLY@[62; 63) + WHITESPACE@[63; 64) + R_CURLY@[64; 65) + WHITESPACE@[65; 67) + MOD_ITEM@[67; 118) + MOD_KW@[67; 70) + WHITESPACE@[70; 71) + NAME@[71; 72) + IDENT@[71; 72) "d" + WHITESPACE@[72; 73) + L_CURLY@[73; 74) + WHITESPACE@[74; 79) + ATTR@[79; 87) + POUND@[79; 80) + EXCL@[80; 81) + L_BRACK@[81; 82) + META_ITEM@[82; 86) + IDENT@[82; 86) "attr" + R_BRACK@[86; 87) + WHITESPACE@[87; 92) + MOD_ITEM@[92; 98) + MOD_KW@[92; 95) + WHITESPACE@[95; 96) + NAME@[96; 97) + IDENT@[96; 97) "e" + SEMI@[97; 98) + WHITESPACE@[98; 103) + MOD_ITEM@[103; 116) + MOD_KW@[103; 106) + WHITESPACE@[106; 107) + NAME@[107; 108) + IDENT@[107; 108) "f" + WHITESPACE@[108; 109) + L_CURLY@[109; 110) + WHITESPACE@[110; 115) + R_CURLY@[115; 116) + WHITESPACE@[116; 117) + R_CURLY@[117; 118) diff --git a/crates/libsyntax2/tests/data/parser/ok/0009_use_item.rs b/crates/libsyntax2/tests/data/parser/ok/0009_use_item.rs new file mode 100644 index 000000000..05a6aff83 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0009_use_item.rs @@ -0,0 +1,2 @@ +use foo; +use ::bar; \ No newline at end of file diff --git a/crates/libsyntax2/tests/data/parser/ok/0009_use_item.txt b/crates/libsyntax2/tests/data/parser/ok/0009_use_item.txt new file mode 100644 index 000000000..8f850cd1c --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0009_use_item.txt @@ -0,0 +1,21 @@ +FILE@[0; 19) + USE_ITEM@[0; 8) + USE_KW@[0; 3) + WHITESPACE@[3; 4) + USE_TREE@[4; 7) + PATH@[4; 7) + PATH_SEGMENT@[4; 7) + NAME_REF@[4; 7) + IDENT@[4; 7) "foo" + SEMI@[7; 8) + WHITESPACE@[8; 9) + USE_ITEM@[9; 19) + USE_KW@[9; 12) + WHITESPACE@[12; 13) + USE_TREE@[13; 18) + PATH@[13; 18) + PATH_SEGMENT@[13; 18) + COLONCOLON@[13; 15) + NAME_REF@[15; 18) + IDENT@[15; 18) "bar" + SEMI@[18; 19) diff --git a/crates/libsyntax2/tests/data/parser/ok/0010_use_path_segments.rs b/crates/libsyntax2/tests/data/parser/ok/0010_use_path_segments.rs new file mode 100644 index 000000000..1e71b7a6c --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0010_use_path_segments.rs @@ -0,0 +1,2 @@ +use ::foo::bar::baz; +use foo::bar::baz; diff --git a/crates/libsyntax2/tests/data/parser/ok/0010_use_path_segments.txt b/crates/libsyntax2/tests/data/parser/ok/0010_use_path_segments.txt new file mode 100644 index 000000000..03ec342c2 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0010_use_path_segments.txt @@ -0,0 +1,42 @@ +FILE@[0; 40) + USE_ITEM@[0; 20) + USE_KW@[0; 3) + WHITESPACE@[3; 4) + USE_TREE@[4; 19) + PATH@[4; 19) + PATH@[4; 14) + PATH@[4; 9) + PATH_SEGMENT@[4; 9) + COLONCOLON@[4; 6) + NAME_REF@[6; 9) + IDENT@[6; 9) "foo" + COLONCOLON@[9; 11) + PATH_SEGMENT@[11; 14) + NAME_REF@[11; 14) + IDENT@[11; 14) "bar" + COLONCOLON@[14; 16) + PATH_SEGMENT@[16; 19) + NAME_REF@[16; 19) + IDENT@[16; 19) "baz" + SEMI@[19; 20) + WHITESPACE@[20; 21) + USE_ITEM@[21; 39) + USE_KW@[21; 24) + WHITESPACE@[24; 25) + USE_TREE@[25; 38) + PATH@[25; 38) + PATH@[25; 33) + PATH@[25; 28) + PATH_SEGMENT@[25; 28) + NAME_REF@[25; 28) + IDENT@[25; 28) "foo" + COLONCOLON@[28; 30) + PATH_SEGMENT@[30; 33) + NAME_REF@[30; 33) + IDENT@[30; 33) "bar" + COLONCOLON@[33; 35) + PATH_SEGMENT@[35; 38) + NAME_REF@[35; 38) + IDENT@[35; 38) "baz" + SEMI@[38; 39) + WHITESPACE@[39; 40) diff --git a/crates/libsyntax2/tests/data/parser/ok/0011_outer_attribute.rs b/crates/libsyntax2/tests/data/parser/ok/0011_outer_attribute.rs new file mode 100644 index 000000000..8b80c0d90 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0011_outer_attribute.rs @@ -0,0 +1,3 @@ +#[cfg(test)] +#[ignore] +fn foo() {} diff --git a/crates/libsyntax2/tests/data/parser/ok/0011_outer_attribute.txt b/crates/libsyntax2/tests/data/parser/ok/0011_outer_attribute.txt new file mode 100644 index 000000000..9824c9083 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0011_outer_attribute.txt @@ -0,0 +1,32 @@ +FILE@[0; 35) + FUNCTION@[0; 34) + ATTR@[0; 12) + POUND@[0; 1) + L_BRACK@[1; 2) + META_ITEM@[2; 11) + IDENT@[2; 5) "cfg" + L_PAREN@[5; 6) + META_ITEM@[6; 10) + IDENT@[6; 10) "test" + R_PAREN@[10; 11) + R_BRACK@[11; 12) + WHITESPACE@[12; 13) + ATTR@[13; 22) + POUND@[13; 14) + L_BRACK@[14; 15) + META_ITEM@[15; 21) + IDENT@[15; 21) "ignore" + R_BRACK@[21; 22) + WHITESPACE@[22; 23) + FN_KW@[23; 25) + WHITESPACE@[25; 26) + NAME@[26; 29) + IDENT@[26; 29) "foo" + PARAM_LIST@[29; 31) + L_PAREN@[29; 30) + R_PAREN@[30; 31) + WHITESPACE@[31; 32) + BLOCK_EXPR@[32; 34) + L_CURLY@[32; 33) + R_CURLY@[33; 34) + WHITESPACE@[34; 35) diff --git a/crates/libsyntax2/tests/data/parser/ok/0012_visibility.rs b/crates/libsyntax2/tests/data/parser/ok/0012_visibility.rs new file mode 100644 index 000000000..75b1db121 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0012_visibility.rs @@ -0,0 +1,5 @@ +fn a() {} +pub fn b() {} +pub(crate) fn c() {} +pub(super) fn d() {} +pub(in foo::bar::baz) fn e() {} diff --git a/crates/libsyntax2/tests/data/parser/ok/0012_visibility.txt b/crates/libsyntax2/tests/data/parser/ok/0012_visibility.txt new file mode 100644 index 000000000..af0c59543 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0012_visibility.txt @@ -0,0 +1,102 @@ +FILE@[0; 98) + FUNCTION@[0; 9) + FN_KW@[0; 2) + WHITESPACE@[2; 3) + NAME@[3; 4) + IDENT@[3; 4) "a" + PARAM_LIST@[4; 6) + L_PAREN@[4; 5) + R_PAREN@[5; 6) + WHITESPACE@[6; 7) + BLOCK_EXPR@[7; 9) + L_CURLY@[7; 8) + R_CURLY@[8; 9) + WHITESPACE@[9; 10) + FUNCTION@[10; 23) + VISIBILITY@[10; 13) + PUB_KW@[10; 13) + WHITESPACE@[13; 14) + FN_KW@[14; 16) + WHITESPACE@[16; 17) + NAME@[17; 18) + IDENT@[17; 18) "b" + PARAM_LIST@[18; 20) + L_PAREN@[18; 19) + R_PAREN@[19; 20) + WHITESPACE@[20; 21) + BLOCK_EXPR@[21; 23) + L_CURLY@[21; 22) + R_CURLY@[22; 23) + WHITESPACE@[23; 24) + FUNCTION@[24; 44) + VISIBILITY@[24; 34) + PUB_KW@[24; 27) + L_PAREN@[27; 28) + CRATE_KW@[28; 33) + R_PAREN@[33; 34) + WHITESPACE@[34; 35) + FN_KW@[35; 37) + WHITESPACE@[37; 38) + NAME@[38; 39) + IDENT@[38; 39) "c" + PARAM_LIST@[39; 41) + L_PAREN@[39; 40) + R_PAREN@[40; 41) + WHITESPACE@[41; 42) + BLOCK_EXPR@[42; 44) + L_CURLY@[42; 43) + R_CURLY@[43; 44) + WHITESPACE@[44; 45) + FUNCTION@[45; 65) + VISIBILITY@[45; 55) + PUB_KW@[45; 48) + L_PAREN@[48; 49) + SUPER_KW@[49; 54) + R_PAREN@[54; 55) + WHITESPACE@[55; 56) + FN_KW@[56; 58) + WHITESPACE@[58; 59) + NAME@[59; 60) + IDENT@[59; 60) "d" + PARAM_LIST@[60; 62) + L_PAREN@[60; 61) + R_PAREN@[61; 62) + WHITESPACE@[62; 63) + BLOCK_EXPR@[63; 65) + L_CURLY@[63; 64) + R_CURLY@[64; 65) + WHITESPACE@[65; 66) + FUNCTION@[66; 97) + VISIBILITY@[66; 87) + PUB_KW@[66; 69) + L_PAREN@[69; 70) + IN_KW@[70; 72) + WHITESPACE@[72; 73) + PATH@[73; 86) + PATH@[73; 81) + PATH@[73; 76) + PATH_SEGMENT@[73; 76) + NAME_REF@[73; 76) + IDENT@[73; 76) "foo" + COLONCOLON@[76; 78) + PATH_SEGMENT@[78; 81) + NAME_REF@[78; 81) + IDENT@[78; 81) "bar" + COLONCOLON@[81; 83) + PATH_SEGMENT@[83; 86) + NAME_REF@[83; 86) + IDENT@[83; 86) "baz" + R_PAREN@[86; 87) + WHITESPACE@[87; 88) + FN_KW@[88; 90) + WHITESPACE@[90; 91) + NAME@[91; 92) + IDENT@[91; 92) "e" + PARAM_LIST@[92; 94) + L_PAREN@[92; 93) + R_PAREN@[93; 94) + WHITESPACE@[94; 95) + BLOCK_EXPR@[95; 97) + L_CURLY@[95; 96) + R_CURLY@[96; 97) + WHITESPACE@[97; 98) diff --git a/crates/libsyntax2/tests/data/parser/ok/0013_use_path_self_super.rs b/crates/libsyntax2/tests/data/parser/ok/0013_use_path_self_super.rs new file mode 100644 index 000000000..faf6a42c7 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0013_use_path_self_super.rs @@ -0,0 +1,3 @@ +use self::foo; +use super::super::bar; +use ::self::a::super::bar; diff --git a/crates/libsyntax2/tests/data/parser/ok/0013_use_path_self_super.txt b/crates/libsyntax2/tests/data/parser/ok/0013_use_path_self_super.txt new file mode 100644 index 000000000..5ed27ca37 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0013_use_path_self_super.txt @@ -0,0 +1,57 @@ +FILE@[0; 65) + USE_ITEM@[0; 14) + USE_KW@[0; 3) + WHITESPACE@[3; 4) + USE_TREE@[4; 13) + PATH@[4; 13) + PATH@[4; 8) + PATH_SEGMENT@[4; 8) + SELF_KW@[4; 8) + COLONCOLON@[8; 10) + PATH_SEGMENT@[10; 13) + NAME_REF@[10; 13) + IDENT@[10; 13) "foo" + SEMI@[13; 14) + WHITESPACE@[14; 15) + USE_ITEM@[15; 37) + USE_KW@[15; 18) + WHITESPACE@[18; 19) + USE_TREE@[19; 36) + PATH@[19; 36) + PATH@[19; 31) + PATH@[19; 24) + PATH_SEGMENT@[19; 24) + SUPER_KW@[19; 24) + COLONCOLON@[24; 26) + PATH_SEGMENT@[26; 31) + SUPER_KW@[26; 31) + COLONCOLON@[31; 33) + PATH_SEGMENT@[33; 36) + NAME_REF@[33; 36) + IDENT@[33; 36) "bar" + SEMI@[36; 37) + WHITESPACE@[37; 38) + USE_ITEM@[38; 64) + USE_KW@[38; 41) + WHITESPACE@[41; 42) + USE_TREE@[42; 63) + PATH@[42; 63) + PATH@[42; 58) + PATH@[42; 51) + PATH@[42; 48) + PATH_SEGMENT@[42; 48) + COLONCOLON@[42; 44) + SELF_KW@[44; 48) + COLONCOLON@[48; 50) + PATH_SEGMENT@[50; 51) + NAME_REF@[50; 51) + IDENT@[50; 51) "a" + COLONCOLON@[51; 53) + PATH_SEGMENT@[53; 58) + SUPER_KW@[53; 58) + COLONCOLON@[58; 60) + PATH_SEGMENT@[60; 63) + NAME_REF@[60; 63) + IDENT@[60; 63) "bar" + SEMI@[63; 64) + WHITESPACE@[64; 65) diff --git a/crates/libsyntax2/tests/data/parser/ok/0014_use_tree.rs b/crates/libsyntax2/tests/data/parser/ok/0014_use_tree.rs new file mode 100644 index 000000000..5e4aa3a33 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0014_use_tree.rs @@ -0,0 +1,7 @@ +use *; +use ::*; +use ::{}; +use {}; +use foo::*; +use foo::{}; +use ::foo::{a, b, c}; diff --git a/crates/libsyntax2/tests/data/parser/ok/0014_use_tree.txt b/crates/libsyntax2/tests/data/parser/ok/0014_use_tree.txt new file mode 100644 index 000000000..730d5539b --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0014_use_tree.txt @@ -0,0 +1,91 @@ +FILE@[0; 81) + USE_ITEM@[0; 6) + USE_KW@[0; 3) + WHITESPACE@[3; 4) + USE_TREE@[4; 5) + STAR@[4; 5) + SEMI@[5; 6) + WHITESPACE@[6; 7) + USE_ITEM@[7; 15) + USE_KW@[7; 10) + WHITESPACE@[10; 11) + USE_TREE@[11; 14) + COLONCOLON@[11; 13) + STAR@[13; 14) + SEMI@[14; 15) + WHITESPACE@[15; 16) + USE_ITEM@[16; 25) + USE_KW@[16; 19) + WHITESPACE@[19; 20) + USE_TREE@[20; 24) + COLONCOLON@[20; 22) + L_CURLY@[22; 23) + R_CURLY@[23; 24) + SEMI@[24; 25) + WHITESPACE@[25; 26) + USE_ITEM@[26; 33) + USE_KW@[26; 29) + WHITESPACE@[29; 30) + USE_TREE@[30; 32) + L_CURLY@[30; 31) + R_CURLY@[31; 32) + SEMI@[32; 33) + WHITESPACE@[33; 34) + USE_ITEM@[34; 45) + USE_KW@[34; 37) + WHITESPACE@[37; 38) + USE_TREE@[38; 44) + PATH@[38; 41) + PATH_SEGMENT@[38; 41) + NAME_REF@[38; 41) + IDENT@[38; 41) "foo" + COLONCOLON@[41; 43) + STAR@[43; 44) + SEMI@[44; 45) + WHITESPACE@[45; 46) + USE_ITEM@[46; 58) + USE_KW@[46; 49) + WHITESPACE@[49; 50) + USE_TREE@[50; 57) + PATH@[50; 53) + PATH_SEGMENT@[50; 53) + NAME_REF@[50; 53) + IDENT@[50; 53) "foo" + COLONCOLON@[53; 55) + L_CURLY@[55; 56) + R_CURLY@[56; 57) + SEMI@[57; 58) + WHITESPACE@[58; 59) + USE_ITEM@[59; 80) + USE_KW@[59; 62) + WHITESPACE@[62; 63) + USE_TREE@[63; 79) + PATH@[63; 68) + PATH_SEGMENT@[63; 68) + COLONCOLON@[63; 65) + NAME_REF@[65; 68) + IDENT@[65; 68) "foo" + COLONCOLON@[68; 70) + L_CURLY@[70; 71) + USE_TREE@[71; 72) + PATH@[71; 72) + PATH_SEGMENT@[71; 72) + NAME_REF@[71; 72) + IDENT@[71; 72) "a" + COMMA@[72; 73) + WHITESPACE@[73; 74) + USE_TREE@[74; 75) + PATH@[74; 75) + PATH_SEGMENT@[74; 75) + NAME_REF@[74; 75) + IDENT@[74; 75) "b" + COMMA@[75; 76) + WHITESPACE@[76; 77) + USE_TREE@[77; 78) + PATH@[77; 78) + PATH_SEGMENT@[77; 78) + NAME_REF@[77; 78) + IDENT@[77; 78) "c" + R_CURLY@[78; 79) + SEMI@[79; 80) + WHITESPACE@[80; 81) diff --git a/crates/libsyntax2/tests/data/parser/ok/0015_use_tree.rs b/crates/libsyntax2/tests/data/parser/ok/0015_use_tree.rs new file mode 100644 index 000000000..46a0783a2 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0015_use_tree.rs @@ -0,0 +1,2 @@ +use foo as bar; +use foo::{a as b, *, ::*, ::foo as x}; diff --git a/crates/libsyntax2/tests/data/parser/ok/0015_use_tree.txt b/crates/libsyntax2/tests/data/parser/ok/0015_use_tree.txt new file mode 100644 index 000000000..4438e417b --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0015_use_tree.txt @@ -0,0 +1,64 @@ +FILE@[0; 55) + USE_ITEM@[0; 15) + USE_KW@[0; 3) + WHITESPACE@[3; 4) + USE_TREE@[4; 14) + PATH@[4; 7) + PATH_SEGMENT@[4; 7) + NAME_REF@[4; 7) + IDENT@[4; 7) "foo" + WHITESPACE@[7; 8) + ALIAS@[8; 14) + AS_KW@[8; 10) + WHITESPACE@[10; 11) + NAME@[11; 14) + IDENT@[11; 14) "bar" + SEMI@[14; 15) + WHITESPACE@[15; 16) + USE_ITEM@[16; 54) + USE_KW@[16; 19) + WHITESPACE@[19; 20) + USE_TREE@[20; 53) + PATH@[20; 23) + PATH_SEGMENT@[20; 23) + NAME_REF@[20; 23) + IDENT@[20; 23) "foo" + COLONCOLON@[23; 25) + L_CURLY@[25; 26) + USE_TREE@[26; 32) + PATH@[26; 27) + PATH_SEGMENT@[26; 27) + NAME_REF@[26; 27) + IDENT@[26; 27) "a" + WHITESPACE@[27; 28) + ALIAS@[28; 32) + AS_KW@[28; 30) + WHITESPACE@[30; 31) + NAME@[31; 32) + IDENT@[31; 32) "b" + COMMA@[32; 33) + WHITESPACE@[33; 34) + USE_TREE@[34; 35) + STAR@[34; 35) + COMMA@[35; 36) + WHITESPACE@[36; 37) + USE_TREE@[37; 40) + COLONCOLON@[37; 39) + STAR@[39; 40) + COMMA@[40; 41) + WHITESPACE@[41; 42) + USE_TREE@[42; 52) + PATH@[42; 47) + PATH_SEGMENT@[42; 47) + COLONCOLON@[42; 44) + NAME_REF@[44; 47) + IDENT@[44; 47) "foo" + WHITESPACE@[47; 48) + ALIAS@[48; 52) + AS_KW@[48; 50) + WHITESPACE@[50; 51) + NAME@[51; 52) + IDENT@[51; 52) "x" + R_CURLY@[52; 53) + SEMI@[53; 54) + WHITESPACE@[54; 55) diff --git a/crates/libsyntax2/tests/data/parser/ok/0016_struct_flavors.rs b/crates/libsyntax2/tests/data/parser/ok/0016_struct_flavors.rs new file mode 100644 index 000000000..69638350c --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0016_struct_flavors.rs @@ -0,0 +1,10 @@ +struct A; +struct B {} +struct C(); + +struct D { + a: u32, + pub b: u32 +} + +struct E(pub x, y,); diff --git a/crates/libsyntax2/tests/data/parser/ok/0016_struct_flavors.txt b/crates/libsyntax2/tests/data/parser/ok/0016_struct_flavors.txt new file mode 100644 index 000000000..5dd480d1b --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0016_struct_flavors.txt @@ -0,0 +1,89 @@ +FILE@[0; 97) + STRUCT_ITEM@[0; 9) + STRUCT_KW@[0; 6) + WHITESPACE@[6; 7) + NAME@[7; 8) + IDENT@[7; 8) "A" + SEMI@[8; 9) + WHITESPACE@[9; 10) + STRUCT_ITEM@[10; 21) + STRUCT_KW@[10; 16) + WHITESPACE@[16; 17) + NAME@[17; 18) + IDENT@[17; 18) "B" + WHITESPACE@[18; 19) + L_CURLY@[19; 20) + R_CURLY@[20; 21) + WHITESPACE@[21; 22) + STRUCT_ITEM@[22; 33) + STRUCT_KW@[22; 28) + WHITESPACE@[28; 29) + NAME@[29; 30) + IDENT@[29; 30) "C" + L_PAREN@[30; 31) + R_PAREN@[31; 32) + SEMI@[32; 33) + WHITESPACE@[33; 35) + STRUCT_ITEM@[35; 74) + STRUCT_KW@[35; 41) + WHITESPACE@[41; 42) + NAME@[42; 43) + IDENT@[42; 43) "D" + WHITESPACE@[43; 44) + L_CURLY@[44; 45) + WHITESPACE@[45; 50) + NAMED_FIELD@[50; 56) + NAME@[50; 51) + IDENT@[50; 51) "a" + COLON@[51; 52) + WHITESPACE@[52; 53) + PATH_TYPE@[53; 56) + PATH@[53; 56) + PATH_SEGMENT@[53; 56) + NAME_REF@[53; 56) + IDENT@[53; 56) "u32" + COMMA@[56; 57) + WHITESPACE@[57; 62) + NAMED_FIELD@[62; 72) + VISIBILITY@[62; 65) + PUB_KW@[62; 65) + WHITESPACE@[65; 66) + NAME@[66; 67) + IDENT@[66; 67) "b" + COLON@[67; 68) + WHITESPACE@[68; 69) + PATH_TYPE@[69; 72) + PATH@[69; 72) + PATH_SEGMENT@[69; 72) + NAME_REF@[69; 72) + IDENT@[69; 72) "u32" + WHITESPACE@[72; 73) + R_CURLY@[73; 74) + WHITESPACE@[74; 76) + STRUCT_ITEM@[76; 96) + STRUCT_KW@[76; 82) + WHITESPACE@[82; 83) + NAME@[83; 84) + IDENT@[83; 84) "E" + L_PAREN@[84; 85) + POS_FIELD@[85; 90) + VISIBILITY@[85; 88) + PUB_KW@[85; 88) + WHITESPACE@[88; 89) + PATH_TYPE@[89; 90) + PATH@[89; 90) + PATH_SEGMENT@[89; 90) + NAME_REF@[89; 90) + IDENT@[89; 90) "x" + COMMA@[90; 91) + WHITESPACE@[91; 92) + POS_FIELD@[92; 93) + PATH_TYPE@[92; 93) + PATH@[92; 93) + PATH_SEGMENT@[92; 93) + NAME_REF@[92; 93) + IDENT@[92; 93) "y" + COMMA@[93; 94) + R_PAREN@[94; 95) + SEMI@[95; 96) + WHITESPACE@[96; 97) diff --git a/crates/libsyntax2/tests/data/parser/ok/0017_attr_trailing_comma.rs b/crates/libsyntax2/tests/data/parser/ok/0017_attr_trailing_comma.rs new file mode 100644 index 000000000..fe0a7bb97 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0017_attr_trailing_comma.rs @@ -0,0 +1,2 @@ +#[foo(a,)] +fn foo() {} diff --git a/crates/libsyntax2/tests/data/parser/ok/0017_attr_trailing_comma.txt b/crates/libsyntax2/tests/data/parser/ok/0017_attr_trailing_comma.txt new file mode 100644 index 000000000..69724cdc8 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0017_attr_trailing_comma.txt @@ -0,0 +1,26 @@ +FILE@[0; 23) + FUNCTION@[0; 22) + ATTR@[0; 10) + POUND@[0; 1) + L_BRACK@[1; 2) + META_ITEM@[2; 9) + IDENT@[2; 5) "foo" + L_PAREN@[5; 6) + META_ITEM@[6; 7) + IDENT@[6; 7) "a" + COMMA@[7; 8) + R_PAREN@[8; 9) + R_BRACK@[9; 10) + WHITESPACE@[10; 11) + FN_KW@[11; 13) + WHITESPACE@[13; 14) + NAME@[14; 17) + IDENT@[14; 17) "foo" + PARAM_LIST@[17; 19) + L_PAREN@[17; 18) + R_PAREN@[18; 19) + WHITESPACE@[19; 20) + BLOCK_EXPR@[20; 22) + L_CURLY@[20; 21) + R_CURLY@[21; 22) + WHITESPACE@[22; 23) diff --git a/crates/libsyntax2/tests/data/parser/ok/0018_struct_type_params.rs b/crates/libsyntax2/tests/data/parser/ok/0018_struct_type_params.rs new file mode 100644 index 000000000..88c544923 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0018_struct_type_params.rs @@ -0,0 +1,17 @@ +struct S1; +struct S2(u32); +struct S3 { u: u32 } + +struct S4<>; +struct S5<'a>; +struct S6<'a:>; +struct S7<'a: 'b>; +struct S8<'a: 'b + >; +struct S9<'a: 'b + 'c>; +struct S10<'a,>; +struct S11<'a, 'b>; +struct S12<'a: 'b+, 'b: 'c,>; + +struct S13; +struct S14; +struct S15<'a, T, U>; diff --git a/crates/libsyntax2/tests/data/parser/ok/0018_struct_type_params.txt b/crates/libsyntax2/tests/data/parser/ok/0018_struct_type_params.txt new file mode 100644 index 000000000..6457c2639 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0018_struct_type_params.txt @@ -0,0 +1,255 @@ +FILE@[0; 290) + STRUCT_ITEM@[0; 13) + STRUCT_KW@[0; 6) + WHITESPACE@[6; 7) + NAME@[7; 9) + IDENT@[7; 9) "S1" + TYPE_PARAM_LIST@[9; 12) + L_ANGLE@[9; 10) + TYPE_PARAM@[10; 11) + NAME@[10; 11) + IDENT@[10; 11) "T" + R_ANGLE@[11; 12) + SEMI@[12; 13) + WHITESPACE@[13; 14) + STRUCT_ITEM@[14; 32) + STRUCT_KW@[14; 20) + WHITESPACE@[20; 21) + NAME@[21; 23) + IDENT@[21; 23) "S2" + TYPE_PARAM_LIST@[23; 26) + L_ANGLE@[23; 24) + TYPE_PARAM@[24; 25) + NAME@[24; 25) + IDENT@[24; 25) "T" + R_ANGLE@[25; 26) + L_PAREN@[26; 27) + POS_FIELD@[27; 30) + PATH_TYPE@[27; 30) + PATH@[27; 30) + PATH_SEGMENT@[27; 30) + NAME_REF@[27; 30) + IDENT@[27; 30) "u32" + R_PAREN@[30; 31) + SEMI@[31; 32) + WHITESPACE@[32; 33) + STRUCT_ITEM@[33; 56) + STRUCT_KW@[33; 39) + WHITESPACE@[39; 40) + NAME@[40; 42) + IDENT@[40; 42) "S3" + TYPE_PARAM_LIST@[42; 45) + L_ANGLE@[42; 43) + TYPE_PARAM@[43; 44) + NAME@[43; 44) + IDENT@[43; 44) "T" + R_ANGLE@[44; 45) + WHITESPACE@[45; 46) + L_CURLY@[46; 47) + WHITESPACE@[47; 48) + NAMED_FIELD@[48; 54) + NAME@[48; 49) + IDENT@[48; 49) "u" + COLON@[49; 50) + WHITESPACE@[50; 51) + PATH_TYPE@[51; 54) + PATH@[51; 54) + PATH_SEGMENT@[51; 54) + NAME_REF@[51; 54) + IDENT@[51; 54) "u32" + WHITESPACE@[54; 55) + R_CURLY@[55; 56) + WHITESPACE@[56; 58) + STRUCT_ITEM@[58; 70) + STRUCT_KW@[58; 64) + WHITESPACE@[64; 65) + NAME@[65; 67) + IDENT@[65; 67) "S4" + TYPE_PARAM_LIST@[67; 69) + L_ANGLE@[67; 68) + R_ANGLE@[68; 69) + SEMI@[69; 70) + WHITESPACE@[70; 71) + STRUCT_ITEM@[71; 85) + STRUCT_KW@[71; 77) + WHITESPACE@[77; 78) + NAME@[78; 80) + IDENT@[78; 80) "S5" + TYPE_PARAM_LIST@[80; 84) + L_ANGLE@[80; 81) + LIFETIME_PARAM@[81; 83) + LIFETIME@[81; 83) "'a" + R_ANGLE@[83; 84) + SEMI@[84; 85) + WHITESPACE@[85; 86) + STRUCT_ITEM@[86; 101) + STRUCT_KW@[86; 92) + WHITESPACE@[92; 93) + NAME@[93; 95) + IDENT@[93; 95) "S6" + TYPE_PARAM_LIST@[95; 100) + L_ANGLE@[95; 96) + LIFETIME_PARAM@[96; 99) + LIFETIME@[96; 98) "'a" + COLON@[98; 99) + R_ANGLE@[99; 100) + SEMI@[100; 101) + WHITESPACE@[101; 102) + STRUCT_ITEM@[102; 120) + STRUCT_KW@[102; 108) + WHITESPACE@[108; 109) + NAME@[109; 111) + IDENT@[109; 111) "S7" + TYPE_PARAM_LIST@[111; 119) + L_ANGLE@[111; 112) + LIFETIME_PARAM@[112; 118) + LIFETIME@[112; 114) "'a" + COLON@[114; 115) + WHITESPACE@[115; 116) + LIFETIME@[116; 118) "'b" + R_ANGLE@[118; 119) + SEMI@[119; 120) + WHITESPACE@[120; 121) + STRUCT_ITEM@[121; 142) + STRUCT_KW@[121; 127) + WHITESPACE@[127; 128) + NAME@[128; 130) + IDENT@[128; 130) "S8" + TYPE_PARAM_LIST@[130; 141) + L_ANGLE@[130; 131) + LIFETIME_PARAM@[131; 139) + LIFETIME@[131; 133) "'a" + COLON@[133; 134) + WHITESPACE@[134; 135) + LIFETIME@[135; 137) "'b" + WHITESPACE@[137; 138) + PLUS@[138; 139) + WHITESPACE@[139; 140) + R_ANGLE@[140; 141) + SEMI@[141; 142) + WHITESPACE@[142; 143) + STRUCT_ITEM@[143; 166) + STRUCT_KW@[143; 149) + WHITESPACE@[149; 150) + NAME@[150; 152) + IDENT@[150; 152) "S9" + TYPE_PARAM_LIST@[152; 165) + L_ANGLE@[152; 153) + LIFETIME_PARAM@[153; 164) + LIFETIME@[153; 155) "'a" + COLON@[155; 156) + WHITESPACE@[156; 157) + LIFETIME@[157; 159) "'b" + WHITESPACE@[159; 160) + PLUS@[160; 161) + WHITESPACE@[161; 162) + LIFETIME@[162; 164) "'c" + R_ANGLE@[164; 165) + SEMI@[165; 166) + WHITESPACE@[166; 167) + STRUCT_ITEM@[167; 183) + STRUCT_KW@[167; 173) + WHITESPACE@[173; 174) + NAME@[174; 177) + IDENT@[174; 177) "S10" + TYPE_PARAM_LIST@[177; 182) + L_ANGLE@[177; 178) + LIFETIME_PARAM@[178; 180) + LIFETIME@[178; 180) "'a" + COMMA@[180; 181) + R_ANGLE@[181; 182) + SEMI@[182; 183) + WHITESPACE@[183; 184) + STRUCT_ITEM@[184; 203) + STRUCT_KW@[184; 190) + WHITESPACE@[190; 191) + NAME@[191; 194) + IDENT@[191; 194) "S11" + TYPE_PARAM_LIST@[194; 202) + L_ANGLE@[194; 195) + LIFETIME_PARAM@[195; 197) + LIFETIME@[195; 197) "'a" + COMMA@[197; 198) + WHITESPACE@[198; 199) + LIFETIME_PARAM@[199; 201) + LIFETIME@[199; 201) "'b" + R_ANGLE@[201; 202) + SEMI@[202; 203) + WHITESPACE@[203; 204) + STRUCT_ITEM@[204; 233) + STRUCT_KW@[204; 210) + WHITESPACE@[210; 211) + NAME@[211; 214) + IDENT@[211; 214) "S12" + TYPE_PARAM_LIST@[214; 232) + L_ANGLE@[214; 215) + LIFETIME_PARAM@[215; 222) + LIFETIME@[215; 217) "'a" + COLON@[217; 218) + WHITESPACE@[218; 219) + LIFETIME@[219; 221) "'b" + PLUS@[221; 222) + COMMA@[222; 223) + WHITESPACE@[223; 224) + LIFETIME_PARAM@[224; 230) + LIFETIME@[224; 226) "'b" + COLON@[226; 227) + WHITESPACE@[227; 228) + LIFETIME@[228; 230) "'c" + COMMA@[230; 231) + R_ANGLE@[231; 232) + SEMI@[232; 233) + WHITESPACE@[233; 235) + STRUCT_ITEM@[235; 249) + STRUCT_KW@[235; 241) + WHITESPACE@[241; 242) + NAME@[242; 245) + IDENT@[242; 245) "S13" + TYPE_PARAM_LIST@[245; 248) + L_ANGLE@[245; 246) + TYPE_PARAM@[246; 247) + NAME@[246; 247) + IDENT@[246; 247) "T" + R_ANGLE@[247; 248) + SEMI@[248; 249) + WHITESPACE@[249; 250) + STRUCT_ITEM@[250; 267) + STRUCT_KW@[250; 256) + WHITESPACE@[256; 257) + NAME@[257; 260) + IDENT@[257; 260) "S14" + TYPE_PARAM_LIST@[260; 266) + L_ANGLE@[260; 261) + TYPE_PARAM@[261; 262) + NAME@[261; 262) + IDENT@[261; 262) "T" + COMMA@[262; 263) + WHITESPACE@[263; 264) + TYPE_PARAM@[264; 265) + NAME@[264; 265) + IDENT@[264; 265) "U" + R_ANGLE@[265; 266) + SEMI@[266; 267) + WHITESPACE@[267; 268) + STRUCT_ITEM@[268; 289) + STRUCT_KW@[268; 274) + WHITESPACE@[274; 275) + NAME@[275; 278) + IDENT@[275; 278) "S15" + TYPE_PARAM_LIST@[278; 288) + L_ANGLE@[278; 279) + LIFETIME_PARAM@[279; 281) + LIFETIME@[279; 281) "'a" + COMMA@[281; 282) + WHITESPACE@[282; 283) + TYPE_PARAM@[283; 284) + NAME@[283; 284) + IDENT@[283; 284) "T" + COMMA@[284; 285) + WHITESPACE@[285; 286) + TYPE_PARAM@[286; 287) + NAME@[286; 287) + IDENT@[286; 287) "U" + R_ANGLE@[287; 288) + SEMI@[288; 289) + WHITESPACE@[289; 290) diff --git a/crates/libsyntax2/tests/data/parser/ok/0019_enums.rs b/crates/libsyntax2/tests/data/parser/ok/0019_enums.rs new file mode 100644 index 000000000..7a1afa0e6 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0019_enums.rs @@ -0,0 +1,25 @@ +enum E1 { +} + +enum E2 { +} + +enum E3 { + X +} + +enum E4 { + X, +} + +enum E5 { + A, + B = 92, + C { + a: u32, + pub b: f64, + }, + F {}, + D(u32,), + E(), +} diff --git a/crates/libsyntax2/tests/data/parser/ok/0019_enums.txt b/crates/libsyntax2/tests/data/parser/ok/0019_enums.txt new file mode 100644 index 000000000..8650381cd --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0019_enums.txt @@ -0,0 +1,146 @@ +FILE@[0; 182) + ENUM_ITEM@[0; 11) + ENUM_KW@[0; 4) + WHITESPACE@[4; 5) + NAME@[5; 7) + IDENT@[5; 7) "E1" + WHITESPACE@[7; 8) + L_CURLY@[8; 9) + WHITESPACE@[9; 10) + R_CURLY@[10; 11) + WHITESPACE@[11; 13) + ENUM_ITEM@[13; 27) + ENUM_KW@[13; 17) + WHITESPACE@[17; 18) + NAME@[18; 20) + IDENT@[18; 20) "E2" + TYPE_PARAM_LIST@[20; 23) + L_ANGLE@[20; 21) + TYPE_PARAM@[21; 22) + NAME@[21; 22) + IDENT@[21; 22) "T" + R_ANGLE@[22; 23) + WHITESPACE@[23; 24) + L_CURLY@[24; 25) + WHITESPACE@[25; 26) + R_CURLY@[26; 27) + WHITESPACE@[27; 29) + ENUM_ITEM@[29; 46) + ENUM_KW@[29; 33) + WHITESPACE@[33; 34) + NAME@[34; 36) + IDENT@[34; 36) "E3" + WHITESPACE@[36; 37) + L_CURLY@[37; 38) + WHITESPACE@[38; 43) + ENUM_VARIANT@[43; 44) + NAME@[43; 44) + IDENT@[43; 44) "X" + WHITESPACE@[44; 45) + R_CURLY@[45; 46) + WHITESPACE@[46; 48) + ENUM_ITEM@[48; 66) + ENUM_KW@[48; 52) + WHITESPACE@[52; 53) + NAME@[53; 55) + IDENT@[53; 55) "E4" + WHITESPACE@[55; 56) + L_CURLY@[56; 57) + WHITESPACE@[57; 62) + ENUM_VARIANT@[62; 63) + NAME@[62; 63) + IDENT@[62; 63) "X" + COMMA@[63; 64) + WHITESPACE@[64; 65) + R_CURLY@[65; 66) + WHITESPACE@[66; 68) + ENUM_ITEM@[68; 181) + ENUM_KW@[68; 72) + WHITESPACE@[72; 73) + NAME@[73; 75) + IDENT@[73; 75) "E5" + WHITESPACE@[75; 76) + L_CURLY@[76; 77) + WHITESPACE@[77; 82) + ENUM_VARIANT@[82; 83) + NAME@[82; 83) + IDENT@[82; 83) "A" + COMMA@[83; 84) + WHITESPACE@[84; 89) + ENUM_VARIANT@[89; 95) + NAME@[89; 90) + IDENT@[89; 90) "B" + WHITESPACE@[90; 91) + EQ@[91; 92) + WHITESPACE@[92; 93) + LITERAL@[93; 95) + INT_NUMBER@[93; 95) "92" + COMMA@[95; 96) + WHITESPACE@[96; 101) + ENUM_VARIANT@[101; 146) + NAME@[101; 102) + IDENT@[101; 102) "C" + WHITESPACE@[102; 103) + L_CURLY@[103; 104) + WHITESPACE@[104; 113) + NAMED_FIELD@[113; 119) + NAME@[113; 114) + IDENT@[113; 114) "a" + COLON@[114; 115) + WHITESPACE@[115; 116) + PATH_TYPE@[116; 119) + PATH@[116; 119) + PATH_SEGMENT@[116; 119) + NAME_REF@[116; 119) + IDENT@[116; 119) "u32" + COMMA@[119; 120) + WHITESPACE@[120; 129) + NAMED_FIELD@[129; 139) + VISIBILITY@[129; 132) + PUB_KW@[129; 132) + WHITESPACE@[132; 133) + NAME@[133; 134) + IDENT@[133; 134) "b" + COLON@[134; 135) + WHITESPACE@[135; 136) + PATH_TYPE@[136; 139) + PATH@[136; 139) + PATH_SEGMENT@[136; 139) + NAME_REF@[136; 139) + IDENT@[136; 139) "f64" + COMMA@[139; 140) + WHITESPACE@[140; 145) + R_CURLY@[145; 146) + COMMA@[146; 147) + WHITESPACE@[147; 152) + ENUM_VARIANT@[152; 156) + NAME@[152; 153) + IDENT@[152; 153) "F" + WHITESPACE@[153; 154) + L_CURLY@[154; 155) + R_CURLY@[155; 156) + COMMA@[156; 157) + WHITESPACE@[157; 162) + ENUM_VARIANT@[162; 169) + NAME@[162; 163) + IDENT@[162; 163) "D" + L_PAREN@[163; 164) + POS_FIELD@[164; 167) + PATH_TYPE@[164; 167) + PATH@[164; 167) + PATH_SEGMENT@[164; 167) + NAME_REF@[164; 167) + IDENT@[164; 167) "u32" + COMMA@[167; 168) + R_PAREN@[168; 169) + COMMA@[169; 170) + WHITESPACE@[170; 175) + ENUM_VARIANT@[175; 178) + NAME@[175; 176) + IDENT@[175; 176) "E" + L_PAREN@[176; 177) + R_PAREN@[177; 178) + COMMA@[178; 179) + WHITESPACE@[179; 180) + R_CURLY@[180; 181) + WHITESPACE@[181; 182) diff --git a/crates/libsyntax2/tests/data/parser/ok/0020_type_param_bounds.rs b/crates/libsyntax2/tests/data/parser/ok/0020_type_param_bounds.rs new file mode 100644 index 000000000..a1b9f00a4 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0020_type_param_bounds.rs @@ -0,0 +1,9 @@ +struct A; +struct B; +struct C; +struct D; +struct E; +struct F; +struct G; +struct H; +struct I; diff --git a/crates/libsyntax2/tests/data/parser/ok/0020_type_param_bounds.txt b/crates/libsyntax2/tests/data/parser/ok/0020_type_param_bounds.txt new file mode 100644 index 000000000..fe12cbb94 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0020_type_param_bounds.txt @@ -0,0 +1,193 @@ +FILE@[0; 200) + STRUCT_ITEM@[0; 12) + STRUCT_KW@[0; 6) + WHITESPACE@[6; 7) + NAME@[7; 8) + IDENT@[7; 8) "A" + TYPE_PARAM_LIST@[8; 11) + L_ANGLE@[8; 9) + TYPE_PARAM@[9; 10) + NAME@[9; 10) + IDENT@[9; 10) "T" + R_ANGLE@[10; 11) + SEMI@[11; 12) + WHITESPACE@[12; 13) + STRUCT_ITEM@[13; 26) + STRUCT_KW@[13; 19) + WHITESPACE@[19; 20) + NAME@[20; 21) + IDENT@[20; 21) "B" + TYPE_PARAM_LIST@[21; 25) + L_ANGLE@[21; 22) + TYPE_PARAM@[22; 24) + NAME@[22; 23) + IDENT@[22; 23) "T" + COLON@[23; 24) + R_ANGLE@[24; 25) + SEMI@[25; 26) + WHITESPACE@[26; 27) + STRUCT_ITEM@[27; 43) + STRUCT_KW@[27; 33) + WHITESPACE@[33; 34) + NAME@[34; 35) + IDENT@[34; 35) "C" + TYPE_PARAM_LIST@[35; 42) + L_ANGLE@[35; 36) + TYPE_PARAM@[36; 41) + NAME@[36; 37) + IDENT@[36; 37) "T" + COLON@[37; 38) + WHITESPACE@[38; 39) + LIFETIME@[39; 41) "'a" + R_ANGLE@[41; 42) + SEMI@[42; 43) + WHITESPACE@[43; 44) + STRUCT_ITEM@[44; 63) + STRUCT_KW@[44; 50) + WHITESPACE@[50; 51) + NAME@[51; 52) + IDENT@[51; 52) "D" + TYPE_PARAM_LIST@[52; 62) + L_ANGLE@[52; 53) + TYPE_PARAM@[53; 60) + NAME@[53; 54) + IDENT@[53; 54) "T" + COLON@[54; 55) + WHITESPACE@[55; 56) + LIFETIME@[56; 58) "'a" + WHITESPACE@[58; 59) + PLUS@[59; 60) + WHITESPACE@[60; 61) + R_ANGLE@[61; 62) + SEMI@[62; 63) + WHITESPACE@[63; 64) + STRUCT_ITEM@[64; 86) + STRUCT_KW@[64; 70) + WHITESPACE@[70; 71) + NAME@[71; 72) + IDENT@[71; 72) "E" + TYPE_PARAM_LIST@[72; 85) + L_ANGLE@[72; 73) + TYPE_PARAM@[73; 83) + NAME@[73; 74) + IDENT@[73; 74) "T" + COLON@[74; 75) + WHITESPACE@[75; 76) + LIFETIME@[76; 78) "'a" + WHITESPACE@[78; 79) + PLUS@[79; 80) + WHITESPACE@[80; 81) + LIFETIME@[81; 83) "'d" + WHITESPACE@[83; 84) + R_ANGLE@[84; 85) + SEMI@[85; 86) + WHITESPACE@[86; 87) + STRUCT_ITEM@[87; 116) + STRUCT_KW@[87; 93) + WHITESPACE@[93; 94) + NAME@[94; 95) + IDENT@[94; 95) "F" + TYPE_PARAM_LIST@[95; 115) + L_ANGLE@[95; 96) + TYPE_PARAM@[96; 114) + NAME@[96; 97) + IDENT@[96; 97) "T" + COLON@[97; 98) + WHITESPACE@[98; 99) + LIFETIME@[99; 101) "'a" + WHITESPACE@[101; 102) + PLUS@[102; 103) + WHITESPACE@[103; 104) + LIFETIME@[104; 106) "'d" + WHITESPACE@[106; 107) + PLUS@[107; 108) + WHITESPACE@[108; 109) + PATH@[109; 114) + PATH_SEGMENT@[109; 114) + NAME_REF@[109; 114) + IDENT@[109; 114) "Clone" + R_ANGLE@[114; 115) + SEMI@[115; 116) + WHITESPACE@[116; 117) + STRUCT_ITEM@[117; 143) + STRUCT_KW@[117; 123) + WHITESPACE@[123; 124) + NAME@[124; 125) + IDENT@[124; 125) "G" + TYPE_PARAM_LIST@[125; 142) + L_ANGLE@[125; 126) + TYPE_PARAM@[126; 141) + NAME@[126; 127) + IDENT@[126; 127) "T" + COLON@[127; 128) + WHITESPACE@[128; 129) + PATH@[129; 134) + PATH_SEGMENT@[129; 134) + NAME_REF@[129; 134) + IDENT@[129; 134) "Clone" + WHITESPACE@[134; 135) + PLUS@[135; 136) + WHITESPACE@[136; 137) + PATH@[137; 141) + PATH_SEGMENT@[137; 141) + NAME_REF@[137; 141) + IDENT@[137; 141) "Copy" + R_ANGLE@[141; 142) + SEMI@[142; 143) + WHITESPACE@[143; 144) + STRUCT_ITEM@[144; 180) + STRUCT_KW@[144; 150) + WHITESPACE@[150; 151) + NAME@[151; 152) + IDENT@[151; 152) "H" + TYPE_PARAM_LIST@[152; 179) + L_ANGLE@[152; 153) + TYPE_PARAM@[153; 178) + NAME@[153; 154) + IDENT@[153; 154) "T" + COLON@[154; 155) + WHITESPACE@[155; 156) + PATH@[156; 161) + PATH_SEGMENT@[156; 161) + COLONCOLON@[156; 158) + NAME_REF@[158; 161) + IDENT@[158; 161) "Foo" + WHITESPACE@[161; 162) + PLUS@[162; 163) + WHITESPACE@[163; 164) + PATH@[164; 173) + PATH@[164; 168) + PATH_SEGMENT@[164; 168) + SELF_KW@[164; 168) + COLONCOLON@[168; 170) + PATH_SEGMENT@[170; 173) + NAME_REF@[170; 173) + IDENT@[170; 173) "Bar" + WHITESPACE@[173; 174) + PLUS@[174; 175) + WHITESPACE@[175; 176) + LIFETIME@[176; 178) "'a" + R_ANGLE@[178; 179) + SEMI@[179; 180) + WHITESPACE@[180; 181) + STRUCT_ITEM@[181; 199) + STRUCT_KW@[181; 187) + WHITESPACE@[187; 188) + NAME@[188; 189) + IDENT@[188; 189) "I" + TYPE_PARAM_LIST@[189; 198) + L_ANGLE@[189; 190) + TYPE_PARAM@[190; 192) + NAME@[190; 191) + IDENT@[190; 191) "T" + COLON@[191; 192) + COMMA@[192; 193) + WHITESPACE@[193; 194) + TYPE_PARAM@[194; 196) + NAME@[194; 195) + IDENT@[194; 195) "U" + COLON@[195; 196) + COMMA@[196; 197) + R_ANGLE@[197; 198) + SEMI@[198; 199) + WHITESPACE@[199; 200) diff --git a/crates/libsyntax2/tests/data/parser/ok/0021_extern_fn.rs b/crates/libsyntax2/tests/data/parser/ok/0021_extern_fn.rs new file mode 100644 index 000000000..e929eef74 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0021_extern_fn.rs @@ -0,0 +1,8 @@ +extern fn foo() { +} + +extern "C" fn bar() { +} + +extern r"D" fn baz() { +} diff --git a/crates/libsyntax2/tests/data/parser/ok/0021_extern_fn.txt b/crates/libsyntax2/tests/data/parser/ok/0021_extern_fn.txt new file mode 100644 index 000000000..07d5cc157 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0021_extern_fn.txt @@ -0,0 +1,56 @@ +FILE@[0; 71) + FUNCTION@[0; 19) + ABI@[0; 6) + EXTERN_KW@[0; 6) + WHITESPACE@[6; 7) + FN_KW@[7; 9) + WHITESPACE@[9; 10) + NAME@[10; 13) + IDENT@[10; 13) "foo" + PARAM_LIST@[13; 15) + L_PAREN@[13; 14) + R_PAREN@[14; 15) + WHITESPACE@[15; 16) + BLOCK_EXPR@[16; 19) + L_CURLY@[16; 17) + WHITESPACE@[17; 18) + R_CURLY@[18; 19) + WHITESPACE@[19; 21) + FUNCTION@[21; 44) + ABI@[21; 31) + EXTERN_KW@[21; 27) + WHITESPACE@[27; 28) + STRING@[28; 31) + WHITESPACE@[31; 32) + FN_KW@[32; 34) + WHITESPACE@[34; 35) + NAME@[35; 38) + IDENT@[35; 38) "bar" + PARAM_LIST@[38; 40) + L_PAREN@[38; 39) + R_PAREN@[39; 40) + WHITESPACE@[40; 41) + BLOCK_EXPR@[41; 44) + L_CURLY@[41; 42) + WHITESPACE@[42; 43) + R_CURLY@[43; 44) + WHITESPACE@[44; 46) + FUNCTION@[46; 70) + ABI@[46; 57) + EXTERN_KW@[46; 52) + WHITESPACE@[52; 53) + RAW_STRING@[53; 57) + WHITESPACE@[57; 58) + FN_KW@[58; 60) + WHITESPACE@[60; 61) + NAME@[61; 64) + IDENT@[61; 64) "baz" + PARAM_LIST@[64; 66) + L_PAREN@[64; 65) + R_PAREN@[65; 66) + WHITESPACE@[66; 67) + BLOCK_EXPR@[67; 70) + L_CURLY@[67; 68) + WHITESPACE@[68; 69) + R_CURLY@[69; 70) + WHITESPACE@[70; 71) diff --git a/crates/libsyntax2/tests/data/parser/ok/0022_empty_extern_block.rs b/crates/libsyntax2/tests/data/parser/ok/0022_empty_extern_block.rs new file mode 100644 index 000000000..f5fe0e6ef --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0022_empty_extern_block.rs @@ -0,0 +1,5 @@ +extern { +} + +extern "C" { +} diff --git a/crates/libsyntax2/tests/data/parser/ok/0022_empty_extern_block.txt b/crates/libsyntax2/tests/data/parser/ok/0022_empty_extern_block.txt new file mode 100644 index 000000000..81b92d394 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0022_empty_extern_block.txt @@ -0,0 +1,19 @@ +FILE@[0; 27) + EXTERN_BLOCK_EXPR@[0; 10) + ABI@[0; 6) + EXTERN_KW@[0; 6) + WHITESPACE@[6; 7) + L_CURLY@[7; 8) + WHITESPACE@[8; 9) + R_CURLY@[9; 10) + WHITESPACE@[10; 12) + EXTERN_BLOCK_EXPR@[12; 26) + ABI@[12; 22) + EXTERN_KW@[12; 18) + WHITESPACE@[18; 19) + STRING@[19; 22) + WHITESPACE@[22; 23) + L_CURLY@[23; 24) + WHITESPACE@[24; 25) + R_CURLY@[25; 26) + WHITESPACE@[26; 27) diff --git a/crates/libsyntax2/tests/data/parser/ok/0023_static_items.rs b/crates/libsyntax2/tests/data/parser/ok/0023_static_items.rs new file mode 100644 index 000000000..5fb92ce33 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0023_static_items.rs @@ -0,0 +1,2 @@ +static FOO: u32 = 1; +static mut BAR: i32 = 92; diff --git a/crates/libsyntax2/tests/data/parser/ok/0023_static_items.txt b/crates/libsyntax2/tests/data/parser/ok/0023_static_items.txt new file mode 100644 index 000000000..b8dfdd251 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0023_static_items.txt @@ -0,0 +1,41 @@ +FILE@[0; 47) + STATIC_ITEM@[0; 20) + STATIC_KW@[0; 6) + WHITESPACE@[6; 7) + NAME@[7; 10) + IDENT@[7; 10) "FOO" + COLON@[10; 11) + WHITESPACE@[11; 12) + PATH_TYPE@[12; 15) + PATH@[12; 15) + PATH_SEGMENT@[12; 15) + NAME_REF@[12; 15) + IDENT@[12; 15) "u32" + WHITESPACE@[15; 16) + EQ@[16; 17) + WHITESPACE@[17; 18) + LITERAL@[18; 19) + INT_NUMBER@[18; 19) "1" + SEMI@[19; 20) + WHITESPACE@[20; 21) + STATIC_ITEM@[21; 46) + STATIC_KW@[21; 27) + WHITESPACE@[27; 28) + MUT_KW@[28; 31) + WHITESPACE@[31; 32) + NAME@[32; 35) + IDENT@[32; 35) "BAR" + COLON@[35; 36) + WHITESPACE@[36; 37) + PATH_TYPE@[37; 40) + PATH@[37; 40) + PATH_SEGMENT@[37; 40) + NAME_REF@[37; 40) + IDENT@[37; 40) "i32" + WHITESPACE@[40; 41) + EQ@[41; 42) + WHITESPACE@[42; 43) + LITERAL@[43; 45) + INT_NUMBER@[43; 45) "92" + SEMI@[45; 46) + WHITESPACE@[46; 47) diff --git a/crates/libsyntax2/tests/data/parser/ok/0024_const_item.rs b/crates/libsyntax2/tests/data/parser/ok/0024_const_item.rs new file mode 100644 index 000000000..7446859b5 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0024_const_item.rs @@ -0,0 +1,2 @@ +const FOO: u32 = 92; +const mut BAR: u32 = 62; diff --git a/crates/libsyntax2/tests/data/parser/ok/0024_const_item.txt b/crates/libsyntax2/tests/data/parser/ok/0024_const_item.txt new file mode 100644 index 000000000..85083e9c1 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0024_const_item.txt @@ -0,0 +1,41 @@ +FILE@[0; 46) + CONST_ITEM@[0; 20) + CONST_KW@[0; 5) + WHITESPACE@[5; 6) + NAME@[6; 9) + IDENT@[6; 9) "FOO" + COLON@[9; 10) + WHITESPACE@[10; 11) + PATH_TYPE@[11; 14) + PATH@[11; 14) + PATH_SEGMENT@[11; 14) + NAME_REF@[11; 14) + IDENT@[11; 14) "u32" + WHITESPACE@[14; 15) + EQ@[15; 16) + WHITESPACE@[16; 17) + LITERAL@[17; 19) + INT_NUMBER@[17; 19) "92" + SEMI@[19; 20) + WHITESPACE@[20; 21) + CONST_ITEM@[21; 45) + CONST_KW@[21; 26) + WHITESPACE@[26; 27) + MUT_KW@[27; 30) + WHITESPACE@[30; 31) + NAME@[31; 34) + IDENT@[31; 34) "BAR" + COLON@[34; 35) + WHITESPACE@[35; 36) + PATH_TYPE@[36; 39) + PATH@[36; 39) + PATH_SEGMENT@[36; 39) + NAME_REF@[36; 39) + IDENT@[36; 39) "u32" + WHITESPACE@[39; 40) + EQ@[40; 41) + WHITESPACE@[41; 42) + LITERAL@[42; 44) + INT_NUMBER@[42; 44) "62" + SEMI@[44; 45) + WHITESPACE@[45; 46) diff --git a/crates/libsyntax2/tests/data/parser/ok/0025_extern_fn_in_block.rs b/crates/libsyntax2/tests/data/parser/ok/0025_extern_fn_in_block.rs new file mode 100644 index 000000000..289809809 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0025_extern_fn_in_block.rs @@ -0,0 +1,3 @@ +fn main() { + extern fn f() {} +} diff --git a/crates/libsyntax2/tests/data/parser/ok/0025_extern_fn_in_block.txt b/crates/libsyntax2/tests/data/parser/ok/0025_extern_fn_in_block.txt new file mode 100644 index 000000000..46fb177b2 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0025_extern_fn_in_block.txt @@ -0,0 +1,31 @@ +FILE@[0; 35) + FUNCTION@[0; 34) + FN_KW@[0; 2) + WHITESPACE@[2; 3) + NAME@[3; 7) + IDENT@[3; 7) "main" + PARAM_LIST@[7; 9) + L_PAREN@[7; 8) + R_PAREN@[8; 9) + WHITESPACE@[9; 10) + BLOCK_EXPR@[10; 34) + L_CURLY@[10; 11) + WHITESPACE@[11; 16) + FUNCTION@[16; 32) + ABI@[16; 22) + EXTERN_KW@[16; 22) + WHITESPACE@[22; 23) + FN_KW@[23; 25) + WHITESPACE@[25; 26) + NAME@[26; 27) + IDENT@[26; 27) "f" + PARAM_LIST@[27; 29) + L_PAREN@[27; 28) + R_PAREN@[28; 29) + WHITESPACE@[29; 30) + BLOCK_EXPR@[30; 32) + L_CURLY@[30; 31) + R_CURLY@[31; 32) + WHITESPACE@[32; 33) + R_CURLY@[33; 34) + WHITESPACE@[34; 35) diff --git a/crates/libsyntax2/tests/data/parser/ok/0026_const_fn_in_block.rs b/crates/libsyntax2/tests/data/parser/ok/0026_const_fn_in_block.rs new file mode 100644 index 000000000..7641a3d28 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0026_const_fn_in_block.rs @@ -0,0 +1,3 @@ +fn main() { + const fn f() {} +} diff --git a/crates/libsyntax2/tests/data/parser/ok/0026_const_fn_in_block.txt b/crates/libsyntax2/tests/data/parser/ok/0026_const_fn_in_block.txt new file mode 100644 index 000000000..a450762a8 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0026_const_fn_in_block.txt @@ -0,0 +1,30 @@ +FILE@[0; 34) + FUNCTION@[0; 33) + FN_KW@[0; 2) + WHITESPACE@[2; 3) + NAME@[3; 7) + IDENT@[3; 7) "main" + PARAM_LIST@[7; 9) + L_PAREN@[7; 8) + R_PAREN@[8; 9) + WHITESPACE@[9; 10) + BLOCK_EXPR@[10; 33) + L_CURLY@[10; 11) + WHITESPACE@[11; 16) + FUNCTION@[16; 31) + CONST_KW@[16; 21) + WHITESPACE@[21; 22) + FN_KW@[22; 24) + WHITESPACE@[24; 25) + NAME@[25; 26) + IDENT@[25; 26) "f" + PARAM_LIST@[26; 28) + L_PAREN@[26; 27) + R_PAREN@[27; 28) + WHITESPACE@[28; 29) + BLOCK_EXPR@[29; 31) + L_CURLY@[29; 30) + R_CURLY@[30; 31) + WHITESPACE@[31; 32) + R_CURLY@[32; 33) + WHITESPACE@[33; 34) diff --git a/crates/libsyntax2/tests/data/parser/ok/0027_unsafe_fn_in_block.rs b/crates/libsyntax2/tests/data/parser/ok/0027_unsafe_fn_in_block.rs new file mode 100644 index 000000000..f3c5ff938 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0027_unsafe_fn_in_block.rs @@ -0,0 +1,4 @@ +fn main() { + unsafe fn f() {} + unsafe { 92 } +} diff --git a/crates/libsyntax2/tests/data/parser/ok/0027_unsafe_fn_in_block.txt b/crates/libsyntax2/tests/data/parser/ok/0027_unsafe_fn_in_block.txt new file mode 100644 index 000000000..28cd7ad3d --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0027_unsafe_fn_in_block.txt @@ -0,0 +1,40 @@ +FILE@[0; 53) + FUNCTION@[0; 52) + FN_KW@[0; 2) + WHITESPACE@[2; 3) + NAME@[3; 7) + IDENT@[3; 7) "main" + PARAM_LIST@[7; 9) + L_PAREN@[7; 8) + R_PAREN@[8; 9) + WHITESPACE@[9; 10) + BLOCK_EXPR@[10; 52) + L_CURLY@[10; 11) + WHITESPACE@[11; 16) + FUNCTION@[16; 32) + UNSAFE_KW@[16; 22) + WHITESPACE@[22; 23) + FN_KW@[23; 25) + WHITESPACE@[25; 26) + NAME@[26; 27) + IDENT@[26; 27) "f" + PARAM_LIST@[27; 29) + L_PAREN@[27; 28) + R_PAREN@[28; 29) + WHITESPACE@[29; 30) + BLOCK_EXPR@[30; 32) + L_CURLY@[30; 31) + R_CURLY@[31; 32) + WHITESPACE@[32; 37) + BLOCK_EXPR@[37; 50) + UNSAFE_KW@[37; 43) + WHITESPACE@[43; 44) + L_CURLY@[44; 45) + WHITESPACE@[45; 46) + LITERAL@[46; 48) + INT_NUMBER@[46; 48) "92" + WHITESPACE@[48; 49) + R_CURLY@[49; 50) + WHITESPACE@[50; 51) + R_CURLY@[51; 52) + WHITESPACE@[52; 53) diff --git a/crates/libsyntax2/tests/data/parser/ok/0028_operator_binding_power.rs b/crates/libsyntax2/tests/data/parser/ok/0028_operator_binding_power.rs new file mode 100644 index 000000000..cc9598470 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0028_operator_binding_power.rs @@ -0,0 +1,14 @@ +fn binding_power() { + let x = 1 + 2 * 3 % 4 - 5 / 6; + 1 + 2 * 3; + 1 << 2 + 3; + 1 & 2 >> 3; + 1 ^ 2 & 3; + 1 | 2 ^ 3; + 1 == 2 | 3; + 1 && 2 == 3; + //1 || 2 && 2; + //1 .. 2 || 3; + //1 = 2 .. 3; + //---&*1 - --2 * 9; +} diff --git a/crates/libsyntax2/tests/data/parser/ok/0028_operator_binding_power.txt b/crates/libsyntax2/tests/data/parser/ok/0028_operator_binding_power.txt new file mode 100644 index 000000000..3fb1ae811 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0028_operator_binding_power.txt @@ -0,0 +1,185 @@ +FILE@[0; 248) + FUNCTION@[0; 247) + FN_KW@[0; 2) + WHITESPACE@[2; 3) + NAME@[3; 16) + IDENT@[3; 16) "binding_power" + PARAM_LIST@[16; 18) + L_PAREN@[16; 17) + R_PAREN@[17; 18) + WHITESPACE@[18; 19) + BLOCK_EXPR@[19; 247) + L_CURLY@[19; 20) + WHITESPACE@[20; 25) + LET_STMT@[25; 55) + LET_KW@[25; 28) + WHITESPACE@[28; 29) + BIND_PAT@[29; 30) + NAME@[29; 30) + IDENT@[29; 30) "x" + WHITESPACE@[30; 31) + EQ@[31; 32) + WHITESPACE@[32; 33) + BIN_EXPR@[33; 54) + BIN_EXPR@[33; 46) + LITERAL@[33; 34) + INT_NUMBER@[33; 34) "1" + WHITESPACE@[34; 35) + PLUS@[35; 36) + WHITESPACE@[36; 37) + BIN_EXPR@[37; 46) + BIN_EXPR@[37; 42) + LITERAL@[37; 38) + INT_NUMBER@[37; 38) "2" + WHITESPACE@[38; 39) + STAR@[39; 40) + WHITESPACE@[40; 41) + LITERAL@[41; 42) + INT_NUMBER@[41; 42) "3" + WHITESPACE@[42; 43) + PERCENT@[43; 44) + WHITESPACE@[44; 45) + LITERAL@[45; 46) + INT_NUMBER@[45; 46) "4" + WHITESPACE@[46; 47) + MINUS@[47; 48) + WHITESPACE@[48; 49) + BIN_EXPR@[49; 54) + LITERAL@[49; 50) + INT_NUMBER@[49; 50) "5" + WHITESPACE@[50; 51) + SLASH@[51; 52) + WHITESPACE@[52; 53) + LITERAL@[53; 54) + INT_NUMBER@[53; 54) "6" + SEMI@[54; 55) + WHITESPACE@[55; 60) + EXPR_STMT@[60; 70) + BIN_EXPR@[60; 69) + LITERAL@[60; 61) + INT_NUMBER@[60; 61) "1" + WHITESPACE@[61; 62) + PLUS@[62; 63) + WHITESPACE@[63; 64) + BIN_EXPR@[64; 69) + LITERAL@[64; 65) + INT_NUMBER@[64; 65) "2" + WHITESPACE@[65; 66) + STAR@[66; 67) + WHITESPACE@[67; 68) + LITERAL@[68; 69) + INT_NUMBER@[68; 69) "3" + SEMI@[69; 70) + WHITESPACE@[70; 75) + EXPR_STMT@[75; 86) + BIN_EXPR@[75; 85) + LITERAL@[75; 76) + INT_NUMBER@[75; 76) "1" + WHITESPACE@[76; 77) + SHL@[77; 79) + WHITESPACE@[79; 80) + BIN_EXPR@[80; 85) + LITERAL@[80; 81) + INT_NUMBER@[80; 81) "2" + WHITESPACE@[81; 82) + PLUS@[82; 83) + WHITESPACE@[83; 84) + LITERAL@[84; 85) + INT_NUMBER@[84; 85) "3" + SEMI@[85; 86) + WHITESPACE@[86; 91) + EXPR_STMT@[91; 102) + BIN_EXPR@[91; 101) + LITERAL@[91; 92) + INT_NUMBER@[91; 92) "1" + WHITESPACE@[92; 93) + AMP@[93; 94) + WHITESPACE@[94; 95) + BIN_EXPR@[95; 101) + LITERAL@[95; 96) + INT_NUMBER@[95; 96) "2" + WHITESPACE@[96; 97) + SHR@[97; 99) + WHITESPACE@[99; 100) + LITERAL@[100; 101) + INT_NUMBER@[100; 101) "3" + SEMI@[101; 102) + WHITESPACE@[102; 107) + EXPR_STMT@[107; 117) + BIN_EXPR@[107; 116) + LITERAL@[107; 108) + INT_NUMBER@[107; 108) "1" + WHITESPACE@[108; 109) + CARET@[109; 110) + WHITESPACE@[110; 111) + BIN_EXPR@[111; 116) + LITERAL@[111; 112) + INT_NUMBER@[111; 112) "2" + WHITESPACE@[112; 113) + AMP@[113; 114) + WHITESPACE@[114; 115) + LITERAL@[115; 116) + INT_NUMBER@[115; 116) "3" + SEMI@[116; 117) + WHITESPACE@[117; 122) + EXPR_STMT@[122; 132) + BIN_EXPR@[122; 131) + LITERAL@[122; 123) + INT_NUMBER@[122; 123) "1" + WHITESPACE@[123; 124) + PIPE@[124; 125) + WHITESPACE@[125; 126) + BIN_EXPR@[126; 131) + LITERAL@[126; 127) + INT_NUMBER@[126; 127) "2" + WHITESPACE@[127; 128) + CARET@[128; 129) + WHITESPACE@[129; 130) + LITERAL@[130; 131) + INT_NUMBER@[130; 131) "3" + SEMI@[131; 132) + WHITESPACE@[132; 137) + EXPR_STMT@[137; 148) + BIN_EXPR@[137; 147) + LITERAL@[137; 138) + INT_NUMBER@[137; 138) "1" + WHITESPACE@[138; 139) + EQEQ@[139; 141) + WHITESPACE@[141; 142) + BIN_EXPR@[142; 147) + LITERAL@[142; 143) + INT_NUMBER@[142; 143) "2" + WHITESPACE@[143; 144) + PIPE@[144; 145) + WHITESPACE@[145; 146) + LITERAL@[146; 147) + INT_NUMBER@[146; 147) "3" + SEMI@[147; 148) + WHITESPACE@[148; 153) + EXPR_STMT@[153; 165) + BIN_EXPR@[153; 164) + LITERAL@[153; 154) + INT_NUMBER@[153; 154) "1" + WHITESPACE@[154; 155) + AMPAMP@[155; 157) + WHITESPACE@[157; 158) + BIN_EXPR@[158; 164) + LITERAL@[158; 159) + INT_NUMBER@[158; 159) "2" + WHITESPACE@[159; 160) + EQEQ@[160; 162) + WHITESPACE@[162; 163) + LITERAL@[163; 164) + INT_NUMBER@[163; 164) "3" + SEMI@[164; 165) + WHITESPACE@[165; 170) + COMMENT@[170; 184) + WHITESPACE@[184; 189) + COMMENT@[189; 203) + WHITESPACE@[203; 208) + COMMENT@[208; 221) + WHITESPACE@[221; 226) + COMMENT@[226; 245) + WHITESPACE@[245; 246) + R_CURLY@[246; 247) + WHITESPACE@[247; 248) diff --git a/crates/libsyntax2/tests/data/parser/ok/0029_range_forms.rs b/crates/libsyntax2/tests/data/parser/ok/0029_range_forms.rs new file mode 100644 index 000000000..03f4ae7b2 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0029_range_forms.rs @@ -0,0 +1,6 @@ +fn foo() { + ..1 + 1; + ..z = 2; + x = false..1 == 1; + let x = 1..; +} diff --git a/crates/libsyntax2/tests/data/parser/ok/0029_range_forms.txt b/crates/libsyntax2/tests/data/parser/ok/0029_range_forms.txt new file mode 100644 index 000000000..91d5e5bba --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/ok/0029_range_forms.txt @@ -0,0 +1,83 @@ +FILE@[0; 79) + FUNCTION@[0; 78) + FN_KW@[0; 2) + WHITESPACE@[2; 3) + NAME@[3; 6) + IDENT@[3; 6) "foo" + PARAM_LIST@[6; 8) + L_PAREN@[6; 7) + R_PAREN@[7; 8) + WHITESPACE@[8; 9) + BLOCK_EXPR@[9; 78) + L_CURLY@[9; 10) + WHITESPACE@[10; 15) + EXPR_STMT@[15; 23) + RANGE_EXPR@[15; 22) + DOTDOT@[15; 17) + BIN_EXPR@[17; 22) + LITERAL@[17; 18) + INT_NUMBER@[17; 18) "1" + WHITESPACE@[18; 19) + PLUS@[19; 20) + WHITESPACE@[20; 21) + LITERAL@[21; 22) + INT_NUMBER@[21; 22) "1" + SEMI@[22; 23) + WHITESPACE@[23; 28) + EXPR_STMT@[28; 36) + BIN_EXPR@[28; 35) + RANGE_EXPR@[28; 31) + DOTDOT@[28; 30) + PATH_EXPR@[30; 31) + PATH@[30; 31) + PATH_SEGMENT@[30; 31) + NAME_REF@[30; 31) + IDENT@[30; 31) "z" + WHITESPACE@[31; 32) + EQ@[32; 33) + WHITESPACE@[33; 34) + LITERAL@[34; 35) + INT_NUMBER@[34; 35) "2" + SEMI@[35; 36) + WHITESPACE@[36; 41) + EXPR_STMT@[41; 59) + BIN_EXPR@[41; 58) + PATH_EXPR@[41; 42) + PATH@[41; 42) + PATH_SEGMENT@[41; 42) + NAME_REF@[41; 42) + IDENT@[41; 42) "x" + WHITESPACE@[42; 43) + EQ@[43; 44) + WHITESPACE@[44; 45) + RANGE_EXPR@[45; 58) + LITERAL@[45; 50) + FALSE_KW@[45; 50) + DOTDOT@[50; 52) + BIN_EXPR@[52; 58) + LITERAL@[52; 53) + INT_NUMBER@[52; 53) "1" + WHITESPACE@[53; 54) + EQEQ@[54; 56) + WHITESPACE@[56; 57) + LITERAL@[57; 58) + INT_NUMBER@[57; 58) "1" + SEMI@[58; 59) + WHITESPACE@[59; 64) + LET_STMT@[64; 76) + LET_KW@[64; 67) + WHITESPACE@[67; 68) + BIND_PAT@[68; 69) + NAME@[68; 69) + IDENT@[68; 69) "x" + WHITESPACE@[69; 70) + EQ@[70; 71) + WHITESPACE@[71; 72) + RANGE_EXPR@[72; 75) + LITERAL@[72; 73) + INT_NUMBER@[72; 73) "1" + DOTDOT@[73; 75) + SEMI@[75; 76) + WHITESPACE@[76; 77) + R_CURLY@[77; 78) + WHITESPACE@[78; 79) -- cgit v1.2.3