about summary refs log tree commit diff
path: root/tests/ui/impl-trait/precise-capturing/rpitit-captures-more-method-lifetimes.rs
blob: f6126c03339142c058d8354761c482cd605ac4cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Make sure we don't ICE when an RPITIT captures more method args than the
// trait definition, which is not allowed. Due to the default lifetime capture
// rules of RPITITs, this is only doable if we use precise capturing.

pub trait Foo {
    fn bar<'tr: 'tr>(&'tr mut self) -> impl Sized + use<Self>;
}

impl Foo for () {
    fn bar<'im: 'im>(&'im mut self) -> impl Sized + use<'im> {}
    //~^ ERROR return type captures more lifetimes than trait definition
}

fn main() {}