diff options
| author | John Kåre Alsaker <john.kare.alsaker@gmail.com> | 2018-01-21 12:47:58 +0100 |
|---|---|---|
| committer | John Kåre Alsaker <john.kare.alsaker@gmail.com> | 2018-01-26 04:52:30 +0100 |
| commit | 9a8d6b8bb5dd7dd2d378849f0c2fa586e3a5b48b (patch) | |
| tree | ee04624362f08eb705597831fbc197b68c8d20a7 /src/libsyntax/parse | |
| parent | 9fd7da904b46ff7aa78c2e2cc1986c4975aeccc6 (diff) | |
| download | rust-9a8d6b8bb5dd7dd2d378849f0c2fa586e3a5b48b.tar.gz rust-9a8d6b8bb5dd7dd2d378849f0c2fa586e3a5b48b.zip | |
Do not capture stderr in the compiler. Instead just panic silently for fatal errors
Diffstat (limited to 'src/libsyntax/parse')
| -rw-r--r-- | src/libsyntax/parse/lexer/comments.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/parse/lexer/mod.rs | 67 | ||||
| -rw-r--r-- | src/libsyntax/parse/mod.rs | 4 |
3 files changed, 36 insertions, 37 deletions
diff --git a/src/libsyntax/parse/lexer/comments.rs b/src/libsyntax/parse/lexer/comments.rs index 49362f07799..63aa5d28ce8 100644 --- a/src/libsyntax/parse/lexer/comments.rs +++ b/src/libsyntax/parse/lexer/comments.rs @@ -265,7 +265,7 @@ fn read_block_comment(rdr: &mut StringReader, while level > 0 { debug!("=== block comment level {}", level); if rdr.is_eof() { - panic!(rdr.fatal("unterminated block comment")); + rdr.fatal("unterminated block comment").raise(); } if rdr.ch_is('\n') { trim_whitespace_prefix_and_push_line(&mut lines, curr_line, col); diff --git a/src/libsyntax/parse/lexer/mod.rs b/src/libsyntax/parse/lexer/mod.rs index 9828995362a..b95c91548d0 100644 --- a/src/libsyntax/parse/lexer/mod.rs +++ b/src/libsyntax/parse/lexer/mod.rs @@ -90,7 +90,7 @@ impl<'a> StringReader<'a> { Ok(tok) => tok, Err(_) => { self.emit_fatal_errors(); - panic!(FatalError); + FatalError.raise(); } } } @@ -191,7 +191,7 @@ impl<'a> StringReader<'a> { let mut sr = StringReader::new_raw(sess, filemap); if sr.advance_token().is_err() { sr.emit_fatal_errors(); - panic!(FatalError); + FatalError.raise(); } sr } @@ -216,7 +216,7 @@ impl<'a> StringReader<'a> { if sr.advance_token().is_err() { sr.emit_fatal_errors(); - panic!(FatalError); + FatalError.raise(); } sr } @@ -647,7 +647,7 @@ impl<'a> StringReader<'a> { "unterminated block comment" }; let last_bpos = self.pos; - panic!(self.fatal_span_(start_bpos, last_bpos, msg)); + self.fatal_span_(start_bpos, last_bpos, msg).raise(); } let n = self.ch.unwrap(); match n { @@ -808,9 +808,9 @@ impl<'a> StringReader<'a> { for _ in 0..n_digits { if self.is_eof() { let last_bpos = self.pos; - panic!(self.fatal_span_(start_bpos, - last_bpos, - "unterminated numeric character escape")); + self.fatal_span_(start_bpos, + last_bpos, + "unterminated numeric character escape").raise(); } if self.ch_is(delim) { let last_bpos = self.pos; @@ -1025,9 +1025,9 @@ impl<'a> StringReader<'a> { } }, None => { - panic!(self.fatal_span_(start_bpos, - self.pos, - "unterminated unicode escape (found EOF)")); + self.fatal_span_(start_bpos, + self.pos, + "unterminated unicode escape (found EOF)").raise(); } } self.bump(); @@ -1283,9 +1283,9 @@ impl<'a> StringReader<'a> { // lifetimes shouldn't end with a single quote // if we find one, then this is an invalid character literal if self.ch_is('\'') { - panic!(self.fatal_span_verbose( - start_with_quote, self.next_pos, - String::from("character literal may only contain one codepoint"))); + self.fatal_span_verbose(start_with_quote, self.next_pos, + String::from("character literal may only contain one codepoint")) + .raise(); } @@ -1332,9 +1332,8 @@ impl<'a> StringReader<'a> { break; } } - panic!(self.fatal_span_verbose( - start_with_quote, pos, - String::from("character literal may only contain one codepoint"))); + self.fatal_span_verbose(start_with_quote, pos, + String::from("character literal may only contain one codepoint")).raise(); } let id = if valid { @@ -1364,9 +1363,9 @@ impl<'a> StringReader<'a> { while !self.ch_is('"') { if self.is_eof() { let last_bpos = self.pos; - panic!(self.fatal_span_(start_bpos, - last_bpos, - "unterminated double quote string")); + self.fatal_span_(start_bpos, + last_bpos, + "unterminated double quote string").raise(); } let ch_start = self.pos; @@ -1399,15 +1398,15 @@ impl<'a> StringReader<'a> { if self.is_eof() { let last_bpos = self.pos; - panic!(self.fatal_span_(start_bpos, last_bpos, "unterminated raw string")); + self.fatal_span_(start_bpos, last_bpos, "unterminated raw string").raise(); } else if !self.ch_is('"') { let last_bpos = self.pos; let curr_char = self.ch.unwrap(); - panic!(self.fatal_span_char(start_bpos, - last_bpos, - "found invalid character; only `#` is allowed \ - in raw string delimitation", - curr_char)); + self.fatal_span_char(start_bpos, + last_bpos, + "found invalid character; only `#` is allowed \ + in raw string delimitation", + curr_char).raise(); } self.bump(); let content_start_bpos = self.pos; @@ -1416,7 +1415,7 @@ impl<'a> StringReader<'a> { 'outer: loop { if self.is_eof() { let last_bpos = self.pos; - panic!(self.fatal_span_(start_bpos, last_bpos, "unterminated raw string")); + self.fatal_span_(start_bpos, last_bpos, "unterminated raw string").raise(); } // if self.ch_is('"') { // content_end_bpos = self.pos; @@ -1573,9 +1572,9 @@ impl<'a> StringReader<'a> { // character before position `start` are an // ascii single quote and ascii 'b'. let pos = self.pos; - panic!(self.fatal_span_verbose(start - BytePos(2), - pos, - "unterminated byte constant".to_string())); + self.fatal_span_verbose(start - BytePos(2), + pos, + "unterminated byte constant".to_string()).raise(); } let id = if valid { @@ -1599,7 +1598,7 @@ impl<'a> StringReader<'a> { while !self.ch_is('"') { if self.is_eof() { let pos = self.pos; - panic!(self.fatal_span_(start, pos, "unterminated double quote byte string")); + self.fatal_span_(start, pos, "unterminated double quote byte string").raise(); } let ch_start = self.pos; @@ -1631,15 +1630,15 @@ impl<'a> StringReader<'a> { if self.is_eof() { let pos = self.pos; - panic!(self.fatal_span_(start_bpos, pos, "unterminated raw string")); + self.fatal_span_(start_bpos, pos, "unterminated raw string").raise(); } else if !self.ch_is('"') { let pos = self.pos; let ch = self.ch.unwrap(); - panic!(self.fatal_span_char(start_bpos, + self.fatal_span_char(start_bpos, pos, "found invalid character; only `#` is allowed in raw \ string delimitation", - ch)); + ch).raise(); } self.bump(); let content_start_bpos = self.pos; @@ -1648,7 +1647,7 @@ impl<'a> StringReader<'a> { match self.ch { None => { let pos = self.pos; - panic!(self.fatal_span_(start_bpos, pos, "unterminated raw string")) + self.fatal_span_(start_bpos, pos, "unterminated raw string").raise() } Some('"') => { content_end_bpos = self.pos; diff --git a/src/libsyntax/parse/mod.rs b/src/libsyntax/parse/mod.rs index a9b1e4aaa60..b671f81c2a8 100644 --- a/src/libsyntax/parse/mod.rs +++ b/src/libsyntax/parse/mod.rs @@ -212,8 +212,8 @@ fn file_to_filemap(sess: &ParseSess, path: &Path, spanopt: Option<Span>) Err(e) => { let msg = format!("couldn't read {:?}: {}", path.display(), e); match spanopt { - Some(sp) => panic!(sess.span_diagnostic.span_fatal(sp, &msg)), - None => panic!(sess.span_diagnostic.fatal(&msg)) + Some(sp) => sess.span_diagnostic.span_fatal(sp, &msg).raise(), + None => sess.span_diagnostic.fatal(&msg).raise() } } } |
