Issue #2938053 by Wim Leers, alexpott: AccessResult::orIf() fails to retain the reason if both operands are neutral or forbidden, but the first contains a reason and the second one does not