| warning: function cannot return without recursing |
| --> $DIR/multiple-defining-usages-in-body.rs:4:1 |
| | |
| LL | fn foo<T: Trait, U: Trait>() -> impl Trait { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing |
| LL | |
| LL | let a: T = foo::<T, U>(); |
| | ------------- recursive call site |
| | |
| = help: a `loop` may express intention better if this is on purpose |
| = note: `#[warn(unconditional_recursion)]` on by default |
| |
| error: concrete type differs from previous defining opaque type use |
| --> $DIR/multiple-defining-usages-in-body.rs:8:16 |
| | |
| LL | let _: T = foo::<U, T>(); |
| | ^^^^^^^^^^^^^ expected `T`, got `U` |
| | |
| note: previous use here |
| --> $DIR/multiple-defining-usages-in-body.rs:6:16 |
| | |
| LL | let a: T = foo::<T, U>(); |
| | ^^^^^^^^^^^^^ |
| |
| error: aborting due to 1 previous error; 1 warning emitted |
| |