about summary refs log tree commit diff
path: root/tests/ui/loops/loop-break-value.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/loops/loop-break-value.rs')
-rw-r--r--tests/ui/loops/loop-break-value.rs36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/ui/loops/loop-break-value.rs b/tests/ui/loops/loop-break-value.rs
index e38a5aa29eb..c35200520cb 100644
--- a/tests/ui/loops/loop-break-value.rs
+++ b/tests/ui/loops/loop-break-value.rs
@@ -107,6 +107,7 @@ fn main() {
         }
         break; //~ ERROR mismatched types
     };
+
     let _ = 'a: loop {
         loop {
             break; // This doesn't affect the expected break type of the 'a loop
@@ -119,6 +120,41 @@ fn main() {
         break 'a; //~ ERROR mismatched types
     };
 
+    loop {
+        break;
+        let _ = loop {
+            break 2;
+            loop {
+                break;
+            }
+        };
+        break 2; //~ ERROR mismatched types
+    }
+
+    'a: loop {
+        break;
+        let _ = 'a: loop {
+            //~^ WARNING label name `'a` shadows a label name that is already in scope
+            break 2;
+            loop {
+                break 'a; //~ ERROR mismatched types
+            }
+        };
+        break 2; //~ ERROR mismatched types
+    }
+
+    'a: loop {
+        break;
+        let _ = 'a: loop {
+            //~^ WARNING label name `'a` shadows a label name that is already in scope
+            break 'a 2;
+            loop {
+                break 'a; //~ ERROR mismatched types
+            }
+        };
+        break 2; //~ ERROR mismatched types
+    };
+
     loop { // point at the return type
         break 2; //~ ERROR mismatched types
     }