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

package info (click to toggle)
rustc-web 1.78.0%2Bdfsg1-2~deb12u3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,245,420 kB
  • sloc: xml: 147,985; javascript: 18,022; sh: 11,083; python: 10,265; ansic: 6,172; cpp: 5,023; asm: 4,390; makefile: 4,269
file content (69 lines) | stat: -rw-r--r-- 3,004 bytes parent folder | download | duplicates (7)
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`.