From 51f7f937a569680ddb0b2bbca2a74f861802898b Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Mon, 13 Aug 2018 18:30:56 +0300 Subject: Safer errors --- crates/libsyntax2/src/grammar/mod.rs | 4 +-- crates/libsyntax2/src/grammar/patterns.rs | 5 +--- .../tests/data/parser/ok/0030_traits.txt | 34 ++++++++++++---------- 3 files changed, 22 insertions(+), 21 deletions(-) (limited to 'crates/libsyntax2') diff --git a/crates/libsyntax2/src/grammar/mod.rs b/crates/libsyntax2/src/grammar/mod.rs index e1329044d..d9443f24f 100644 --- a/crates/libsyntax2/src/grammar/mod.rs +++ b/crates/libsyntax2/src/grammar/mod.rs @@ -129,7 +129,7 @@ fn name(p: &mut Parser) { p.bump(); m.complete(p, NAME); } 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(); m.complete(p, NAME_REF); } else { - p.error("expected identifier"); + p.err_and_bump("expected identifier"); } } diff --git a/crates/libsyntax2/src/grammar/patterns.rs b/crates/libsyntax2/src/grammar/patterns.rs index 220f36db7..71a1d5445 100644 --- a/crates/libsyntax2/src/grammar/patterns.rs +++ b/crates/libsyntax2/src/grammar/patterns.rs @@ -117,11 +117,8 @@ 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"); + bind_pat(p, false); } } if !p.at(R_CURLY) { diff --git a/crates/libsyntax2/tests/data/parser/ok/0030_traits.txt b/crates/libsyntax2/tests/data/parser/ok/0030_traits.txt index d50295134..5adab705b 100644 --- a/crates/libsyntax2/tests/data/parser/ok/0030_traits.txt +++ b/crates/libsyntax2/tests/data/parser/ok/0030_traits.txt @@ -97,19 +97,21 @@ FILE@[0; 164) WHITESPACE@[125; 126) L_CURLY@[126; 127) WHITESPACE@[127; 132) - err: `expected ident` - ERROR@[132; 134) - FN_KW@[132; 134) - err: `expected COMMA` + err: `expected a name` + BIND_PAT@[132; 134) + ERROR@[132; 134) + FN_KW@[132; 134) + err: `expected COMMA` WHITESPACE@[134; 135) BIND_PAT@[135; 147) NAME@[135; 147) IDENT@[135; 147) "fn_with_expr" err: `expected COMMA` - err: `expected ident` - ERROR@[147; 148) - L_PAREN@[147; 148) - err: `expected COMMA` + err: `expected a name` + BIND_PAT@[147; 148) + ERROR@[147; 148) + L_PAREN@[147; 148) + err: `expected COMMA` IDENT@[148; 149) "x" COLON@[149; 150) WHITESPACE@[150; 151) @@ -128,13 +130,15 @@ FILE@[0; 164) INT_NUMBER@[157; 158) "1" R_BRACK@[158; 159) err: `expected COMMA` - err: `expected ident` - ERROR@[159; 160) - R_PAREN@[159; 160) - err: `expected COMMA` - err: `expected ident` - ERROR@[160; 161) - SEMI@[160; 161) + err: `expected a name` + BIND_PAT@[159; 160) + ERROR@[159; 160) + R_PAREN@[159; 160) + err: `expected COMMA` + err: `expected a name` + BIND_PAT@[160; 161) + ERROR@[160; 161) + SEMI@[160; 161) WHITESPACE@[161; 162) R_CURLY@[162; 163) err: `expected COLON` -- cgit v1.2.3