// Test that when we infer the lifetime to a subset of the fn body, it // works out. // //@ check-pass #![allow(dropping_references)] trait MyTrait<'a> { type Output; } fn foo1() where for<'x> T: MyTrait<'x>, { // Here the region `'c` in `>::Output` will be // inferred to a subset of the fn body. let x = bar::(); drop(x); } fn bar<'a, T>() -> &'a () where T: 'a, { &() } fn main() {}