better error recovery for use trees

This commit is contained in:
Aleksey Kladov 2019-09-05 19:53:07 +03:00
parent edc2016f8b
commit b2be998b7b
5 changed files with 65 additions and 3 deletions

View file

@ -31,7 +31,7 @@ pub(super) enum ItemFlavor {
pub(super) const ITEM_RECOVERY_SET: TokenSet = token_set![
FN_KW, STRUCT_KW, ENUM_KW, IMPL_KW, TRAIT_KW, CONST_KW, STATIC_KW, LET_KW, MOD_KW, PUB_KW,
CRATE_KW
CRATE_KW, USE_KW
];
pub(super) fn item_or_macro(p: &mut Parser, stop_on_r_curly: bool, flavor: ItemFlavor) {

View file

@ -101,7 +101,10 @@ fn use_tree(p: &mut Parser) {
}
_ => {
m.abandon(p);
p.err_and_bump("expected one of `*`, `::`, `{`, `self`, `super` or an indentifier");
p.err_recover(
"expected one of `*`, `::`, `{`, `self`, `super` or an identifier",
ITEM_RECOVERY_SET,
);
return;
}
}