rust/tests/ui/higher-ranked/trait-bounds/issue-59311.rs

24 lines
651 B
Rust

// Regression test for #59311. The test is taken from
// rust-lang/rust/issues/71546#issuecomment-620638437
// as they seem to have the same cause.
// FIXME: It's not clear that this code ought to report
// an error, but the regression test is here to ensure
// that it does not ICE. See discussion on #74889 for details.
pub trait Trait {
fn t<F: Fn()>(&self, _: F) {}
}
pub fn crash<V>(v: &V)
where
for<'a> &'a V: Trait + 'static,
{
v.t(|| {});
//~^ ERROR: implementation of `Trait` is not general enough
//~| ERROR: implementation of `Trait` is not general enough
//~| ERROR: higher-ranked lifetime error
}
fn main() {}