/// <summary> /// Checks if 'symbol' is accessible from within named type 'within'. If 'symbol' is accessed off /// of an expression then 'throughTypeOpt' is the type of that expression. This is needed to /// properly do protected access checks. /// </summary> public static bool IsSymbolAccessible( Symbol symbol, NamedTypeSymbol within, NamedTypeSymbol throughTypeOpt = null) { if ((object)symbol == null) { throw new ArgumentNullException(nameof(symbol)); } if ((object)within == null) { throw new ArgumentNullException(nameof(within)); } HashSet <DiagnosticInfo> useSiteDiagnostics = null; return(AccessCheck.IsSymbolAccessible( symbol, within, ref useSiteDiagnostics, throughTypeOpt)); }