about summary refs log tree commit diff
path: root/tests/ui/lifetimes/issue-17728.stderr
blob: eb4381ea99eef1ff2e98fa61724d8968e11a426e (plain)
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
error[E0308]: `match` arms have incompatible types
  --> $DIR/issue-17728.rs:108:14
   |
LL | /     match to_parse {
LL | |         "w" | "west" => RoomDirection::West,
LL | |         "e" | "east" => RoomDirection::East,
LL | |         "n" | "north" => RoomDirection::North,
...  |
LL | |         "down" => RoomDirection::Down,
   | |                   ------------------- this and all prior arms are found to be of type `RoomDirection`
LL | |         _ => None
   | |              ^^^^ expected `RoomDirection`, found `Option<_>`
LL | |     }
   | |_____- `match` arms have incompatible types
   |
   = note: expected enum `RoomDirection`
              found enum `Option<_>`

error: lifetime may not live long enough
  --> $DIR/issue-17728.rs:15:28
   |
LL |     fn attemptTraverse(&self, room: &Room, directionStr: &str) -> Result<&Room, &str> {
   |                        -            - let's call the lifetime of this reference `'1`
   |                        |
   |                        let's call the lifetime of this reference `'2`
...
LL |             Some(entry) => Ok(entry),
   |                            ^^^^^^^^^ method was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
   |
help: consider introducing a named lifetime parameter
   |
LL |     fn attemptTraverse<'a>(&self, room: &'a Room, directionStr: &str) -> Result<&'a Room, &'a str> {
   |                       ++++               ++                                      ++        ++

error: aborting due to 2 previous errors

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