| //@ check-pass | |
| // related to #113916, check that using RPITs in functions with lifetime params | |
| // which are constrained to be equal compiles. | |
| trait Trait<'a, 'b> {} | |
| impl Trait<'_, '_> for () {} | |
| fn pass<'a: 'b, 'b: 'a>() -> impl Trait<'a, 'b> { | |
| (|| {})() | |
| } | |
| struct Foo<'a>(&'a ()); | |
| impl<'a> Foo<'a> { | |
| fn bar<'b: 'a>(&'b self) -> impl Trait<'a, 'b> { | |
| let _: &'a &'b &'a (); | |
| } | |
| } | |
| fn main() {} |