summaryrefslogtreecommitdiffstats
path: root/tests/ui/impl-trait/multiple-defining-usages-in-body.stderr
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/impl-trait/multiple-defining-usages-in-body.stderr')
-rw-r--r--tests/ui/impl-trait/multiple-defining-usages-in-body.stderr26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/ui/impl-trait/multiple-defining-usages-in-body.stderr b/tests/ui/impl-trait/multiple-defining-usages-in-body.stderr
new file mode 100644
index 000000000..06991749b
--- /dev/null
+++ b/tests/ui/impl-trait/multiple-defining-usages-in-body.stderr
@@ -0,0 +1,26 @@
+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:6:16
+ |
+LL | let a: T = foo::<T, U>();
+ | ^^^^^^^^^^^^^ expected `U`, got `T`
+ |
+note: previous use here
+ --> $DIR/multiple-defining-usages-in-body.rs:9:16
+ |
+LL | let _: T = foo::<U, T>();
+ | ^^^^^^^^^^^^^
+
+error: aborting due to previous error; 1 warning emitted
+