diff options
| author | reddevilmidzy <midzy0228@gmail.com> | 2025-04-18 00:44:11 +0900 |
|---|---|---|
| committer | reddevilmidzy <midzy0228@gmail.com> | 2025-04-21 16:16:38 +0900 |
| commit | dd2d6b222b7a7ad615e612b55fcf3933d4036be3 (patch) | |
| tree | 869e539efd5abe6f8959d687af7fac80a1fa0a67 /tests/ui/or-patterns | |
| parent | f433fa46b0fd27d35219357ad75f54d294081bc4 (diff) | |
| download | rust-dd2d6b222b7a7ad615e612b55fcf3933d4036be3.tar.gz rust-dd2d6b222b7a7ad615e612b55fcf3933d4036be3.zip | |
Cleaned up 5 tests in `tests/ui`
Diffstat (limited to 'tests/ui/or-patterns')
| -rw-r--r-- | tests/ui/or-patterns/lazy-and-or.rs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/ui/or-patterns/lazy-and-or.rs b/tests/ui/or-patterns/lazy-and-or.rs new file mode 100644 index 00000000000..3d69553132b --- /dev/null +++ b/tests/ui/or-patterns/lazy-and-or.rs @@ -0,0 +1,25 @@ +//@ run-pass +// This test verifies the short-circuiting behavior of logical operators `||` and `&&`. +// It ensures that the right-hand expression is not evaluated when the left-hand +// expression is sufficient to determine the result. + +fn would_panic_if_called(x: &mut isize) -> bool { + *x += 1; + assert!(false, "This function should never be called due to short-circuiting"); + false +} + +fn main() { + let x = 1 == 2 || 3 == 3; + assert!(x); + + let mut y: isize = 10; + println!("Result of short-circuit: {}", x || would_panic_if_called(&mut y)); + assert_eq!(y, 10, "y should remain 10 if short-circuiting works correctly"); + + if true && x { + assert!(true); + } else { + assert!(false, "This branch should not be reached"); + } +} |
