| // edition:2018 |
| // build-pass (FIXME(62277): could be check-pass?) |
| // revisions: migrate mir |
| //[mir]compile-flags: -Z borrowck=mir |
| |
| #![feature(member_constraints)] |
| |
| trait Trait<'a, 'b> { } |
| impl<T> Trait<'_, '_> for T { } |
| |
| // Test case where we have elision in the impl trait and we have to |
| // pick the right region. |
| |
| // Ultimately `Trait<'x, 'static>`. |
| fn upper_bounds1(a: &u8) -> impl Trait<'_, 'static> { |
| (a, a) |
| } |
| |
| // Ultimately `Trait<'x, 'x>`, so not really multiple bounds. |
| fn upper_bounds2(a: &u8) -> impl Trait<'_, '_> { |
| (a, a) |
| } |
| |
| // Kind of a weird annoying case. |
| fn upper_bounds3<'b>(a: &u8) -> impl Trait<'_, 'b> { |
| (a, a) |
| } |
| |
| fn main() { } |