diff options
Diffstat (limited to 'src/libsyntax/ext/tt')
| -rw-r--r-- | src/libsyntax/ext/tt/macro_parser.rs | 30 | ||||
| -rw-r--r-- | src/libsyntax/ext/tt/macro_rules.rs | 14 | ||||
| -rw-r--r-- | src/libsyntax/ext/tt/transcribe.rs | 14 |
3 files changed, 29 insertions, 29 deletions
diff --git a/src/libsyntax/ext/tt/macro_parser.rs b/src/libsyntax/ext/tt/macro_parser.rs index b7d40a46f3e..4e0b74401a2 100644 --- a/src/libsyntax/ext/tt/macro_parser.rs +++ b/src/libsyntax/ext/tt/macro_parser.rs @@ -226,10 +226,10 @@ pub fn nameize(p_s: &ParseSess, ms: &[TokenTree], res: &[Rc<NamedMatch>]) } Occupied(..) => { let string = token::get_ident(bind_name); - p_s.span_diagnostic + panic!(p_s.span_diagnostic .span_fatal(sp, &format!("duplicated bind name: {}", - &string)) + &string))) } } } @@ -260,10 +260,10 @@ pub fn parse_or_else(sess: &ParseSess, match parse(sess, cfg, rdr, &ms[..]) { Success(m) => m, Failure(sp, str) => { - sess.span_diagnostic.span_fatal(sp, &str[..]) + panic!(sess.span_diagnostic.span_fatal(sp, &str[..])) } Error(sp, str) => { - sess.span_diagnostic.span_fatal(sp, &str[..]) + panic!(sess.span_diagnostic.span_fatal(sp, &str[..])) } } } @@ -512,46 +512,46 @@ pub fn parse_nt(p: &mut Parser, sp: Span, name: &str) -> Nonterminal { match name { "tt" => { p.quote_depth += 1; //but in theory, non-quoted tts might be useful - let res = token::NtTT(P(p.parse_token_tree())); + let res = token::NtTT(P(panictry!(p.parse_token_tree()))); p.quote_depth -= 1; return res; } _ => {} } // check at the beginning and the parser checks after each bump - p.check_unknown_macro_variable(); + panictry!(p.check_unknown_macro_variable()); match name { "item" => match p.parse_item() { Some(i) => token::NtItem(i), - None => p.fatal("expected an item keyword") + None => panic!(p.fatal("expected an item keyword")) }, - "block" => token::NtBlock(p.parse_block()), + "block" => token::NtBlock(panictry!(p.parse_block())), "stmt" => match p.parse_stmt() { Some(s) => token::NtStmt(s), - None => p.fatal("expected a statement") + None => panic!(p.fatal("expected a statement")) }, "pat" => token::NtPat(p.parse_pat()), "expr" => token::NtExpr(p.parse_expr()), "ty" => token::NtTy(p.parse_ty()), // this could be handled like a token, since it is one "ident" => match p.token { - token::Ident(sn,b) => { p.bump(); token::NtIdent(box sn,b) } + token::Ident(sn,b) => { panictry!(p.bump()); token::NtIdent(box sn,b) } _ => { let token_str = pprust::token_to_string(&p.token); - p.fatal(&format!("expected ident, found {}", - &token_str[..])) + panic!(p.fatal(&format!("expected ident, found {}", + &token_str[..]))) } }, "path" => { - token::NtPath(box p.parse_path(LifetimeAndTypesWithoutColons)) + token::NtPath(box panictry!(p.parse_path(LifetimeAndTypesWithoutColons))) } "meta" => token::NtMeta(p.parse_meta_item()), _ => { - p.span_fatal_help(sp, + panic!(p.span_fatal_help(sp, &format!("invalid fragment specifier `{}`", name), "valid fragment specifiers are `ident`, `block`, \ `stmt`, `expr`, `pat`, `ty`, `path`, `meta`, `tt` \ - and `item`") + and `item`")) } } } diff --git a/src/libsyntax/ext/tt/macro_rules.rs b/src/libsyntax/ext/tt/macro_rules.rs index 1e53db60301..250ba0442ba 100644 --- a/src/libsyntax/ext/tt/macro_rules.rs +++ b/src/libsyntax/ext/tt/macro_rules.rs @@ -41,7 +41,7 @@ impl<'a> ParserAnyMacro<'a> { fn ensure_complete_parse(&self, allow_semi: bool) { let mut parser = self.parser.borrow_mut(); if allow_semi && parser.token == token::Semi { - parser.bump() + panictry!(parser.bump()) } if parser.token != token::Eof { let token_str = parser.this_token_to_string(); @@ -81,7 +81,7 @@ impl<'a> MacResult for ParserAnyMacro<'a> { let mut parser = self.parser.borrow_mut(); match parser.token { token::Eof => break, - _ => ret.push(parser.parse_impl_item()) + _ => ret.push(panictry!(parser.parse_impl_item())) } } self.ensure_complete_parse(false); @@ -142,7 +142,7 @@ fn generic_extension<'cx>(cx: &'cx ExtCtxt, MatchedNonterminal(NtTT(ref lhs_tt)) => { let lhs_tt = match **lhs_tt { TtDelimited(_, ref delim) => &delim.tts[..], - _ => cx.span_fatal(sp, "malformed macro lhs") + _ => panic!(cx.span_fatal(sp, "malformed macro lhs")) }; match TokenTree::parse(cx, lhs_tt, arg) { @@ -153,7 +153,7 @@ fn generic_extension<'cx>(cx: &'cx ExtCtxt, match **tt { // ignore delimiters TtDelimited(_, ref delimed) => delimed.tts.clone(), - _ => cx.span_fatal(sp, "macro rhs must be delimited"), + _ => panic!(cx.span_fatal(sp, "macro rhs must be delimited")), } }, _ => cx.span_bug(sp, "bad thing in rhs") @@ -164,7 +164,7 @@ fn generic_extension<'cx>(cx: &'cx ExtCtxt, imported_from, rhs); let mut p = Parser::new(cx.parse_sess(), cx.cfg(), Box::new(trncbr)); - p.check_unknown_macro_variable(); + panictry!(p.check_unknown_macro_variable()); // Let the context choose how to interpret the result. // Weird, but useful for X-macros. return box ParserAnyMacro { @@ -175,13 +175,13 @@ fn generic_extension<'cx>(cx: &'cx ExtCtxt, best_fail_spot = sp; best_fail_msg = (*msg).clone(); }, - Error(sp, ref msg) => cx.span_fatal(sp, &msg[..]) + Error(sp, ref msg) => panic!(cx.span_fatal(sp, &msg[..])) } } _ => cx.bug("non-matcher found in parsed lhses") } } - cx.span_fatal(best_fail_spot, &best_fail_msg[..]); + panic!(cx.span_fatal(best_fail_spot, &best_fail_msg[..])); } // Note that macro-by-example's input is also matched against a token tree: diff --git a/src/libsyntax/ext/tt/transcribe.rs b/src/libsyntax/ext/tt/transcribe.rs index 0d92bd761b4..e39b46a2d3e 100644 --- a/src/libsyntax/ext/tt/transcribe.rs +++ b/src/libsyntax/ext/tt/transcribe.rs @@ -247,22 +247,22 @@ pub fn tt_next_token(r: &mut TtReader) -> TokenAndSpan { match lockstep_iter_size(&TtSequence(sp, seq.clone()), r) { LisUnconstrained => { - r.sp_diag.span_fatal( + panic!(r.sp_diag.span_fatal( sp.clone(), /* blame macro writer */ "attempted to repeat an expression \ containing no syntax \ - variables matched as repeating at this depth"); + variables matched as repeating at this depth")); } LisContradiction(ref msg) => { // FIXME #2887 blame macro invoker instead - r.sp_diag.span_fatal(sp.clone(), &msg[..]); + panic!(r.sp_diag.span_fatal(sp.clone(), &msg[..])); } LisConstraint(len, _) => { if len == 0 { if seq.op == ast::OneOrMore { // FIXME #2887 blame invoker - r.sp_diag.span_fatal(sp.clone(), - "this must repeat at least once"); + panic!(r.sp_diag.span_fatal(sp.clone(), + "this must repeat at least once")); } r.stack.last_mut().unwrap().idx += 1; @@ -306,10 +306,10 @@ pub fn tt_next_token(r: &mut TtReader) -> TokenAndSpan { return ret_val; } MatchedSeq(..) => { - r.sp_diag.span_fatal( + panic!(r.sp_diag.span_fatal( r.cur_span, /* blame the macro writer */ &format!("variable '{:?}' is still repeating at this depth", - token::get_ident(ident))); + token::get_ident(ident)))); } } } |
