]> git.lizzy.rs Git - rust.git/blob - src/test/ui/impl-trait/bound-normalization-fail.stderr
Rollup merge of #92917 - jackh726:issue-91762-2, r=nikomatsakis
[rust.git] / src / test / ui / impl-trait / bound-normalization-fail.stderr
1 error[E0271]: type mismatch resolving `<Foo<()> as FooLike>::Output == <T as impl_trait::Trait>::Assoc`
2   --> $DIR/bound-normalization-fail.rs:26:9
3    |
4 LL |         Foo(())
5    |         ^^^^^^^ type mismatch resolving `<Foo<()> as FooLike>::Output == <T as impl_trait::Trait>::Assoc`
6    |
7 note: expected this to be `()`
8   --> $DIR/bound-normalization-fail.rs:14:19
9    |
10 LL |     type Output = T;
11    |                   ^
12    = note:    expected unit type `()`
13            found associated type `<T as impl_trait::Trait>::Assoc`
14 help: consider constraining the associated type `<T as impl_trait::Trait>::Assoc` to `()`
15    |
16 LL |     fn foo_fail<T: Trait<Assoc = ()>>() -> impl FooLike<Output = T::Assoc> {
17    |                         ++++++++++++
18
19 error[E0760]: `impl Trait` return type cannot contain a projection or `Self` that references lifetimes from a parent scope
20   --> $DIR/bound-normalization-fail.rs:41:41
21    |
22 LL |     fn foo2_fail<'a, T: Trait<'a>>() -> impl FooLike<Output = T::Assoc> {
23    |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
24
25 error[E0271]: type mismatch resolving `<Foo<()> as FooLike>::Output == <T as lifetimes::Trait<'static>>::Assoc`
26   --> $DIR/bound-normalization-fail.rs:43:9
27    |
28 LL |         Foo(())
29    |         ^^^^^^^ type mismatch resolving `<Foo<()> as FooLike>::Output == <T as lifetimes::Trait<'static>>::Assoc`
30    |
31 note: expected this to be `()`
32   --> $DIR/bound-normalization-fail.rs:14:19
33    |
34 LL |     type Output = T;
35    |                   ^
36    = note:    expected unit type `()`
37            found associated type `<T as lifetimes::Trait<'static>>::Assoc`
38 help: consider constraining the associated type `<T as lifetimes::Trait<'static>>::Assoc` to `()`
39    |
40 LL |     fn foo2_fail<'a, T: Trait<'a, Assoc = ()>>() -> impl FooLike<Output = T::Assoc> {
41    |                                 ++++++++++++
42
43 error: aborting due to 3 previous errors
44
45 Some errors have detailed explanations: E0271, E0760.
46 For more information about an error, try `rustc --explain E0271`.