#![feature(min_specialization)] use std::fmt::{self, Display}; pub enum Cow<'a, B: ?Sized + 'a, O = ::Owned> where B: ToOwned, { Borrowed(&'a B), Owned(O), } impl ToString for Cow<'_, str> { fn to_string(&self) -> String { String::new() } } impl Display for Cow<'_, B> { //~^ ERROR: the trait bound `B: Clone` is not satisfied [E0277] fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { //~^ ERROR: the trait bound `B: Clone` is not satisfied [E0277] //~| ERROR: the trait bound `B: Clone` is not satisfied [E0277] //~| ERROR: the trait bound `B: Clone` is not satisfied [E0277] write!(f, "foo") } } fn main() {}