blob: 272a5e3fe10c614d74c3d45e7bbebd4e29f60e8e [file] [log] [blame]
// Check that we check that default associated types satisfy the required
// bounds on them.
#![feature(specialization)]
//~^ WARNING `specialization` is incomplete
trait X {
type U: Clone;
fn unsafe_clone(&self, x: Option<&Self::U>) {
x.cloned();
}
}
// We cannot normalize `<T as X>::U` to `str` here, because the default could
// be overridden. The error here must therefore be found by a method other than
// normalization.
impl<T> X for T {
default type U = str;
//~^ ERROR the trait bound `str: std::clone::Clone` is not satisfied
}
pub fn main() {
1.unsafe_clone(None);
}