28 instantiations of CompatDifference
Microsoft.DotNet.ApiCompatibility (28)
CompatDifference.cs (1)
62new(MetadataInformation.DefaultLeft,
Rules\AssemblyIdentityMustMatch.cs (3)
42differences.Add(new CompatDifference( 61differences.Add(new CompatDifference( 176new(left,
Rules\AttributesMustMatch.cs (3)
42DifferenceType.Changed => new CompatDifference( 49DifferenceType.Added => new CompatDifference( 56DifferenceType.Removed => new CompatDifference(
Rules\CannotAddAbstractMember.cs (1)
36differences.Add(new CompatDifference(
Rules\CannotAddMemberToInterface.cs (1)
39differences.Add(new CompatDifference(
Rules\CannotAddOrRemoveVirtualKeyword.cs (4)
38differences.Add(new CompatDifference( 62differences.Add(new CompatDifference( 80differences.Add(new CompatDifference( 95differences.Add(new CompatDifference(
Rules\CannotChangeGenericConstraints.cs (2)
108differences.Add(new CompatDifference( 130differences.Add(new CompatDifference(
Rules\CannotChangeParameterName.cs (1)
40differences.Add(new CompatDifference(
Rules\CannotChangeVisibility.cs (2)
75differences.Add(new CompatDifference(leftMetadata, 84differences.Add(new CompatDifference(leftMetadata,
Rules\CannotRemoveBaseTypeOrInterface.cs (2)
62differences.Add(new CompatDifference( 86differences.Add(new CompatDifference(
Rules\CannotSealType.cs (2)
33differences.Add(new CompatDifference( 43differences.Add(new CompatDifference(
Rules\EnumsMustMatch.cs (2)
44differences.Add(new CompatDifference( 76differences.Add(new CompatDifference(
Rules\MembersMustExist.cs (4)
37differences.Add(new CompatDifference( 47differences.Add(new CompatDifference( 66differences.Add(new CompatDifference( 79differences.Add(new CompatDifference(
88 references to CompatDifference
Microsoft.DotNet.ApiCompatibility (88)
ApiComparer.cs (10)
39public IEnumerable<CompatDifference> GetDifferences(IAssemblySymbol left, 47public IEnumerable<CompatDifference> GetDifferences(ElementContainer<IAssemblySymbol> left, 61public IEnumerable<CompatDifference> GetDifferences(IEnumerable<ElementContainer<IAssemblySymbol>> left, 75public IEnumerable<CompatDifference> GetDifferences(IEnumerable<IAssemblySymbol> left, 94public IEnumerable<CompatDifference> GetDifferences(ElementContainer<IAssemblySymbol> left, 112public IEnumerable<CompatDifference> GetDifferences(IEnumerable<ElementContainer<IAssemblySymbol>> left, 129private static List<CompatDifference> SortCompatDifferencesByInputMetadata(ILookup<MetadataInformation, CompatDifference> compatDifferencesLookup, 133List<CompatDifference> sortedCompatDifferences = []; 141foreach (IGrouping<MetadataInformation, CompatDifference> compatDifferenceGroup in compatDifferencesLookup)
CompatDifference.cs (8)
18public readonly struct CompatDifference(MetadataInformation left, MetadataInformation right, string diagnosticId, string message, DifferenceType type, string? memberId) : IDiagnostic, IEquatable<CompatDifference> 61public static CompatDifference CreateWithDefaultMetadata(string diagnosticId, string message, DifferenceType type, string? memberId) => 76public bool Equals(CompatDifference other) => 84public override bool Equals(object? obj) => obj is CompatDifference difference && Equals(difference); 103public static bool operator ==(CompatDifference left, CompatDifference right) => left.Equals(right); 106public static bool operator !=(CompatDifference left, CompatDifference right) => !(left == right);
DifferenceVisitor.cs (4)
9/// A visitor that traverses the mapping tree and stores found differences as <see cref="CompatDifference" /> items. 13private readonly HashSet<CompatDifference> _compatDifferences = []; 16public IEnumerable<CompatDifference> CompatDifferences => _compatDifferences; 99foreach (CompatDifference item in mapper.GetDifferences())
IApiComparer.cs (6)
25IEnumerable<CompatDifference> GetDifferences(IAssemblySymbol left, IAssemblySymbol right); 34IEnumerable<CompatDifference> GetDifferences(ElementContainer<IAssemblySymbol> left, ElementContainer<IAssemblySymbol> right); 43IEnumerable<CompatDifference> GetDifferences(ElementContainer<IAssemblySymbol> left, IReadOnlyList<ElementContainer<IAssemblySymbol>> right); 52IEnumerable<CompatDifference> GetDifferences(IEnumerable<IAssemblySymbol> left, IEnumerable<IAssemblySymbol> right); 61IEnumerable<CompatDifference> GetDifferences(IEnumerable<ElementContainer<IAssemblySymbol>> left, IEnumerable<ElementContainer<IAssemblySymbol>> right); 70IEnumerable<CompatDifference> GetDifferences(IEnumerable<ElementContainer<IAssemblySymbol>> left, IReadOnlyList<IEnumerable<ElementContainer<IAssemblySymbol>>> right);
IDifferenceVisitor.cs (2)
14/// A list of <see cref="CompatDifference"/> items which are associated with <see cref="MetadataInformation" />. 16IEnumerable<CompatDifference> CompatDifferences { get; }
Mapping\ElementMapper.cs (2)
13private IEnumerable<CompatDifference>? _differences; 75public IEnumerable<CompatDifference> GetDifferences()
Mapping\IElementMapper.cs (2)
46/// One list of <see cref="CompatDifference"/> per the number of right elements that the <see cref="IElementMapper{T}"/> contains.</returns> 47IEnumerable<CompatDifference> GetDifferences();
MetadataInformation.cs (1)
8/// and different list of <see cref="CompatDifference"/>.
Rules\AssemblyIdentityMustMatch.cs (2)
33private void RunOnAssemblySymbol(IAssemblySymbol? left, IAssemblySymbol? right, MetadataInformation leftMetadata, MetadataInformation rightMetadata, bool singleAssembly, IList<CompatDifference> differences) 175private static CompatDifference CreateIdentityDifference(MetadataInformation left, MetadataInformation right, string format, string leftProperty, string rightProperty, string leftName, string rightName, AssemblyIdentity identity) =>
Rules\AttributesMustMatch.cs (5)
26private void AddDifference(IList<CompatDifference> differences, 40CompatDifference difference = dt switch 75IList<CompatDifference> differences) 174IList<CompatDifference> differences) 214IList<CompatDifference> differences)
Rules\CannotAddAbstractMember.cs (1)
27private void RunOnMemberMapperAction(ISymbol? left, ISymbol? right, ITypeSymbol leftContainingType, ITypeSymbol rightContainingType, MetadataInformation leftMetadata, MetadataInformation rightMetadata, IList<CompatDifference> differences)
Rules\CannotAddMemberToInterface.cs (1)
23private void RunOnMemberSymbol(ISymbol? left, ISymbol? right, MetadataInformation leftMetadata, MetadataInformation rightMetadata, IList<CompatDifference> differences)
Rules\CannotAddOrRemoveVirtualKeyword.cs (1)
25private void RunOnMemberSymbol(ISymbol? left, ISymbol? right, ITypeSymbol leftContainingType, ITypeSymbol rightContainingType, MetadataInformation leftMetadata, MetadataInformation rightMetadata, IList<CompatDifference> differences)
Rules\CannotChangeGenericConstraints.cs (3)
33IList<CompatDifference> differences) 56IList<CompatDifference> differences) 78IList<CompatDifference> differences)
Rules\CannotChangeParameterName.cs (1)
24IList<CompatDifference> differences)
Rules\CannotChangeVisibility.cs (3)
61IList<CompatDifference> differences) 97IList<CompatDifference> differences) => RunOnSymbol(left, right, leftMetadata, rightMetadata, differences); 105IList<CompatDifference> differences) => RunOnSymbol(left, right, leftMetadata, rightMetadata, differences);
Rules\CannotRemoveBaseTypeOrInterface.cs (3)
23private void RunOnTypeSymbol(ITypeSymbol? left, ITypeSymbol? right, MetadataInformation leftMetadata, MetadataInformation rightMetadata, IList<CompatDifference> differences) 43private void ValidateBaseTypeNotRemoved(ITypeSymbol left, ITypeSymbol right, string leftName, string rightName, MetadataInformation leftMetadata, MetadataInformation rightMetadata, IList<CompatDifference> differences) 71private void ValidateInterfaceNotRemoved(ITypeSymbol left, ITypeSymbol right, string leftName, string rightName, MetadataInformation leftMetadata, MetadataInformation rightMetadata, IList<CompatDifference> differences)
Rules\CannotSealType.cs (1)
23private void RunOnTypeSymbol(ITypeSymbol? left, ITypeSymbol? right, MetadataInformation leftMetadata, MetadataInformation rightMetadata, IList<CompatDifference> differences)
Rules\EnumsMustMatch.cs (1)
21private void RunOnTypeSymbol(ITypeSymbol? left, ITypeSymbol? right, MetadataInformation leftMetadata, MetadataInformation rightMetadata, IList<CompatDifference> differences)
Rules\IRuleRegistrationContext.cs (4)
18void RegisterOnAssemblySymbolAction(Action<IAssemblySymbol?, IAssemblySymbol?, MetadataInformation, MetadataInformation, bool, IList<CompatDifference>> action); 24void RegisterOnTypeSymbolAction(Action<ITypeSymbol?, ITypeSymbol?, MetadataInformation, MetadataInformation, IList<CompatDifference>> action); 30void RegisterOnMemberSymbolAction(Action<ISymbol?, ISymbol?, MetadataInformation, MetadataInformation, IList<CompatDifference>> action); 38void RegisterOnMemberSymbolAction(Action<ISymbol?, ISymbol?, ITypeSymbol, ITypeSymbol, MetadataInformation, MetadataInformation, IList<CompatDifference>> action);
Rules\IRuleRunner.cs (2)
26/// One list of <see cref="CompatDifference"/> per the number of right elements that the <see cref="IElementMapper{T}"/> contains. 28IEnumerable<CompatDifference> Run<T>(IElementMapper<T> mapper);
Rules\IRuleRunnerContext.cs (3)
13void RunOnAssemblySymbolActions(IAssemblySymbol? left, IAssemblySymbol? right, MetadataInformation leftMetadata, MetadataInformation rightMetadata, bool isSingleAssembly, IList<CompatDifference> differences); 15void RunOnTypeSymbolActions(ITypeSymbol? left, ITypeSymbol? right, MetadataInformation leftMetadata, MetadataInformation rightMetadata, IList<CompatDifference> differences); 17void RunOnMemberSymbolActions(ISymbol? left, ISymbol? right, ITypeSymbol leftContainingType, ITypeSymbol rightContainingType, MetadataInformation leftMetadata, MetadataInformation rightMetadata, IList<CompatDifference> differences);
Rules\MembersMustExist.cs (3)
12/// If the member doesn't exist on Right but it does on Left, it adds a <see cref="CompatDifference"/> to the list of differences. 33private void RunOnTypeSymbol(ITypeSymbol? left, ITypeSymbol? right, MetadataInformation leftMetadata, MetadataInformation rightMetadata, IList<CompatDifference> differences) 60private void RunOnMemberSymbol(ISymbol? left, ISymbol? right, ITypeSymbol leftContainingType, ITypeSymbol rightContainingType, MetadataInformation leftMetadata, MetadataInformation rightMetadata, IList<CompatDifference> differences)
Rules\RuleContext.cs (15)
13private readonly List<Action<IAssemblySymbol?, IAssemblySymbol?, MetadataInformation, MetadataInformation, bool, IList<CompatDifference>>> _onAssemblySymbolActions = []; 14private readonly List<Action<ITypeSymbol?, ITypeSymbol?, MetadataInformation, MetadataInformation, IList<CompatDifference>>> _onTypeSymbolActions = []; 15private readonly List<Action<ISymbol?, ISymbol?, MetadataInformation, MetadataInformation, IList<CompatDifference>>> _onMemberSymbolActions = []; 16private readonly List<Action<ISymbol?, ISymbol?, ITypeSymbol, ITypeSymbol, MetadataInformation, MetadataInformation, IList<CompatDifference>>> _onMemberSymbolWithContainingTypeActions = []; 19public void RegisterOnAssemblySymbolAction(Action<IAssemblySymbol?, IAssemblySymbol?, MetadataInformation, MetadataInformation, bool, IList<CompatDifference>> action) 25public void RegisterOnTypeSymbolAction(Action<ITypeSymbol?, ITypeSymbol?, MetadataInformation, MetadataInformation, IList<CompatDifference>> action) 31public void RegisterOnMemberSymbolAction(Action<ISymbol?, ISymbol?, MetadataInformation, MetadataInformation, IList<CompatDifference>> action) 37public void RegisterOnMemberSymbolAction(Action<ISymbol?, ISymbol?, ITypeSymbol, ITypeSymbol, MetadataInformation, MetadataInformation, IList<CompatDifference>> action) 43public void RunOnAssemblySymbolActions(IAssemblySymbol? left, IAssemblySymbol? right, MetadataInformation leftMetadata, MetadataInformation rightMetadata, bool isSingleAssembly, IList<CompatDifference> differences) 45foreach (Action<IAssemblySymbol?, IAssemblySymbol?, MetadataInformation, MetadataInformation, bool, IList<CompatDifference>> action in _onAssemblySymbolActions) 52public void RunOnTypeSymbolActions(ITypeSymbol? left, ITypeSymbol? right, MetadataInformation leftMetadata, MetadataInformation rightMetadata, IList<CompatDifference> differences) 54foreach (Action<ITypeSymbol?, ITypeSymbol?, MetadataInformation, MetadataInformation, IList<CompatDifference>> action in _onTypeSymbolActions) 61public void RunOnMemberSymbolActions(ISymbol? left, ISymbol? right, ITypeSymbol leftContainingType, ITypeSymbol rightContainingType, MetadataInformation leftMetadata, MetadataInformation rightMetadata, IList<CompatDifference> differences) 63foreach (Action<ISymbol?, ISymbol?, MetadataInformation, MetadataInformation, IList<CompatDifference>> action in _onMemberSymbolActions) 68foreach (Action<ISymbol?, ISymbol?, ITypeSymbol, ITypeSymbol, MetadataInformation, MetadataInformation, IList<CompatDifference>> action in _onMemberSymbolWithContainingTypeActions)
Rules\RuleRunner.cs (2)
22public IEnumerable<CompatDifference> Run<T>(IElementMapper<T> mapper) 24List<CompatDifference> differences = [];
Runner\ApiCompatRunner.cs (2)
58IEnumerable<CompatDifference> differences = apiComparer.GetDifferences(leftContainerList, rightContainersList); 66foreach (CompatDifference difference in differenceGroup)