error[E0599]: the method `clone` exists for struct `Box`, but its trait bounds were not satisfied --> $DIR/unique-object-noncopyable.rs:24:16 | LL | trait Foo { | --------- | | | doesn't satisfy `dyn Foo: Clone` | doesn't satisfy `dyn Foo: Sized` ... LL | let _z = y.clone(); | ^^^^^ method cannot be called on `Box` due to unsatisfied trait bounds | ::: $SRC_DIR/core/src/clone.rs:LL:COL | LL | fn clone(&self) -> Self; | ----- | | | the method is available for `Arc>` here | the method is available for `Rc>` here | ::: $SRC_DIR/alloc/src/boxed.rs:LL:COL | LL | / pub struct Box< LL | | T: ?Sized, LL | | #[unstable(feature = "allocator_api", issue = "32838")] A: Allocator = Global, LL | | >(Unique, A); | |________________- doesn't satisfy `Box: Clone` | = note: the following trait bounds were not satisfied: `dyn Foo: Sized` which is required by `Box: Clone` `dyn Foo: Clone` which is required by `Box: Clone` error: aborting due to previous error For more information about this error, try `rustc --explain E0599`.