public bool Equals()

in src/Sarif/Autogenerated/ToolComponentEqualityComparer.cs [19:286]


        public bool Equals(ToolComponent left, ToolComponent right)
        {
            if (ReferenceEquals(left, right))
            {
                return true;
            }

            if (ReferenceEquals(left, null) || ReferenceEquals(right, null))
            {
                return false;
            }

            if (left.Guid != right.Guid)
            {
                return false;
            }

            if (left.Name != right.Name)
            {
                return false;
            }

            if (left.Organization != right.Organization)
            {
                return false;
            }

            if (left.Product != right.Product)
            {
                return false;
            }

            if (left.ProductSuite != right.ProductSuite)
            {
                return false;
            }

            if (!MultiformatMessageString.ValueComparer.Equals(left.ShortDescription, right.ShortDescription))
            {
                return false;
            }

            if (!MultiformatMessageString.ValueComparer.Equals(left.FullDescription, right.FullDescription))
            {
                return false;
            }

            if (left.FullName != right.FullName)
            {
                return false;
            }

            if (left.Version != right.Version)
            {
                return false;
            }

            if (left.SemanticVersion != right.SemanticVersion)
            {
                return false;
            }

            if (left.DottedQuadFileVersion != right.DottedQuadFileVersion)
            {
                return false;
            }

            if (left.ReleaseDateUtc != right.ReleaseDateUtc)
            {
                return false;
            }

            if (left.DownloadUri != right.DownloadUri)
            {
                return false;
            }

            if (left.InformationUri != right.InformationUri)
            {
                return false;
            }

            if (!object.ReferenceEquals(left.GlobalMessageStrings, right.GlobalMessageStrings))
            {
                if (left.GlobalMessageStrings == null || right.GlobalMessageStrings == null || left.GlobalMessageStrings.Count != right.GlobalMessageStrings.Count)
                {
                    return false;
                }

                foreach (var value_0 in left.GlobalMessageStrings)
                {
                    MultiformatMessageString value_1;
                    if (!right.GlobalMessageStrings.TryGetValue(value_0.Key, out value_1))
                    {
                        return false;
                    }

                    if (!MultiformatMessageString.ValueComparer.Equals(value_0.Value, value_1))
                    {
                        return false;
                    }
                }
            }

            if (!object.ReferenceEquals(left.Notifications, right.Notifications))
            {
                if (left.Notifications == null || right.Notifications == null)
                {
                    return false;
                }

                if (left.Notifications.Count != right.Notifications.Count)
                {
                    return false;
                }

                for (int index_0 = 0; index_0 < left.Notifications.Count; ++index_0)
                {
                    if (!ReportingDescriptor.ValueComparer.Equals(left.Notifications[index_0], right.Notifications[index_0]))
                    {
                        return false;
                    }
                }
            }

            if (!object.ReferenceEquals(left.Rules, right.Rules))
            {
                if (left.Rules == null || right.Rules == null)
                {
                    return false;
                }

                if (left.Rules.Count != right.Rules.Count)
                {
                    return false;
                }

                for (int index_1 = 0; index_1 < left.Rules.Count; ++index_1)
                {
                    if (!ReportingDescriptor.ValueComparer.Equals(left.Rules[index_1], right.Rules[index_1]))
                    {
                        return false;
                    }
                }
            }

            if (!object.ReferenceEquals(left.Taxa, right.Taxa))
            {
                if (left.Taxa == null || right.Taxa == null)
                {
                    return false;
                }

                if (left.Taxa.Count != right.Taxa.Count)
                {
                    return false;
                }

                for (int index_2 = 0; index_2 < left.Taxa.Count; ++index_2)
                {
                    if (!ReportingDescriptor.ValueComparer.Equals(left.Taxa[index_2], right.Taxa[index_2]))
                    {
                        return false;
                    }
                }
            }

            if (!object.ReferenceEquals(left.Locations, right.Locations))
            {
                if (left.Locations == null || right.Locations == null)
                {
                    return false;
                }

                if (left.Locations.Count != right.Locations.Count)
                {
                    return false;
                }

                for (int index_3 = 0; index_3 < left.Locations.Count; ++index_3)
                {
                    if (!ArtifactLocation.ValueComparer.Equals(left.Locations[index_3], right.Locations[index_3]))
                    {
                        return false;
                    }
                }
            }

            if (left.Language != right.Language)
            {
                return false;
            }

            if (left.Contents != right.Contents)
            {
                return false;
            }

            if (left.IsComprehensive != right.IsComprehensive)
            {
                return false;
            }

            if (left.LocalizedDataSemanticVersion != right.LocalizedDataSemanticVersion)
            {
                return false;
            }

            if (left.MinimumRequiredLocalizedDataSemanticVersion != right.MinimumRequiredLocalizedDataSemanticVersion)
            {
                return false;
            }

            if (!ToolComponentReference.ValueComparer.Equals(left.AssociatedComponent, right.AssociatedComponent))
            {
                return false;
            }

            if (!TranslationMetadata.ValueComparer.Equals(left.TranslationMetadata, right.TranslationMetadata))
            {
                return false;
            }

            if (!object.ReferenceEquals(left.SupportedTaxonomies, right.SupportedTaxonomies))
            {
                if (left.SupportedTaxonomies == null || right.SupportedTaxonomies == null)
                {
                    return false;
                }

                if (left.SupportedTaxonomies.Count != right.SupportedTaxonomies.Count)
                {
                    return false;
                }

                for (int index_4 = 0; index_4 < left.SupportedTaxonomies.Count; ++index_4)
                {
                    if (!ToolComponentReference.ValueComparer.Equals(left.SupportedTaxonomies[index_4], right.SupportedTaxonomies[index_4]))
                    {
                        return false;
                    }
                }
            }

            if (!object.ReferenceEquals(left.Properties, right.Properties))
            {
                if (left.Properties == null || right.Properties == null || left.Properties.Count != right.Properties.Count)
                {
                    return false;
                }

                foreach (var value_2 in left.Properties)
                {
                    SerializedPropertyInfo value_3;
                    if (!right.Properties.TryGetValue(value_2.Key, out value_3))
                    {
                        return false;
                    }

                    if (!object.Equals(value_2.Value, value_3))
                    {
                        return false;
                    }
                }
            }

            return true;
        }