warning: function cannot return without recursing
  --> $DIR/hrtb-perfect-forwarding.rs:16:1
   |
LL | / fn no_hrtb<'b, T>(mut t: T)
LL | | where
LL | |     T: Bar<&'b isize>,
LL | | {
...  |
LL | |     no_hrtb(&mut t);
   | |     --------------- recursive call site
LL | | }
   | |_^ cannot return without recursing
   |
   = note: `#[warn(unconditional_recursion)]` on by default
   = help: a `loop` may express intention better if this is on purpose

warning: function cannot return without recursing
  --> $DIR/hrtb-perfect-forwarding.rs:25:1
   |
LL | / fn bar_hrtb<T>(mut t: T)
LL | | where
LL | |     T: for<'b> Bar<&'b isize>,
LL | | {
...  |
LL | |     bar_hrtb(&mut t);
   | |     ---------------- recursive call site
LL | | }
   | |_^ cannot return without recursing
   |
   = help: a `loop` may express intention better if this is on purpose

warning: function cannot return without recursing
  --> $DIR/hrtb-perfect-forwarding.rs:35:1
   |
LL | / fn foo_hrtb_bar_not<'b, T>(mut t: T)
LL | | where
LL | |     T: for<'a> Foo<&'a isize> + Bar<&'b isize>,
LL | | {
...  |
LL | |     foo_hrtb_bar_not(&mut t);
   | |     ------------------------ recursive call site
LL | |
LL | |
LL | | }
   | |_^ cannot return without recursing
   |
   = help: a `loop` may express intention better if this is on purpose

error: higher-ranked subtype error
  --> $DIR/hrtb-perfect-forwarding.rs:43:5
   |
LL |     foo_hrtb_bar_not(&mut t);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^

warning: function cannot return without recursing
  --> $DIR/hrtb-perfect-forwarding.rs:48:1
   |
LL | / fn foo_hrtb_bar_hrtb<T>(mut t: T)
LL | | where
LL | |     T: for<'a> Foo<&'a isize> + for<'b> Bar<&'b isize>,
LL | | {
LL | |     // OK -- now we have `T : for<'b> Bar<&'b isize>`.
LL | |     foo_hrtb_bar_hrtb(&mut t);
   | |     ------------------------- recursive call site
LL | | }
   | |_^ cannot return without recursing
   |
   = help: a `loop` may express intention better if this is on purpose

error: aborting due to previous error; 4 warnings emitted

