Beispiel #1
0
        public void UpdateMemberRange(
            DiagnosticAnalyzer analyzer, Document document, VersionStamp newVersion, int memberId, TextSpan span, MemberRanges oldRanges)
        {
            // only touch and updateMemberRange methods are allowed to update the dictionaries
            var data = _map.GetOrAdd(document.Id, s_createMap);

            lock (data)
            {
                // now update member range map
                UpdateMemberRange_NoLock(data, document, newVersion, memberId, span, oldRanges.TextVersion);

                // save analyzer version information
                Touch_NoLock(data, analyzer, document, newVersion);

                ValidateMemberRangeMap(document, newVersion);
            }
        }
Beispiel #2
0
        public void UpdateMemberRange(
            ProviderId providerId, Document document, VersionStamp newVersion, int memberId, TextSpan span, MemberRanges oldRanges)
        {
            // only touch and updateMemberRange methods are allowed to update the dictionaries
            var data = _map.GetOrAdd(document.Id, s_createMap);

            lock (data)
            {
                // now update member range map
                UpdateMemberRange_NoLock(data, document, newVersion, memberId, span, oldRanges.TextVersion);

                // save provider version information
                Touch_NoLock(data, providerId, document, newVersion);

                ValidateMemberRangeMap(document, newVersion);
            }
        }