Skip to content

Commit

Permalink
Move match tests in match folder
Browse files Browse the repository at this point in the history
  • Loading branch information
roxelo committed Aug 28, 2021
1 parent f7b0e3b commit 33817d2
Show file tree
Hide file tree
Showing 6 changed files with 38 additions and 35 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -41,38 +41,4 @@ pub fn edge_case_char(event: char) {
};
}

enum SingleVariant {
A
}

struct TestStruct {
x: i32,
y: i32,
z: i32,
}

fn edge_case_if() {
let sv = SingleVariant::A;
let condition = true;
// sv should not be captured as it is a SingleVariant
let _a = || {
match sv {
SingleVariant::A if condition => (),
_ => ()
}
};
let mut mut_sv = sv;
_a();

// ts should be captured
let ts = TestStruct { x: 1, y: 1, z: 1 };
let _b = || { match ts {
TestStruct{ x: 1, .. } => (),
_ => ()
}};
let mut mut_ts = ts;
//~^ ERROR: cannot move out of `ts` because it is borrowed
_b();
}

fn main() {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
// edition:2021

enum SingleVariant {
A
}

struct TestStruct {
x: i32,
y: i32,
z: i32,
}

fn edge_case_if() {
let sv = SingleVariant::A;
let condition = true;
// sv should not be captured as it is a SingleVariant
let _a = || {
match sv {
SingleVariant::A if condition => (),
_ => ()
}
};
let mut mut_sv = sv;
_a();

// ts should be captured
let ts = TestStruct { x: 1, y: 1, z: 1 };
let _b = || { match ts {
TestStruct{ x: 1, .. } => (),
_ => ()
}};
let mut mut_ts = ts;
//~^ ERROR: cannot move out of `ts` because it is borrowed
_b();
}

fn main() {}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
error[E0505]: cannot move out of `ts` because it is borrowed
--> $DIR/match-edge-cases.rs:32:22
--> $DIR/match-edge-cases_2.rs:32:22
|
LL | let _b = || { match ts {
| -- -- borrow occurs due to use in closure
Expand Down

0 comments on commit 33817d2

Please sign in to comment.