Safer errors

This commit is contained in:
Aleksey Kladov 2018-08-13 18:30:56 +03:00
parent c1a7b72fb7
commit 51f7f937a5
3 changed files with 22 additions and 21 deletions

View file

@ -129,7 +129,7 @@ fn name(p: &mut Parser) {
p.bump(); p.bump();
m.complete(p, NAME); m.complete(p, NAME);
} else { } else {
p.error("expected a name"); p.err_and_bump("expected a name");
} }
} }
@ -139,7 +139,7 @@ fn name_ref(p: &mut Parser) {
p.bump(); p.bump();
m.complete(p, NAME_REF); m.complete(p, NAME_REF);
} else { } else {
p.error("expected identifier"); p.err_and_bump("expected identifier");
} }
} }

View file

@ -117,11 +117,8 @@ fn struct_pat_fields(p: &mut Parser) {
p.bump(); p.bump();
pattern(p); pattern(p);
} }
REF_KW | MUT_KW | IDENT => {
bind_pat(p, false);
},
_ => { _ => {
p.err_and_bump("expected ident"); bind_pat(p, false);
} }
} }
if !p.at(R_CURLY) { if !p.at(R_CURLY) {

View file

@ -97,7 +97,8 @@ FILE@[0; 164)
WHITESPACE@[125; 126) WHITESPACE@[125; 126)
L_CURLY@[126; 127) L_CURLY@[126; 127)
WHITESPACE@[127; 132) WHITESPACE@[127; 132)
err: `expected ident` err: `expected a name`
BIND_PAT@[132; 134)
ERROR@[132; 134) ERROR@[132; 134)
FN_KW@[132; 134) FN_KW@[132; 134)
err: `expected COMMA` err: `expected COMMA`
@ -106,7 +107,8 @@ FILE@[0; 164)
NAME@[135; 147) NAME@[135; 147)
IDENT@[135; 147) "fn_with_expr" IDENT@[135; 147) "fn_with_expr"
err: `expected COMMA` err: `expected COMMA`
err: `expected ident` err: `expected a name`
BIND_PAT@[147; 148)
ERROR@[147; 148) ERROR@[147; 148)
L_PAREN@[147; 148) L_PAREN@[147; 148)
err: `expected COMMA` err: `expected COMMA`
@ -128,11 +130,13 @@ FILE@[0; 164)
INT_NUMBER@[157; 158) "1" INT_NUMBER@[157; 158) "1"
R_BRACK@[158; 159) R_BRACK@[158; 159)
err: `expected COMMA` err: `expected COMMA`
err: `expected ident` err: `expected a name`
BIND_PAT@[159; 160)
ERROR@[159; 160) ERROR@[159; 160)
R_PAREN@[159; 160) R_PAREN@[159; 160)
err: `expected COMMA` err: `expected COMMA`
err: `expected ident` err: `expected a name`
BIND_PAT@[160; 161)
ERROR@[160; 161) ERROR@[160; 161)
SEMI@[160; 161) SEMI@[160; 161)
WHITESPACE@[161; 162) WHITESPACE@[161; 162)