blob: 31a0685d004bffe3fa8463aa94ecda8e85506576 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
// Check that default generics associated types are validated.
#![feature(specialization)]
//~^ WARNING `specialization` is incomplete
trait X {
type U<'a>: PartialEq<&'a Self> where Self: 'a;
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);
}
|