File tree Expand file tree Collapse file tree 2 files changed +38
-0
lines changed Expand file tree Collapse file tree 2 files changed +38
-0
lines changed Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff line change 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+
You can’t perform that action at this time.
0 commit comments