private bool TryStartAnalyzingDeclaration_NoLock(ISymbol symbol, int declarationIndex, out DeclarationAnalyzerStateData state) { Dictionary <int, DeclarationAnalyzerStateData> declarationDataMap; if (!_pendingDeclarations.TryGetValue(symbol, out declarationDataMap)) { state = null; return(false); } if (declarationDataMap.TryGetValue(declarationIndex, out state)) { if (state.StateKind != StateKind.ReadyToProcess) { state = null; return(false); } } else { state = _declarationAnalyzerStateDataPool.Allocate(); } state.SetStateKind(StateKind.InProcess); Debug.Assert(state.StateKind == StateKind.InProcess); declarationDataMap[declarationIndex] = state; return(true); }
private static DeclarationAnalyzerStateData CreateFullyProcessedInstance() { var instance = new DeclarationAnalyzerStateData(); instance.SetStateKind(StateKind.FullyProcessed); return(instance); }