public static bool ContainsReference( SyntaxNode node, ISymbol symbol, SemanticModel semanticModel, CancellationToken cancellationToken = default(CancellationToken)) { bool result = false; ContainsLocalOrParameterReferenceWalker walker = null; try { walker = GetInstance( symbol, semanticModel, cancellationToken); walker.Visit(node); result = walker.Result; } finally { if (walker != null) { Free(walker); } } return(result); }
public static bool GetResultAndFree(ContainsLocalOrParameterReferenceWalker walker) { bool result = walker.Result; Free(walker); return(result); }
public static void Free(ContainsLocalOrParameterReferenceWalker walker) { walker.Result = false; walker.Symbol = default; walker.SemanticModel = default; walker.CancellationToken = default; _cachedInstance = walker; }
public static ContainsLocalOrParameterReferenceWalker GetInstance( ISymbol symbol, SemanticModel semanticModel, CancellationToken cancellationToken = default(CancellationToken)) { ContainsLocalOrParameterReferenceWalker walker = _cachedInstance; if (walker != null) { _cachedInstance = null; walker.Symbol = symbol; walker.SemanticModel = semanticModel; walker.CancellationToken = cancellationToken; return(walker); } return(new ContainsLocalOrParameterReferenceWalker(symbol, semanticModel, cancellationToken)); }