6 instantiations of SymbolEquivalenceComparer
Microsoft.CodeAnalysis.CSharp.Features (1)
ConvertToExtension\ExtensionMethodEqualityComparer.cs (1)
24private static readonly SymbolEquivalenceComparer s_equivalenceComparer = new(
Microsoft.CodeAnalysis.Features (2)
EditAndContinue\AbstractEditAndContinueAnalyzer.cs (2)
2535private static readonly SymbolEquivalenceComparer s_runtimeSymbolEqualityComparer = new( 2538private static readonly SymbolEquivalenceComparer s_exactSymbolEqualityComparer = new(
Microsoft.CodeAnalysis.Workspaces (3)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (3)
48public static readonly SymbolEquivalenceComparer IgnoreAssembliesInstance = new(assemblyComparer: null, distinguishRefFromOut: false, tupleNamesMustMatch: false, ignoreNullableAnnotations: true, objectAndDynamicCompareEqually: true, arrayAndReadOnlySpanCompareEqually: false); 106return new(SimpleNameAssemblyComparer.Instance, distinguishRefFromOut, tupleNamesMustMatch, ignoreNullableAnnotations, objectAndDynamicCompareEqually, arrayAndReadOnlySpanCompareEqually); 122return new(_assemblyComparer, newDistinguishRefFromOut, newTupleNamesMustMatch, newIgnoreNullableAnnotations, newObjectAndDynamicCompareEqually, newArrayAndReadOnlySpanCompareEqually);
76 references to SymbolEquivalenceComparer
Microsoft.CodeAnalysis.CSharp.Features (9)
Completion\CompletionProviders\OverrideCompletionProvider.cs (1)
199SymbolEquivalenceComparer.Instance.Equals(GetReturnType(m), returnType));
ConvertLinq\ConvertForEachToLinqQuery\AbstractToMethodConverter.cs (2)
80SymbolEquivalenceComparer.Instance.Equals( 110SymbolEquivalenceComparer.Instance.Equals(
ConvertToExtension\ExtensionMethodEqualityComparer.cs (1)
24private static readonly SymbolEquivalenceComparer s_equivalenceComparer = new(
src\roslyn\src\Analyzers\CSharp\Analyzers\UseCollectionExpression\UseCollectionExpressionHelpers.cs (3)
47private static readonly SymbolEquivalenceComparer s_tupleNamesCanDifferComparer = SymbolEquivalenceComparer.Create( 59private static readonly SymbolEquivalenceComparer s_arrayAndReadOnlySpanCompareEquallyComparer = s_tupleNamesCanDifferComparer.With(arrayAndReadOnlySpanCompareEqually: true);
src\roslyn\src\Analyzers\CSharp\Analyzers\UseImplicitObjectCreation\CSharpUseImplicitObjectCreationDiagnosticAnalyzer.cs (1)
173if (!SymbolEquivalenceComparer.Instance.Equals(leftType, rightType))
src\roslyn\src\Analyzers\CSharp\CodeFixes\InlineDeclaration\CSharpInlineDeclarationCodeFixProvider.cs (1)
363if (!SymbolEquivalenceComparer.Instance.Equals(previousSymbol, updatedSymbolInfo.Symbol))
Microsoft.CodeAnalysis.CSharp.Workspaces (2)
Recommendations\CSharpRecommendationServiceRunner.cs (1)
757return SymbolEquivalenceComparer.Instance.Equals(instanceType, staticType);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Utilities\TypeStyle\CSharpUseImplicitTypeHelper.cs (1)
185return SymbolEquivalenceComparer.TupleNamesMustMatchInstance.Equals(
Microsoft.CodeAnalysis.Features (16)
AddImport\AbstractAddImportCodeRefactoringProvider.cs (1)
258SymbolEquivalenceComparer.IgnoreAssembliesInstance.Equals(namespaceSymbol, semanticModel.GetSymbolInfo(leftSide, cancellationToken).Symbol))
ConvertTupleToStruct\AbstractConvertTupleToStructCodeRefactoringProvider.cs (1)
667=> SymbolEquivalenceComparer.Instance.Equals(tupleType, childType) &&
EditAndContinue\AbstractEditAndContinueAnalyzer.cs (5)
2535private static readonly SymbolEquivalenceComparer s_runtimeSymbolEqualityComparer = new( 2538private static readonly SymbolEquivalenceComparer s_exactSymbolEqualityComparer = new( 4953if (SymbolEquivalenceComparer.Instance.Equals(match.AttributeClass, attribute.AttributeClass)) 4955if (SymbolEquivalenceComparer.Instance.Equals(match.AttributeConstructor, attribute.AttributeConstructor) && 6972SymbolEquivalenceComparer.Instance.Equals(x.Type, y.Type) &&
FindUsages\AbstractFindUsagesService_FindImplementations.cs (1)
97var builder = new HashSet<ISymbol>(SymbolEquivalenceComparer.Instance);
PullMemberUp\MembersPuller.cs (2)
512return overrideMembersSet.Intersect(destination.GetMembers(), SymbolEquivalenceComparer.Instance).Any(); 522if (SymbolEquivalenceComparer.Instance.Equals(selectedMember, implementationOfMember?.OriginalDefinition))
QuickInfo\CommonSemanticQuickInfoProvider.cs (1)
309var symbolSet = new HashSet<ISymbol>(SymbolEquivalenceComparer.Instance);
ReplacePropertyWithMethods\ReplacePropertyWithMethodsCodeRefactoringProvider.cs (2)
117var definitionToBackingField = ImmutableDictionary.CreateBuilder<IPropertySymbol, IFieldSymbol?>(SymbolEquivalenceComparer.Instance); 144var comparer = SymbolEquivalenceComparer.Instance.SignatureTypeEquivalenceComparer;
src\roslyn\src\Analyzers\Core\CodeFixes\GenerateConstructor\AbstractGenerateConstructorService.State.cs (1)
258var result = SymbolEquivalenceComparer.Instance.Equals(ctorParameter.Type, ParameterTypes[i]) &&
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementAbstractClass\ImplementAbstractClassData.cs (1)
301=> GetBaseTypesAndThis(type).Contains(t => SymbolEquivalenceComparer.Instance.Equals(t, baseType));
src\roslyn\src\Analyzers\Core\CodeFixes\ImplementInterface\ImplementInterfaceGenerator.cs (1)
368method1.Parameters.SequenceEqual(method2.Parameters, SymbolEquivalenceComparer.Instance.ParameterEquivalenceComparer);
Microsoft.CodeAnalysis.Workspaces (49)
FindSymbols\FindReferences\DependentTypeFinder.cs (1)
50private static readonly ObjectPool<PooledHashSet<INamedTypeSymbol>> s_symbolSetPool = PooledHashSet<INamedTypeSymbol>.CreatePool(SymbolEquivalenceComparer.Instance);
FindSymbols\FindReferences\Finders\AbstractReferenceFinder.cs (1)
631return symbol1 != null && SymbolEquivalenceComparer.Instance.Equals(
FindSymbols\FindReferences\Finders\AbstractTypeParameterSymbolReferenceFinder.cs (1)
63if (SymbolEquivalenceComparer.Instance.Equals(symbol, boundSymbol))
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)
100if (!SymbolEquivalenceComparer.IgnoreAssembliesInstance.Equals(searchSymbol, symbolToMatch, equivalentTypesWithDifferingAssemblies)) 128Contract.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)]; 383return [.. results.Distinct(SymbolEquivalenceComparer.Instance)];
Shared\Extensions\IFindReferencesResultExtensions.cs (1)
106let aliasLocations = r.Locations.WhereAsArray(loc => SymbolEquivalenceComparer.Instance.Equals(loc.Alias, aliasSymbol))
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\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SemanticEquivalence.cs (1)
136: SymbolEquivalenceComparer.Instance.Equals(info1.Symbol, info2.Symbol);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.AliasSymbolKey.cs (1)
72SymbolEquivalenceComparer.Instance.Equals(aliasSymbol.Target, target))
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (1)
286if (!SymbolEquivalenceComparer.AreRefKindsEquivalent(
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyReader.cs (3)
329public SymbolEquivalenceComparer Comparer { get; private set; } 377? SymbolEquivalenceComparer.IgnoreAssembliesInstance 378: SymbolEquivalenceComparer.Instance;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AbstractSpeculationAnalyzer.cs (4)
52private static readonly SymbolEquivalenceComparer s_includeNullabilityComparer = 53SymbolEquivalenceComparer.Create(distinguishRefFromOut: true, tupleNamesMustMatch: true, ignoreNullableAnnotations: false, objectAndDynamicCompareEqually: false, arrayAndReadOnlySpanCompareEqually: false); 55private static readonly SymbolEquivalenceComparer s_arrayAndReadOnlySpanCompareEqually = s_includeNullabilityComparer.With(arrayAndReadOnlySpanCompareEqually: true); 488return SymbolEquivalenceComparer.Instance.Equals(symbol, newSymbol);
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\ITypeSymbolExtensions.cs (8)
99symbols ??= new HashSet<INamedTypeSymbol>(SymbolEquivalenceComparer.Instance); 160return type.GetBaseTypesAndThis().Concat(type.AllInterfaces).Contains(t => SymbolEquivalenceComparer.Instance.Equals(t, baseType)); 168return type.GetBaseTypesAndThis().Contains(t => SymbolEquivalenceComparer.Instance.Equals(t, baseType)); 179if (SymbolEquivalenceComparer.Instance.Equals(type, originalBaseType)) 185return baseTypes.Contains(t => SymbolEquivalenceComparer.Instance.Equals(t.OriginalDefinition, originalBaseType)); 201if (SymbolEquivalenceComparer.Instance.Equals(currentBaseType.OriginalDefinition, originalBaseType)) 216return type.AllInterfaces.Any(static (t, originalInterfaceType) => SymbolEquivalenceComparer.Instance.Equals(t.OriginalDefinition, originalInterfaceType), originalInterfaceType); 222return type.AllInterfaces.Contains(t => SymbolEquivalenceComparer.Instance.Equals(t, interfaceType));
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SignatureComparer.cs (4)
17public static readonly SignatureComparer Instance = new(SymbolEquivalenceComparer.Instance); 18public static readonly SignatureComparer IgnoreAssembliesInstance = new(SymbolEquivalenceComparer.IgnoreAssembliesInstance); 20private readonly SymbolEquivalenceComparer _symbolEquivalenceComparer; 22private SignatureComparer(SymbolEquivalenceComparer symbolEquivalenceComparer)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (6)
46public static readonly SymbolEquivalenceComparer Instance = Create(distinguishRefFromOut: false, tupleNamesMustMatch: false, ignoreNullableAnnotations: true, objectAndDynamicCompareEqually: true, arrayAndReadOnlySpanCompareEqually: false); 47public static readonly SymbolEquivalenceComparer TupleNamesMustMatchInstance = Create(distinguishRefFromOut: false, tupleNamesMustMatch: true, ignoreNullableAnnotations: true, objectAndDynamicCompareEqually: true, arrayAndReadOnlySpanCompareEqually: false); 48public static readonly SymbolEquivalenceComparer IgnoreAssembliesInstance = new(assemblyComparer: null, distinguishRefFromOut: false, tupleNamesMustMatch: false, ignoreNullableAnnotations: true, objectAndDynamicCompareEqually: true, arrayAndReadOnlySpanCompareEqually: false); 99public static SymbolEquivalenceComparer Create( 109public SymbolEquivalenceComparer With( 163/// <remarks>This API is only supported for <see cref="SymbolEquivalenceComparer.IgnoreAssembliesInstance"/>.</remarks>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.EquivalenceVisitor.cs (1)
19SymbolEquivalenceComparer symbolEquivalenceComparer,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.GetHashCodeVisitor.cs (2)
21private readonly SymbolEquivalenceComparer _symbolEquivalenceComparer; 27SymbolEquivalenceComparer symbolEquivalenceComparer,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (1)
17SymbolEquivalenceComparer symbolEqualityComparer,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (1)
13internal sealed class SignatureTypeSymbolEquivalenceComparer(SymbolEquivalenceComparer symbolEquivalenceComparer) : IEqualityComparer<ITypeSymbol?>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\CodeGeneration\Symbols\CodeGenerationArrayTypeSymbol.cs (1)
68=> SymbolEquivalenceComparer.Instance.Equals(this, other);