rust/tests/ui/specialization/issue-38091-2.rs

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

29 lines
491 B
Rust
Raw Normal View History

//@ build-fail
//~^ ERROR overflow evaluating the requirement `i32: Check`
#![feature(specialization)]
2020-06-16 08:06:35 +00:00
//~^ WARN the feature `specialization` is incomplete
trait Iterate<'a> {
type Ty: Valid;
fn iterate(self);
}
impl<'a, T> Iterate<'a> for T
where
T: Check,
{
default type Ty = ();
default fn iterate(self) {}
}
trait Check {}
impl<'a, T> Check for T where <T as Iterate<'a>>::Ty: Valid {}
trait Valid {}
impl Valid for () {}
fn main() {
Iterate::iterate(0);
}