]> git.lizzy.rs Git - rust.git/blob - src/test/ui/lifetimes/issue-79187-2.rs
Auto merge of #89454 - erikdesjardins:perfattrcheck, r=nikomatsakis
[rust.git] / src / test / ui / lifetimes / issue-79187-2.rs
1 trait Foo {}
2
3 impl<F> Foo for F where F: Fn(&i32) -> &i32 {}
4
5 fn take_foo(_: impl Foo) {}
6
7 fn main() {
8     take_foo(|a| a); //~ ERROR mismatched types
9     take_foo(|a: &i32| a); //~ ERROR mismatched types
10     take_foo(|a: &i32| -> &i32 { a }); //~ ERROR mismatched types
11
12     // OK
13     take_foo(identity(|a| a));
14     take_foo(identity(|a: &i32| a));
15     take_foo(identity(|a: &i32| -> &i32 { a }));
16
17     fn identity<F>(t: F) -> F
18     where
19         F: Fn(&i32) -> &i32,
20     {
21         t
22     }
23 }