Closed
Description
There are many tests in compile-fail/borrowck/
that, in addition to signalling the errors that we already expect, also include a number of additional errors usually of the form "cannot move out of because it is borrowed.".
-
You can see list of such tests in the discrepancy spreadsheet.
-
Here is example output from an especially bad instance of the problem:
error[E0505]: cannot move out of `vec` because it is borrowed (Mir)
--> ./src/test/compile-fail/borrowck/borrowck-vec-pattern-element-loan.rs:22:2
|
22 | }
| ^
error[E0505]: cannot move out of `vec` because it is borrowed (Mir)
--> ./src/test/compile-fail/borrowck/borrowck-vec-pattern-element-loan.rs:22:2
|
22 | }
| ^
error[E0506]: cannot assign to `vec` because it is borrowed (Mir)
--> ./src/test/compile-fail/borrowck/borrowck-vec-pattern-element-loan.rs:22:2
|
22 | }
| ^
error[E0505]: cannot move out of `vec` because it is borrowed (Mir)
--> ./src/test/compile-fail/borrowck/borrowck-vec-pattern-element-loan.rs:32:2
|
32 | }
| ^
error[E0505]: cannot move out of `vec` because it is borrowed (Mir)
--> ./src/test/compile-fail/borrowck/borrowck-vec-pattern-element-loan.rs:32:2
|
32 | }
| ^
error[E0506]: cannot assign to `vec` because it is borrowed (Mir)
--> ./src/test/compile-fail/borrowck/borrowck-vec-pattern-element-loan.rs:32:2
|
32 | }
| ^
error[E0505]: cannot move out of `vec` because it is borrowed (Mir)
--> ./src/test/compile-fail/borrowck/borrowck-vec-pattern-element-loan.rs:42:2
|
42 | }
| ^
error[E0505]: cannot move out of `vec` because it is borrowed (Mir)
--> ./src/test/compile-fail/borrowck/borrowck-vec-pattern-element-loan.rs:42:2
|
42 | }
| ^
error[E0506]: cannot assign to `vec` because it is borrowed (Mir)
--> ./src/test/compile-fail/borrowck/borrowck-vec-pattern-element-loan.rs:42:2
|
42 | }
| ^
These errors often (perhaps always?) occur at the end of some lexical scope, so perhaps they are arising due to over-zealous handling of destructors, or StorageDead
(or EndRegion
)?
In any case, they represent a lot of extra noise and need to be dealt with.