29 lines
721 B
Rust
29 lines
721 B
Rust
#![feature(min_specialization)]
|
|
use std::fmt::{self, Display};
|
|
|
|
pub enum Cow<'a, B: ?Sized + 'a, O = <B as ToOwned>::Owned>
|
|
where
|
|
B: ToOwned,
|
|
{
|
|
Borrowed(&'a B),
|
|
Owned(O),
|
|
}
|
|
|
|
impl ToString for Cow<'_, str> {
|
|
fn to_string(&self) -> String {
|
|
String::new()
|
|
}
|
|
}
|
|
|
|
impl<B: ?Sized> 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() {}
|