summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorMatt Peterson <ricochet1k@gmail.com>2017-12-20 15:37:22 -0500
committerMatt Peterson <ricochet1k@gmail.com>2017-12-28 11:32:05 -0500
commit0e53360af69bf9e71ef39e570655d73fc44339b9 (patch)
tree6c33732eb073e822b6855ec939cbb2f9ff738a49 /src/test
parente12b87096a9c1856db9874c3af0bc64423b5477a (diff)
downloadrust-0e53360af69bf9e71ef39e570655d73fc44339b9.tar.gz
rust-0e53360af69bf9e71ef39e570655d73fc44339b9.zip
Fix build and add a macro lifetime labels test
Diffstat (limited to 'src/test')
-rw-r--r--src/test/run-pass/macro-lifetime-used-with-labels.rs43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/test/run-pass/macro-lifetime-used-with-labels.rs b/src/test/run-pass/macro-lifetime-used-with-labels.rs
new file mode 100644
index 00000000000..d003d7dcfb6
--- /dev/null
+++ b/src/test/run-pass/macro-lifetime-used-with-labels.rs
@@ -0,0 +1,43 @@
+// Copyright 2012 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.
+
+#![allow(unreachable_code)]
+
+macro_rules! x {
+    ($a:lifetime) => {
+        $a: loop {
+            break $a;
+            panic!("failed");
+        }
+    }
+}
+macro_rules! br {
+    ($a:lifetime) => {
+        break $a;
+    }
+}
+macro_rules! br2 {
+    ($b:lifetime) => {
+        'b: loop {
+            break $b; // this $b should refer to the outer loop.
+        }
+    }
+}
+fn main() {
+    x!('a);
+    'c: loop {
+        br!('c);
+        panic!("failed");
+    }
+    'b: loop {
+        br2!('b);
+        panic!("failed");
+    }
+}