Add by-value captured variable note on second use.
This commit adds a note that was present in the AST borrow checker when closures are invoked more than once and have captured variables by-value.
This commit is contained in:
parent
aa701154f0
commit
375645abb8
5 changed files with 140 additions and 47 deletions
|
|
@ -1,11 +0,0 @@
|
|||
error[E0382]: use of moved value: `debug_dump_dict`
|
||||
--> $DIR/issue-42065.rs:21:5
|
||||
|
|
||||
LL | debug_dump_dict();
|
||||
| --------------- value moved here
|
||||
LL | debug_dump_dict();
|
||||
| ^^^^^^^^^^^^^^^ value used here after move
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0382`.
|
||||
18
src/test/ui/issues/issue-12127.nll.stderr
Normal file
18
src/test/ui/issues/issue-12127.nll.stderr
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
error[E0382]: use of moved value: `f`
|
||||
--> $DIR/issue-12127.rs:21:9
|
||||
|
|
||||
LL | f();
|
||||
| - value moved here
|
||||
LL | f();
|
||||
| ^ value used here after move
|
||||
|
|
||||
note: closure cannot be invoked more than once because it moves the variable `x` out of its environment
|
||||
--> $DIR/issue-12127.rs:18:39
|
||||
|
|
||||
LL | let f = to_fn_once(move|| do_it(&*x));
|
||||
| ^
|
||||
= note: move occurs because `f` has type `[closure@$DIR/issue-12127.rs:18:24: 18:41 x:std::boxed::Box<isize>]`, which does not implement the `Copy` trait
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0382`.
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
error[E0382]: use of moved value: `tick`
|
||||
--> $DIR/unboxed-closures-infer-fnonce-call-twice.rs:20:5
|
||||
|
|
||||
LL | tick();
|
||||
| ---- value moved here
|
||||
LL | tick(); //~ ERROR use of moved value: `tick`
|
||||
| ^^^^ value used here after move
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0382`.
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
error[E0382]: use of moved value: `tick`
|
||||
--> $DIR/unboxed-closures-infer-fnonce-move-call-twice.rs:20:5
|
||||
|
|
||||
LL | tick();
|
||||
| ---- value moved here
|
||||
LL | tick(); //~ ERROR use of moved value: `tick`
|
||||
| ^^^^ value used here after move
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0382`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue