]> git.lizzy.rs Git - rust.git/commitdiff
Add test for "malformed macro lhs" and change back span_bug to span_fatal
authorGuillaume Gomez <guillaume1.gomez@gmail.com>
Mon, 4 Jan 2016 00:11:54 +0000 (01:11 +0100)
committerGuillaume Gomez <guillaume1.gomez@gmail.com>
Mon, 4 Jan 2016 00:13:57 +0000 (01:13 +0100)
src/libsyntax/ext/tt/macro_rules.rs
src/test/compile-fail/malformed_macro_lhs.rs [new file with mode: 0644]

index fd0bbf7a0723e95d71f6438d2a6918c21b854fc8..38e6c21375c764cb835ae84e8808305ab11ce220 100644 (file)
@@ -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 (file)
index 0000000..88e19af
--- /dev/null
@@ -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
+}