]> git.lizzy.rs Git - rust.git/blob - src/test/ui/rfc-2093-infer-outlives/regions-struct-not-wf.stderr
Rollup merge of #105955 - Nilstrieb:no-trivial-opt-wrappers-we-have-field-accesses...
[rust.git] / src / test / ui / rfc-2093-infer-outlives / regions-struct-not-wf.stderr
1 error[E0309]: the parameter type `T` may not live long enough
2   --> $DIR/regions-struct-not-wf.rs:13:16
3    |
4 LL |     type Out = &'a T;
5    |                ^^^^^ ...so that the reference type `&'a T` does not outlive the data it points at
6    |
7 help: consider adding an explicit lifetime bound...
8    |
9 LL | impl<'a, T: 'a> Trait<'a, T> for usize {
10    |           ++++
11
12 error[E0309]: the parameter type `T` may not live long enough
13   --> $DIR/regions-struct-not-wf.rs:21:16
14    |
15 LL |     type Out = RefOk<'a, T>;
16    |                ^^^^^^^^^^^^ ...so that the type `T` will meet its required lifetime bounds...
17    |
18 note: ...that is required by this bound
19   --> $DIR/regions-struct-not-wf.rs:16:20
20    |
21 LL | struct RefOk<'a, T:'a> {
22    |                    ^^
23 help: consider adding an explicit lifetime bound...
24    |
25 LL | impl<'a, T: 'a> Trait<'a, T> for u32 {
26    |           ++++
27
28 error[E0491]: in type `&'a &'b T`, reference has a longer lifetime than the data it references
29   --> $DIR/regions-struct-not-wf.rs:25:16
30    |
31 LL |     type Out = &'a &'b T;
32    |                ^^^^^^^^^
33    |
34 note: the pointer is valid for the lifetime `'a` as defined here
35   --> $DIR/regions-struct-not-wf.rs:24:6
36    |
37 LL | impl<'a, 'b, T> Trait1<'a, 'b, T> for u32 {
38    |      ^^
39 note: but the referenced data is only valid for the lifetime `'b` as defined here
40   --> $DIR/regions-struct-not-wf.rs:24:10
41    |
42 LL | impl<'a, 'b, T> Trait1<'a, 'b, T> for u32 {
43    |          ^^
44
45 error: aborting due to 3 previous errors
46
47 Some errors have detailed explanations: E0309, E0491.
48 For more information about an error, try `rustc --explain E0309`.