diff options
Diffstat (limited to 'src/test/ui/nll/match-cfg-fake-edges.rs')
-rw-r--r-- | src/test/ui/nll/match-cfg-fake-edges.rs | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/src/test/ui/nll/match-cfg-fake-edges.rs b/src/test/ui/nll/match-cfg-fake-edges.rs deleted file mode 100644 index 252f7f8ba..000000000 --- a/src/test/ui/nll/match-cfg-fake-edges.rs +++ /dev/null @@ -1,42 +0,0 @@ -// Test that we have enough false edges to avoid exposing the exact matching -// algorithm in borrow checking. - -fn guard_always_precedes_arm(y: i32) { - let mut x; - // x should always be initialized, as the only way to reach the arm is - // through the guard. - match y { - 0 | 2 if { x = 2; true } => x, - _ => 2, - }; -} - -fn guard_may_be_skipped(y: i32) { - let x; - // Even though x *is* always initialized, we don't want to have borrowck - // results be based on whether patterns are exhaustive. - match y { - _ if { x = 2; true } => 1, - _ if { - x; //~ ERROR E0381 - false - } => 2, - _ => 3, - }; -} - -fn guard_may_be_taken(y: bool) { - let x = String::new(); - // Even though x *is* never moved before the use, we don't want to have - // borrowck results be based on whether patterns are disjoint. - match y { - false if { drop(x); true } => 1, - true => { - x; //~ ERROR use of moved value: `x` - 2 - } - false => 3, - }; -} - -fn main() {} |