summaryrefslogtreecommitdiffstats
path: root/src/test/ui/for-loop-while/loop-break-value.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
commit218caa410aa38c29984be31a5229b9fa717560ee (patch)
treec54bd55eeb6e4c508940a30e94c0032fbd45d677 /src/test/ui/for-loop-while/loop-break-value.rs
parentReleasing progress-linux version 1.67.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-218caa410aa38c29984be31a5229b9fa717560ee.tar.xz
rustc-218caa410aa38c29984be31a5229b9fa717560ee.zip
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/ui/for-loop-while/loop-break-value.rs')
-rw-r--r--src/test/ui/for-loop-while/loop-break-value.rs139
1 files changed, 0 insertions, 139 deletions
diff --git a/src/test/ui/for-loop-while/loop-break-value.rs b/src/test/ui/for-loop-while/loop-break-value.rs
deleted file mode 100644
index d7209fc4d..000000000
--- a/src/test/ui/for-loop-while/loop-break-value.rs
+++ /dev/null
@@ -1,139 +0,0 @@
-// run-pass
-
-#![allow(unreachable_code)]
-#![feature(never_type)]
-
-#[allow(unused)]
-fn never_returns() {
- loop {
- break loop {};
- }
-}
-
-pub fn main() {
- let value = 'outer: loop {
- if 1 == 1 {
- break 13;
- } else {
- let _never: ! = loop {
- break loop {
- break 'outer panic!();
- }
- };
- }
- };
- assert_eq!(value, 13);
-
- let x = [1, 3u32, 5];
- let y = [17];
- let z = [];
- let coerced: &[_] = loop {
- match 2 {
- 1 => break &x,
- 2 => break &y,
- 3 => break &z,
- _ => (),
- }
- };
- assert_eq!(coerced, &[17u32]);
-
- let trait_unified = loop {
- break if true {
- break Default::default()
- } else {
- break [13, 14]
- };
- };
- assert_eq!(trait_unified, [0, 0]);
-
- let trait_unified_2 = loop {
- if false {
- break [String::from("Hello")]
- } else {
- break Default::default()
- };
- };
- assert_eq!(trait_unified_2, [""]);
-
- let trait_unified_3 = loop {
- break if false {
- break [String::from("Hello")]
- } else {
- ["Yes".into()]
- };
- };
- assert_eq!(trait_unified_3, ["Yes"]);
-
- let regular_break = loop {
- if true {
- break;
- } else {
- break break Default::default();
- }
- };
- assert_eq!(regular_break, ());
-
- let regular_break_2 = loop {
- if true {
- break Default::default();
- } else {
- break;
- }
- };
- assert_eq!(regular_break_2, ());
-
- let regular_break_3 = loop {
- break if true {
- Default::default()
- } else {
- break;
- }
- };
- assert_eq!(regular_break_3, ());
-
- let regular_break_4 = loop {
- break ();
- break;
- };
- assert_eq!(regular_break_4, ());
-
- let regular_break_5 = loop {
- break;
- break ();
- };
- assert_eq!(regular_break_5, ());
-
- let nested_break_value = 'outer2: loop {
- let _a: u32 = 'inner: loop {
- if true {
- break 'outer2 "hello";
- } else {
- break 'inner 17;
- }
- };
- panic!();
- };
- assert_eq!(nested_break_value, "hello");
-
- let break_from_while_cond = loop {
- 'inner_loop: while break 'inner_loop {
- panic!();
- }
- break 123;
- };
- assert_eq!(break_from_while_cond, 123);
-
- let break_from_while_to_outer = 'outer_loop: loop {
- while break 'outer_loop 567 {
- panic!("from_inner");
- }
- panic!("from outer");
- };
- assert_eq!(break_from_while_to_outer, 567);
-
- let rust = true;
- let value = loop {
- break rust;
- };
- assert!(value);
-}