Commit e390182 1 parent d5a448b commit e390182 Copy full SHA for e390182
File tree 2 files changed +58
-0
lines changed
2 files changed +58
-0
lines changed Original file line number Diff line number Diff line change
1
+ // Copyright 2018 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
+ // Regression test for issue #27868
12
+
13
+ #![ feature( nll) ]
14
+
15
+ use std:: ops:: AddAssign ;
16
+
17
+ struct MyVec < T > ( Vec < T > ) ;
18
+
19
+ impl < T > Drop for MyVec < T > {
20
+ fn drop ( & mut self ) {
21
+ println ! ( "Being dropped." ) ;
22
+ }
23
+ }
24
+
25
+ impl < T > AddAssign < T > for MyVec < T > {
26
+ fn add_assign ( & mut self , _elem : T ) {
27
+ println ! ( "In add_assign." ) ;
28
+ }
29
+ }
30
+
31
+ fn main ( ) {
32
+ let mut vec = MyVec ( vec ! [ 0 ] ) ;
33
+ let mut vecvec = vec ! [ vec] ;
34
+
35
+ vecvec[ 0 ] += {
36
+ vecvec = vec ! [ ] ;
37
+ //~^ ERROR cannot assign to `vecvec` because it is borrowed [E0506]
38
+ 0
39
+ } ;
40
+ }
Original file line number Diff line number Diff line change
1
+ error[E0506]: cannot assign to `vecvec` because it is borrowed
2
+ --> $DIR/issue-27868.rs:36:9
3
+ |
4
+ LL | vecvec[0] += {
5
+ | ------
6
+ | |
7
+ | _____borrow of `vecvec` occurs here
8
+ | |
9
+ LL | | vecvec = vec![];
10
+ | | ^^^^^^ assignment to borrowed `vecvec` occurs here
11
+ LL | | //~^ ERROR cannot assign to `vecvec` because it is borrowed [E0506]
12
+ LL | | 0
13
+ LL | | };
14
+ | |_____- borrow later used here
15
+
16
+ error: aborting due to previous error
17
+
18
+ For more information about this error, try `rustc --explain E0506`.
You can’t perform that action at this time.
0 commit comments