// run-pass
#![allow(dead_code)]

// pretty-expanded FIXME #23616

struct Rec {
    f: Box<isize>,
}

struct Outer {
    f: Inner
}

struct Inner {
    g: Innermost
}

struct Innermost {
    h: Box<isize>,
}

fn borrow(_v: &isize) {}

fn box_mut(v: &mut Box<isize>) {
    borrow(&**v); // OK: &mut -> &imm
}

fn box_mut_rec(v: &mut Rec) {
    borrow(&*v.f); // OK: &mut -> &imm
}

fn box_mut_recs(v: &mut Outer) {
    borrow(&*v.f.g.h); // OK: &mut -> &imm
}

fn box_imm(v: &Box<isize>) {
    borrow(&**v); // OK
}

fn box_imm_rec(v: &Rec) {
    borrow(&*v.f); // OK
}

fn box_imm_recs(v: &Outer) {
    borrow(&*v.f.g.h); // OK
}

pub fn main() {
}
