Transparent upgradeable proxy - why not view function

Hi Team,

Asking this directly to OZ team as this might be a deep level explanation.

Inside transparent upgradable proxy of OZ, we see this:

function admin() external ifAdmin returns (address admin_) {
        admin_ = _getAdmin();
    }

why is this NOT view function ? What was the reasoning behind this? getAdmin does not change state anyways.

Hello @novaknole

The ifAdmin modifier prevents this from being view.

(if the caller is not the admin, then we do the fallback call, which is potentially state changing)