private bool ExceptionIsLessVisible(MemberWithAccess preconditionContainer, IClass exception) { Contract.Requires(preconditionContainer != null); Contract.Requires(exception != null); return !AccessVisibilityChecker.MemberWith(exception.GetAccessRights()) .IsAccessibleFrom(preconditionContainer.GetCombinedAccessRights()); }
private bool ExceptionIsLessVisible(MemberWithAccess preconditionContainer, IClass exception) { Contract.Requires(preconditionContainer != null); Contract.Requires(exception != null); return(!AccessVisibilityChecker.MemberWith(exception.GetAccessRights()) .IsAccessibleFrom(preconditionContainer.GetCombinedAccessRights())); }
public bool IsAccessibleFrom(MemberWithAccess contractHolder) { Contract.Requires(contractHolder != null); Contract.Assert(_referencedMember != null); // If type visibilities are the same, lets ignore them! if (_referencedMember.TypeAccessRights == contractHolder.TypeAccessRights) { return(MemberWith(_referencedMember.MemberAccessRights) .IsAccessibleFrom(contractHolder.MemberAccessRights)); } var referencedMemberCombinedVisibility = _referencedMember.GetCombinedAccessRights(); var contractHolderCombinedVisibility = contractHolder.GetCombinedAccessRights(); return(MemberWith(referencedMemberCombinedVisibility).IsAccessibleFrom(contractHolderCombinedVisibility)); }