public override byte[] GetChecksum() { if (_checksum == null) { _checksum = _sourceText.GetChecksum().ToArray(); } return(_checksum); }
private static void VerifyChecksum(SourceText text, ImmutableArray<byte> expectedChecksum) { var actualChecksum = text.GetChecksum(); Assert.Equal<byte>(expectedChecksum, actualChecksum); }
/// <summary> /// Constructs a <see cref="EmbeddedText"/> for embedding the given <see cref="SourceText"/>. /// </summary> /// <param name="filePath">The file path (pre-normalization) to use in the PDB.</param> /// <param name="text">The source text to embed.</param> /// <exception cref="ArgumentNullException"> /// <paramref name="filePath"/> is null. /// <paramref name="text"/> is null. /// </exception> /// <exception cref="ArgumentException"> /// <paramref name="filePath"/> empty. /// <paramref name="text"/> cannot be embedded (see <see cref="SourceText.CanBeEmbedded"/>). /// </exception> public static EmbeddedText FromSource(string filePath, SourceText text) { ValidateFilePath(filePath); if (text == null) { throw new ArgumentNullException(nameof(text)); } if (!text.CanBeEmbedded) { throw new ArgumentException(CodeAnalysisResources.SourceTextCannotBeEmbedded, nameof(text)); } if (!text.PrecomputedEmbeddedTextBlob.IsDefault) { return new EmbeddedText(filePath, text.GetChecksum(), text.ChecksumAlgorithm, text.PrecomputedEmbeddedTextBlob); } return new EmbeddedText(filePath, text.GetChecksum(), text.ChecksumAlgorithm, CreateBlob(text)); }