2023-05-25 07:43:41 -05:00
|
|
|
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
|
2023-05-31 12:45:45 -05:00
|
|
|
--> $DIR/multiple-defining-usages-in-body.rs:8:16
|
2023-05-25 07:43:41 -05:00
|
|
|
|
|
2023-05-31 12:45:45 -05:00
|
|
|
LL | let _: T = foo::<U, T>();
|
|
|
|
| ^^^^^^^^^^^^^ expected `T`, got `U`
|
2023-05-25 07:43:41 -05:00
|
|
|
|
|
|
|
|
note: previous use here
|
2023-05-31 12:45:45 -05:00
|
|
|
--> $DIR/multiple-defining-usages-in-body.rs:6:16
|
2023-05-25 07:43:41 -05:00
|
|
|
|
|
2023-05-31 12:45:45 -05:00
|
|
|
LL | let a: T = foo::<T, U>();
|
2023-05-25 07:43:41 -05:00
|
|
|
| ^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
error: aborting due to previous error; 1 warning emitted
|
|
|
|
|