Fix some parser bugs

This commit is contained in:
Aleksey Kladov
2018-08-13 18:23:14 +03:00
parent d1eceefeb8
commit 9149fd2c0c
9 changed files with 213 additions and 15 deletions

View File

@@ -60,6 +60,7 @@ fn atom_pat(p: &mut Parser) -> Option<CompletedMarker> {
// let Bar(..) = ();
// }
fn path_pat(p: &mut Parser) -> CompletedMarker {
assert!(paths::is_path_start(p));
let m = p.start();
paths::expr_path(p);
let kind = match p.current() {
@@ -116,8 +117,11 @@ fn struct_pat_fields(p: &mut Parser) {
p.bump();
pattern(p);
}
_ => {
REF_KW | MUT_KW | IDENT => {
bind_pat(p, false);
},
_ => {
p.err_and_bump("expected ident");
}
}
if !p.at(R_CURLY) {