Sorry, can we reorganize this again? I think i'd find it clearer if we wrote a single match that selected for both the aliasability and the borrow kind together. It's harder for me to be sure all the cases are covered properly the way it is written now.

```
match (cmt.freely_aliasable(bccx.tcx), req_kind) {
    (None, _) => {
        /* Uniquely accessible path -- OK for `&` and `&mut` */
    }
    (Some(mc::AliasableStatic(safety)), ty::ImmBorrow) => {
        // Borrow of an immutable static item:
        match safety {
            mc::InteriorUnsafe => {
                // If the static item contains an Unsafe<T>, it has interior mutability.
                // In such cases, we cannot permit it to be borrowed, because the
                // static item resides in immutable memory and mutating it would
                // cause segfaults.
                report_error();
            }
            mc::InteriorSafe => {
                // Immutable static can be borrowed, no problem.
            }
        }
    }
    (Some(mc::AliasableStaticMut), _) => {
        // Even touching a static mut is considered unsafe. We assume the
        // user knows what they're doing in these cases.
    }
}
```