3 instantiations of SymbolEquivalenceComparer
Microsoft.CodeAnalysis.Workspaces (3)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\SymbolEquivalenceComparer.cs (3)
46public static readonly SymbolEquivalenceComparer IgnoreAssembliesInstance = new(assemblyComparer: null, distinguishRefFromOut: false, tupleNamesMustMatch: false, ignoreNullableAnnotations: true, objectAndDynamicCompareEqually: true, arrayAndReadOnlySpanCompareEqually: false); 104return new(SimpleNameAssemblyComparer.Instance, distinguishRefFromOut, tupleNamesMustMatch, ignoreNullableAnnotations, objectAndDynamicCompareEqually, arrayAndReadOnlySpanCompareEqually); 120return new(_assemblyComparer, newDistinguishRefFromOut, newTupleNamesMustMatch, newIgnoreNullableAnnotations, newObjectAndDynamicCompareEqually, newArrayAndReadOnlySpanCompareEqually);
48 references to SymbolEquivalenceComparer
Microsoft.CodeAnalysis.Workspaces (48)
FindSymbols\FindReferences\DependentTypeFinder.cs (1)
49private static readonly ObjectPool<PooledHashSet<INamedTypeSymbol>> s_symbolSetPool = PooledHashSet<INamedTypeSymbol>.CreatePool(SymbolEquivalenceComparer.Instance);
FindSymbols\FindReferences\Finders\AbstractReferenceFinder.cs (1)
592return symbol1 != null && SymbolEquivalenceComparer.Instance.Equals(
FindSymbols\FindReferences\MetadataUnifyingEquivalenceComparer.cs (2)
35return SymbolEquivalenceComparer.Instance.Equals(x, y); 46return SymbolEquivalenceComparer.Instance.GetHashCode(obj);
FindSymbols\SymbolFinder_Callers.cs (1)
47r => SymbolEquivalenceComparer.Instance.Equals(symbol, r.Definition)).FirstOrDefault();
FindSymbols\SymbolFinder_Helpers.cs (2)
106if (!SymbolEquivalenceComparer.IgnoreAssembliesInstance.Equals(searchSymbol, symbolToMatch, equivalentTypesWithDifferingAssemblies)) 134Contract.ThrowIfFalse(equivalentTypesWithDifferingAssemblies.All(kvp => !SymbolEquivalenceComparer.Instance.Equals(kvp.Key.ContainingAssembly, kvp.Value.ContainingAssembly)));
FindSymbols\SymbolFinder_Hierarchy.cs (3)
176SymbolEquivalenceComparer.Instance.Equals(implementation.OriginalDefinition, symbol.OriginalDefinition)) 186return builder.Distinct(SymbolEquivalenceComparer.Instance).ToImmutableArray(); 383return results.Distinct(SymbolEquivalenceComparer.Instance).ToImmutableArray();
Shared\Extensions\IFindReferencesResultExtensions.cs (1)
106let aliasLocations = r.Locations.Where(loc => SymbolEquivalenceComparer.Instance.Equals(loc.Alias, aliasSymbol)).ToImmutableArray()
Shared\Extensions\ITypeSymbolExtensions.cs (2)
88SymbolEquivalenceComparer.Instance.Equals(i.OriginalDefinition, originalInterfaceType)); 146where SymbolEquivalenceComparer.Instance.Equals(explicitInterfaceMethod, constructedInterfaceMember)
Shared\Extensions\SemanticModelExtensions.cs (1)
56var comparer = SymbolEquivalenceComparer.Instance.ParameterEquivalenceComparer;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ITypeSymbolExtensions.cs (8)
103symbols ??= new HashSet<INamedTypeSymbol>(SymbolEquivalenceComparer.Instance); 164return type.GetBaseTypesAndThis().Concat(type.AllInterfaces).Contains(t => SymbolEquivalenceComparer.Instance.Equals(t, baseType)); 172return type.GetBaseTypesAndThis().Contains(t => SymbolEquivalenceComparer.Instance.Equals(t, baseType)); 183if (SymbolEquivalenceComparer.Instance.Equals(type, originalBaseType)) 189return baseTypes.Contains(t => SymbolEquivalenceComparer.Instance.Equals(t.OriginalDefinition, originalBaseType)); 205if (SymbolEquivalenceComparer.Instance.Equals(currentBaseType.OriginalDefinition, originalBaseType)) 220return type.AllInterfaces.Any(static (t, originalInterfaceType) => SymbolEquivalenceComparer.Instance.Equals(t.OriginalDefinition, originalInterfaceType), originalInterfaceType); 226return type.AllInterfaces.Contains(t => SymbolEquivalenceComparer.Instance.Equals(t, interfaceType));
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SemanticEquivalence.cs (1)
137: SymbolEquivalenceComparer.Instance.Equals(info1.Symbol, info2.Symbol);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AliasSymbolKey.cs (1)
72SymbolEquivalenceComparer.Instance.Equals(aliasSymbol.Target, target))
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (1)
284if (!SymbolEquivalenceComparer.AreRefKindsEquivalent(
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyReader.cs (3)
329public SymbolEquivalenceComparer Comparer { get; private set; } 377? SymbolEquivalenceComparer.IgnoreAssembliesInstance 378: SymbolEquivalenceComparer.Instance;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (4)
54private static readonly SymbolEquivalenceComparer s_includeNullabilityComparer = 55SymbolEquivalenceComparer.Create(distinguishRefFromOut: true, tupleNamesMustMatch: true, ignoreNullableAnnotations: false, objectAndDynamicCompareEqually: false, arrayAndReadOnlySpanCompareEqually: false); 57private static readonly SymbolEquivalenceComparer s_arrayAndReadOnlySpanCompareEqually = s_includeNullabilityComparer.With(arrayAndReadOnlySpanCompareEqually: true); 487return SymbolEquivalenceComparer.Instance.Equals(symbol, newSymbol);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\SignatureComparer.cs (4)
15public static readonly SignatureComparer Instance = new(SymbolEquivalenceComparer.Instance); 16public static readonly SignatureComparer IgnoreAssembliesInstance = new(SymbolEquivalenceComparer.IgnoreAssembliesInstance); 18private readonly SymbolEquivalenceComparer _symbolEquivalenceComparer; 20private SignatureComparer(SymbolEquivalenceComparer symbolEquivalenceComparer)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\SymbolEquivalenceComparer.cs (6)
44public static readonly SymbolEquivalenceComparer Instance = Create(distinguishRefFromOut: false, tupleNamesMustMatch: false, ignoreNullableAnnotations: true, objectAndDynamicCompareEqually: true, arrayAndReadOnlySpanCompareEqually: false); 45public static readonly SymbolEquivalenceComparer TupleNamesMustMatchInstance = Create(distinguishRefFromOut: false, tupleNamesMustMatch: true, ignoreNullableAnnotations: true, objectAndDynamicCompareEqually: true, arrayAndReadOnlySpanCompareEqually: false); 46public static readonly SymbolEquivalenceComparer IgnoreAssembliesInstance = new(assemblyComparer: null, distinguishRefFromOut: false, tupleNamesMustMatch: false, ignoreNullableAnnotations: true, objectAndDynamicCompareEqually: true, arrayAndReadOnlySpanCompareEqually: false); 97public static SymbolEquivalenceComparer Create( 107public SymbolEquivalenceComparer With( 161/// <remarks>This API is only supported for <see cref="SymbolEquivalenceComparer.IgnoreAssembliesInstance"/>.</remarks>
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\SymbolEquivalenceComparer.EquivalenceVisitor.cs (1)
18SymbolEquivalenceComparer symbolEquivalenceComparer,
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\SymbolEquivalenceComparer.GetHashCodeVisitor.cs (2)
18private readonly SymbolEquivalenceComparer _symbolEquivalenceComparer; 24SymbolEquivalenceComparer symbolEquivalenceComparer,
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (1)
15SymbolEquivalenceComparer symbolEqualityComparer,
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (1)
11internal sealed class SignatureTypeSymbolEquivalenceComparer(SymbolEquivalenceComparer symbolEquivalenceComparer) : IEqualityComparer<ITypeSymbol?>
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationArrayTypeSymbol.cs (1)
68=> SymbolEquivalenceComparer.Instance.Equals(this, other);