Thanks for your reply.
According to this post, being assigned with same statement is one cause of same lifetime.
However according to this, some compiler compromise will also cause two variable share same lifetime.
Here is another piece of code which could compile but are not binded in same line.
let a = 42 as u8; let b = 1 as u8;
let ra = &a; let rb = &b;
let mut fa = FixObj::new(&ra); let mut fb = FixObj::new(&rb);