diff options
| author | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2016-01-04 01:11:54 +0100 |
|---|---|---|
| committer | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2016-01-04 01:13:57 +0100 |
| commit | 6e68cdfcc212943fdee9ac5bf4c5e7e243790aae (patch) | |
| tree | 7eaa3464d593684bb2974ffdf978b76dc61fdffd | |
| parent | b62289153cd94dc60e142e169816bbec68514906 (diff) | |
| download | rust-6e68cdfcc212943fdee9ac5bf4c5e7e243790aae.tar.gz rust-6e68cdfcc212943fdee9ac5bf4c5e7e243790aae.zip | |
Add test for "malformed macro lhs" and change back span_bug to span_fatal
| -rw-r--r-- | src/libsyntax/ext/tt/macro_rules.rs | 4 | ||||
| -rw-r--r-- | src/test/compile-fail/malformed_macro_lhs.rs | 17 |
2 files changed, 19 insertions, 2 deletions
diff --git a/src/libsyntax/ext/tt/macro_rules.rs b/src/libsyntax/ext/tt/macro_rules.rs index fd0bbf7a072..38e6c21375c 100644 --- a/src/libsyntax/ext/tt/macro_rules.rs +++ b/src/libsyntax/ext/tt/macro_rules.rs @@ -178,7 +178,7 @@ fn generic_extension<'cx>(cx: &'cx ExtCtxt, for (i, lhs) in lhses.iter().enumerate() { // try each arm's matchers let lhs_tt = match *lhs { TokenTree::Delimited(_, ref delim) => &delim.tts[..], - _ => cx.span_bug(sp, "malformed macro lhs") + _ => cx.span_fatal(sp, "malformed macro lhs") }; match TokenTree::parse(cx, lhs_tt, arg) { @@ -186,7 +186,7 @@ fn generic_extension<'cx>(cx: &'cx ExtCtxt, let rhs = match rhses[i] { // ignore delimiters TokenTree::Delimited(_, ref delimed) => delimed.tts.clone(), - _ => cx.span_bug(sp, "malformed macro rhs"), + _ => cx.span_fatal(sp, "malformed macro rhs"), }; // rhs has holes ( `$id` and `$(...)` that need filled) let trncbr = new_tt_reader(&cx.parse_sess().span_diagnostic, diff --git a/src/test/compile-fail/malformed_macro_lhs.rs b/src/test/compile-fail/malformed_macro_lhs.rs new file mode 100644 index 00000000000..88e19af2eea --- /dev/null +++ b/src/test/compile-fail/malformed_macro_lhs.rs @@ -0,0 +1,17 @@ +// Copyright 2015 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +macro_rules! my_precioooous { + $($t:tt)* => (1); +} + +fn main() { + my_precioooous!(); //~ ERROR malformed macro lhs +} |
