Why this code can't be compiled

Not as you said, the following passes

#[test]
fn b() {
    let mut s = "1".to_owned();
    let mut s1 = &mut s;
    let z = {
        let s2 = &mut s1;
        &mut **s2
    };
    println!("{}", z)
}