From 8090216dbe595f83f533345054f7b1dd6c5e17c4 Mon Sep 17 00:00:00 2001 From: "N. Taylor Mullen" Date: Mon, 3 Jul 2017 11:12:29 -0700 Subject: [PATCH] Make RequiredAttributeDescriptor IEquatable. - All the other descriptors are already `IEquatable` this should be as well. - Moved the required attribute descriptor comparer from Legacy => Language. It wasn't in the Legacy folder to begin with so this made sense given that it's already internal. #1495 --- .../RequiredAttributeDescriptor.cs | 17 ++++++++++++++++- .../RequiredAttributeDescriptorComparer.cs | 2 +- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/Microsoft.AspNetCore.Razor.Language/RequiredAttributeDescriptor.cs b/src/Microsoft.AspNetCore.Razor.Language/RequiredAttributeDescriptor.cs index 6da95bfd4d..6d9e6fcf7b 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/RequiredAttributeDescriptor.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/RequiredAttributeDescriptor.cs @@ -9,7 +9,7 @@ using System.Linq; namespace Microsoft.AspNetCore.Razor.Language { [DebuggerDisplay("{DisplayName,nq}")] - public abstract class RequiredAttributeDescriptor + public abstract class RequiredAttributeDescriptor : IEquatable { public string Name { get; protected set; } @@ -32,6 +32,21 @@ namespace Microsoft.AspNetCore.Razor.Language return errors; } } + + public bool Equals(RequiredAttributeDescriptor other) + { + return RequiredAttributeDescriptorComparer.Default.Equals(this, other); + } + + public override bool Equals(object obj) + { + return Equals(obj as RequiredAttributeDescriptor); + } + + public override int GetHashCode() + { + return RequiredAttributeDescriptorComparer.Default.GetHashCode(this); + } /// /// Acceptable comparison modes. diff --git a/src/Microsoft.AspNetCore.Razor.Language/RequiredAttributeDescriptorComparer.cs b/src/Microsoft.AspNetCore.Razor.Language/RequiredAttributeDescriptorComparer.cs index 5778c908fa..78186cfb49 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/RequiredAttributeDescriptorComparer.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/RequiredAttributeDescriptorComparer.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; using System.Linq; using Microsoft.Extensions.Internal; -namespace Microsoft.AspNetCore.Razor.Language.Legacy +namespace Microsoft.AspNetCore.Razor.Language { /// /// An used to check equality between