Ejemplo n.º 1
0
        public void Find(
            TextDocumentState state,
            HashSet <Checksum> searchingChecksumsLeft,
            Dictionary <Checksum, object> result,
            CancellationToken cancellationToken)
        {
            cancellationToken.ThrowIfCancellationRequested();

            // verify input
            DocumentStateChecksums stateChecksum;

            Contract.ThrowIfFalse(state.TryGetStateChecksums(out stateChecksum));
            Contract.ThrowIfFalse(this == stateChecksum);

            if (searchingChecksumsLeft.Remove(Checksum))
            {
                result[Checksum] = this;
            }

            if (searchingChecksumsLeft.Remove(Info))
            {
                result[Info] = new SerializedDocumentInfo(state.Id, state.Name, state.Folders, state.GetSourceCodeKind(), state.FilePath, state.IsGenerated());
            }

            if (searchingChecksumsLeft.Remove(Text))
            {
                // why I can't get text synchronously when async lazy support synchronous callback?
                result[Text] = state;
            }
        }