File: hrlt-implied-trait-bounds-guard.stderr

package info (click to toggle)
rustc 1.85.0%2Bdfsg3-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental, forky, sid, trixie
  • size: 893,396 kB
  • sloc: xml: 158,127; python: 35,830; javascript: 19,497; cpp: 19,002; sh: 17,245; ansic: 13,127; asm: 4,376; makefile: 1,051; perl: 29; lisp: 29; ruby: 19; sql: 11
file content (69 lines) | stat: -rw-r--r-- 3,004 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
error[E0623]: lifetime mismatch
  --> $DIR/hrlt-implied-trait-bounds-guard.rs:29:29
   |
LL | fn badboi<'in_, 'out, T>(x: Foo<'in_, 'out, T>, sadness: &'in_ T) -> &'out T {
   |                             ^^^^^^^^^^^^^^^^^^                       -------
   |                             |
   |                             this parameter and the return type are declared with different lifetimes...
   |                             ...but data from `x` is returned here

error[E0623]: lifetime mismatch
  --> $DIR/hrlt-implied-trait-bounds-guard.rs:35:30
   |
LL | fn badboi2<'in_, 'out, T>(x: Foo<'in_, 'out, T>, sadness: &'in_ T) {
   |                              ^^^^^^^^^^^^^^^^^^
   |                              |
   |                              this type is declared with multiple lifetimes...
   |                              ...but data with one lifetime flows into the other here

error[E0623]: lifetime mismatch
  --> $DIR/hrlt-implied-trait-bounds-guard.rs:41:30
   |
LL | fn badboi3<'in_, 'out, T>(a: Foo<'in_, 'out, (&'in_ T, &'out T)>, sadness: &'in_ T) {
   |                              ^^^^^^^^^^^^^^^^^-------^^-------^^
   |                              |                |
   |                              |                these two types are declared with different lifetimes...
   |                              ...but data from `a` flows into `a` here

error: lifetime may not live long enough
  --> $DIR/hrlt-implied-trait-bounds-guard.rs:31:5
   |
LL | fn badboi<'in_, 'out, T>(x: Foo<'in_, 'out, T>, sadness: &'in_ T) -> &'out T {
   |           ----  ---- lifetime `'out` defined here
   |           |
   |           lifetime `'in_` defined here
LL |
LL |     sadness.cast()
   |     ^^^^^^^^^^^^^^ function was supposed to return data with lifetime `'out` but it is returning data with lifetime `'in_`
   |
   = help: consider adding the following bound: `'in_: 'out`

error: lifetime may not live long enough
  --> $DIR/hrlt-implied-trait-bounds-guard.rs:37:12
   |
LL | fn badboi2<'in_, 'out, T>(x: Foo<'in_, 'out, T>, sadness: &'in_ T) {
   |            ----  ---- lifetime `'out` defined here
   |            |
   |            lifetime `'in_` defined here
LL |
LL |     let _: &'out T = sadness.cast();
   |            ^^^^^^^ type annotation requires that `'in_` must outlive `'out`
   |
   = help: consider adding the following bound: `'in_: 'out`

error: lifetime may not live long enough
  --> $DIR/hrlt-implied-trait-bounds-guard.rs:43:12
   |
LL | fn badboi3<'in_, 'out, T>(a: Foo<'in_, 'out, (&'in_ T, &'out T)>, sadness: &'in_ T) {
   |            ----  ---- lifetime `'out` defined here
   |            |
   |            lifetime `'in_` defined here
LL |
LL |     let _: &'out T = sadness.cast();
   |            ^^^^^^^ type annotation requires that `'in_` must outlive `'out`
   |
   = help: consider adding the following bound: `'in_: 'out`

error: aborting due to 6 previous errors

For more information about this error, try `rustc --explain E0623`.