about summary refs log tree commit diff
diff options
context:
space:
mode:
authordswij <dswijj@gmail.com>2021-08-26 18:20:13 +0800
committerdswij <dswijj@gmail.com>2021-09-08 10:41:37 +0800
commit290fb8de6637262c79bda37723bf784d6341056b (patch)
treea7f3a6f8967aae8640b64bf2a1e8411afb9e664d
parentb7c25e1679e8741ec52294765bb943c298ecefd7 (diff)
downloadrust-290fb8de6637262c79bda37723bf784d6341056b.tar.gz
rust-290fb8de6637262c79bda37723bf784d6341056b.zip
Add additional test for broken loop in `mut_range_bound`
-rw-r--r--tests/ui/mut_range_bound.rs39
1 files changed, 30 insertions, 9 deletions
diff --git a/tests/ui/mut_range_bound.rs b/tests/ui/mut_range_bound.rs
index 1348dd2a3d8..e1ae1ef9282 100644
--- a/tests/ui/mut_range_bound.rs
+++ b/tests/ui/mut_range_bound.rs
@@ -1,14 +1,6 @@
 #![allow(unused)]
 
-fn main() {
-    mut_range_bound_upper();
-    mut_range_bound_lower();
-    mut_range_bound_both();
-    mut_range_bound_no_mutation();
-    immut_range_bound();
-    mut_borrow_range_bound();
-    immut_borrow_range_bound();
-}
+fn main() {}
 
 fn mut_range_bound_upper() {
     let mut m = 4;
@@ -61,3 +53,32 @@ fn immut_range_bound() {
         continue;
     } // no warning
 }
+
+fn mut_range_bound_break() {
+    let mut m = 4;
+    for i in 0..m {
+        if m == 4 {
+            m = 5; // no warning because of immediate break
+            break;
+        }
+    }
+}
+
+fn mut_range_bound_no_immediate_break() {
+    let mut m = 4;
+    for i in 0..m {
+        m = 2; // warning because it is not immediately followed by break
+        if m == 4 {
+            break;
+        }
+    }
+
+    let mut n = 3;
+    for i in n..10 {
+        if n == 4 {
+            n = 1; // FIXME: warning because is is not immediately followed by break
+            let _ = 2;
+            break;
+        }
+    }
+}