fn f<'a: 'b, 'b>(x: &'a i32, mut y: &'b i32) -> &'b i32 {
y = x;
y
}
let long_var = 1;
let long_lifetime = &long_var;
{
let short_var = 2;
let short_lifetime = &short_var;
// it works, why?
let x = f(short_lifetime, long_lifetime);
};
There is limitation 'a: 'b
in the function f
, so why let x = f(short_lifetime, long_lifetime);
works?