Skip to content

Commit 101f1e1

Browse files
committed
Add regression test for #29723
fixes #29723
1 parent 0f9c784 commit 101f1e1

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

src/test/ui/issue-29723.rs

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
#![feature(nll)]
12+
13+
// test for https://github.com/rust-lang/rust/issues/29723
14+
15+
fn foo() {
16+
let s = String::new();
17+
let _s = match 0 {
18+
0 if { drop(s); false } => String::from("oops"),
19+
_ => {
20+
// This should trigger an error,
21+
// s could have been moved from.
22+
s
23+
}
24+
};
25+
}

src/test/ui/issue-29723.stderr

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
error[E0382]: use of moved value: `s`
2+
--> $DIR/issue-29723.rs:22:13
3+
|
4+
18 | 0 if { drop(s); false } => String::from("oops"),
5+
| - value moved here
6+
...
7+
22 | s
8+
| ^ value used here after move
9+
|
10+
= note: move occurs because `s` has type `std::string::String`, which does not implement the `Copy` trait
11+
12+
error: aborting due to previous error
13+

0 commit comments

Comments
 (0)