From stackoverflow question
example:
fn test<'a>(s: &'a String) -> &'a str {
let slice = s.as_slice();
slice.as_slice()
}
error:
rpn_calc.rs:2:5: 2:17 error: borrowed value does not live long enough
rpn_calc.rs:2 s.as_slice().as_slice()
^~~~~~~~~~~~
rpn_calc.rs:1:39: 3:2 note: reference must be valid for the lifetime 'a as defined on the block at 1:38...
rpn_calc.rs:1 fn test<'a>(s: &'a String) -> &'a str {
rpn_calc.rs:2 s.as_slice().as_slice()
rpn_calc.rs:3 }
rpn_calc.rs:1:39: 3:2 note: ...but borrowed value is only valid for the block at 1:38
rpn_calc.rs:1 fn test<'a>(s: &'a String) -> &'a str {
rpn_calc.rs:2 s.as_slice().as_slice()
rpn_calc.rs:3 }
error: aborting due to previous error