From 45eea5711525ad19f8b6669f4e1317964efa4d8a Mon Sep 17 00:00:00 2001 From: Young-Flash Date: Thu, 11 Jan 2024 19:52:23 +0800 Subject: [PATCH] add in-comment test case for use_tree_list_err_recovery --- crates/parser/src/grammar/items/use_item.rs | 5 ++ .../err/0026_use_tree_list_err_recovery.rast | 50 +++++++++++++++++++ .../err/0026_use_tree_list_err_recovery.rs | 4 ++ 3 files changed, 59 insertions(+) create mode 100644 crates/parser/test_data/parser/inline/err/0026_use_tree_list_err_recovery.rast create mode 100644 crates/parser/test_data/parser/inline/err/0026_use_tree_list_err_recovery.rs diff --git a/crates/parser/src/grammar/items/use_item.rs b/crates/parser/src/grammar/items/use_item.rs index e34bf9668c..b397454173 100644 --- a/crates/parser/src/grammar/items/use_item.rs +++ b/crates/parser/src/grammar/items/use_item.rs @@ -86,6 +86,11 @@ pub(crate) fn use_tree_list(p: &mut Parser<'_>) { assert!(p.at(T!['{'])); let m = p.start(); + // test_err use_tree_list_err_recovery + // use {a; + // use b; + // struct T; + // fn test() {} delimited(p, T!['{'], T!['}'], T![,], USE_TREE_LIST_RECOVERY_SET, |p: &mut Parser<'_>| { use_tree(p, false) || p.at_ts(USE_TREE_LIST_RECOVERY_SET) }); diff --git a/crates/parser/test_data/parser/inline/err/0026_use_tree_list_err_recovery.rast b/crates/parser/test_data/parser/inline/err/0026_use_tree_list_err_recovery.rast new file mode 100644 index 0000000000..7732bdf72f --- /dev/null +++ b/crates/parser/test_data/parser/inline/err/0026_use_tree_list_err_recovery.rast @@ -0,0 +1,50 @@ +SOURCE_FILE + USE + USE_KW "use" + WHITESPACE " " + USE_TREE + USE_TREE_LIST + L_CURLY "{" + USE_TREE + PATH + PATH_SEGMENT + NAME_REF + IDENT "a" + ERROR + SEMICOLON ";" + WHITESPACE "\n" + USE + USE_KW "use" + WHITESPACE " " + USE_TREE + PATH + PATH_SEGMENT + NAME_REF + IDENT "b" + SEMICOLON ";" + WHITESPACE "\n" + STRUCT + STRUCT_KW "struct" + WHITESPACE " " + NAME + IDENT "T" + SEMICOLON ";" + WHITESPACE "\n" + FN + FN_KW "fn" + WHITESPACE " " + NAME + IDENT "test" + PARAM_LIST + L_PAREN "(" + R_PAREN ")" + WHITESPACE " " + BLOCK_EXPR + STMT_LIST + L_CURLY "{" + R_CURLY "}" + WHITESPACE "\n" +error 6: expected COMMA +error 6: expected one of `*`, `::`, `{`, `self`, `super` or an identifier +error 7: expected R_CURLY +error 7: expected SEMICOLON diff --git a/crates/parser/test_data/parser/inline/err/0026_use_tree_list_err_recovery.rs b/crates/parser/test_data/parser/inline/err/0026_use_tree_list_err_recovery.rs new file mode 100644 index 0000000000..f16959c25f --- /dev/null +++ b/crates/parser/test_data/parser/inline/err/0026_use_tree_list_err_recovery.rs @@ -0,0 +1,4 @@ +use {a; +use b; +struct T; +fn test() {}