diff --git a/src/Microsoft.AspNet.Razor.Test.Sources/CaseSensitiveTagHelperDescriptorComparer.cs b/src/Microsoft.AspNet.Razor.Test.Sources/CaseSensitiveTagHelperDescriptorComparer.cs index 11593e545c..b462ddb152 100644 --- a/src/Microsoft.AspNet.Razor.Test.Sources/CaseSensitiveTagHelperDescriptorComparer.cs +++ b/src/Microsoft.AspNet.Razor.Test.Sources/CaseSensitiveTagHelperDescriptorComparer.cs @@ -49,10 +49,10 @@ namespace Microsoft.AspNet.Razor.Test.Internal public override int GetHashCode(TagHelperDescriptor descriptor) { - var hashCodeCombiner = HashCodeCombiner.Start() - .Add(base.GetHashCode(descriptor)) - .Add(descriptor.TagName, StringComparer.Ordinal) - .Add(descriptor.Prefix, StringComparer.Ordinal); + var hashCodeCombiner = HashCodeCombiner.Start(); + hashCodeCombiner.Add(base.GetHashCode(descriptor)); + hashCodeCombiner.Add(descriptor.TagName, StringComparer.Ordinal); + hashCodeCombiner.Add(descriptor.Prefix, StringComparer.Ordinal); if (descriptor.DesignTimeDescriptor != null) { diff --git a/src/Microsoft.AspNet.Razor.Test.Sources/TagHelperAttributeDescriptorComparer.cs b/src/Microsoft.AspNet.Razor.Test.Sources/TagHelperAttributeDescriptorComparer.cs index 3be8b7c23e..92fa2dc4d3 100644 --- a/src/Microsoft.AspNet.Razor.Test.Sources/TagHelperAttributeDescriptorComparer.cs +++ b/src/Microsoft.AspNet.Razor.Test.Sources/TagHelperAttributeDescriptorComparer.cs @@ -38,15 +38,16 @@ namespace Microsoft.AspNet.Razor.Test.Internal public int GetHashCode(TagHelperAttributeDescriptor descriptor) { - return HashCodeCombiner.Start() - .Add(descriptor.IsIndexer) - .Add(descriptor.Name, StringComparer.Ordinal) - .Add(descriptor.PropertyName, StringComparer.Ordinal) - .Add(descriptor.TypeName, StringComparer.Ordinal) - .Add(descriptor.IsStringProperty) - .Add(TagHelperAttributeDesignTimeDescriptorComparer.Default.GetHashCode( - descriptor.DesignTimeDescriptor)) - .CombinedHash; + var hashCodeCombiner = HashCodeCombiner.Start(); + hashCodeCombiner.Add(descriptor.IsIndexer); + hashCodeCombiner.Add(descriptor.Name, StringComparer.Ordinal); + hashCodeCombiner.Add(descriptor.PropertyName, StringComparer.Ordinal); + hashCodeCombiner.Add(descriptor.TypeName, StringComparer.Ordinal); + hashCodeCombiner.Add(descriptor.IsStringProperty); + hashCodeCombiner.Add(TagHelperAttributeDesignTimeDescriptorComparer.Default.GetHashCode( + descriptor.DesignTimeDescriptor)); + + return hashCodeCombiner; } } } \ No newline at end of file diff --git a/src/Microsoft.AspNet.Razor.Test.Sources/TagHelperAttributeDesignTimeDescriptorComparer.cs b/src/Microsoft.AspNet.Razor.Test.Sources/TagHelperAttributeDesignTimeDescriptorComparer.cs index bad86ef822..60aeafe3e8 100644 --- a/src/Microsoft.AspNet.Razor.Test.Sources/TagHelperAttributeDesignTimeDescriptorComparer.cs +++ b/src/Microsoft.AspNet.Razor.Test.Sources/TagHelperAttributeDesignTimeDescriptorComparer.cs @@ -35,11 +35,11 @@ namespace Microsoft.AspNet.Razor.Test.Internal public int GetHashCode(TagHelperAttributeDesignTimeDescriptor descriptor) { - return HashCodeCombiner - .Start() - .Add(descriptor.Summary, StringComparer.Ordinal) - .Add(descriptor.Remarks, StringComparer.Ordinal) - .CombinedHash; + var hashCodeCombiner = HashCodeCombiner.Start(); + hashCodeCombiner.Add(descriptor.Summary, StringComparer.Ordinal); + hashCodeCombiner.Add(descriptor.Remarks, StringComparer.Ordinal); + + return hashCodeCombiner; } } } diff --git a/src/Microsoft.AspNet.Razor.Test.Sources/TagHelperDesignTimeDescriptorComparer.cs b/src/Microsoft.AspNet.Razor.Test.Sources/TagHelperDesignTimeDescriptorComparer.cs index 3de87a6ead..a24d02b2b0 100644 --- a/src/Microsoft.AspNet.Razor.Test.Sources/TagHelperDesignTimeDescriptorComparer.cs +++ b/src/Microsoft.AspNet.Razor.Test.Sources/TagHelperDesignTimeDescriptorComparer.cs @@ -33,12 +33,13 @@ namespace Microsoft.AspNet.Razor.Test.Internal public int GetHashCode(TagHelperDesignTimeDescriptor descriptor) { - return HashCodeCombiner - .Start() - .Add(descriptor.Summary, StringComparer.Ordinal) - .Add(descriptor.Remarks, StringComparer.Ordinal) - .Add(descriptor.OutputElementHint, StringComparer.Ordinal) - .CombinedHash; + var hashCodeCombiner = HashCodeCombiner.Start(); + + hashCodeCombiner.Add(descriptor.Summary, StringComparer.Ordinal); + hashCodeCombiner.Add(descriptor.Remarks, StringComparer.Ordinal); + hashCodeCombiner.Add(descriptor.OutputElementHint, StringComparer.Ordinal); + + return hashCodeCombiner; } } } diff --git a/src/Microsoft.AspNet.Razor/Chunks/Generators/AttributeBlockChunkGenerator.cs b/src/Microsoft.AspNet.Razor/Chunks/Generators/AttributeBlockChunkGenerator.cs index 5ee0e242e3..8d13f17649 100644 --- a/src/Microsoft.AspNet.Razor/Chunks/Generators/AttributeBlockChunkGenerator.cs +++ b/src/Microsoft.AspNet.Razor/Chunks/Generators/AttributeBlockChunkGenerator.cs @@ -54,11 +54,12 @@ namespace Microsoft.AspNet.Razor.Chunks.Generators public override int GetHashCode() { - return HashCodeCombiner.Start() - .Add(Name, StringComparer.Ordinal) - .Add(Prefix) - .Add(Suffix) - .CombinedHash; + var hashCodeCombiner = HashCodeCombiner.Start(); + hashCodeCombiner.Add(Name, StringComparer.Ordinal); + hashCodeCombiner.Add(Prefix); + hashCodeCombiner.Add(Suffix); + + return hashCodeCombiner; } } } diff --git a/src/Microsoft.AspNet.Razor/Chunks/Generators/LiteralAttributeChunkGenerator.cs b/src/Microsoft.AspNet.Razor/Chunks/Generators/LiteralAttributeChunkGenerator.cs index 343b25dd51..58973e9145 100644 --- a/src/Microsoft.AspNet.Razor/Chunks/Generators/LiteralAttributeChunkGenerator.cs +++ b/src/Microsoft.AspNet.Razor/Chunks/Generators/LiteralAttributeChunkGenerator.cs @@ -71,11 +71,13 @@ namespace Microsoft.AspNet.Razor.Chunks.Generators public override int GetHashCode() { - return HashCodeCombiner.Start() - .Add(Prefix) - .Add(Value) - .Add(ValueGenerator) - .CombinedHash; + var hashCodeCombiner = HashCodeCombiner.Start(); + + hashCodeCombiner.Add(Prefix); + hashCodeCombiner.Add(Value); + hashCodeCombiner.Add(ValueGenerator); + + return hashCodeCombiner; } } } diff --git a/src/Microsoft.AspNet.Razor/CodeGenerators/GeneratedClassContext.cs b/src/Microsoft.AspNet.Razor/CodeGenerators/GeneratedClassContext.cs index bbd4418786..934406161c 100644 --- a/src/Microsoft.AspNet.Razor/CodeGenerators/GeneratedClassContext.cs +++ b/src/Microsoft.AspNet.Razor/CodeGenerators/GeneratedClassContext.cs @@ -177,13 +177,15 @@ namespace Microsoft.AspNet.Razor.CodeGenerators public override int GetHashCode() { // Hash code should include only immutable properties. - return HashCodeCombiner.Start() - .Add(WriteMethodName, StringComparer.Ordinal) - .Add(WriteLiteralMethodName, StringComparer.Ordinal) - .Add(WriteToMethodName, StringComparer.Ordinal) - .Add(WriteLiteralToMethodName, StringComparer.Ordinal) - .Add(ExecuteMethodName, StringComparer.Ordinal) - .CombinedHash; + var hashCodeCombiner = HashCodeCombiner.Start(); + + hashCodeCombiner.Add(WriteMethodName, StringComparer.Ordinal); + hashCodeCombiner.Add(WriteLiteralMethodName, StringComparer.Ordinal); + hashCodeCombiner.Add(WriteToMethodName, StringComparer.Ordinal); + hashCodeCombiner.Add(WriteLiteralToMethodName, StringComparer.Ordinal); + hashCodeCombiner.Add(ExecuteMethodName, StringComparer.Ordinal); + + return hashCodeCombiner; } public static bool operator ==(GeneratedClassContext left, GeneratedClassContext right) diff --git a/src/Microsoft.AspNet.Razor/CodeGenerators/LineMapping.cs b/src/Microsoft.AspNet.Razor/CodeGenerators/LineMapping.cs index 120c1fca12..4c23c29444 100644 --- a/src/Microsoft.AspNet.Razor/CodeGenerators/LineMapping.cs +++ b/src/Microsoft.AspNet.Razor/CodeGenerators/LineMapping.cs @@ -32,10 +32,11 @@ namespace Microsoft.AspNet.Razor.CodeGenerators public override int GetHashCode() { - return HashCodeCombiner.Start() - .Add(DocumentLocation) - .Add(GeneratedLocation) - .CombinedHash; + var hashCodeCombiner = HashCodeCombiner.Start(); + hashCodeCombiner.Add(DocumentLocation); + hashCodeCombiner.Add(GeneratedLocation); + + return hashCodeCombiner; } public static bool operator ==(LineMapping left, LineMapping right) diff --git a/src/Microsoft.AspNet.Razor/CodeGenerators/MappingLocation.cs b/src/Microsoft.AspNet.Razor/CodeGenerators/MappingLocation.cs index a8c6a561d8..8f5152b44d 100644 --- a/src/Microsoft.AspNet.Razor/CodeGenerators/MappingLocation.cs +++ b/src/Microsoft.AspNet.Razor/CodeGenerators/MappingLocation.cs @@ -44,12 +44,13 @@ namespace Microsoft.AspNet.Razor.CodeGenerators public override int GetHashCode() { - return HashCodeCombiner.Start() - .Add(AbsoluteIndex) - .Add(ContentLength) - .Add(LineIndex) - .Add(CharacterIndex) - .CombinedHash; + var hashCodeCombiner = HashCodeCombiner.Start(); + hashCodeCombiner.Add(AbsoluteIndex); + hashCodeCombiner.Add(ContentLength); + hashCodeCombiner.Add(LineIndex); + hashCodeCombiner.Add(CharacterIndex); + + return hashCodeCombiner; } public override string ToString() diff --git a/src/Microsoft.AspNet.Razor/Editor/AutoCompleteEditHandler.cs b/src/Microsoft.AspNet.Razor/Editor/AutoCompleteEditHandler.cs index 252f43db8c..20269c14bd 100644 --- a/src/Microsoft.AspNet.Razor/Editor/AutoCompleteEditHandler.cs +++ b/src/Microsoft.AspNet.Razor/Editor/AutoCompleteEditHandler.cs @@ -65,10 +65,11 @@ namespace Microsoft.AspNet.Razor.Parser.SyntaxTree public override int GetHashCode() { // Hash code should include only immutable properties but Equals also checks the type. - return HashCodeCombiner.Start() - .Add(TypeHashCode) - .Add(AutoCompleteAtEndOfSpan) - .CombinedHash; + var hashCodeCombiner = HashCodeCombiner.Start(); + hashCodeCombiner.Add(TypeHashCode); + hashCodeCombiner.Add(AutoCompleteAtEndOfSpan); + + return hashCodeCombiner.CombinedHash; } } } diff --git a/src/Microsoft.AspNet.Razor/Editor/ImplicitExpressionEditHandler.cs b/src/Microsoft.AspNet.Razor/Editor/ImplicitExpressionEditHandler.cs index d979ee0329..056d4d6dc7 100644 --- a/src/Microsoft.AspNet.Razor/Editor/ImplicitExpressionEditHandler.cs +++ b/src/Microsoft.AspNet.Razor/Editor/ImplicitExpressionEditHandler.cs @@ -60,10 +60,11 @@ namespace Microsoft.AspNet.Razor.Editor public override int GetHashCode() { // Hash code should include only immutable properties and base has none. - return HashCodeCombiner.Start() - .Add(Keywords) - .Add(AcceptTrailingDot) - .CombinedHash; + var hashCodeCombiner = HashCodeCombiner.Start(); + hashCodeCombiner.Add(Keywords); + hashCodeCombiner.Add(AcceptTrailingDot); + + return hashCodeCombiner; } protected override PartialParseResult CanAcceptChange(Span target, TextChange normalizedChange) diff --git a/src/Microsoft.AspNet.Razor/Parser/SyntaxTree/Block.cs b/src/Microsoft.AspNet.Razor/Parser/SyntaxTree/Block.cs index 894dd246b1..b7f62e693e 100644 --- a/src/Microsoft.AspNet.Razor/Parser/SyntaxTree/Block.cs +++ b/src/Microsoft.AspNet.Razor/Parser/SyntaxTree/Block.cs @@ -129,11 +129,12 @@ namespace Microsoft.AspNet.Razor.Parser.SyntaxTree public override int GetHashCode() { - return HashCodeCombiner.Start() - .Add(Type) - .Add(ChunkGenerator) - .Add(Children) - .CombinedHash; + var hashCodeCombiner = HashCodeCombiner.Start(); + hashCodeCombiner.Add(Type); + hashCodeCombiner.Add(ChunkGenerator); + hashCodeCombiner.Add(Children); + + return hashCodeCombiner; } public IEnumerable Flatten() @@ -222,13 +223,14 @@ namespace Microsoft.AspNet.Razor.Parser.SyntaxTree public override int GetEquivalenceHash() { - var combiner = HashCodeCombiner.Start().Add(Type); + var hashCodeCombiner = HashCodeCombiner.Start(); + hashCodeCombiner.Add(Type); foreach (var child in Children) { - combiner.Add(child.GetEquivalenceHash()); + hashCodeCombiner.Add(child.GetEquivalenceHash()); } - return combiner.CombinedHash; + return hashCodeCombiner.CombinedHash; } } } diff --git a/src/Microsoft.AspNet.Razor/Parser/TagHelpers/TagHelperBlock.cs b/src/Microsoft.AspNet.Razor/Parser/TagHelpers/TagHelperBlock.cs index 3ec14979a4..1ce96ee82d 100644 --- a/src/Microsoft.AspNet.Razor/Parser/TagHelpers/TagHelperBlock.cs +++ b/src/Microsoft.AspNet.Razor/Parser/TagHelpers/TagHelperBlock.cs @@ -127,11 +127,12 @@ namespace Microsoft.AspNet.Razor.Parser.TagHelpers /// public override int GetHashCode() { - return HashCodeCombiner.Start() - .Add(base.GetHashCode()) - .Add(TagName, StringComparer.OrdinalIgnoreCase) - .Add(Attributes) - .CombinedHash; + var hashCodeCombiner = HashCodeCombiner.Start(); + hashCodeCombiner.Add(base.GetHashCode()); + hashCodeCombiner.Add(TagName, StringComparer.OrdinalIgnoreCase); + hashCodeCombiner.Add(Attributes); + + return hashCodeCombiner; } } } \ No newline at end of file diff --git a/src/Microsoft.AspNet.Razor/RazorError.cs b/src/Microsoft.AspNet.Razor/RazorError.cs index 97987509fc..f361805f45 100644 --- a/src/Microsoft.AspNet.Razor/RazorError.cs +++ b/src/Microsoft.AspNet.Razor/RazorError.cs @@ -62,10 +62,11 @@ namespace Microsoft.AspNet.Razor public override int GetHashCode() { - return HashCodeCombiner.Start() - .Add(Message, StringComparer.Ordinal) - .Add(Location) - .CombinedHash; + var hashCodeCombiner = HashCodeCombiner.Start(); + hashCodeCombiner.Add(Message, StringComparer.Ordinal); + hashCodeCombiner.Add(Location); + + return hashCodeCombiner; } public bool Equals(RazorError other) diff --git a/src/Microsoft.AspNet.Razor/SourceLocation.cs b/src/Microsoft.AspNet.Razor/SourceLocation.cs index 14b775d500..b18df9610e 100644 --- a/src/Microsoft.AspNet.Razor/SourceLocation.cs +++ b/src/Microsoft.AspNet.Razor/SourceLocation.cs @@ -96,10 +96,11 @@ namespace Microsoft.AspNet.Razor /// public override int GetHashCode() { - return HashCodeCombiner.Start() - .Add(FilePath, StringComparer.Ordinal) - .Add(AbsoluteIndex) - .CombinedHash; + var hashCodeCombiner = HashCodeCombiner.Start(); + hashCodeCombiner.Add(FilePath, StringComparer.Ordinal); + hashCodeCombiner.Add(AbsoluteIndex); + + return hashCodeCombiner; } /// diff --git a/src/Microsoft.AspNet.Razor/TagHelpers/TagHelperDescriptorComparer.cs b/src/Microsoft.AspNet.Razor/TagHelpers/TagHelperDescriptorComparer.cs index e7c4fb4599..0f2ae63a34 100644 --- a/src/Microsoft.AspNet.Razor/TagHelpers/TagHelperDescriptorComparer.cs +++ b/src/Microsoft.AspNet.Razor/TagHelpers/TagHelperDescriptorComparer.cs @@ -68,11 +68,11 @@ namespace Microsoft.AspNet.Razor.TagHelpers throw new ArgumentNullException(nameof(descriptor)); } - var hashCodeCombiner = HashCodeCombiner.Start() - .Add(descriptor.TypeName, StringComparer.Ordinal) - .Add(descriptor.TagName, StringComparer.OrdinalIgnoreCase) - .Add(descriptor.AssemblyName, StringComparer.Ordinal) - .Add(descriptor.TagStructure); + var hashCodeCombiner = HashCodeCombiner.Start(); + hashCodeCombiner.Add(descriptor.TypeName, StringComparer.Ordinal); + hashCodeCombiner.Add(descriptor.TagName, StringComparer.OrdinalIgnoreCase); + hashCodeCombiner.Add(descriptor.AssemblyName, StringComparer.Ordinal); + hashCodeCombiner.Add(descriptor.TagStructure); var attributes = descriptor.RequiredAttributes.OrderBy( attribute => attribute, diff --git a/src/Microsoft.AspNet.Razor/TagHelpers/TypeBasedTagHelperDescriptorComparer.cs b/src/Microsoft.AspNet.Razor/TagHelpers/TypeBasedTagHelperDescriptorComparer.cs index d3251f3fe4..cb6016ece3 100644 --- a/src/Microsoft.AspNet.Razor/TagHelpers/TypeBasedTagHelperDescriptorComparer.cs +++ b/src/Microsoft.AspNet.Razor/TagHelpers/TypeBasedTagHelperDescriptorComparer.cs @@ -54,10 +54,11 @@ namespace Microsoft.AspNet.Razor.TagHelpers throw new ArgumentNullException(nameof(descriptor)); } - return HashCodeCombiner.Start() - .Add(descriptor.AssemblyName, StringComparer.Ordinal) - .Add(descriptor.TypeName, StringComparer.Ordinal) - .CombinedHash; + var hashCodeCombiner = HashCodeCombiner.Start(); + hashCodeCombiner.Add(descriptor.AssemblyName, StringComparer.Ordinal); + hashCodeCombiner.Add(descriptor.TypeName, StringComparer.Ordinal); + + return hashCodeCombiner; } } } diff --git a/src/Microsoft.AspNet.Razor/Text/LocationTagged.cs b/src/Microsoft.AspNet.Razor/Text/LocationTagged.cs index efc811a042..8cbd64292d 100644 --- a/src/Microsoft.AspNet.Razor/Text/LocationTagged.cs +++ b/src/Microsoft.AspNet.Razor/Text/LocationTagged.cs @@ -55,10 +55,11 @@ namespace Microsoft.AspNet.Razor.Text public override int GetHashCode() { - return HashCodeCombiner.Start() - .Add(Location) - .Add(Value) - .CombinedHash; + var hashCodeCombiner = HashCodeCombiner.Start(); + hashCodeCombiner.Add(Location); + hashCodeCombiner.Add(Value); + + return hashCodeCombiner.CombinedHash; } public override string ToString() diff --git a/src/Microsoft.AspNet.Razor/Text/TextChange.cs b/src/Microsoft.AspNet.Razor/Text/TextChange.cs index 39229a175b..2671c9c003 100644 --- a/src/Microsoft.AspNet.Razor/Text/TextChange.cs +++ b/src/Microsoft.AspNet.Razor/Text/TextChange.cs @@ -146,14 +146,15 @@ namespace Microsoft.AspNet.Razor.Text public override int GetHashCode() { - return HashCodeCombiner.Start() - .Add(OldPosition) - .Add(NewPosition) - .Add(OldLength) - .Add(NewLength) - .Add(OldBuffer) - .Add(NewBuffer) - .CombinedHash; + var hashCodeCombiner = HashCodeCombiner.Start(); + hashCodeCombiner.Add(OldPosition); + hashCodeCombiner.Add(NewPosition); + hashCodeCombiner.Add(OldLength); + hashCodeCombiner.Add(NewLength); + hashCodeCombiner.Add(OldBuffer); + hashCodeCombiner.Add(NewBuffer); + + return hashCodeCombiner; } public string ApplyChange(string content, int changeOffset) diff --git a/src/Microsoft.AspNet.Razor/Tokenizer/Symbols/SymbolBase.cs b/src/Microsoft.AspNet.Razor/Tokenizer/Symbols/SymbolBase.cs index 8490804d52..04b713b86c 100644 --- a/src/Microsoft.AspNet.Razor/Tokenizer/Symbols/SymbolBase.cs +++ b/src/Microsoft.AspNet.Razor/Tokenizer/Symbols/SymbolBase.cs @@ -50,10 +50,11 @@ namespace Microsoft.AspNet.Razor.Tokenizer.Symbols public override int GetHashCode() { // Hash code should include only immutable properties. - return HashCodeCombiner.Start() - .Add(Content, StringComparer.Ordinal) - .Add(Type) - .CombinedHash; + var hashCodeCombiner = HashCodeCombiner.Start(); + hashCodeCombiner.Add(Content, StringComparer.Ordinal); + hashCodeCombiner.Add(Type); + + return hashCodeCombiner; } public override string ToString() diff --git a/test/Microsoft.AspNet.Razor.Test/CodeGenerators/TestSpan.cs b/test/Microsoft.AspNet.Razor.Test/CodeGenerators/TestSpan.cs index 49e932fc15..2c686a06dd 100644 --- a/test/Microsoft.AspNet.Razor.Test/CodeGenerators/TestSpan.cs +++ b/test/Microsoft.AspNet.Razor.Test/CodeGenerators/TestSpan.cs @@ -50,11 +50,12 @@ namespace Microsoft.AspNet.Razor.Test.Generator public override int GetHashCode() { - return HashCodeCombiner.Start() - .Add(Kind) - .Add(Start) - .Add(End) - .CombinedHash; + var hashCodeCombiner = HashCodeCombiner.Start(); + hashCodeCombiner.Add(Kind); + hashCodeCombiner.Add(Start); + hashCodeCombiner.Add(End); + + return hashCodeCombiner; } } } diff --git a/test/Microsoft.AspNet.Razor.Test/TagHelpers/TagHelperDirectiveSpanVisitorTest.cs b/test/Microsoft.AspNet.Razor.Test/TagHelpers/TagHelperDirectiveSpanVisitorTest.cs index e433eea445..632a11ecf8 100644 --- a/test/Microsoft.AspNet.Razor.Test/TagHelpers/TagHelperDirectiveSpanVisitorTest.cs +++ b/test/Microsoft.AspNet.Razor.Test/TagHelpers/TagHelperDirectiveSpanVisitorTest.cs @@ -291,11 +291,12 @@ namespace Microsoft.AspNet.Razor.TagHelpers public int GetHashCode(TagHelperDirectiveDescriptor directiveDescriptor) { - return HashCodeCombiner.Start() - .Add(base.GetHashCode()) - .Add(directiveDescriptor.DirectiveText) - .Add(directiveDescriptor.DirectiveType) - .CombinedHash; + var hashCodeCombiner = HashCodeCombiner.Start(); + hashCodeCombiner.Add(base.GetHashCode()); + hashCodeCombiner.Add(directiveDescriptor.DirectiveText); + hashCodeCombiner.Add(directiveDescriptor.DirectiveType); + + return hashCodeCombiner; } }