blob: 6eb2aa980d1521b8b9029354d006e9b7b6d530bb [file] [log] [blame]
// Check that we check that default associated types satisfy the required
// bounds on them.
// ignore-compare-mode-chalk
#![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: Clone` is not satisfied
}
pub fn main() {
1.unsafe_clone(None);
}