1 error[E0106]: missing lifetime specifier
2 --> $DIR/issue-26638.rs:1:62
4 LL | fn parse_type(iter: Box<dyn Iterator<Item=&str>+'static>) -> &str { iter.next() }
5 | ------------------------------------ ^ expected named lifetime parameter
7 = help: this function's return type contains a borrowed value, but the signature does not say which one of `iter`'s 2 lifetimes it is borrowed from
8 help: consider introducing a named lifetime parameter
10 LL | fn parse_type<'a>(iter: Box<dyn Iterator<Item=&'a str>+'static>) -> &'a str { iter.next() }
13 error[E0106]: missing lifetime specifier
14 --> $DIR/issue-26638.rs:5:40
16 LL | fn parse_type_2(iter: fn(&u8)->&u8) -> &str { iter() }
17 | ^ expected named lifetime parameter
19 = help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
20 help: consider using the `'static` lifetime
22 LL | fn parse_type_2(iter: fn(&u8)->&u8) -> &'static str { iter() }
25 error[E0106]: missing lifetime specifier
26 --> $DIR/issue-26638.rs:10:22
28 LL | fn parse_type_3() -> &str { unimplemented!() }
29 | ^ expected named lifetime parameter
31 = help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
32 help: consider using the `'static` lifetime
34 LL | fn parse_type_3() -> &'static str { unimplemented!() }
37 error[E0308]: mismatched types
38 --> $DIR/issue-26638.rs:1:69
40 LL | fn parse_type(iter: Box<dyn Iterator<Item=&str>+'static>) -> &str { iter.next() }
41 | ---- ^^^^^^^^^^^ expected `&str`, found enum `Option`
43 | expected `&'static str` because of return type
45 = note: expected reference `&'static str`
46 found enum `Option<&str>`
48 error[E0061]: this function takes 1 argument but 0 arguments were supplied
49 --> $DIR/issue-26638.rs:5:47
51 LL | fn parse_type_2(iter: fn(&u8)->&u8) -> &str { iter() }
52 | ^^^^-- an argument of type `&u8` is missing
54 help: provide the argument
56 LL | fn parse_type_2(iter: fn(&u8)->&u8) -> &str { iter(/* &u8 */) }
59 error[E0308]: mismatched types
60 --> $DIR/issue-26638.rs:5:47
62 LL | fn parse_type_2(iter: fn(&u8)->&u8) -> &str { iter() }
63 | ---- ^^^^^^ expected `str`, found `u8`
65 | expected `&'static str` because of return type
67 = note: expected reference `&'static str`
70 error: aborting due to 6 previous errors
72 Some errors have detailed explanations: E0061, E0106, E0308.
73 For more information about an error, try `rustc --explain E0061`.