From fed0486c336c14e18eb341db8aa9de023320a603 Mon Sep 17 00:00:00 2001 From: Tim Chevalier Date: Fri, 20 May 2011 17:36:33 -0700 Subject: [PATCH] Annotate erroring functions in session and parser --- src/comp/driver/session.rs | 12 ++++++------ src/comp/front/parser.rs | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/comp/driver/session.rs b/src/comp/driver/session.rs index d943c151c6d6..09cf76b9cc95 100644 --- a/src/comp/driver/session.rs +++ b/src/comp/driver/session.rs @@ -79,13 +79,13 @@ state obj session(ast::crate_num cnum, ret cnum; } - fn span_err(span sp, str msg) { + fn span_err(span sp, str msg) -> ! { // FIXME: Use constants, but rustboot doesn't know how to export them. emit_diagnostic(sp, msg, "error", 9u8, cm); fail; } - fn err(str msg) { + fn err(str msg) -> ! { log_err #fmt("error: %s", msg); fail; } @@ -107,19 +107,19 @@ state obj session(ast::crate_num cnum, emit_diagnostic(sp, msg, "note", 10u8, cm); } - fn bug(str msg) { + fn bug(str msg) -> ! { log_err #fmt("error: internal compiler error %s", msg); fail; } - fn span_unimpl(span sp, str msg) { + fn span_unimpl(span sp, str msg) -> ! { // FIXME: Use constants, but rustboot doesn't know how to export them. emit_diagnostic(sp, "internal compiler error: unimplemented " + msg, "error", 9u8, cm); fail; } - - fn unimpl(str msg) { + + fn unimpl(str msg) -> ! { log_err #fmt("error: unimplemented %s", msg); fail; } diff --git a/src/comp/front/parser.rs b/src/comp/front/parser.rs index 80397f2a65bb..a2f877f2c239 100644 --- a/src/comp/front/parser.rs +++ b/src/comp/front/parser.rs @@ -31,7 +31,7 @@ state type parser = state obj { fn peek() -> token::token; fn bump(); - fn err(str s); + fn err(str s) -> !; fn restrict(restriction r); fn get_restriction() -> restriction; fn get_file_type() -> file_type; @@ -85,7 +85,7 @@ fn new_parser(session::session sess, hi = rdr.get_chpos(); } - fn err(str m) { + fn err(str m) -> ! { sess.span_err(rec(lo=lo, hi=hi), m); } @@ -217,7 +217,7 @@ fn bad_expr_word_table() -> std::map::hashmap[str, ()] { ret words; } -fn unexpected(&parser p, token::token t) { +fn unexpected(&parser p, token::token t) -> ! { let str s = "unexpected token: "; s += token::to_str(p.get_reader(), t); p.err(s);