]> git.proxmox.com Git - rustc.git/blobdiff - src/test/ui/hygiene/hygienic-labels.rs
New upstream version 1.41.1+dfsg1
[rustc.git] / src / test / ui / hygiene / hygienic-labels.rs
index a364dd9c88752678baeda664217707c579f61336..c9f494b68b4a812a5e73599bfec24b70a2127d7f 100644 (file)
@@ -1,5 +1,6 @@
 // run-pass
 #![allow(unreachable_code)]
+#![allow(unused_labels)]
 // Test that labels injected by macros do not break hygiene.
 
 // Issue #24278: The label/lifetime shadowing checker from #24162
@@ -10,6 +11,10 @@ macro_rules! loop_x {
     ($e: expr) => {
         // $e shouldn't be able to interact with this 'x
         'x: loop { $e }
+        //~^ WARNING shadows a label name that is already in scope
+        //~| WARNING shadows a label name that is already in scope
+        //~| WARNING shadows a label name that is already in scope
+        //~| WARNING shadows a label name that is already in scope
     }
 }
 
@@ -17,6 +22,13 @@ macro_rules! run_once {
     ($e: expr) => {
         // ditto
         'x: for _ in 0..1 { $e }
+        //~^ WARNING shadows a label name that is already in scope
+        //~| WARNING shadows a label name that is already in scope
+        //~| WARNING shadows a label name that is already in scope
+        //~| WARNING shadows a label name that is already in scope
+        //~| WARNING shadows a label name that is already in scope
+        //~| WARNING shadows a label name that is already in scope
+        //~| WARNING shadows a label name that is already in scope
     }
 }
 
@@ -24,6 +36,11 @@ macro_rules! while_x {
     ($e: expr) => {
         // ditto
         'x: while 1 + 1 == 2 { $e }
+        //~^ WARNING shadows a label name that is already in scope
+        //~| WARNING shadows a label name that is already in scope
+        //~| WARNING shadows a label name that is already in scope
+        //~| WARNING shadows a label name that is already in scope
+        //~| WARNING shadows a label name that is already in scope
     }
 }
 
@@ -35,17 +52,32 @@ pub fn main() {
     }
 
     'x: loop {
+        //~^ WARNING shadows a label name that is already in scope
+        //~| WARNING shadows a label name that is already in scope
+
         // ditto
         loop_x!(break 'x);
         panic!("break doesn't act hygienically inside infinite loop");
     }
 
     'x: while 1 + 1 == 2 {
+        //~^ WARNING shadows a label name that is already in scope
+        //~| WARNING shadows a label name that is already in scope
+        //~| WARNING shadows a label name that is already in scope
+        //~| WARNING shadows a label name that is already in scope
+
         while_x!(break 'x);
         panic!("break doesn't act hygienically inside infinite while loop");
     }
 
     'x: for _ in 0..1 {
+        //~^ WARNING shadows a label name that is already in scope
+        //~| WARNING shadows a label name that is already in scope
+        //~| WARNING shadows a label name that is already in scope
+        //~| WARNING shadows a label name that is already in scope
+        //~| WARNING shadows a label name that is already in scope
+        //~| WARNING shadows a label name that is already in scope
+
         // ditto
         run_once!(continue 'x);
         panic!("continue doesn't act hygienically inside for loop");