| // This is a non-regression test for issue #116657, where NLL and `-Zpolonius=next` computed | 
 | // different loan scopes when a member constraint was not ultimately applied. | 
 |  | 
 | //@ revisions: nll polonius | 
 | //@ [polonius] compile-flags: -Zpolonius=next | 
 |  | 
 | #![feature(impl_trait_in_assoc_type)] | 
 |  | 
 | trait Callable { | 
 |     type Output; | 
 |     fn call(x: Self) -> Self::Output; | 
 | } | 
 |  | 
 | trait PlusOne {} | 
 |  | 
 | impl<'a> PlusOne for &'a mut i32 {} | 
 |  | 
 | impl<T: PlusOne> Callable for T { | 
 |     //[nll]~^ ERROR not all trait items implemented | 
 |     //[polonius]~^^ ERROR not all trait items implemented | 
 |  | 
 |     type Output = impl PlusOne; | 
 |     //[nll]~^ ERROR unconstrained opaque type | 
 |     //[polonius]~^^ ERROR unconstrained opaque type | 
 | } | 
 |  | 
 | fn test<'a>(y: &'a mut i32) -> impl PlusOne { | 
 |     <&mut i32 as Callable>::call(y) | 
 |     //[nll]~^ ERROR hidden type for `impl PlusOne` captures lifetime | 
 |     //[polonius]~^^ ERROR hidden type for `impl PlusOne` captures lifetime | 
 | } | 
 |  | 
 | fn main() {} |