public bool ReadIdentifierPositions(Document document, VersionStamp syntaxVersion, string identifier, List<int> positions, CancellationToken cancellationToken) { Contract.ThrowIfTrue(string.IsNullOrWhiteSpace(identifier)); if (!PersistenceEnabled) { return false; } if (!TryGetProjectAndDocumentKey(document, out var key)) { return false; } var persistedVersion = GetIdentifierSetVersion(key); if (!document.CanReusePersistedSyntaxTreeVersion(syntaxVersion, persistedVersion)) { return false; } if (!TryGetUniqueIdentifierId(identifier, out var identifierId)) { return false; } return EsentExceptionWrapper(key, identifierId, positions, ReadIdentifierPositions, cancellationToken); }