3 instantiations of SymbolEquivalenceComparer
Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers (3)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (3)
48
public static readonly SymbolEquivalenceComparer IgnoreAssembliesInstance =
new
(assemblyComparer: null, distinguishRefFromOut: false, tupleNamesMustMatch: false, ignoreNullableAnnotations: true, objectAndDynamicCompareEqually: true, arrayAndReadOnlySpanCompareEqually: false);
106
return
new
(SimpleNameAssemblyComparer.Instance, distinguishRefFromOut, tupleNamesMustMatch, ignoreNullableAnnotations, objectAndDynamicCompareEqually, arrayAndReadOnlySpanCompareEqually);
122
return
new
(_assemblyComparer, newDistinguishRefFromOut, newTupleNamesMustMatch, newIgnoreNullableAnnotations, newObjectAndDynamicCompareEqually, newArrayAndReadOnlySpanCompareEqually);
34 references to SymbolEquivalenceComparer
Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers (34)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SemanticEquivalence.cs (1)
136
:
SymbolEquivalenceComparer
.Instance.Equals(info1.Symbol, info2.Symbol);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AliasSymbolKey.cs (1)
72
SymbolEquivalenceComparer
.Instance.Equals(aliasSymbol.Target, target))
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (1)
286
if (!
SymbolEquivalenceComparer
.AreRefKindsEquivalent(
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyReader.cs (3)
329
public
SymbolEquivalenceComparer
Comparer { get; private set; }
377
?
SymbolEquivalenceComparer
.IgnoreAssembliesInstance
378
:
SymbolEquivalenceComparer
.Instance;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (4)
54
private static readonly
SymbolEquivalenceComparer
s_includeNullabilityComparer =
55
SymbolEquivalenceComparer
.Create(distinguishRefFromOut: true, tupleNamesMustMatch: true, ignoreNullableAnnotations: false, objectAndDynamicCompareEqually: false, arrayAndReadOnlySpanCompareEqually: false);
57
private static readonly
SymbolEquivalenceComparer
s_arrayAndReadOnlySpanCompareEqually = s_includeNullabilityComparer.With(arrayAndReadOnlySpanCompareEqually: true);
487
return
SymbolEquivalenceComparer
.Instance.Equals(symbol, newSymbol);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.cs (8)
99
symbols ??= new HashSet<INamedTypeSymbol>(
SymbolEquivalenceComparer
.Instance);
160
return type.GetBaseTypesAndThis().Concat(type.AllInterfaces).Contains(t =>
SymbolEquivalenceComparer
.Instance.Equals(t, baseType));
168
return type.GetBaseTypesAndThis().Contains(t =>
SymbolEquivalenceComparer
.Instance.Equals(t, baseType));
179
if (
SymbolEquivalenceComparer
.Instance.Equals(type, originalBaseType))
185
return baseTypes.Contains(t =>
SymbolEquivalenceComparer
.Instance.Equals(t.OriginalDefinition, originalBaseType));
201
if (
SymbolEquivalenceComparer
.Instance.Equals(currentBaseType.OriginalDefinition, originalBaseType))
216
return type.AllInterfaces.Any(static (t, originalInterfaceType) =>
SymbolEquivalenceComparer
.Instance.Equals(t.OriginalDefinition, originalInterfaceType), originalInterfaceType);
222
return type.AllInterfaces.Contains(t =>
SymbolEquivalenceComparer
.Instance.Equals(t, interfaceType));
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SignatureComparer.cs (4)
17
public static readonly SignatureComparer Instance = new(
SymbolEquivalenceComparer
.Instance);
18
public static readonly SignatureComparer IgnoreAssembliesInstance = new(
SymbolEquivalenceComparer
.IgnoreAssembliesInstance);
20
private readonly
SymbolEquivalenceComparer
_symbolEquivalenceComparer;
22
private SignatureComparer(
SymbolEquivalenceComparer
symbolEquivalenceComparer)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (6)
46
public static readonly
SymbolEquivalenceComparer
Instance = Create(distinguishRefFromOut: false, tupleNamesMustMatch: false, ignoreNullableAnnotations: true, objectAndDynamicCompareEqually: true, arrayAndReadOnlySpanCompareEqually: false);
47
public static readonly
SymbolEquivalenceComparer
TupleNamesMustMatchInstance = Create(distinguishRefFromOut: false, tupleNamesMustMatch: true, ignoreNullableAnnotations: true, objectAndDynamicCompareEqually: true, arrayAndReadOnlySpanCompareEqually: false);
48
public static readonly
SymbolEquivalenceComparer
IgnoreAssembliesInstance = new(assemblyComparer: null, distinguishRefFromOut: false, tupleNamesMustMatch: false, ignoreNullableAnnotations: true, objectAndDynamicCompareEqually: true, arrayAndReadOnlySpanCompareEqually: false);
99
public static
SymbolEquivalenceComparer
Create(
109
public
SymbolEquivalenceComparer
With(
163
/// <remarks>This API is only supported for <see cref="
SymbolEquivalenceComparer
.IgnoreAssembliesInstance"/>.</remarks>
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (1)
19
SymbolEquivalenceComparer
symbolEquivalenceComparer,
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.GetHashCodeVisitor.cs (2)
21
private readonly
SymbolEquivalenceComparer
_symbolEquivalenceComparer;
27
SymbolEquivalenceComparer
symbolEquivalenceComparer,
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (1)
17
SymbolEquivalenceComparer
symbolEqualityComparer,
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (1)
13
internal sealed class SignatureTypeSymbolEquivalenceComparer(
SymbolEquivalenceComparer
symbolEquivalenceComparer) : IEqualityComparer<ITypeSymbol?>
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationArrayTypeSymbol.cs (1)
68
=>
SymbolEquivalenceComparer
.Instance.Equals(this, other);