From 76075c74103b3204ebc1bde54a330629d9e00811 Mon Sep 17 00:00:00 2001 From: pcpthm Date: Mon, 18 Mar 2019 14:34:08 +0900 Subject: Use Marker argument for item parsers - Fix pub_expr - Fix incorrect parsing of crate::path --- .../tests/data/parser/err/0003_C++_semicolon.txt | 6 +-- .../tests/data/parser/inline/err/0008_pub_expr.rs | 1 + .../tests/data/parser/inline/err/0008_pub_expr.txt | 25 ++++++++++++ .../tests/data/parser/inline/ok/0035_pub_expr.rs | 1 - .../tests/data/parser/inline/ok/0035_pub_expr.txt | 25 ------------ .../parser/inline/ok/0040_crate_keyword_vis.rs | 2 + .../parser/inline/ok/0040_crate_keyword_vis.txt | 46 +++++++++++++++++++++- .../parser/inline/ok/0125_crate_keyword_path.rs | 1 + .../parser/inline/ok/0125_crate_keyword_path.txt | 31 +++++++++++++++ 9 files changed, 108 insertions(+), 30 deletions(-) create mode 100644 crates/ra_syntax/tests/data/parser/inline/err/0008_pub_expr.rs create mode 100644 crates/ra_syntax/tests/data/parser/inline/err/0008_pub_expr.txt delete mode 100644 crates/ra_syntax/tests/data/parser/inline/ok/0035_pub_expr.rs delete mode 100644 crates/ra_syntax/tests/data/parser/inline/ok/0035_pub_expr.txt create mode 100644 crates/ra_syntax/tests/data/parser/inline/ok/0125_crate_keyword_path.rs create mode 100644 crates/ra_syntax/tests/data/parser/inline/ok/0125_crate_keyword_path.txt (limited to 'crates/ra_syntax/tests/data/parser') diff --git a/crates/ra_syntax/tests/data/parser/err/0003_C++_semicolon.txt b/crates/ra_syntax/tests/data/parser/err/0003_C++_semicolon.txt index e9400d03b..b87fe46bd 100644 --- a/crates/ra_syntax/tests/data/parser/err/0003_C++_semicolon.txt +++ b/crates/ra_syntax/tests/data/parser/err/0003_C++_semicolon.txt @@ -1,5 +1,5 @@ SOURCE_FILE@[0; 40) - STRUCT_DEF@[0; 40) + STRUCT_DEF@[0; 39) STRUCT_KW@[0; 6) WHITESPACE@[6; 7) NAME@[7; 8) @@ -35,5 +35,5 @@ SOURCE_FILE@[0; 40) R_CURLY@[38; 39) err: `expected item, found `;` consider removing this semicolon` - ERROR@[39; 40) - SEMI@[39; 40) + ERROR@[39; 40) + SEMI@[39; 40) diff --git a/crates/ra_syntax/tests/data/parser/inline/err/0008_pub_expr.rs b/crates/ra_syntax/tests/data/parser/inline/err/0008_pub_expr.rs new file mode 100644 index 000000000..2976f6862 --- /dev/null +++ b/crates/ra_syntax/tests/data/parser/inline/err/0008_pub_expr.rs @@ -0,0 +1 @@ +fn foo() { pub 92; } diff --git a/crates/ra_syntax/tests/data/parser/inline/err/0008_pub_expr.txt b/crates/ra_syntax/tests/data/parser/inline/err/0008_pub_expr.txt new file mode 100644 index 000000000..e65d9c9e1 --- /dev/null +++ b/crates/ra_syntax/tests/data/parser/inline/err/0008_pub_expr.txt @@ -0,0 +1,25 @@ +SOURCE_FILE@[0; 21) + FN_DEF@[0; 20) + 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@[9; 20) + L_CURLY@[9; 10) + WHITESPACE@[10; 11) + ERROR@[11; 14) + VISIBILITY@[11; 14) + PUB_KW@[11; 14) + err: `expected an item` + WHITESPACE@[14; 15) + EXPR_STMT@[15; 18) + LITERAL@[15; 17) + INT_NUMBER@[15; 17) "92" + SEMI@[17; 18) + WHITESPACE@[18; 19) + R_CURLY@[19; 20) + WHITESPACE@[20; 21) diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0035_pub_expr.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0035_pub_expr.rs deleted file mode 100644 index d9d99d2d3..000000000 --- a/crates/ra_syntax/tests/data/parser/inline/ok/0035_pub_expr.rs +++ /dev/null @@ -1 +0,0 @@ -fn foo() { pub 92; } //FIXME diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0035_pub_expr.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0035_pub_expr.txt deleted file mode 100644 index de20eee7a..000000000 --- a/crates/ra_syntax/tests/data/parser/inline/ok/0035_pub_expr.txt +++ /dev/null @@ -1,25 +0,0 @@ -SOURCE_FILE@[0; 29) - FN_DEF@[0; 20) - 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@[9; 20) - L_CURLY@[9; 10) - WHITESPACE@[10; 11) - EXPR_STMT@[11; 18) - VISIBILITY@[11; 14) - PUB_KW@[11; 14) - WHITESPACE@[14; 15) - LITERAL@[15; 17) - INT_NUMBER@[15; 17) "92" - SEMI@[17; 18) - WHITESPACE@[18; 19) - R_CURLY@[19; 20) - WHITESPACE@[20; 21) - COMMENT@[21; 28) - WHITESPACE@[28; 29) diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0040_crate_keyword_vis.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0040_crate_keyword_vis.rs index 660d927cf..e2b5f2161 100644 --- a/crates/ra_syntax/tests/data/parser/inline/ok/0040_crate_keyword_vis.rs +++ b/crates/ra_syntax/tests/data/parser/inline/ok/0040_crate_keyword_vis.rs @@ -1 +1,3 @@ crate fn main() { } +struct S { crate field: u32 } +struct T(crate u32); diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0040_crate_keyword_vis.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0040_crate_keyword_vis.txt index ff5add838..695734d54 100644 --- a/crates/ra_syntax/tests/data/parser/inline/ok/0040_crate_keyword_vis.txt +++ b/crates/ra_syntax/tests/data/parser/inline/ok/0040_crate_keyword_vis.txt @@ -1,4 +1,4 @@ -SOURCE_FILE@[0; 20) +SOURCE_FILE@[0; 71) FN_DEF@[0; 19) VISIBILITY@[0; 5) CRATE_KW@[0; 5) @@ -16,3 +16,47 @@ SOURCE_FILE@[0; 20) WHITESPACE@[17; 18) R_CURLY@[18; 19) WHITESPACE@[19; 20) + STRUCT_DEF@[20; 49) + STRUCT_KW@[20; 26) + WHITESPACE@[26; 27) + NAME@[27; 28) + IDENT@[27; 28) "S" + WHITESPACE@[28; 29) + NAMED_FIELD_DEF_LIST@[29; 49) + L_CURLY@[29; 30) + WHITESPACE@[30; 31) + NAMED_FIELD_DEF@[31; 47) + VISIBILITY@[31; 36) + CRATE_KW@[31; 36) + WHITESPACE@[36; 37) + NAME@[37; 42) + IDENT@[37; 42) "field" + COLON@[42; 43) + WHITESPACE@[43; 44) + PATH_TYPE@[44; 47) + PATH@[44; 47) + PATH_SEGMENT@[44; 47) + NAME_REF@[44; 47) + IDENT@[44; 47) "u32" + WHITESPACE@[47; 48) + R_CURLY@[48; 49) + WHITESPACE@[49; 50) + STRUCT_DEF@[50; 70) + STRUCT_KW@[50; 56) + WHITESPACE@[56; 57) + NAME@[57; 58) + IDENT@[57; 58) "T" + POS_FIELD_DEF_LIST@[58; 69) + L_PAREN@[58; 59) + POS_FIELD_DEF@[59; 68) + VISIBILITY@[59; 64) + CRATE_KW@[59; 64) + WHITESPACE@[64; 65) + PATH_TYPE@[65; 68) + PATH@[65; 68) + PATH_SEGMENT@[65; 68) + NAME_REF@[65; 68) + IDENT@[65; 68) "u32" + R_PAREN@[68; 69) + SEMI@[69; 70) + WHITESPACE@[70; 71) diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0125_crate_keyword_path.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0125_crate_keyword_path.rs new file mode 100644 index 000000000..0f454d121 --- /dev/null +++ b/crates/ra_syntax/tests/data/parser/inline/ok/0125_crate_keyword_path.rs @@ -0,0 +1 @@ +fn foo() { crate::foo(); } diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0125_crate_keyword_path.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0125_crate_keyword_path.txt new file mode 100644 index 000000000..7c637b079 --- /dev/null +++ b/crates/ra_syntax/tests/data/parser/inline/ok/0125_crate_keyword_path.txt @@ -0,0 +1,31 @@ +SOURCE_FILE@[0; 27) + FN_DEF@[0; 26) + 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@[9; 26) + L_CURLY@[9; 10) + WHITESPACE@[10; 11) + EXPR_STMT@[11; 24) + CALL_EXPR@[11; 23) + PATH_EXPR@[11; 21) + PATH@[11; 21) + PATH@[11; 16) + PATH_SEGMENT@[11; 16) + CRATE_KW@[11; 16) + COLONCOLON@[16; 18) + PATH_SEGMENT@[18; 21) + NAME_REF@[18; 21) + IDENT@[18; 21) "foo" + ARG_LIST@[21; 23) + L_PAREN@[21; 22) + R_PAREN@[22; 23) + SEMI@[23; 24) + WHITESPACE@[24; 25) + R_CURLY@[25; 26) + WHITESPACE@[26; 27) -- cgit v1.2.3