Member predicate AccessSpecifier::accessInDirectDerived
Gets the visibility of a field with access specifier this if it is
directly inherited with access specifier baseAccess. For example:
class A { protected int f; };
class B : private A {};
In this example, this is protected, baseAccess is private, and
result is private because the visibility of field f in class B
is private.
This method encodes the rules of N4140 11.2/1, tabulated here:
`this` | `baseAccess` | `result`
(access in base) | (base class specifier) | (access in derived)
----------------------------------------------------------
private | private | N/A
private | protected | N/A
private | public | N/A
protected | private | private
protected | protected | protected
protected | public | protected
public | private | private
public | protected | protected
public | public | public
AccessSpecifier accessInDirectDerived(AccessSpecifier baseAccess)