mirror of https://github.com/rust-lang/rust
29 lines
955 B
Plaintext
29 lines
955 B
Plaintext
error[E0382]: use of moved value: `x`
|
|
--> $DIR/issue-34721.rs:27:9
|
|
|
|
|
LL | pub fn baz<T: Foo>(x: T) -> T {
|
|
| - move occurs because `x` has type `T`, which does not implement the `Copy` trait
|
|
LL | if 0 == 1 {
|
|
LL | bar::bar(x.zero())
|
|
| ------ `x` moved due to this method call
|
|
LL | } else {
|
|
LL | x.zero()
|
|
| ------ `x` moved due to this method call
|
|
LL | };
|
|
LL | x.zero()
|
|
| ^ value used here after move
|
|
|
|
|
note: `Foo::zero` takes ownership of the receiver `self`, which moves `x`
|
|
--> $DIR/issue-34721.rs:4:13
|
|
|
|
|
LL | fn zero(self) -> Self;
|
|
| ^^^^
|
|
help: consider further restricting this bound
|
|
|
|
|
LL | pub fn baz<T: Foo + Copy>(x: T) -> T {
|
|
| ++++++
|
|
|
|
error: aborting due to 1 previous error
|
|
|
|
For more information about this error, try `rustc --explain E0382`.
|