45 lines
1.8 KiB
C#
45 lines
1.8 KiB
C#
using System.Collections.Generic;
|
|
|
|
namespace Microsoft.CodeAnalysis.CSharp.Symbols;
|
|
|
|
internal sealed class SymbolEqualityComparer : EqualityComparer<Symbol>
|
|
{
|
|
internal static readonly EqualityComparer<Symbol> ConsiderEverything = new SymbolEqualityComparer((TypeCompareKind)0);
|
|
|
|
internal static readonly EqualityComparer<Symbol> IgnoringTupleNamesAndNullability = new SymbolEqualityComparer((TypeCompareKind)12);
|
|
|
|
internal static readonly EqualityComparer<Symbol> IgnoringDynamicTupleNamesAndNullability = new SymbolEqualityComparer((TypeCompareKind)14);
|
|
|
|
internal static readonly EqualityComparer<Symbol> IgnoringNullable = new SymbolEqualityComparer((TypeCompareKind)8);
|
|
|
|
internal static readonly EqualityComparer<Symbol> ObliviousNullableModifierMatchesAny = new SymbolEqualityComparer((TypeCompareKind)16);
|
|
|
|
internal static readonly EqualityComparer<Symbol> AllIgnoreOptions = new SymbolEqualityComparer((TypeCompareKind)63);
|
|
|
|
internal static readonly EqualityComparer<Symbol> AllIgnoreOptionsPlusNullableWithUnknownMatchesAny = new SymbolEqualityComparer((TypeCompareKind)55);
|
|
|
|
internal static readonly EqualityComparer<Symbol> CLRSignature = new SymbolEqualityComparer((TypeCompareKind)62);
|
|
|
|
private readonly TypeCompareKind _comparison;
|
|
|
|
internal static EqualityComparer<Symbol> IncludeNullability => ConsiderEverything;
|
|
|
|
private SymbolEqualityComparer(TypeCompareKind comparison)
|
|
{
|
|
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
|
|
_comparison = comparison;
|
|
}
|
|
|
|
public override int GetHashCode(Symbol obj)
|
|
{
|
|
return obj?.GetHashCode() ?? 0;
|
|
}
|
|
|
|
public override bool Equals(Symbol x, Symbol y)
|
|
{
|
|
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
|
|
return x?.Equals(y, _comparison) ?? ((object)y == null);
|
|
}
|
|
}
|