diff options
| author | bors <bors@rust-lang.org> | 2015-04-06 22:08:01 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2015-04-06 22:08:01 +0000 |
| commit | b49a5ef003fedcbb0d78aebda62ba30dfdd17a20 (patch) | |
| tree | d99b438e04f810e098c79b634ed6d730d2dbcb4a /src/libsyntax/parse/lexer | |
| parent | aab8669ddad0432ef7279cc7f7b0b20d32785314 (diff) | |
| parent | e3427c3c341fcd15cbac783bf8dad7276422c97a (diff) | |
| download | rust-b49a5ef003fedcbb0d78aebda62ba30dfdd17a20.tar.gz rust-b49a5ef003fedcbb0d78aebda62ba30dfdd17a20.zip | |
Auto merge of #23857 - phildawes:libsyntax_nopanic, r=nikomatsakis
Hello! I've been working towards a libsyntax without panics. See: http://internals.rust-lang.org/t/changing-libsyntax-to-use-result-instead-of-panic/1670 This patch changes the internals of parser.rs to use Result<> rather than panicing. It keeps the following old-style panicing functions as a facade: parse_expr, parse_item, parse_pat, parse_arm, parse_ty, parse_stmt I left these functions because I wasn't sure what to do about the quote_* macros or how many syntax-extensions would break if these and quoting macros returned Result. The gyst of the rest of the patch is: - Functions in parse/parser.rs return PResult<> rather than panicing - Other functions in libsyntax call panic! explicitly if they rely on panicing behaviour. - I added a macro 'panictry!()' to act as scaffolding for callers while converting panicing functions. (This does the same as 'unwrap()' but is easier to grep for and turn into try!()). Am I on the right track? I'd quite like to get something merged soon as keeping this rebased in the face of libsyntax changes is a lot of work. Please let me know what changes you'd like to see to make this happen. Thanks!, Phil
Diffstat (limited to 'src/libsyntax/parse/lexer')
| -rw-r--r-- | src/libsyntax/parse/lexer/mod.rs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/libsyntax/parse/lexer/mod.rs b/src/libsyntax/parse/lexer/mod.rs index 78470f00207..22b7d5c9f1d 100644 --- a/src/libsyntax/parse/lexer/mod.rs +++ b/src/libsyntax/parse/lexer/mod.rs @@ -116,7 +116,7 @@ impl<'a> Reader for TtReader<'a> { r } fn fatal(&self, m: &str) -> ! { - self.sp_diag.span_fatal(self.cur_span, m); + panic!(self.sp_diag.span_fatal(self.cur_span, m)); } fn err(&self, m: &str) { self.sp_diag.span_err(self.cur_span, m); @@ -181,7 +181,7 @@ impl<'a> StringReader<'a> { /// Report a fatal lexical error with a given span. pub fn fatal_span(&self, sp: Span, m: &str) -> ! { - self.span_diagnostic.span_fatal(sp, m) + panic!(self.span_diagnostic.span_fatal(sp, m)) } /// Report a lexical error with a given span. |
