From 7c67612b8a894187fa3b64725531a5459f9211bf Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Fri, 10 Aug 2018 22:33:29 +0300 Subject: organizize --- .../parser/err/0000_struct_field_missing_comma.rs | 4 + .../parser/err/0000_struct_field_missing_comma.txt | 33 ++ .../data/parser/err/0001_item_recovery_in_file.rs | 3 + .../data/parser/err/0001_item_recovery_in_file.txt | 17 + .../data/parser/err/0002_duplicate_shebang.rs | 2 + .../data/parser/err/0002_duplicate_shebang.txt | 7 + .../tests/data/parser/err/0003_C++_semicolon.rs | 4 + .../tests/data/parser/err/0003_C++_semicolon.txt | 38 ++ .../data/parser/err/0004_use_path_bad_segment.rs | 1 + .../data/parser/err/0004_use_path_bad_segment.txt | 20 ++ .../data/parser/err/0005_attribute_recover.rs | 8 + .../data/parser/err/0005_attribute_recover.txt | 60 ++++ .../data/parser/err/0006_named_field_recovery.rs | 7 + .../data/parser/err/0006_named_field_recovery.txt | 73 ++++ .../data/parser/err/0007_stray_curly_in_file.rs | 9 + .../data/parser/err/0007_stray_curly_in_file.txt | 32 ++ .../data/parser/err/0008_item_block_recovery.rs | 13 + .../data/parser/err/0008_item_block_recovery.txt | 67 ++++ .../err/0009_broken_struct_type_parameter.rs | 5 + .../err/0009_broken_struct_type_parameter.txt | 44 +++ .../data/parser/err/0010_unsafe_lambda_block.rs | 3 + .../data/parser/err/0010_unsafe_lambda_block.txt | 40 +++ .../tests/data/parser/err/0011_extern_struct.rs | 1 + .../tests/data/parser/err/0011_extern_struct.txt | 13 + .../tests/data/parser/err/0012_broken_lambda.rs | 12 + .../tests/data/parser/err/0012_broken_lambda.txt | 387 +++++++++++++++++++++ 26 files changed, 903 insertions(+) create mode 100644 crates/libsyntax2/tests/data/parser/err/0000_struct_field_missing_comma.rs create mode 100644 crates/libsyntax2/tests/data/parser/err/0000_struct_field_missing_comma.txt create mode 100644 crates/libsyntax2/tests/data/parser/err/0001_item_recovery_in_file.rs create mode 100644 crates/libsyntax2/tests/data/parser/err/0001_item_recovery_in_file.txt create mode 100644 crates/libsyntax2/tests/data/parser/err/0002_duplicate_shebang.rs create mode 100644 crates/libsyntax2/tests/data/parser/err/0002_duplicate_shebang.txt create mode 100644 crates/libsyntax2/tests/data/parser/err/0003_C++_semicolon.rs create mode 100644 crates/libsyntax2/tests/data/parser/err/0003_C++_semicolon.txt create mode 100644 crates/libsyntax2/tests/data/parser/err/0004_use_path_bad_segment.rs create mode 100644 crates/libsyntax2/tests/data/parser/err/0004_use_path_bad_segment.txt create mode 100644 crates/libsyntax2/tests/data/parser/err/0005_attribute_recover.rs create mode 100644 crates/libsyntax2/tests/data/parser/err/0005_attribute_recover.txt create mode 100644 crates/libsyntax2/tests/data/parser/err/0006_named_field_recovery.rs create mode 100644 crates/libsyntax2/tests/data/parser/err/0006_named_field_recovery.txt create mode 100644 crates/libsyntax2/tests/data/parser/err/0007_stray_curly_in_file.rs create mode 100644 crates/libsyntax2/tests/data/parser/err/0007_stray_curly_in_file.txt create mode 100644 crates/libsyntax2/tests/data/parser/err/0008_item_block_recovery.rs create mode 100644 crates/libsyntax2/tests/data/parser/err/0008_item_block_recovery.txt create mode 100644 crates/libsyntax2/tests/data/parser/err/0009_broken_struct_type_parameter.rs create mode 100644 crates/libsyntax2/tests/data/parser/err/0009_broken_struct_type_parameter.txt create mode 100644 crates/libsyntax2/tests/data/parser/err/0010_unsafe_lambda_block.rs create mode 100644 crates/libsyntax2/tests/data/parser/err/0010_unsafe_lambda_block.txt create mode 100644 crates/libsyntax2/tests/data/parser/err/0011_extern_struct.rs create mode 100644 crates/libsyntax2/tests/data/parser/err/0011_extern_struct.txt create mode 100644 crates/libsyntax2/tests/data/parser/err/0012_broken_lambda.rs create mode 100644 crates/libsyntax2/tests/data/parser/err/0012_broken_lambda.txt (limited to 'crates/libsyntax2/tests/data/parser/err') diff --git a/crates/libsyntax2/tests/data/parser/err/0000_struct_field_missing_comma.rs b/crates/libsyntax2/tests/data/parser/err/0000_struct_field_missing_comma.rs new file mode 100644 index 000000000..fe5030d89 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/err/0000_struct_field_missing_comma.rs @@ -0,0 +1,4 @@ +struct S { + a: u32 + b: u32 +} \ No newline at end of file diff --git a/crates/libsyntax2/tests/data/parser/err/0000_struct_field_missing_comma.txt b/crates/libsyntax2/tests/data/parser/err/0000_struct_field_missing_comma.txt new file mode 100644 index 000000000..1b5d722f8 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/err/0000_struct_field_missing_comma.txt @@ -0,0 +1,33 @@ +FILE@[0; 34) + STRUCT_ITEM@[0; 34) + 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; 21) + NAME@[15; 16) + IDENT@[15; 16) "a" + COLON@[16; 17) + WHITESPACE@[17; 18) + PATH_TYPE@[18; 21) + PATH@[18; 21) + PATH_SEGMENT@[18; 21) + NAME_REF@[18; 21) + IDENT@[18; 21) "u32" + err: `expected COMMA` + WHITESPACE@[21; 26) + NAMED_FIELD@[26; 32) + NAME@[26; 27) + IDENT@[26; 27) "b" + COLON@[27; 28) + WHITESPACE@[28; 29) + PATH_TYPE@[29; 32) + PATH@[29; 32) + PATH_SEGMENT@[29; 32) + NAME_REF@[29; 32) + IDENT@[29; 32) "u32" + WHITESPACE@[32; 33) + R_CURLY@[33; 34) diff --git a/crates/libsyntax2/tests/data/parser/err/0001_item_recovery_in_file.rs b/crates/libsyntax2/tests/data/parser/err/0001_item_recovery_in_file.rs new file mode 100644 index 000000000..98f23de1f --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/err/0001_item_recovery_in_file.rs @@ -0,0 +1,3 @@ +if match + +struct S {} \ No newline at end of file diff --git a/crates/libsyntax2/tests/data/parser/err/0001_item_recovery_in_file.txt b/crates/libsyntax2/tests/data/parser/err/0001_item_recovery_in_file.txt new file mode 100644 index 000000000..1aaf07625 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/err/0001_item_recovery_in_file.txt @@ -0,0 +1,17 @@ +FILE@[0; 21) + ERROR@[0; 2) + IF_KW@[0; 2) + err: `expected an item` + WHITESPACE@[2; 3) + err: `expected an item` + ERROR@[3; 8) + MATCH_KW@[3; 8) + WHITESPACE@[8; 10) + STRUCT_ITEM@[10; 21) + STRUCT_KW@[10; 16) + WHITESPACE@[16; 17) + NAME@[17; 18) + IDENT@[17; 18) "S" + WHITESPACE@[18; 19) + L_CURLY@[19; 20) + R_CURLY@[20; 21) diff --git a/crates/libsyntax2/tests/data/parser/err/0002_duplicate_shebang.rs b/crates/libsyntax2/tests/data/parser/err/0002_duplicate_shebang.rs new file mode 100644 index 000000000..48a3a3980 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/err/0002_duplicate_shebang.rs @@ -0,0 +1,2 @@ +#!/use/bin/env rusti +#!/use/bin/env rusti diff --git a/crates/libsyntax2/tests/data/parser/err/0002_duplicate_shebang.txt b/crates/libsyntax2/tests/data/parser/err/0002_duplicate_shebang.txt new file mode 100644 index 000000000..0b6aa26eb --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/err/0002_duplicate_shebang.txt @@ -0,0 +1,7 @@ +FILE@[0; 42) + SHEBANG@[0; 20) + WHITESPACE@[20; 21) + err: `expected an item` + ERROR@[21; 41) + SHEBANG@[21; 41) + WHITESPACE@[41; 42) diff --git a/crates/libsyntax2/tests/data/parser/err/0003_C++_semicolon.rs b/crates/libsyntax2/tests/data/parser/err/0003_C++_semicolon.rs new file mode 100644 index 000000000..009312270 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/err/0003_C++_semicolon.rs @@ -0,0 +1,4 @@ +struct S { + a: i32, + b: String, +}; \ No newline at end of file diff --git a/crates/libsyntax2/tests/data/parser/err/0003_C++_semicolon.txt b/crates/libsyntax2/tests/data/parser/err/0003_C++_semicolon.txt new file mode 100644 index 000000000..81777fec0 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/err/0003_C++_semicolon.txt @@ -0,0 +1,38 @@ +FILE@[0; 40) + STRUCT_ITEM@[0; 40) + 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; 21) + NAME@[15; 16) + IDENT@[15; 16) "a" + COLON@[16; 17) + WHITESPACE@[17; 18) + PATH_TYPE@[18; 21) + PATH@[18; 21) + PATH_SEGMENT@[18; 21) + NAME_REF@[18; 21) + IDENT@[18; 21) "i32" + COMMA@[21; 22) + WHITESPACE@[22; 27) + NAMED_FIELD@[27; 36) + NAME@[27; 28) + IDENT@[27; 28) "b" + COLON@[28; 29) + WHITESPACE@[29; 30) + PATH_TYPE@[30; 36) + PATH@[30; 36) + PATH_SEGMENT@[30; 36) + NAME_REF@[30; 36) + IDENT@[30; 36) "String" + COMMA@[36; 37) + WHITESPACE@[37; 38) + R_CURLY@[38; 39) + err: `expected item, found `;` +consider removing this semicolon` + ERROR@[39; 40) + SEMI@[39; 40) diff --git a/crates/libsyntax2/tests/data/parser/err/0004_use_path_bad_segment.rs b/crates/libsyntax2/tests/data/parser/err/0004_use_path_bad_segment.rs new file mode 100644 index 000000000..060e65d06 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/err/0004_use_path_bad_segment.rs @@ -0,0 +1 @@ +use foo::92; \ No newline at end of file diff --git a/crates/libsyntax2/tests/data/parser/err/0004_use_path_bad_segment.txt b/crates/libsyntax2/tests/data/parser/err/0004_use_path_bad_segment.txt new file mode 100644 index 000000000..c6ae68103 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/err/0004_use_path_bad_segment.txt @@ -0,0 +1,20 @@ +FILE@[0; 12) + USE_ITEM@[0; 9) + USE_KW@[0; 3) + WHITESPACE@[3; 4) + USE_TREE@[4; 9) + PATH@[4; 9) + PATH@[4; 7) + PATH_SEGMENT@[4; 7) + NAME_REF@[4; 7) + IDENT@[4; 7) "foo" + COLONCOLON@[7; 9) + err: `expected identifier` + err: `expected SEMI` + err: `expected an item` + PATH_SEGMENT@[9; 9) + ERROR@[9; 11) + INT_NUMBER@[9; 11) "92" + err: `expected an item` + ERROR@[11; 12) + SEMI@[11; 12) diff --git a/crates/libsyntax2/tests/data/parser/err/0005_attribute_recover.rs b/crates/libsyntax2/tests/data/parser/err/0005_attribute_recover.rs new file mode 100644 index 000000000..de7f81628 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/err/0005_attribute_recover.rs @@ -0,0 +1,8 @@ +#[foo(foo, +, 92)] +fn foo() { +} + + +#[foo( +fn foo() { +} diff --git a/crates/libsyntax2/tests/data/parser/err/0005_attribute_recover.txt b/crates/libsyntax2/tests/data/parser/err/0005_attribute_recover.txt new file mode 100644 index 000000000..079b0d1f6 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/err/0005_attribute_recover.txt @@ -0,0 +1,60 @@ +FILE@[0; 54) + FUNCTION@[0; 31) + ATTR@[0; 18) + POUND@[0; 1) + L_BRACK@[1; 2) + META_ITEM@[2; 17) + IDENT@[2; 5) "foo" + L_PAREN@[5; 6) + META_ITEM@[6; 9) + IDENT@[6; 9) "foo" + COMMA@[9; 10) + WHITESPACE@[10; 11) + err: `expected attribute` + ERROR@[11; 12) + PLUS@[11; 12) + err: `expected attribute` + ERROR@[12; 13) + COMMA@[12; 13) + WHITESPACE@[13; 14) + LITERAL@[14; 16) + INT_NUMBER@[14; 16) "92" + R_PAREN@[16; 17) + R_BRACK@[17; 18) + WHITESPACE@[18; 19) + FN_KW@[19; 21) + WHITESPACE@[21; 22) + NAME@[22; 25) + IDENT@[22; 25) "foo" + PARAM_LIST@[25; 27) + L_PAREN@[25; 26) + R_PAREN@[26; 27) + WHITESPACE@[27; 28) + BLOCK_EXPR@[28; 31) + L_CURLY@[28; 29) + WHITESPACE@[29; 30) + R_CURLY@[30; 31) + WHITESPACE@[31; 34) + FUNCTION@[34; 53) + ATTR@[34; 40) + POUND@[34; 35) + L_BRACK@[35; 36) + META_ITEM@[36; 40) + IDENT@[36; 39) "foo" + L_PAREN@[39; 40) + err: `expected attribute` + err: `expected R_BRACK` + WHITESPACE@[40; 41) + FN_KW@[41; 43) + WHITESPACE@[43; 44) + NAME@[44; 47) + IDENT@[44; 47) "foo" + PARAM_LIST@[47; 49) + L_PAREN@[47; 48) + R_PAREN@[48; 49) + WHITESPACE@[49; 50) + BLOCK_EXPR@[50; 53) + L_CURLY@[50; 51) + WHITESPACE@[51; 52) + R_CURLY@[52; 53) + WHITESPACE@[53; 54) diff --git a/crates/libsyntax2/tests/data/parser/err/0006_named_field_recovery.rs b/crates/libsyntax2/tests/data/parser/err/0006_named_field_recovery.rs new file mode 100644 index 000000000..8069c111b --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/err/0006_named_field_recovery.rs @@ -0,0 +1,7 @@ +struct S { + f: u32, + pub 92 + + - * + pub x: u32, + z: f64, +} diff --git a/crates/libsyntax2/tests/data/parser/err/0006_named_field_recovery.txt b/crates/libsyntax2/tests/data/parser/err/0006_named_field_recovery.txt new file mode 100644 index 000000000..009b307b1 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/err/0006_named_field_recovery.txt @@ -0,0 +1,73 @@ +FILE@[0; 74) + STRUCT_ITEM@[0; 73) + 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; 21) + NAME@[15; 16) + IDENT@[15; 16) "f" + COLON@[16; 17) + WHITESPACE@[17; 18) + PATH_TYPE@[18; 21) + PATH@[18; 21) + PATH_SEGMENT@[18; 21) + NAME_REF@[18; 21) + IDENT@[18; 21) "u32" + COMMA@[21; 22) + WHITESPACE@[22; 27) + VISIBILITY@[27; 30) + PUB_KW@[27; 30) + WHITESPACE@[30; 31) + err: `expected field declaration` + ERROR@[31; 33) + INT_NUMBER@[31; 33) "92" + err: `expected COMMA` + WHITESPACE@[33; 38) + err: `expected field declaration` + ERROR@[38; 39) + PLUS@[38; 39) + err: `expected COMMA` + WHITESPACE@[39; 40) + err: `expected field declaration` + ERROR@[40; 41) + MINUS@[40; 41) + err: `expected COMMA` + WHITESPACE@[41; 42) + err: `expected field declaration` + ERROR@[42; 43) + STAR@[42; 43) + err: `expected COMMA` + WHITESPACE@[43; 48) + NAMED_FIELD@[48; 58) + VISIBILITY@[48; 51) + PUB_KW@[48; 51) + WHITESPACE@[51; 52) + NAME@[52; 53) + IDENT@[52; 53) "x" + COLON@[53; 54) + WHITESPACE@[54; 55) + PATH_TYPE@[55; 58) + PATH@[55; 58) + PATH_SEGMENT@[55; 58) + NAME_REF@[55; 58) + IDENT@[55; 58) "u32" + COMMA@[58; 59) + WHITESPACE@[59; 64) + NAMED_FIELD@[64; 70) + NAME@[64; 65) + IDENT@[64; 65) "z" + COLON@[65; 66) + WHITESPACE@[66; 67) + PATH_TYPE@[67; 70) + PATH@[67; 70) + PATH_SEGMENT@[67; 70) + NAME_REF@[67; 70) + IDENT@[67; 70) "f64" + COMMA@[70; 71) + WHITESPACE@[71; 72) + R_CURLY@[72; 73) + WHITESPACE@[73; 74) diff --git a/crates/libsyntax2/tests/data/parser/err/0007_stray_curly_in_file.rs b/crates/libsyntax2/tests/data/parser/err/0007_stray_curly_in_file.rs new file mode 100644 index 000000000..dc869fb78 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/err/0007_stray_curly_in_file.rs @@ -0,0 +1,9 @@ +} + +struct S; + +} + +fn foo(){} + +} diff --git a/crates/libsyntax2/tests/data/parser/err/0007_stray_curly_in_file.txt b/crates/libsyntax2/tests/data/parser/err/0007_stray_curly_in_file.txt new file mode 100644 index 000000000..b36decb46 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/err/0007_stray_curly_in_file.txt @@ -0,0 +1,32 @@ +FILE@[0; 31) + ERROR@[0; 1) + R_CURLY@[0; 1) + err: `expected an item` + WHITESPACE@[1; 3) + STRUCT_ITEM@[3; 12) + STRUCT_KW@[3; 9) + WHITESPACE@[9; 10) + NAME@[10; 11) + IDENT@[10; 11) "S" + SEMI@[11; 12) + WHITESPACE@[12; 14) + err: `expected an item` + ERROR@[14; 15) + R_CURLY@[14; 15) + WHITESPACE@[15; 17) + FUNCTION@[17; 27) + FN_KW@[17; 19) + WHITESPACE@[19; 20) + NAME@[20; 23) + IDENT@[20; 23) "foo" + PARAM_LIST@[23; 25) + L_PAREN@[23; 24) + R_PAREN@[24; 25) + BLOCK_EXPR@[25; 27) + L_CURLY@[25; 26) + R_CURLY@[26; 27) + WHITESPACE@[27; 29) + err: `expected an item` + ERROR@[29; 30) + R_CURLY@[29; 30) + WHITESPACE@[30; 31) diff --git a/crates/libsyntax2/tests/data/parser/err/0008_item_block_recovery.rs b/crates/libsyntax2/tests/data/parser/err/0008_item_block_recovery.rs new file mode 100644 index 000000000..9fcac19b5 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/err/0008_item_block_recovery.rs @@ -0,0 +1,13 @@ +fn foo() { +} + +bar() { + if true { + 1 + } else { + 2 + 3 + } +} + +fn baz() { +} diff --git a/crates/libsyntax2/tests/data/parser/err/0008_item_block_recovery.txt b/crates/libsyntax2/tests/data/parser/err/0008_item_block_recovery.txt new file mode 100644 index 000000000..f2a503cec --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/err/0008_item_block_recovery.txt @@ -0,0 +1,67 @@ +FILE@[0; 95) + 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; 14) + MACRO_CALL@[14; 19) + PATH@[14; 17) + PATH_SEGMENT@[14; 17) + NAME_REF@[14; 17) + IDENT@[14; 17) "bar" + err: `expected EXCL` + L_PAREN@[17; 18) + R_PAREN@[18; 19) + err: `expected SEMI` + WHITESPACE@[19; 20) + err: `expected an item` + ERROR@[20; 80) + L_CURLY@[20; 21) + WHITESPACE@[21; 26) + IF_KW@[26; 28) + WHITESPACE@[28; 29) + TRUE_KW@[29; 33) + WHITESPACE@[33; 34) + L_CURLY@[34; 35) + WHITESPACE@[35; 44) + INT_NUMBER@[44; 45) "1" + WHITESPACE@[45; 50) + R_CURLY@[50; 51) + WHITESPACE@[51; 52) + ELSE_KW@[52; 56) + WHITESPACE@[56; 57) + L_CURLY@[57; 58) + WHITESPACE@[58; 67) + INT_NUMBER@[67; 68) "2" + WHITESPACE@[68; 69) + PLUS@[69; 70) + WHITESPACE@[70; 71) + INT_NUMBER@[71; 72) "3" + WHITESPACE@[72; 77) + R_CURLY@[77; 78) + WHITESPACE@[78; 79) + R_CURLY@[79; 80) + WHITESPACE@[80; 82) + FUNCTION@[82; 94) + FN_KW@[82; 84) + WHITESPACE@[84; 85) + NAME@[85; 88) + IDENT@[85; 88) "baz" + PARAM_LIST@[88; 90) + L_PAREN@[88; 89) + R_PAREN@[89; 90) + WHITESPACE@[90; 91) + BLOCK_EXPR@[91; 94) + L_CURLY@[91; 92) + WHITESPACE@[92; 93) + R_CURLY@[93; 94) + WHITESPACE@[94; 95) diff --git a/crates/libsyntax2/tests/data/parser/err/0009_broken_struct_type_parameter.rs b/crates/libsyntax2/tests/data/parser/err/0009_broken_struct_type_parameter.rs new file mode 100644 index 000000000..0dd30d0bd --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/err/0009_broken_struct_type_parameter.rs @@ -0,0 +1,5 @@ +struct S<90 + 2> { + f: u32 +} + +struct T; diff --git a/crates/libsyntax2/tests/data/parser/err/0009_broken_struct_type_parameter.txt b/crates/libsyntax2/tests/data/parser/err/0009_broken_struct_type_parameter.txt new file mode 100644 index 000000000..fc736f0e9 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/err/0009_broken_struct_type_parameter.txt @@ -0,0 +1,44 @@ +FILE@[0; 43) + STRUCT_ITEM@[0; 11) + STRUCT_KW@[0; 6) + WHITESPACE@[6; 7) + NAME@[7; 8) + IDENT@[7; 8) "S" + TYPE_PARAM_LIST@[8; 11) + L_ANGLE@[8; 9) + err: `expected type parameter` + ERROR@[9; 11) + INT_NUMBER@[9; 11) "90" + err: `expected COMMA` + err: `expected R_ANGLE` + err: `expected `;`, `{`, or `(`` + WHITESPACE@[11; 12) + err: `expected an item` + ERROR@[12; 13) + PLUS@[12; 13) + WHITESPACE@[13; 14) + err: `expected an item` + ERROR@[14; 15) + INT_NUMBER@[14; 15) "2" + err: `expected an item` + ERROR@[15; 16) + R_ANGLE@[15; 16) + WHITESPACE@[16; 17) + err: `expected an item` + ERROR@[17; 31) + L_CURLY@[17; 18) + WHITESPACE@[18; 23) + IDENT@[23; 24) "f" + COLON@[24; 25) + WHITESPACE@[25; 26) + IDENT@[26; 29) "u32" + WHITESPACE@[29; 30) + R_CURLY@[30; 31) + WHITESPACE@[31; 33) + STRUCT_ITEM@[33; 42) + STRUCT_KW@[33; 39) + WHITESPACE@[39; 40) + NAME@[40; 41) + IDENT@[40; 41) "T" + SEMI@[41; 42) + WHITESPACE@[42; 43) diff --git a/crates/libsyntax2/tests/data/parser/err/0010_unsafe_lambda_block.rs b/crates/libsyntax2/tests/data/parser/err/0010_unsafe_lambda_block.rs new file mode 100644 index 000000000..985775282 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/err/0010_unsafe_lambda_block.rs @@ -0,0 +1,3 @@ +fn main() { + || -> () unsafe { () }; +} diff --git a/crates/libsyntax2/tests/data/parser/err/0010_unsafe_lambda_block.txt b/crates/libsyntax2/tests/data/parser/err/0010_unsafe_lambda_block.txt new file mode 100644 index 000000000..95d4af424 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/err/0010_unsafe_lambda_block.txt @@ -0,0 +1,40 @@ +FILE@[0; 42) + FUNCTION@[0; 41) + 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; 41) + L_CURLY@[10; 11) + WHITESPACE@[11; 16) + LAMBDA_EXPR@[16; 24) + PARAM_LIST@[16; 18) + PIPE@[16; 17) + PIPE@[17; 18) + WHITESPACE@[18; 19) + THIN_ARROW@[19; 21) + WHITESPACE@[21; 22) + TUPLE_TYPE@[22; 24) + L_PAREN@[22; 23) + R_PAREN@[23; 24) + err: `expected block` + WHITESPACE@[24; 25) + EXPR_STMT@[25; 39) + BLOCK_EXPR@[25; 38) + UNSAFE_KW@[25; 31) + WHITESPACE@[31; 32) + L_CURLY@[32; 33) + WHITESPACE@[33; 34) + TUPLE_EXPR@[34; 36) + L_PAREN@[34; 35) + R_PAREN@[35; 36) + WHITESPACE@[36; 37) + R_CURLY@[37; 38) + SEMI@[38; 39) + WHITESPACE@[39; 40) + R_CURLY@[40; 41) + WHITESPACE@[41; 42) diff --git a/crates/libsyntax2/tests/data/parser/err/0011_extern_struct.rs b/crates/libsyntax2/tests/data/parser/err/0011_extern_struct.rs new file mode 100644 index 000000000..c1bd0a2d1 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/err/0011_extern_struct.rs @@ -0,0 +1 @@ +extern struct Foo; diff --git a/crates/libsyntax2/tests/data/parser/err/0011_extern_struct.txt b/crates/libsyntax2/tests/data/parser/err/0011_extern_struct.txt new file mode 100644 index 000000000..3c5b678a1 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/err/0011_extern_struct.txt @@ -0,0 +1,13 @@ +FILE@[0; 19) + ERROR@[0; 6) + ABI@[0; 6) + EXTERN_KW@[0; 6) + err: `expected fn, trait or impl` + WHITESPACE@[6; 7) + STRUCT_ITEM@[7; 18) + STRUCT_KW@[7; 13) + WHITESPACE@[13; 14) + NAME@[14; 17) + IDENT@[14; 17) "Foo" + SEMI@[17; 18) + WHITESPACE@[18; 19) diff --git a/crates/libsyntax2/tests/data/parser/err/0012_broken_lambda.rs b/crates/libsyntax2/tests/data/parser/err/0012_broken_lambda.rs new file mode 100644 index 000000000..ad0d8eb4c --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/err/0012_broken_lambda.rs @@ -0,0 +1,12 @@ +pub(super) fn process<'a, S: Sink<'a>>(builder: &mut S, tokens: &[Token], events: Vec) { + let mut next_tok_idx = 0; + let eat_ws = |idx: &mut usize, &mut | { + while let Some(token) = tokens.get(*idx) { + if !token.kind.is_trivia() { + break; + } + builder.leaf(token.kind, token.len); + *idx += 1 + } + }; +} diff --git a/crates/libsyntax2/tests/data/parser/err/0012_broken_lambda.txt b/crates/libsyntax2/tests/data/parser/err/0012_broken_lambda.txt new file mode 100644 index 000000000..cf6e68a78 --- /dev/null +++ b/crates/libsyntax2/tests/data/parser/err/0012_broken_lambda.txt @@ -0,0 +1,387 @@ +FILE@[0; 389) + FUNCTION@[0; 389) + VISIBILITY@[0; 10) + PUB_KW@[0; 3) + L_PAREN@[3; 4) + SUPER_KW@[4; 9) + R_PAREN@[9; 10) + WHITESPACE@[10; 11) + FN_KW@[11; 13) + WHITESPACE@[13; 14) + NAME@[14; 21) + IDENT@[14; 21) "process" + TYPE_PARAM_LIST@[21; 38) + L_ANGLE@[21; 22) + LIFETIME_PARAM@[22; 24) + LIFETIME@[22; 24) "'a" + COMMA@[24; 25) + WHITESPACE@[25; 26) + TYPE_PARAM@[26; 37) + NAME@[26; 27) + IDENT@[26; 27) "S" + COLON@[27; 28) + WHITESPACE@[28; 29) + PATH@[29; 37) + PATH_SEGMENT@[29; 37) + NAME_REF@[29; 33) + IDENT@[29; 33) "Sink" + TYPE_ARG_LIST@[33; 37) + L_ANGLE@[33; 34) + LIFETIME_ARG@[34; 36) + LIFETIME@[34; 36) "'a" + R_ANGLE@[36; 37) + R_ANGLE@[37; 38) + PARAM_LIST@[38; 93) + L_PAREN@[38; 39) + PARAM@[39; 54) + BIND_PAT@[39; 46) + NAME@[39; 46) + IDENT@[39; 46) "builder" + COLON@[46; 47) + WHITESPACE@[47; 48) + REFERENCE_TYPE@[48; 54) + AMP@[48; 49) + MUT_KW@[49; 52) + WHITESPACE@[52; 53) + PATH_TYPE@[53; 54) + PATH@[53; 54) + PATH_SEGMENT@[53; 54) + NAME_REF@[53; 54) + IDENT@[53; 54) "S" + COMMA@[54; 55) + WHITESPACE@[55; 56) + PARAM@[56; 72) + BIND_PAT@[56; 62) + NAME@[56; 62) + IDENT@[56; 62) "tokens" + COLON@[62; 63) + WHITESPACE@[63; 64) + REFERENCE_TYPE@[64; 72) + AMP@[64; 65) + SLICE_TYPE@[65; 72) + L_BRACK@[65; 66) + PATH_TYPE@[66; 71) + PATH@[66; 71) + PATH_SEGMENT@[66; 71) + NAME_REF@[66; 71) + IDENT@[66; 71) "Token" + R_BRACK@[71; 72) + COMMA@[72; 73) + WHITESPACE@[73; 74) + PARAM@[74; 92) + BIND_PAT@[74; 80) + NAME@[74; 80) + IDENT@[74; 80) "events" + COLON@[80; 81) + WHITESPACE@[81; 82) + PATH_TYPE@[82; 92) + PATH@[82; 92) + PATH_SEGMENT@[82; 92) + NAME_REF@[82; 85) + IDENT@[82; 85) "Vec" + TYPE_ARG_LIST@[85; 92) + L_ANGLE@[85; 86) + TYPE_ARG@[86; 91) + PATH_TYPE@[86; 91) + PATH@[86; 91) + PATH_SEGMENT@[86; 91) + NAME_REF@[86; 91) + IDENT@[86; 91) "Event" + R_ANGLE@[91; 92) + R_PAREN@[92; 93) + WHITESPACE@[93; 94) + BLOCK_EXPR@[94; 389) + L_CURLY@[94; 95) + WHITESPACE@[95; 100) + LET_STMT@[100; 125) + LET_KW@[100; 103) + WHITESPACE@[103; 104) + BIND_PAT@[104; 120) + MUT_KW@[104; 107) + WHITESPACE@[107; 108) + NAME@[108; 120) + IDENT@[108; 120) "next_tok_idx" + WHITESPACE@[120; 121) + EQ@[121; 122) + WHITESPACE@[122; 123) + LITERAL@[123; 124) + INT_NUMBER@[123; 124) "0" + SEMI@[124; 125) + WHITESPACE@[125; 130) + LET_STMT@[130; 389) + LET_KW@[130; 133) + WHITESPACE@[133; 134) + BIND_PAT@[134; 140) + NAME@[134; 140) + IDENT@[134; 140) "eat_ws" + WHITESPACE@[140; 141) + EQ@[141; 142) + WHITESPACE@[142; 143) + LAMBDA_EXPR@[143; 389) + PARAM_LIST@[143; 388) + PIPE@[143; 144) + PARAM@[144; 159) + BIND_PAT@[144; 147) + NAME@[144; 147) + IDENT@[144; 147) "idx" + COLON@[147; 148) + WHITESPACE@[148; 149) + REFERENCE_TYPE@[149; 159) + AMP@[149; 150) + MUT_KW@[150; 153) + WHITESPACE@[153; 154) + PATH_TYPE@[154; 159) + PATH@[154; 159) + PATH_SEGMENT@[154; 159) + NAME_REF@[154; 159) + IDENT@[154; 159) "usize" + COMMA@[159; 160) + WHITESPACE@[160; 161) + PARAM@[161; 167) + REF_PAT@[161; 167) + AMP@[161; 162) + MUT_KW@[162; 165) + WHITESPACE@[165; 166) + err: `expected pattern` + ERROR@[166; 167) + PIPE@[166; 167) + err: `expected COMMA` + WHITESPACE@[167; 168) + err: `expected pattern` + PARAM@[168; 169) + ERROR@[168; 169) + L_CURLY@[168; 169) + err: `expected COMMA` + WHITESPACE@[169; 178) + err: `expected pattern` + PARAM@[178; 183) + ERROR@[178; 183) + WHILE_KW@[178; 183) + err: `expected COMMA` + WHITESPACE@[183; 184) + err: `expected pattern` + PARAM@[184; 187) + ERROR@[184; 187) + LET_KW@[184; 187) + err: `expected COMMA` + WHITESPACE@[187; 188) + PARAM@[188; 199) + TUPLE_STRUCT_PAT@[188; 199) + PATH@[188; 192) + PATH_SEGMENT@[188; 192) + NAME_REF@[188; 192) + IDENT@[188; 192) "Some" + L_PAREN@[192; 193) + BIND_PAT@[193; 198) + NAME@[193; 198) + IDENT@[193; 198) "token" + R_PAREN@[198; 199) + err: `expected COMMA` + WHITESPACE@[199; 200) + err: `expected pattern` + PARAM@[200; 201) + ERROR@[200; 201) + EQ@[200; 201) + err: `expected COMMA` + WHITESPACE@[201; 202) + PARAM@[202; 208) + BIND_PAT@[202; 208) + NAME@[202; 208) + IDENT@[202; 208) "tokens" + err: `expected COMMA` + err: `expected pattern` + PARAM@[208; 209) + ERROR@[208; 209) + DOT@[208; 209) + err: `expected COMMA` + PARAM@[209; 218) + TUPLE_STRUCT_PAT@[209; 218) + PATH@[209; 212) + PATH_SEGMENT@[209; 212) + NAME_REF@[209; 212) + IDENT@[209; 212) "get" + L_PAREN@[212; 213) + err: `expected pattern` + ERROR@[213; 214) + STAR@[213; 214) + err: `expected COMMA` + BIND_PAT@[214; 217) + NAME@[214; 217) + IDENT@[214; 217) "idx" + R_PAREN@[217; 218) + err: `expected COMMA` + WHITESPACE@[218; 219) + err: `expected pattern` + PARAM@[219; 220) + ERROR@[219; 220) + L_CURLY@[219; 220) + err: `expected COMMA` + WHITESPACE@[220; 233) + err: `expected pattern` + PARAM@[233; 235) + ERROR@[233; 235) + IF_KW@[233; 235) + err: `expected COMMA` + WHITESPACE@[235; 236) + err: `expected pattern` + PARAM@[236; 237) + ERROR@[236; 237) + EXCL@[236; 237) + err: `expected COMMA` + PARAM@[237; 242) + BIND_PAT@[237; 242) + NAME@[237; 242) + IDENT@[237; 242) "token" + err: `expected COMMA` + err: `expected pattern` + PARAM@[242; 243) + ERROR@[242; 243) + DOT@[242; 243) + err: `expected COMMA` + PARAM@[243; 247) + BIND_PAT@[243; 247) + NAME@[243; 247) + IDENT@[243; 247) "kind" + err: `expected COMMA` + err: `expected pattern` + PARAM@[247; 248) + ERROR@[247; 248) + DOT@[247; 248) + err: `expected COMMA` + PARAM@[248; 259) + TUPLE_STRUCT_PAT@[248; 259) + PATH@[248; 257) + PATH_SEGMENT@[248; 257) + NAME_REF@[248; 257) + IDENT@[248; 257) "is_trivia" + L_PAREN@[257; 258) + R_PAREN@[258; 259) + err: `expected COMMA` + WHITESPACE@[259; 260) + err: `expected pattern` + PARAM@[260; 261) + ERROR@[260; 261) + L_CURLY@[260; 261) + err: `expected COMMA` + WHITESPACE@[261; 278) + PARAM@[278; 283) + BIND_PAT@[278; 283) + NAME@[278; 283) + IDENT@[278; 283) "break" + err: `expected COMMA` + err: `expected pattern` + PARAM@[283; 284) + ERROR@[283; 284) + SEMI@[283; 284) + err: `expected COMMA` + WHITESPACE@[284; 297) + err: `expected pattern` + PARAM@[297; 298) + ERROR@[297; 298) + R_CURLY@[297; 298) + err: `expected COMMA` + WHITESPACE@[298; 311) + PARAM@[311; 318) + BIND_PAT@[311; 318) + NAME@[311; 318) + IDENT@[311; 318) "builder" + err: `expected COMMA` + err: `expected pattern` + PARAM@[318; 319) + ERROR@[318; 319) + DOT@[318; 319) + err: `expected COMMA` + PARAM@[319; 346) + TUPLE_STRUCT_PAT@[319; 346) + PATH@[319; 323) + PATH_SEGMENT@[319; 323) + NAME_REF@[319; 323) + IDENT@[319; 323) "leaf" + L_PAREN@[323; 324) + BIND_PAT@[324; 329) + NAME@[324; 329) + IDENT@[324; 329) "token" + err: `expected COMMA` + err: `expected pattern` + ERROR@[329; 330) + DOT@[329; 330) + err: `expected COMMA` + BIND_PAT@[330; 334) + NAME@[330; 334) + IDENT@[330; 334) "kind" + COMMA@[334; 335) + WHITESPACE@[335; 336) + BIND_PAT@[336; 341) + NAME@[336; 341) + IDENT@[336; 341) "token" + err: `expected COMMA` + err: `expected pattern` + ERROR@[341; 342) + DOT@[341; 342) + err: `expected COMMA` + BIND_PAT@[342; 345) + NAME@[342; 345) + IDENT@[342; 345) "len" + R_PAREN@[345; 346) + err: `expected COMMA` + err: `expected pattern` + PARAM@[346; 347) + ERROR@[346; 347) + SEMI@[346; 347) + err: `expected COMMA` + WHITESPACE@[347; 360) + err: `expected pattern` + PARAM@[360; 361) + ERROR@[360; 361) + STAR@[360; 361) + err: `expected COMMA` + PARAM@[361; 364) + BIND_PAT@[361; 364) + NAME@[361; 364) + IDENT@[361; 364) "idx" + err: `expected COMMA` + WHITESPACE@[364; 365) + err: `expected pattern` + PARAM@[365; 366) + ERROR@[365; 366) + PLUS@[365; 366) + err: `expected COMMA` + err: `expected pattern` + PARAM@[366; 367) + ERROR@[366; 367) + EQ@[366; 367) + err: `expected COMMA` + WHITESPACE@[367; 368) + PARAM@[368; 369) + LITERAL@[368; 369) + INT_NUMBER@[368; 369) "1" + err: `expected COMMA` + WHITESPACE@[369; 378) + err: `expected pattern` + PARAM@[378; 379) + ERROR@[378; 379) + R_CURLY@[378; 379) + err: `expected COMMA` + WHITESPACE@[379; 384) + err: `expected pattern` + PARAM@[384; 385) + ERROR@[384; 385) + R_CURLY@[384; 385) + err: `expected COMMA` + err: `expected pattern` + PARAM@[385; 386) + ERROR@[385; 386) + SEMI@[385; 386) + err: `expected COMMA` + WHITESPACE@[386; 387) + err: `expected pattern` + PARAM@[387; 388) + ERROR@[387; 388) + R_CURLY@[387; 388) + err: `expected COMMA` + err: `expected PIPE` + WHITESPACE@[388; 389) + err: `expected expression` + err: `expected SEMI` + err: `expected R_CURLY` + ERROR@[389; 389) -- cgit v1.2.3