File tree 2 files changed +38
-0
lines changed
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