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);
            }