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