blob: 8a94ea658d2d0c72f1d842fdfccc20e663fdd525 [file] [log] [blame]
// Check that default generics associated types are validated.
#![feature(specialization)]
#![feature(generic_associated_types)]
//~^^ WARNING `specialization` is incomplete
//~^^ WARNING the feature `generic_associated_types` is incomplete
trait X {
type U<'a>: PartialEq<&'a Self>;
fn unsafe_compare<'b>(x: Option<Self::U<'b>>, y: Option<&'b Self>) {
match (x, y) {
(Some(a), Some(b)) => a == b,
_ => false,
};
}
}
impl<T: 'static> X for T {
default type U<'a> = &'a T;
//~^ ERROR can't compare `T` with `T`
}
struct NotComparable;
pub fn main() {
<NotComparable as X>::unsafe_compare(None, None);
}