2017-05-16 15:04:32 +02:00
|
|
|
// Formerly this ICEd with the following message:
|
|
|
|
// Tried to project an inherited associated type during coherence checking,
|
|
|
|
// which is currently not supported.
|
|
|
|
//
|
|
|
|
// No we expect to run into a more user-friendly cycle error instead.
|
|
|
|
|
2018-12-29 00:11:13 +01:00
|
|
|
// revisions: old re
|
|
|
|
|
|
|
|
#![cfg_attr(re, feature(re_rebalance_coherence))]
|
2017-05-16 15:04:32 +02:00
|
|
|
#![feature(specialization)]
|
|
|
|
|
|
|
|
trait Trait<T> { type Assoc; }
|
2018-12-29 00:11:13 +01:00
|
|
|
//[old]~^ cycle detected
|
|
|
|
//[re]~^^ ERROR E0391
|
2017-05-16 15:04:32 +02:00
|
|
|
|
|
|
|
impl<T> Trait<T> for Vec<T> {
|
|
|
|
type Assoc = ();
|
|
|
|
}
|
|
|
|
|
|
|
|
impl Trait<u8> for Vec<u8> {}
|
|
|
|
|
|
|
|
impl<T> Trait<T> for String {
|
|
|
|
type Assoc = ();
|
|
|
|
}
|
|
|
|
|
|
|
|
impl Trait<<Vec<u8> as Trait<u8>>::Assoc> for String {}
|
|
|
|
|
|
|
|
fn main() {}
|