protected sealed override bool IsAccessibleCore(int position, ISymbol symbol) { return this.IsAccessible(position, symbol.EnsureCSharpSymbolOrNull<ISymbol, Symbol>("symbol")); }
/// <summary> /// Determines if the symbol is accessible from the specified location. /// </summary> /// <param name="position">A character position used to identify a declaration scope and /// accessibility. This character position must be within the FullSpan of the Root syntax /// node in this SemanticModel. /// </param> /// <param name="symbol">The symbol that we are checking to see if it accessible.</param> /// <returns> /// True if "symbol is accessible, false otherwise.</returns> /// <remarks> /// This method only checks accessibility from the point of view of the accessibility /// modifiers on symbol and its containing types. Even if true is returned, the given symbol /// may not be able to be referenced for other reasons, such as name hiding. /// </remarks> public new bool IsAccessible(int position, ISymbol symbol) { position = CheckAndAdjustPosition(position); if ((object)symbol == null) { throw new ArgumentNullException(nameof(symbol)); } var cssymbol = symbol.EnsureCSharpSymbolOrNull<ISymbol, Symbol>("symbol"); var binder = this.GetEnclosingBinder(position); if (binder != null) { HashSet<DiagnosticInfo> useSiteDiagnostics = null; return binder.IsAccessible(cssymbol, ref useSiteDiagnostics, null); } return false; }