From d083029ca7109d4f336aa0e6947a4b4e4f0b463e Mon Sep 17 00:00:00 2001 From: Shaopeng Li Date: Thu, 13 Oct 2022 15:40:05 -0700 Subject: [PATCH 1/4] Updated Json schema to use `uuid`, and updated C# object model to use `Guid?` instead of `string`. --- src/ReleaseHistory.md | 2 +- .../SarifToCsv/SarifCsvColumnWriters.cs | 10 +- src/Sarif.Converters/FlawFinderConverter.cs | 6 +- src/Sarif.Converters/FortifyFprConverter.cs | 10 +- src/Sarif.Converters/HdfConverter.cs | 6 +- src/Sarif.Driver/Sdk/CommonOptionsBase.cs | 3 +- src/Sarif.Multitool.Library/Extensions.cs | 4 +- .../Rules/SARIF2004.OptimizeFileSize.cs | 2 +- .../Sarif.Multitool.Library.csproj | 6 +- src/Sarif/Autogenerated/Address.cs | 2 +- src/Sarif/Autogenerated/AddressComparer.cs | 31 +---- .../Autogenerated/AddressEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/Artifact.cs | 2 +- src/Sarif/Autogenerated/ArtifactChange.cs | 2 +- .../Autogenerated/ArtifactChangeComparer.cs | 2 +- .../ArtifactChangeEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/ArtifactComparer.cs | 2 +- src/Sarif/Autogenerated/ArtifactContent.cs | 2 +- .../Autogenerated/ArtifactContentComparer.cs | 2 +- .../ArtifactContentEqualityComparer.cs | 2 +- .../Autogenerated/ArtifactEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/ArtifactLocation.cs | 2 +- .../Autogenerated/ArtifactLocationComparer.cs | 2 +- .../ArtifactLocationEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/ArtifactRoles.cs | 2 +- src/Sarif/Autogenerated/Attachment.cs | 2 +- src/Sarif/Autogenerated/AttachmentComparer.cs | 2 +- .../AttachmentEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/BaselineState.cs | 2 +- src/Sarif/Autogenerated/CodeFlow.cs | 2 +- src/Sarif/Autogenerated/CodeFlowComparer.cs | 2 +- .../Autogenerated/CodeFlowEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/ColumnKind.cs | 2 +- src/Sarif/Autogenerated/ComparerExtensions.cs | 2 +- .../Autogenerated/ConfigurationOverride.cs | 2 +- .../ConfigurationOverrideComparer.cs | 2 +- .../ConfigurationOverrideEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/Conversion.cs | 2 +- src/Sarif/Autogenerated/ConversionComparer.cs | 2 +- .../ConversionEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/Edge.cs | 2 +- src/Sarif/Autogenerated/EdgeComparer.cs | 2 +- .../Autogenerated/EdgeEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/EdgeTraversal.cs | 2 +- .../Autogenerated/EdgeTraversalComparer.cs | 2 +- .../EdgeTraversalEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/ExceptionData.cs | 2 +- .../Autogenerated/ExceptionDataComparer.cs | 2 +- .../ExceptionDataEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/ExternalProperties.cs | 10 +- .../ExternalPropertiesComparer.cs | 6 +- .../ExternalPropertiesEqualityComparer.cs | 2 +- .../ExternalPropertyFileReference.cs | 8 +- .../ExternalPropertyFileReferenceComparer.cs | 4 +- ...alPropertyFileReferenceEqualityComparer.cs | 2 +- .../ExternalPropertyFileReferences.cs | 2 +- .../ExternalPropertyFileReferencesComparer.cs | 2 +- ...lPropertyFileReferencesEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/FailureLevel.cs | 2 +- src/Sarif/Autogenerated/Fix.cs | 2 +- src/Sarif/Autogenerated/FixComparer.cs | 2 +- .../Autogenerated/FixEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/Graph.cs | 2 +- src/Sarif/Autogenerated/GraphComparer.cs | 2 +- .../Autogenerated/GraphEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/GraphTraversal.cs | 2 +- .../Autogenerated/GraphTraversalComparer.cs | 2 +- .../GraphTraversalEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/ISarifNode.cs | 2 +- src/Sarif/Autogenerated/Invocation.cs | 2 +- src/Sarif/Autogenerated/InvocationComparer.cs | 2 +- .../InvocationEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/Location.cs | 7 +- src/Sarif/Autogenerated/LocationComparer.cs | 2 +- .../Autogenerated/LocationEqualityComparer.cs | 2 +- .../Autogenerated/LocationRelationship.cs | 2 +- .../LocationRelationshipComparer.cs | 2 +- .../LocationRelationshipEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/LogicalLocation.cs | 2 +- .../Autogenerated/LogicalLocationComparer.cs | 2 +- .../LogicalLocationEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/Message.cs | 2 +- src/Sarif/Autogenerated/MessageComparer.cs | 2 +- .../Autogenerated/MessageEqualityComparer.cs | 2 +- .../Autogenerated/MultiformatMessageString.cs | 2 +- .../MultiformatMessageStringComparer.cs | 2 +- ...ultiformatMessageStringEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/Node.cs | 2 +- src/Sarif/Autogenerated/NodeComparer.cs | 2 +- .../Autogenerated/NodeEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/Notification.cs | 2 +- .../Autogenerated/NotificationComparer.cs | 2 +- .../NotificationEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/PhysicalLocation.cs | 2 +- .../Autogenerated/PhysicalLocationComparer.cs | 2 +- .../PhysicalLocationEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/PropertyBag.cs | 2 +- .../Autogenerated/PropertyBagComparer.cs | 2 +- .../PropertyBagEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/Rectangle.cs | 2 +- src/Sarif/Autogenerated/RectangleComparer.cs | 2 +- .../RectangleEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/Region.cs | 2 +- src/Sarif/Autogenerated/RegionComparer.cs | 2 +- .../Autogenerated/RegionEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/Replacement.cs | 2 +- .../Autogenerated/ReplacementComparer.cs | 2 +- .../ReplacementEqualityComparer.cs | 2 +- .../Autogenerated/ReportingConfiguration.cs | 2 +- .../ReportingConfigurationComparer.cs | 2 +- .../ReportingConfigurationEqualityComparer.cs | 2 +- .../Autogenerated/ReportingDescriptor.cs | 12 +- .../ReportingDescriptorComparer.cs | 4 +- .../ReportingDescriptorEqualityComparer.cs | 7 +- .../ReportingDescriptorReference.cs | 8 +- .../ReportingDescriptorReferenceComparer.cs | 4 +- ...tingDescriptorReferenceEqualityComparer.cs | 2 +- .../ReportingDescriptorRelationship.cs | 2 +- ...ReportingDescriptorRelationshipComparer.cs | 2 +- ...gDescriptorRelationshipEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/Result.cs | 10 +- src/Sarif/Autogenerated/ResultComparer.cs | 6 +- .../Autogenerated/ResultEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/ResultKind.cs | 2 +- src/Sarif/Autogenerated/ResultProvenance.cs | 10 +- .../Autogenerated/ResultProvenanceComparer.cs | 6 +- .../ResultProvenanceEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/Run.cs | 8 +- .../Autogenerated/RunAutomationDetails.cs | 10 +- .../RunAutomationDetailsComparer.cs | 6 +- .../RunAutomationDetailsEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/RunComparer.cs | 4 +- .../Autogenerated/RunEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/SarifLog.cs | 2 +- src/Sarif/Autogenerated/SarifLogComparer.cs | 2 +- .../Autogenerated/SarifLogEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/SarifNodeKind.cs | 2 +- .../Autogenerated/SarifRewritingVisitor.cs | 2 +- src/Sarif/Autogenerated/SarifVersion.cs | 2 +- src/Sarif/Autogenerated/SpecialLocations.cs | 2 +- .../Autogenerated/SpecialLocationsComparer.cs | 2 +- .../SpecialLocationsEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/Stack.cs | 2 +- src/Sarif/Autogenerated/StackComparer.cs | 2 +- .../Autogenerated/StackEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/StackFrame.cs | 2 +- src/Sarif/Autogenerated/StackFrameComparer.cs | 2 +- .../StackFrameEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/Suppression.cs | 8 +- .../Autogenerated/SuppressionComparer.cs | 4 +- .../SuppressionEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/SuppressionKind.cs | 2 +- src/Sarif/Autogenerated/SuppressionStatus.cs | 2 +- src/Sarif/Autogenerated/ThreadFlow.cs | 2 +- src/Sarif/Autogenerated/ThreadFlowComparer.cs | 2 +- .../ThreadFlowEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/ThreadFlowLocation.cs | 2 +- .../ThreadFlowLocationComparer.cs | 2 +- .../ThreadFlowLocationEqualityComparer.cs | 2 +- .../ThreadFlowLocationImportance.cs | 2 +- src/Sarif/Autogenerated/Tool.cs | 2 +- src/Sarif/Autogenerated/ToolComparer.cs | 2 +- src/Sarif/Autogenerated/ToolComponent.cs | 8 +- .../Autogenerated/ToolComponentComparer.cs | 4 +- .../Autogenerated/ToolComponentContents.cs | 2 +- .../ToolComponentEqualityComparer.cs | 2 +- .../Autogenerated/ToolComponentReference.cs | 8 +- .../ToolComponentReferenceComparer.cs | 4 +- .../ToolComponentReferenceEqualityComparer.cs | 2 +- .../Autogenerated/ToolEqualityComparer.cs | 2 +- .../Autogenerated/TranslationMetadata.cs | 2 +- .../TranslationMetadataComparer.cs | 2 +- .../TranslationMetadataEqualityComparer.cs | 2 +- .../Autogenerated/VersionControlDetails.cs | 2 +- .../VersionControlDetailsComparer.cs | 2 +- .../VersionControlDetailsEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/WebRequest.cs | 2 +- src/Sarif/Autogenerated/WebRequestComparer.cs | 2 +- .../WebRequestEqualityComparer.cs | 2 +- src/Sarif/Autogenerated/WebResponse.cs | 2 +- .../Autogenerated/WebResponseComparer.cs | 2 +- .../WebResponseEqualityComparer.cs | 2 +- .../DataStructures/MatchedResults.cs | 2 +- src/Sarif/Baseline/V2/WhatComparer.cs | 2 +- src/Sarif/Core/Location.cs | 5 + src/Sarif/Core/Result.cs | 4 +- src/Sarif/Core/Run.cs | 4 +- src/Sarif/Core/RunAutomationDetails.cs | 4 +- src/Sarif/Core/Tool.cs | 2 +- src/Sarif/Core/ToolComponent.cs | 8 +- src/Sarif/ExtensionMethods.cs | 30 +++++ src/Sarif/NotYetAutoGenerated/Address.cs | 2 +- .../NotYetAutoGenerated/AddressComparer.cs | 113 ------------------ src/Sarif/NotYetAutoGenerated/Invocation.cs | 2 +- src/Sarif/NotYetAutoGenerated/Location.cs | 7 +- .../ReportingConfiguration.cs | 2 +- .../ReportingDescriptor.cs | 12 +- src/Sarif/NotYetAutoGenerated/Result.cs | 10 +- src/Sarif/NotYetAutoGenerated/Run.cs | 8 +- src/Sarif/NotYetAutoGenerated/SarifLog.cs | 2 +- src/Sarif/Query/Evaluators/SarifEvaluators.cs | 4 +- src/Sarif/Schemata/sarif-2.1.0-rtm.5.json | 34 +++--- ...if-external-property-file-2.1.0-rtm.5.json | 4 +- src/Sarif/ToDotNet/ToDotNet.targets | 4 +- src/Sarif/ToDotNet/packages.config | 2 +- .../Visitors/InsertOptionalDataVisitor.cs | 4 +- .../SarifCurrentToVersionOneVisitor.cs | 4 +- .../SarifVersionOneToCurrentVisitor.cs | 11 +- src/Sarif/Visitors/SuppressVisitor.cs | 2 +- .../BaseliningDetailEnricher.cs | 3 +- .../BaseliningDetailLogger.cs | 14 +-- .../BaseliningTester.cs | 3 +- .../Extensions/SarifLogExtensions.cs | 4 +- .../SarifValidatorTests.cs | 2 +- .../Sdk/AnalyzeCommandBaseTests.cs | 24 ++-- .../SkimmerIdComparerTests.cs | 4 +- .../ExtensionsTests.cs | 13 +- .../SuppressCommandTests.cs | 2 +- .../IdenticalResultMatcherTests.cs | 10 +- .../ResultMatchingBaselinerTests.cs | 14 +-- .../SarifLogResultMatcherTests.cs | 36 +++--- .../Baseline2/V2ResultMatcherTests.cs | 4 +- .../Baseline2/WhatComparerTests.cs | 2 +- .../Comparers/ComparersTests.cs | 14 +-- src/Test.UnitTests.Sarif/Core/RunTests.cs | 33 ++--- src/Test.UnitTests.Sarif/ExtensionsTests.cs | 45 +++++++ .../Test.UnitTests.Sarif.csproj | 4 +- .../InsertOptionalDataVisitorTests.cs | 2 +- .../RemoveOptionalDataVisitorTests.cs | 2 +- .../Visitors/SuppressVisitorTests.cs | 2 +- .../Writers/ResultLogJsonWriterTests.cs | 2 +- .../Writers/SarifLoggerTests.cs | 4 +- src/Test.Utilities.Sarif/TestData.cs | 2 +- src/WorkItems/WorkItems.csproj | 4 +- 234 files changed, 514 insertions(+), 565 deletions(-) delete mode 100644 src/Sarif/NotYetAutoGenerated/AddressComparer.cs diff --git a/src/ReleaseHistory.md b/src/ReleaseHistory.md index 441316966..d857da52b 100644 --- a/src/ReleaseHistory.md +++ b/src/ReleaseHistory.md @@ -1,8 +1,8 @@ # SARIF Package Release History (SDK, Driver, Converters, and Multitool) ## Unreleased +* BREAKING: For `Guid` properties defined in SARIF spec, updated Json schema to use `uuid`, and updated C# object model to use `Guid?` instead of `string`. [#2554](https://github.com/microsoft/sarif-sdk/pull/2554) * BUGFIX: Another attempt to resolve 'InvalidOperationException' with message `Collection was modified; enumeration operation may not execute` in `MultithreadedAnalyzeCommandBase`, raised when analyzing with the `--hashes` switch. [#2459](https://github.com/microsoft/sarif-sdk/pull/2549). There was a previous attempt to fix this in [#2447](https://github.com/microsoft/sarif-sdk/pull/2447). - * FEATURE: Allow initialization of file regions cache in `InsertOptionalDataVisitor` (previously initialized exclusively from `FileRegionsCache.Instance`). * BUGFIX: Resolve issue where `match-results-forward` command fails to generate VersionControlDetails data. [#2487](https://github.com/microsoft/sarif-sdk/pull/2487) * BUGFIX: Remove duplicated rule definitions when executing `match-results-forward` commands for results with sub-rule ids. [#2486](https://github.com/microsoft/sarif-sdk/pull/2486) diff --git a/src/Samples/SarifToCsv/SarifCsvColumnWriters.cs b/src/Samples/SarifToCsv/SarifCsvColumnWriters.cs index 9344a33d2..c6b070291 100644 --- a/src/Samples/SarifToCsv/SarifCsvColumnWriters.cs +++ b/src/Samples/SarifToCsv/SarifCsvColumnWriters.cs @@ -99,10 +99,10 @@ public static Action GetWriter(string columnName) // Result Basic Properties writers["BaselineState"] = (c) => { c.Writer.Write(c.Result.BaselineState.ToString()); }; - writers["CorrelationGuid"] = (c) => { c.Writer.Write(c.Result.CorrelationGuid ?? ""); }; + writers["CorrelationGuid"] = (c) => { c.Writer.Write(c.Result.CorrelationGuid?.ToString(SarifConstants.GuidFormat) ?? ""); }; writers["Fingerprints"] = (c) => { c.Writer.Write(String.Join("; ", c.Result.Fingerprints?.Values ?? Array.Empty())); }; writers["HostedViewerUri"] = (c) => { c.Writer.Write(c.Result.HostedViewerUri?.ToString() ?? ""); }; - writers["Guid"] = (c) => { c.Writer.Write(c.Result.Guid ?? ""); }; + writers["Guid"] = (c) => { c.Writer.Write(c.Result.Guid?.ToString(SarifConstants.GuidFormat) ?? ""); }; writers["Kind"] = (c) => { c.Writer.Write(c.Result.Kind.ToString()); }; writers["Level"] = (c) => { c.Writer.Write(c.Result.Level.ToString()); }; writers["Message.Text"] = (c) => { c.Writer.Write(c.Result.Message?.Text ?? ""); }; @@ -142,10 +142,10 @@ public static Action GetWriter(string columnName) writers["Location.Region.Tags"] = (c) => { c.Writer.Write(String.Join("; ", ((IEnumerable)c.PLoc?.Region?.Tags) ?? Array.Empty())); }; // Run Identity Properties - writers["Run.BaselineGuid"] = (c) => { c.Writer.Write(c.Run?.BaselineGuid ?? ""); }; - writers["Run.AutomationDetails.CorrelationGuid"] = (c) => { c.Writer.Write(c.Run?.AutomationDetails?.CorrelationGuid ?? ""); }; + writers["Run.BaselineGuid"] = (c) => { c.Writer.Write(c.Run?.BaselineGuid?.ToString(SarifConstants.GuidFormat) ?? ""); }; + writers["Run.AutomationDetails.CorrelationGuid"] = (c) => { c.Writer.Write(c.Run?.AutomationDetails?.CorrelationGuid?.ToString(SarifConstants.GuidFormat) ?? ""); }; writers["Run.AutomationDetails.Id"] = (c) => { c.Writer.Write(c.Run?.AutomationDetails?.Id ?? ""); }; - writers["Run.AutomationDetails.Guid"] = (c) => { c.Writer.Write(c.Run?.AutomationDetails?.Guid ?? ""); }; + writers["Run.AutomationDetails.Guid"] = (c) => { c.Writer.Write(c.Run?.AutomationDetails?.Guid?.ToString(SarifConstants.GuidFormat) ?? ""); }; // Run Basics writers["Run.Tool.Name"] = (c) => { c.Writer.Write(c.Run?.Tool?.Driver?.Name ?? ""); }; diff --git a/src/Sarif.Converters/FlawFinderConverter.cs b/src/Sarif.Converters/FlawFinderConverter.cs index bd2ad9f85..eeca1023b 100644 --- a/src/Sarif.Converters/FlawFinderConverter.cs +++ b/src/Sarif.Converters/FlawFinderConverter.cs @@ -48,7 +48,7 @@ public override void Convert(Stream input, IResultLogWriter output, OptionallyEm Version = flawFinderCsvResults?.FirstOrDefault()?.ToolVersion, InformationUri = new Uri(ToolInformationUri), Rules = rules, - SupportedTaxonomies = new List() { new ToolComponentReference() { Name = "CWE", Guid = "FFC64C90-42B6-44CE-8BEB-F6B7DAE649E5" } } + SupportedTaxonomies = new List() { new ToolComponentReference() { Name = "CWE", Guid = Guid.Parse("FFC64C90-42B6-44CE-8BEB-F6B7DAE649E5") } } } }, ExternalPropertyFileReferences = new ExternalPropertyFileReferences() @@ -61,7 +61,7 @@ public override void Convert(Stream input, IResultLogWriter output, OptionallyEm { Uri = new Uri("https://raw.githubusercontent.com/sarif-standard/taxonomies/main/CWE_v4.4.sarif"), }, - Guid = "FFC64C90-42B6-44CE-8BEB-F6B7DAE649E5" + Guid = Guid.Parse("FFC64C90-42B6-44CE-8BEB-F6B7DAE649E5") } } }, @@ -131,7 +131,7 @@ private static IList ExtractRules(IList() { s.EndsWith("!") ? "incomparable" : "relevant" }, diff --git a/src/Sarif.Converters/FortifyFprConverter.cs b/src/Sarif.Converters/FortifyFprConverter.cs index 48633254d..08388998e 100644 --- a/src/Sarif.Converters/FortifyFprConverter.cs +++ b/src/Sarif.Converters/FortifyFprConverter.cs @@ -56,7 +56,7 @@ internal class FortifyFprConverter : ToolFileConverterBase private readonly ToolComponent CweToolComponent = new ToolComponent { Name = "CWE", - Guid = "25F72D7E-8A92-459D-AD67-64853F788765", + Guid = Guid.Parse("25F72D7E-8A92-459D-AD67-64853F788765"), Organization = "MITRE", ShortDescription = new MultiformatMessageString { @@ -184,11 +184,13 @@ private string ExtractFvdl(XmlReader reader) private Run CreateSarifRun() { + bool isIdGuid = Guid.TryParse(_runId, out Guid idGuid); + var run = new Run() { AutomationDetails = new RunAutomationDetails { - Guid = _runId, + Guid = isIdGuid ? idGuid : (Guid?)null, Id = _automationId + "/" }, Artifacts = _files.OrderBy(d => d.Value.Item2) @@ -1266,10 +1268,12 @@ private ReportingDescriptor FindOrCreateRule(string ruleGuid, out int ruleIndex) } else { + bool isGuid = Guid.TryParse(NormalizeGuid(ruleGuid), out Guid parsedGuid); + ReportingDescriptor rule = new ReportingDescriptor { Id = ruleGuid, - Guid = NormalizeGuid(ruleGuid) + Guid = isGuid ? parsedGuid : (Guid?)null }; rule.DefaultConfiguration = new ReportingConfiguration(); diff --git a/src/Sarif.Converters/HdfConverter.cs b/src/Sarif.Converters/HdfConverter.cs index a805afaa0..f17d76514 100644 --- a/src/Sarif.Converters/HdfConverter.cs +++ b/src/Sarif.Converters/HdfConverter.cs @@ -41,7 +41,7 @@ public override void Convert(Stream input, IResultLogWriter output, OptionallyEm Version = hdfFile.Version, InformationUri = new Uri(ToolInformationUri), Rules = rulesAndResults.Item1, - SupportedTaxonomies = new List() { new ToolComponentReference() { Name = "NIST SP800-53 v5", Guid = "AAFBAB93-5201-419E-8443-D4925C542398" } } + SupportedTaxonomies = new List() { new ToolComponentReference() { Name = "NIST SP800-53 v5", Guid = Guid.Parse("AAFBAB93-5201-419E-8443-D4925C542398") } } } }, ExternalPropertyFileReferences = new ExternalPropertyFileReferences() @@ -54,7 +54,7 @@ public override void Convert(Stream input, IResultLogWriter output, OptionallyEm { Uri = new Uri("https://raw.githubusercontent.com/sarif-standard/taxonomies/main/NIST_SP800-53_v5.sarif"), }, - Guid = "AAFBAB93-5201-419E-8443-D4925C542398" + Guid = Guid.Parse("AAFBAB93-5201-419E-8443-D4925C542398") } } }, @@ -111,7 +111,7 @@ private static (ReportingDescriptor, IList) SarifRuleAndResultFromHdfCon ToolComponent = new ToolComponentReference() { Name = "NIST", - Guid = "AAFBAB93-5201-419E-8443-D4925C542398" + Guid = Guid.Parse("AAFBAB93-5201-419E-8443-D4925C542398") } }, Kinds = new List() { "relevant" }, diff --git a/src/Sarif.Driver/Sdk/CommonOptionsBase.cs b/src/Sarif.Driver/Sdk/CommonOptionsBase.cs index 72bd8dcc0..7fcc9de99 100644 --- a/src/Sarif.Driver/Sdk/CommonOptionsBase.cs +++ b/src/Sarif.Driver/Sdk/CommonOptionsBase.cs @@ -1,6 +1,7 @@ // Copyright (c) Microsoft. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. +using System; using System.Collections.Generic; using CommandLine; @@ -100,7 +101,7 @@ public class CommonOptionsBase [Option( "automationGuid", HelpText = "A guid that will be persisted to the 'Run.AutomationDetails.Guid' property. See section '3.17.4' of the SARIF specification for more information.")] - public string AutomationGuid { get; set; } + public Guid? AutomationGuid { get; set; } public Formatting Formatting => this.PrettyPrint || (!this.PrettyPrint && !this.Minify) ? Formatting.Indented diff --git a/src/Sarif.Multitool.Library/Extensions.cs b/src/Sarif.Multitool.Library/Extensions.cs index 8b68e62be..1b91646a9 100644 --- a/src/Sarif.Multitool.Library/Extensions.cs +++ b/src/Sarif.Multitool.Library/Extensions.cs @@ -7,7 +7,7 @@ namespace Microsoft.CodeAnalysis.Sarif.Multitool { public static class Extensions { - public static bool RefersToDriver(this ToolComponentReference toolComponent, string driverGuid) + public static bool RefersToDriver(this ToolComponentReference toolComponent, Guid? driverGuid) { if (toolComponent.Index == -1) { @@ -17,7 +17,7 @@ public static bool RefersToDriver(this ToolComponentReference toolComponent, str } else { - return toolComponent.Guid.Equals(driverGuid, StringComparison.OrdinalIgnoreCase); + return toolComponent.Guid == driverGuid; } } diff --git a/src/Sarif.Multitool.Library/Rules/SARIF2004.OptimizeFileSize.cs b/src/Sarif.Multitool.Library/Rules/SARIF2004.OptimizeFileSize.cs index 2a4077c34..2ed2c11ad 100644 --- a/src/Sarif.Multitool.Library/Rules/SARIF2004.OptimizeFileSize.cs +++ b/src/Sarif.Multitool.Library/Rules/SARIF2004.OptimizeFileSize.cs @@ -65,7 +65,7 @@ public class OptimizeFileSize : SarifValidationSkimmerBase nameof(RuleResources.SARIF2004_OptimizeFileSize_Warning_PreferRuleId_Text) }; - private string driverGuid; + private Guid? driverGuid; protected override void Analyze(Run run, string runPointer) { diff --git a/src/Sarif.Multitool.Library/Sarif.Multitool.Library.csproj b/src/Sarif.Multitool.Library/Sarif.Multitool.Library.csproj index ea60b4bc9..5d907a944 100644 --- a/src/Sarif.Multitool.Library/Sarif.Multitool.Library.csproj +++ b/src/Sarif.Multitool.Library/Sarif.Multitool.Library.csproj @@ -15,9 +15,9 @@ - - - + + + diff --git a/src/Sarif/Autogenerated/Address.cs b/src/Sarif/Autogenerated/Address.cs index 39ec63b61..176243c2c 100644 --- a/src/Sarif/Autogenerated/Address.cs +++ b/src/Sarif/Autogenerated/Address.cs @@ -15,7 +15,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// A physical or virtual address, or a range of addresses, in an 'addressable region' (memory or a binary file). /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class Address : PropertyBagHolder, ISarifNode { public static IEqualityComparer
ValueComparer => AddressEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/AddressComparer.cs b/src/Sarif/Autogenerated/AddressComparer.cs index 99f45085e..e339fb03f 100644 --- a/src/Sarif/Autogenerated/AddressComparer.cs +++ b/src/Sarif/Autogenerated/AddressComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Address for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class AddressComparer : IComparer
{ internal static readonly AddressComparer Instance = new AddressComparer(); @@ -32,27 +32,13 @@ public int Compare(Address left, Address right) return compareResult; } - // TryReferenceCompares is an autogenerated extension method - // that will properly handle the case when 'left' is null. - if (left.RelativeAddress.TryReferenceCompares(right.RelativeAddress, out compareResult)) - { - return compareResult; - } - - compareResult = left.RelativeAddress.Value.CompareTo(right.RelativeAddress.Value); + compareResult = left.RelativeAddress.CompareTo(right.RelativeAddress); if (compareResult != 0) { return compareResult; } - // TryReferenceCompares is an autogenerated extension method - // that will properly handle the case when 'left' is null. - if (left.Length.TryReferenceCompares(right.Length, out compareResult)) - { - return compareResult; - } - - compareResult = left.Length.Value.CompareTo(right.Length.Value); + compareResult = left.Length.CompareTo(right.Length); if (compareResult != 0) { return compareResult; @@ -76,14 +62,7 @@ public int Compare(Address left, Address right) return compareResult; } - // TryReferenceCompares is an autogenerated extension method - // that will properly handle the case when 'left' is null. - if (left.OffsetFromParent.TryReferenceCompares(right.OffsetFromParent, out compareResult)) - { - return compareResult; - } - - compareResult = left.OffsetFromParent.Value.CompareTo(right.OffsetFromParent.Value); + compareResult = left.OffsetFromParent.CompareTo(right.OffsetFromParent); if (compareResult != 0) { return compareResult; @@ -110,4 +89,4 @@ public int Compare(Address left, Address right) return compareResult; } } -} +} \ No newline at end of file diff --git a/src/Sarif/Autogenerated/AddressEqualityComparer.cs b/src/Sarif/Autogenerated/AddressEqualityComparer.cs index 633eef9bd..5ee42023d 100644 --- a/src/Sarif/Autogenerated/AddressEqualityComparer.cs +++ b/src/Sarif/Autogenerated/AddressEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Address for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class AddressEqualityComparer : IEqualityComparer
{ internal static readonly AddressEqualityComparer Instance = new AddressEqualityComparer(); diff --git a/src/Sarif/Autogenerated/Artifact.cs b/src/Sarif/Autogenerated/Artifact.cs index f7a617157..1c2e62794 100644 --- a/src/Sarif/Autogenerated/Artifact.cs +++ b/src/Sarif/Autogenerated/Artifact.cs @@ -14,7 +14,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// A single artifact. In some cases, this artifact might be nested within another artifact. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class Artifact : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => ArtifactEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/ArtifactChange.cs b/src/Sarif/Autogenerated/ArtifactChange.cs index 6d83ba837..c9af80d79 100644 --- a/src/Sarif/Autogenerated/ArtifactChange.cs +++ b/src/Sarif/Autogenerated/ArtifactChange.cs @@ -12,7 +12,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// A change to a single artifact. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class ArtifactChange : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => ArtifactChangeEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/ArtifactChangeComparer.cs b/src/Sarif/Autogenerated/ArtifactChangeComparer.cs index e43cf2362..581da32e7 100644 --- a/src/Sarif/Autogenerated/ArtifactChangeComparer.cs +++ b/src/Sarif/Autogenerated/ArtifactChangeComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ArtifactChange for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ArtifactChangeComparer : IComparer { internal static readonly ArtifactChangeComparer Instance = new ArtifactChangeComparer(); diff --git a/src/Sarif/Autogenerated/ArtifactChangeEqualityComparer.cs b/src/Sarif/Autogenerated/ArtifactChangeEqualityComparer.cs index df553bf7d..3c9077679 100644 --- a/src/Sarif/Autogenerated/ArtifactChangeEqualityComparer.cs +++ b/src/Sarif/Autogenerated/ArtifactChangeEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ArtifactChange for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ArtifactChangeEqualityComparer : IEqualityComparer { internal static readonly ArtifactChangeEqualityComparer Instance = new ArtifactChangeEqualityComparer(); diff --git a/src/Sarif/Autogenerated/ArtifactComparer.cs b/src/Sarif/Autogenerated/ArtifactComparer.cs index d63e4af68..1768bb327 100644 --- a/src/Sarif/Autogenerated/ArtifactComparer.cs +++ b/src/Sarif/Autogenerated/ArtifactComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Artifact for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ArtifactComparer : IComparer { internal static readonly ArtifactComparer Instance = new ArtifactComparer(); diff --git a/src/Sarif/Autogenerated/ArtifactContent.cs b/src/Sarif/Autogenerated/ArtifactContent.cs index d516a2a6f..45f072c0f 100644 --- a/src/Sarif/Autogenerated/ArtifactContent.cs +++ b/src/Sarif/Autogenerated/ArtifactContent.cs @@ -12,7 +12,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Represents the contents of an artifact. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class ArtifactContent : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => ArtifactContentEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/ArtifactContentComparer.cs b/src/Sarif/Autogenerated/ArtifactContentComparer.cs index c6acd3fbd..5b1662807 100644 --- a/src/Sarif/Autogenerated/ArtifactContentComparer.cs +++ b/src/Sarif/Autogenerated/ArtifactContentComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ArtifactContent for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ArtifactContentComparer : IComparer { internal static readonly ArtifactContentComparer Instance = new ArtifactContentComparer(); diff --git a/src/Sarif/Autogenerated/ArtifactContentEqualityComparer.cs b/src/Sarif/Autogenerated/ArtifactContentEqualityComparer.cs index 22edd7fb4..26e6e9a83 100644 --- a/src/Sarif/Autogenerated/ArtifactContentEqualityComparer.cs +++ b/src/Sarif/Autogenerated/ArtifactContentEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ArtifactContent for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ArtifactContentEqualityComparer : IEqualityComparer { internal static readonly ArtifactContentEqualityComparer Instance = new ArtifactContentEqualityComparer(); diff --git a/src/Sarif/Autogenerated/ArtifactEqualityComparer.cs b/src/Sarif/Autogenerated/ArtifactEqualityComparer.cs index dd77ae416..83f9fbda6 100644 --- a/src/Sarif/Autogenerated/ArtifactEqualityComparer.cs +++ b/src/Sarif/Autogenerated/ArtifactEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Artifact for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ArtifactEqualityComparer : IEqualityComparer { internal static readonly ArtifactEqualityComparer Instance = new ArtifactEqualityComparer(); diff --git a/src/Sarif/Autogenerated/ArtifactLocation.cs b/src/Sarif/Autogenerated/ArtifactLocation.cs index 2b576968d..8c89eafdb 100644 --- a/src/Sarif/Autogenerated/ArtifactLocation.cs +++ b/src/Sarif/Autogenerated/ArtifactLocation.cs @@ -14,7 +14,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Specifies the location of an artifact. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class ArtifactLocation : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => ArtifactLocationEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/ArtifactLocationComparer.cs b/src/Sarif/Autogenerated/ArtifactLocationComparer.cs index 4b8790972..e65e9a3b2 100644 --- a/src/Sarif/Autogenerated/ArtifactLocationComparer.cs +++ b/src/Sarif/Autogenerated/ArtifactLocationComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ArtifactLocation for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ArtifactLocationComparer : IComparer { internal static readonly ArtifactLocationComparer Instance = new ArtifactLocationComparer(); diff --git a/src/Sarif/Autogenerated/ArtifactLocationEqualityComparer.cs b/src/Sarif/Autogenerated/ArtifactLocationEqualityComparer.cs index 2366e6615..d29e97c03 100644 --- a/src/Sarif/Autogenerated/ArtifactLocationEqualityComparer.cs +++ b/src/Sarif/Autogenerated/ArtifactLocationEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ArtifactLocation for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ArtifactLocationEqualityComparer : IEqualityComparer { internal static readonly ArtifactLocationEqualityComparer Instance = new ArtifactLocationEqualityComparer(); diff --git a/src/Sarif/Autogenerated/ArtifactRoles.cs b/src/Sarif/Autogenerated/ArtifactRoles.cs index d86105e3a..6b1ec3fd7 100644 --- a/src/Sarif/Autogenerated/ArtifactRoles.cs +++ b/src/Sarif/Autogenerated/ArtifactRoles.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Values specifying the roles played by the file in the analysis. /// [Flags] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public enum ArtifactRoles { None, diff --git a/src/Sarif/Autogenerated/Attachment.cs b/src/Sarif/Autogenerated/Attachment.cs index 9407f2d98..54347bfc8 100644 --- a/src/Sarif/Autogenerated/Attachment.cs +++ b/src/Sarif/Autogenerated/Attachment.cs @@ -13,7 +13,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// An artifact relevant to a result. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class Attachment : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => AttachmentEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/AttachmentComparer.cs b/src/Sarif/Autogenerated/AttachmentComparer.cs index c18315748..1e6250471 100644 --- a/src/Sarif/Autogenerated/AttachmentComparer.cs +++ b/src/Sarif/Autogenerated/AttachmentComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Attachment for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class AttachmentComparer : IComparer { internal static readonly AttachmentComparer Instance = new AttachmentComparer(); diff --git a/src/Sarif/Autogenerated/AttachmentEqualityComparer.cs b/src/Sarif/Autogenerated/AttachmentEqualityComparer.cs index df908125e..a7c77cb76 100644 --- a/src/Sarif/Autogenerated/AttachmentEqualityComparer.cs +++ b/src/Sarif/Autogenerated/AttachmentEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Attachment for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class AttachmentEqualityComparer : IEqualityComparer { internal static readonly AttachmentEqualityComparer Instance = new AttachmentEqualityComparer(); diff --git a/src/Sarif/Autogenerated/BaselineState.cs b/src/Sarif/Autogenerated/BaselineState.cs index 37974fc73..09e304c44 100644 --- a/src/Sarif/Autogenerated/BaselineState.cs +++ b/src/Sarif/Autogenerated/BaselineState.cs @@ -8,7 +8,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// The state of a result relative to a baseline of a previous run. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public enum BaselineState { None, diff --git a/src/Sarif/Autogenerated/CodeFlow.cs b/src/Sarif/Autogenerated/CodeFlow.cs index 45b880ce3..ac4b1cb6e 100644 --- a/src/Sarif/Autogenerated/CodeFlow.cs +++ b/src/Sarif/Autogenerated/CodeFlow.cs @@ -12,7 +12,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// A set of threadFlows which together describe a pattern of code execution relevant to detecting a result. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class CodeFlow : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => CodeFlowEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/CodeFlowComparer.cs b/src/Sarif/Autogenerated/CodeFlowComparer.cs index 369157d44..f54422ade 100644 --- a/src/Sarif/Autogenerated/CodeFlowComparer.cs +++ b/src/Sarif/Autogenerated/CodeFlowComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type CodeFlow for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class CodeFlowComparer : IComparer { internal static readonly CodeFlowComparer Instance = new CodeFlowComparer(); diff --git a/src/Sarif/Autogenerated/CodeFlowEqualityComparer.cs b/src/Sarif/Autogenerated/CodeFlowEqualityComparer.cs index a2d026409..8fdd1a04d 100644 --- a/src/Sarif/Autogenerated/CodeFlowEqualityComparer.cs +++ b/src/Sarif/Autogenerated/CodeFlowEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type CodeFlow for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class CodeFlowEqualityComparer : IEqualityComparer { internal static readonly CodeFlowEqualityComparer Instance = new CodeFlowEqualityComparer(); diff --git a/src/Sarif/Autogenerated/ColumnKind.cs b/src/Sarif/Autogenerated/ColumnKind.cs index 913b8e748..9bc1648e7 100644 --- a/src/Sarif/Autogenerated/ColumnKind.cs +++ b/src/Sarif/Autogenerated/ColumnKind.cs @@ -8,7 +8,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// A value that specifies the unit in which the tool measures columns. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public enum ColumnKind { None, diff --git a/src/Sarif/Autogenerated/ComparerExtensions.cs b/src/Sarif/Autogenerated/ComparerExtensions.cs index f6b348ed3..9f54fb42f 100644 --- a/src/Sarif/Autogenerated/ComparerExtensions.cs +++ b/src/Sarif/Autogenerated/ComparerExtensions.cs @@ -8,7 +8,7 @@ namespace Microsoft.CodeAnalysis.Sarif { - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal static class ComparerExtensions { public static bool TryReferenceCompares(this object left, object right, out int compareResult) diff --git a/src/Sarif/Autogenerated/ConfigurationOverride.cs b/src/Sarif/Autogenerated/ConfigurationOverride.cs index b500b236f..279139812 100644 --- a/src/Sarif/Autogenerated/ConfigurationOverride.cs +++ b/src/Sarif/Autogenerated/ConfigurationOverride.cs @@ -12,7 +12,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Information about how a specific rule or notification was reconfigured at runtime. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class ConfigurationOverride : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => ConfigurationOverrideEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/ConfigurationOverrideComparer.cs b/src/Sarif/Autogenerated/ConfigurationOverrideComparer.cs index 3b4b38ef1..cb40f8165 100644 --- a/src/Sarif/Autogenerated/ConfigurationOverrideComparer.cs +++ b/src/Sarif/Autogenerated/ConfigurationOverrideComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ConfigurationOverride for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ConfigurationOverrideComparer : IComparer { internal static readonly ConfigurationOverrideComparer Instance = new ConfigurationOverrideComparer(); diff --git a/src/Sarif/Autogenerated/ConfigurationOverrideEqualityComparer.cs b/src/Sarif/Autogenerated/ConfigurationOverrideEqualityComparer.cs index 9664fb1d8..6ba8f5a2c 100644 --- a/src/Sarif/Autogenerated/ConfigurationOverrideEqualityComparer.cs +++ b/src/Sarif/Autogenerated/ConfigurationOverrideEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ConfigurationOverride for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ConfigurationOverrideEqualityComparer : IEqualityComparer { internal static readonly ConfigurationOverrideEqualityComparer Instance = new ConfigurationOverrideEqualityComparer(); diff --git a/src/Sarif/Autogenerated/Conversion.cs b/src/Sarif/Autogenerated/Conversion.cs index c970c2cf5..69871c8f5 100644 --- a/src/Sarif/Autogenerated/Conversion.cs +++ b/src/Sarif/Autogenerated/Conversion.cs @@ -13,7 +13,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Describes how a converter transformed the output of a static analysis tool from the analysis tool's native output format into the SARIF format. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class Conversion : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => ConversionEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/ConversionComparer.cs b/src/Sarif/Autogenerated/ConversionComparer.cs index 789344b48..8100a715b 100644 --- a/src/Sarif/Autogenerated/ConversionComparer.cs +++ b/src/Sarif/Autogenerated/ConversionComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Conversion for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ConversionComparer : IComparer { internal static readonly ConversionComparer Instance = new ConversionComparer(); diff --git a/src/Sarif/Autogenerated/ConversionEqualityComparer.cs b/src/Sarif/Autogenerated/ConversionEqualityComparer.cs index bf1f66340..e1333e757 100644 --- a/src/Sarif/Autogenerated/ConversionEqualityComparer.cs +++ b/src/Sarif/Autogenerated/ConversionEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Conversion for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ConversionEqualityComparer : IEqualityComparer { internal static readonly ConversionEqualityComparer Instance = new ConversionEqualityComparer(); diff --git a/src/Sarif/Autogenerated/Edge.cs b/src/Sarif/Autogenerated/Edge.cs index 656c611ad..6682c1f96 100644 --- a/src/Sarif/Autogenerated/Edge.cs +++ b/src/Sarif/Autogenerated/Edge.cs @@ -12,7 +12,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Represents a directed edge in a graph. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class Edge : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => EdgeEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/EdgeComparer.cs b/src/Sarif/Autogenerated/EdgeComparer.cs index 114f05540..cc5d11263 100644 --- a/src/Sarif/Autogenerated/EdgeComparer.cs +++ b/src/Sarif/Autogenerated/EdgeComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Edge for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class EdgeComparer : IComparer { internal static readonly EdgeComparer Instance = new EdgeComparer(); diff --git a/src/Sarif/Autogenerated/EdgeEqualityComparer.cs b/src/Sarif/Autogenerated/EdgeEqualityComparer.cs index 499d93473..f148d6953 100644 --- a/src/Sarif/Autogenerated/EdgeEqualityComparer.cs +++ b/src/Sarif/Autogenerated/EdgeEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Edge for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class EdgeEqualityComparer : IEqualityComparer { internal static readonly EdgeEqualityComparer Instance = new EdgeEqualityComparer(); diff --git a/src/Sarif/Autogenerated/EdgeTraversal.cs b/src/Sarif/Autogenerated/EdgeTraversal.cs index 9b37575cc..12c1f6b3b 100644 --- a/src/Sarif/Autogenerated/EdgeTraversal.cs +++ b/src/Sarif/Autogenerated/EdgeTraversal.cs @@ -12,7 +12,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Represents the traversal of a single edge during a graph traversal. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class EdgeTraversal : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => EdgeTraversalEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/EdgeTraversalComparer.cs b/src/Sarif/Autogenerated/EdgeTraversalComparer.cs index 1c765e489..12714005b 100644 --- a/src/Sarif/Autogenerated/EdgeTraversalComparer.cs +++ b/src/Sarif/Autogenerated/EdgeTraversalComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type EdgeTraversal for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class EdgeTraversalComparer : IComparer { internal static readonly EdgeTraversalComparer Instance = new EdgeTraversalComparer(); diff --git a/src/Sarif/Autogenerated/EdgeTraversalEqualityComparer.cs b/src/Sarif/Autogenerated/EdgeTraversalEqualityComparer.cs index e96416005..07ecc427d 100644 --- a/src/Sarif/Autogenerated/EdgeTraversalEqualityComparer.cs +++ b/src/Sarif/Autogenerated/EdgeTraversalEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type EdgeTraversal for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class EdgeTraversalEqualityComparer : IEqualityComparer { internal static readonly EdgeTraversalEqualityComparer Instance = new EdgeTraversalEqualityComparer(); diff --git a/src/Sarif/Autogenerated/ExceptionData.cs b/src/Sarif/Autogenerated/ExceptionData.cs index f72e702c0..48ee7521d 100644 --- a/src/Sarif/Autogenerated/ExceptionData.cs +++ b/src/Sarif/Autogenerated/ExceptionData.cs @@ -13,7 +13,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Describes a runtime exception encountered during the execution of an analysis tool. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class ExceptionData : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => ExceptionDataEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/ExceptionDataComparer.cs b/src/Sarif/Autogenerated/ExceptionDataComparer.cs index 65db7cef5..71fcfd5ae 100644 --- a/src/Sarif/Autogenerated/ExceptionDataComparer.cs +++ b/src/Sarif/Autogenerated/ExceptionDataComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ExceptionData for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ExceptionDataComparer : IComparer { internal static readonly ExceptionDataComparer Instance = new ExceptionDataComparer(); diff --git a/src/Sarif/Autogenerated/ExceptionDataEqualityComparer.cs b/src/Sarif/Autogenerated/ExceptionDataEqualityComparer.cs index fa2929d5a..96d4817b5 100644 --- a/src/Sarif/Autogenerated/ExceptionDataEqualityComparer.cs +++ b/src/Sarif/Autogenerated/ExceptionDataEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ExceptionData for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ExceptionDataEqualityComparer : IEqualityComparer { internal static readonly ExceptionDataEqualityComparer Instance = new ExceptionDataEqualityComparer(); diff --git a/src/Sarif/Autogenerated/ExternalProperties.cs b/src/Sarif/Autogenerated/ExternalProperties.cs index db5d0b3c1..b335f3e15 100644 --- a/src/Sarif/Autogenerated/ExternalProperties.cs +++ b/src/Sarif/Autogenerated/ExternalProperties.cs @@ -13,7 +13,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// The top-level element of an external property file. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class ExternalProperties : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => ExternalPropertiesEqualityComparer.Instance; @@ -51,13 +51,13 @@ public virtual SarifNodeKind SarifNodeKind /// A stable, unique identifier for this external properties object, in the form of a GUID. /// [DataMember(Name = "guid", IsRequired = false, EmitDefaultValue = false)] - public virtual string Guid { get; set; } + public virtual Guid? Guid { get; set; } /// /// A stable, unique identifier for the run associated with this external properties object, in the form of a GUID. /// [DataMember(Name = "runGuid", IsRequired = false, EmitDefaultValue = false)] - public virtual string RunGuid { get; set; } + public virtual Guid? RunGuid { get; set; } /// /// A conversion object that will be merged with a separate run. @@ -246,7 +246,7 @@ public ExternalProperties() /// /// An initialization value for the property. /// - public ExternalProperties(Uri schema, SarifVersion version, string guid, string runGuid, Conversion conversion, IEnumerable graphs, PropertyBag externalizedProperties, IEnumerable artifacts, IEnumerable invocations, IEnumerable logicalLocations, IEnumerable threadFlowLocations, IEnumerable results, IEnumerable taxonomies, ToolComponent driver, IEnumerable extensions, IEnumerable policies, IEnumerable translations, IEnumerable
addresses, IEnumerable webRequests, IEnumerable webResponses, IDictionary properties) + public ExternalProperties(Uri schema, SarifVersion version, Guid? guid, Guid? runGuid, Conversion conversion, IEnumerable graphs, PropertyBag externalizedProperties, IEnumerable artifacts, IEnumerable invocations, IEnumerable logicalLocations, IEnumerable threadFlowLocations, IEnumerable results, IEnumerable taxonomies, ToolComponent driver, IEnumerable extensions, IEnumerable policies, IEnumerable translations, IEnumerable
addresses, IEnumerable webRequests, IEnumerable webResponses, IDictionary properties) { Init(schema, version, guid, runGuid, conversion, graphs, externalizedProperties, artifacts, invocations, logicalLocations, threadFlowLocations, results, taxonomies, driver, extensions, policies, translations, addresses, webRequests, webResponses, properties); } @@ -288,7 +288,7 @@ private ISarifNode DeepCloneCore() return new ExternalProperties(this); } - protected virtual void Init(Uri schema, SarifVersion version, string guid, string runGuid, Conversion conversion, IEnumerable graphs, PropertyBag externalizedProperties, IEnumerable artifacts, IEnumerable invocations, IEnumerable logicalLocations, IEnumerable threadFlowLocations, IEnumerable results, IEnumerable taxonomies, ToolComponent driver, IEnumerable extensions, IEnumerable policies, IEnumerable translations, IEnumerable
addresses, IEnumerable webRequests, IEnumerable webResponses, IDictionary properties) + protected virtual void Init(Uri schema, SarifVersion version, Guid? guid, Guid? runGuid, Conversion conversion, IEnumerable graphs, PropertyBag externalizedProperties, IEnumerable artifacts, IEnumerable invocations, IEnumerable logicalLocations, IEnumerable threadFlowLocations, IEnumerable results, IEnumerable taxonomies, ToolComponent driver, IEnumerable extensions, IEnumerable policies, IEnumerable translations, IEnumerable
addresses, IEnumerable webRequests, IEnumerable webResponses, IDictionary properties) { if (schema != null) { diff --git a/src/Sarif/Autogenerated/ExternalPropertiesComparer.cs b/src/Sarif/Autogenerated/ExternalPropertiesComparer.cs index e6e470e6f..207077036 100644 --- a/src/Sarif/Autogenerated/ExternalPropertiesComparer.cs +++ b/src/Sarif/Autogenerated/ExternalPropertiesComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ExternalProperties for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ExternalPropertiesComparer : IComparer { internal static readonly ExternalPropertiesComparer Instance = new ExternalPropertiesComparer(); @@ -38,13 +38,13 @@ public int Compare(ExternalProperties left, ExternalProperties right) return compareResult; } - compareResult = string.Compare(left.Guid, right.Guid); + compareResult = left.Guid.CompareTo(right.Guid); if (compareResult != 0) { return compareResult; } - compareResult = string.Compare(left.RunGuid, right.RunGuid); + compareResult = left.RunGuid.CompareTo(right.RunGuid); if (compareResult != 0) { return compareResult; diff --git a/src/Sarif/Autogenerated/ExternalPropertiesEqualityComparer.cs b/src/Sarif/Autogenerated/ExternalPropertiesEqualityComparer.cs index 2fe3d4919..d18f66e16 100644 --- a/src/Sarif/Autogenerated/ExternalPropertiesEqualityComparer.cs +++ b/src/Sarif/Autogenerated/ExternalPropertiesEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ExternalProperties for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ExternalPropertiesEqualityComparer : IEqualityComparer { internal static readonly ExternalPropertiesEqualityComparer Instance = new ExternalPropertiesEqualityComparer(); diff --git a/src/Sarif/Autogenerated/ExternalPropertyFileReference.cs b/src/Sarif/Autogenerated/ExternalPropertyFileReference.cs index 720d8ddda..78585e40d 100644 --- a/src/Sarif/Autogenerated/ExternalPropertyFileReference.cs +++ b/src/Sarif/Autogenerated/ExternalPropertyFileReference.cs @@ -14,7 +14,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Contains information that enables a SARIF consumer to locate the external property file that contains the value of an externalized property associated with the run. ///
[DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class ExternalPropertyFileReference : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => ExternalPropertyFileReferenceEqualityComparer.Instance; @@ -45,7 +45,7 @@ public virtual SarifNodeKind SarifNodeKind /// A stable, unique identifier for the external property file in the form of a GUID. /// [DataMember(Name = "guid", IsRequired = false, EmitDefaultValue = false)] - public virtual string Guid { get; set; } + public virtual Guid? Guid { get; set; } /// /// A non-negative integer specifying the number of items contained in the external property file. @@ -84,7 +84,7 @@ public ExternalPropertyFileReference() /// /// An initialization value for the property. /// - public ExternalPropertyFileReference(ArtifactLocation location, string guid, int itemCount, IDictionary properties) + public ExternalPropertyFileReference(ArtifactLocation location, Guid? guid, int itemCount, IDictionary properties) { Init(location, guid, itemCount, properties); } @@ -126,7 +126,7 @@ private ISarifNode DeepCloneCore() return new ExternalPropertyFileReference(this); } - protected virtual void Init(ArtifactLocation location, string guid, int itemCount, IDictionary properties) + protected virtual void Init(ArtifactLocation location, Guid? guid, int itemCount, IDictionary properties) { if (location != null) { diff --git a/src/Sarif/Autogenerated/ExternalPropertyFileReferenceComparer.cs b/src/Sarif/Autogenerated/ExternalPropertyFileReferenceComparer.cs index a7308b6ae..ab2fc0dbf 100644 --- a/src/Sarif/Autogenerated/ExternalPropertyFileReferenceComparer.cs +++ b/src/Sarif/Autogenerated/ExternalPropertyFileReferenceComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ExternalPropertyFileReference for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ExternalPropertyFileReferenceComparer : IComparer { internal static readonly ExternalPropertyFileReferenceComparer Instance = new ExternalPropertyFileReferenceComparer(); @@ -32,7 +32,7 @@ public int Compare(ExternalPropertyFileReference left, ExternalPropertyFileRefer return compareResult; } - compareResult = string.Compare(left.Guid, right.Guid); + compareResult = left.Guid.CompareTo(right.Guid); if (compareResult != 0) { return compareResult; diff --git a/src/Sarif/Autogenerated/ExternalPropertyFileReferenceEqualityComparer.cs b/src/Sarif/Autogenerated/ExternalPropertyFileReferenceEqualityComparer.cs index 3c7acfb88..c70006cd2 100644 --- a/src/Sarif/Autogenerated/ExternalPropertyFileReferenceEqualityComparer.cs +++ b/src/Sarif/Autogenerated/ExternalPropertyFileReferenceEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ExternalPropertyFileReference for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ExternalPropertyFileReferenceEqualityComparer : IEqualityComparer { internal static readonly ExternalPropertyFileReferenceEqualityComparer Instance = new ExternalPropertyFileReferenceEqualityComparer(); diff --git a/src/Sarif/Autogenerated/ExternalPropertyFileReferences.cs b/src/Sarif/Autogenerated/ExternalPropertyFileReferences.cs index 0c82c5571..3387f59e6 100644 --- a/src/Sarif/Autogenerated/ExternalPropertyFileReferences.cs +++ b/src/Sarif/Autogenerated/ExternalPropertyFileReferences.cs @@ -13,7 +13,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// References to external property files that should be inlined with the content of a root log file. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class ExternalPropertyFileReferences : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => ExternalPropertyFileReferencesEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/ExternalPropertyFileReferencesComparer.cs b/src/Sarif/Autogenerated/ExternalPropertyFileReferencesComparer.cs index eb690b52b..bb1fa1c38 100644 --- a/src/Sarif/Autogenerated/ExternalPropertyFileReferencesComparer.cs +++ b/src/Sarif/Autogenerated/ExternalPropertyFileReferencesComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ExternalPropertyFileReferences for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ExternalPropertyFileReferencesComparer : IComparer { internal static readonly ExternalPropertyFileReferencesComparer Instance = new ExternalPropertyFileReferencesComparer(); diff --git a/src/Sarif/Autogenerated/ExternalPropertyFileReferencesEqualityComparer.cs b/src/Sarif/Autogenerated/ExternalPropertyFileReferencesEqualityComparer.cs index c8098570a..7af288312 100644 --- a/src/Sarif/Autogenerated/ExternalPropertyFileReferencesEqualityComparer.cs +++ b/src/Sarif/Autogenerated/ExternalPropertyFileReferencesEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ExternalPropertyFileReferences for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ExternalPropertyFileReferencesEqualityComparer : IEqualityComparer { internal static readonly ExternalPropertyFileReferencesEqualityComparer Instance = new ExternalPropertyFileReferencesEqualityComparer(); diff --git a/src/Sarif/Autogenerated/FailureLevel.cs b/src/Sarif/Autogenerated/FailureLevel.cs index 6cc9b4206..bbd402b73 100644 --- a/src/Sarif/Autogenerated/FailureLevel.cs +++ b/src/Sarif/Autogenerated/FailureLevel.cs @@ -8,7 +8,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Values specifying the failure level of a notification or result. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public enum FailureLevel { None, diff --git a/src/Sarif/Autogenerated/Fix.cs b/src/Sarif/Autogenerated/Fix.cs index 239494e43..2d5ba7395 100644 --- a/src/Sarif/Autogenerated/Fix.cs +++ b/src/Sarif/Autogenerated/Fix.cs @@ -12,7 +12,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// A proposed fix for the problem represented by a result object. A fix specifies a set of artifacts to modify. For each artifact, it specifies a set of bytes to remove, and provides a set of new bytes to replace them. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class Fix : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => FixEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/FixComparer.cs b/src/Sarif/Autogenerated/FixComparer.cs index 13c56b9a4..edf863f8c 100644 --- a/src/Sarif/Autogenerated/FixComparer.cs +++ b/src/Sarif/Autogenerated/FixComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Fix for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class FixComparer : IComparer { internal static readonly FixComparer Instance = new FixComparer(); diff --git a/src/Sarif/Autogenerated/FixEqualityComparer.cs b/src/Sarif/Autogenerated/FixEqualityComparer.cs index 000b2fcab..9e117ce2c 100644 --- a/src/Sarif/Autogenerated/FixEqualityComparer.cs +++ b/src/Sarif/Autogenerated/FixEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Fix for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class FixEqualityComparer : IEqualityComparer { internal static readonly FixEqualityComparer Instance = new FixEqualityComparer(); diff --git a/src/Sarif/Autogenerated/Graph.cs b/src/Sarif/Autogenerated/Graph.cs index 6a8cfbf72..65a8d5f31 100644 --- a/src/Sarif/Autogenerated/Graph.cs +++ b/src/Sarif/Autogenerated/Graph.cs @@ -13,7 +13,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// A network of nodes and directed edges that describes some aspect of the structure of the code (for example, a call graph). /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class Graph : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => GraphEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/GraphComparer.cs b/src/Sarif/Autogenerated/GraphComparer.cs index 84ad5d018..075c92eea 100644 --- a/src/Sarif/Autogenerated/GraphComparer.cs +++ b/src/Sarif/Autogenerated/GraphComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Graph for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class GraphComparer : IComparer { internal static readonly GraphComparer Instance = new GraphComparer(); diff --git a/src/Sarif/Autogenerated/GraphEqualityComparer.cs b/src/Sarif/Autogenerated/GraphEqualityComparer.cs index 0d0c434ba..255da37f6 100644 --- a/src/Sarif/Autogenerated/GraphEqualityComparer.cs +++ b/src/Sarif/Autogenerated/GraphEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Graph for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class GraphEqualityComparer : IEqualityComparer { internal static readonly GraphEqualityComparer Instance = new GraphEqualityComparer(); diff --git a/src/Sarif/Autogenerated/GraphTraversal.cs b/src/Sarif/Autogenerated/GraphTraversal.cs index c4035da40..b89295c6e 100644 --- a/src/Sarif/Autogenerated/GraphTraversal.cs +++ b/src/Sarif/Autogenerated/GraphTraversal.cs @@ -14,7 +14,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Represents a path through a graph. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class GraphTraversal : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => GraphTraversalEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/GraphTraversalComparer.cs b/src/Sarif/Autogenerated/GraphTraversalComparer.cs index 33d772d24..04e431411 100644 --- a/src/Sarif/Autogenerated/GraphTraversalComparer.cs +++ b/src/Sarif/Autogenerated/GraphTraversalComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type GraphTraversal for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class GraphTraversalComparer : IComparer { internal static readonly GraphTraversalComparer Instance = new GraphTraversalComparer(); diff --git a/src/Sarif/Autogenerated/GraphTraversalEqualityComparer.cs b/src/Sarif/Autogenerated/GraphTraversalEqualityComparer.cs index 099f9cce8..0d006500f 100644 --- a/src/Sarif/Autogenerated/GraphTraversalEqualityComparer.cs +++ b/src/Sarif/Autogenerated/GraphTraversalEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type GraphTraversal for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class GraphTraversalEqualityComparer : IEqualityComparer { internal static readonly GraphTraversalEqualityComparer Instance = new GraphTraversalEqualityComparer(); diff --git a/src/Sarif/Autogenerated/ISarifNode.cs b/src/Sarif/Autogenerated/ISarifNode.cs index dd19f2904..02aa3ef1b 100644 --- a/src/Sarif/Autogenerated/ISarifNode.cs +++ b/src/Sarif/Autogenerated/ISarifNode.cs @@ -8,7 +8,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// An interface for all types generated from the Sarif schema. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public interface ISarifNode { /// diff --git a/src/Sarif/Autogenerated/Invocation.cs b/src/Sarif/Autogenerated/Invocation.cs index 6eb1d505f..432f81129 100644 --- a/src/Sarif/Autogenerated/Invocation.cs +++ b/src/Sarif/Autogenerated/Invocation.cs @@ -14,7 +14,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// The runtime environment of the analysis tool run. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class Invocation : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => InvocationEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/InvocationComparer.cs b/src/Sarif/Autogenerated/InvocationComparer.cs index 314f2d035..84519509c 100644 --- a/src/Sarif/Autogenerated/InvocationComparer.cs +++ b/src/Sarif/Autogenerated/InvocationComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Invocation for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class InvocationComparer : IComparer { internal static readonly InvocationComparer Instance = new InvocationComparer(); diff --git a/src/Sarif/Autogenerated/InvocationEqualityComparer.cs b/src/Sarif/Autogenerated/InvocationEqualityComparer.cs index d738e3acd..e51fb8624 100644 --- a/src/Sarif/Autogenerated/InvocationEqualityComparer.cs +++ b/src/Sarif/Autogenerated/InvocationEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Invocation for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class InvocationEqualityComparer : IEqualityComparer { internal static readonly InvocationEqualityComparer Instance = new InvocationEqualityComparer(); diff --git a/src/Sarif/Autogenerated/Location.cs b/src/Sarif/Autogenerated/Location.cs index 21a679f6b..2aa8d21a2 100644 --- a/src/Sarif/Autogenerated/Location.cs +++ b/src/Sarif/Autogenerated/Location.cs @@ -16,7 +16,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// A location within a programming artifact. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class Location : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => LocationEqualityComparer.Instance; @@ -45,11 +45,6 @@ public virtual SarifNodeKind SarifNodeKind [JsonProperty(DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate)] public virtual BigInteger Id { get; set; } - public bool ShouldSerializeId() - { - return Id >= 0; - } - /// /// Identifies the artifact and region. /// diff --git a/src/Sarif/Autogenerated/LocationComparer.cs b/src/Sarif/Autogenerated/LocationComparer.cs index b671e7258..7e0748148 100644 --- a/src/Sarif/Autogenerated/LocationComparer.cs +++ b/src/Sarif/Autogenerated/LocationComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Location for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class LocationComparer : IComparer { internal static readonly LocationComparer Instance = new LocationComparer(); diff --git a/src/Sarif/Autogenerated/LocationEqualityComparer.cs b/src/Sarif/Autogenerated/LocationEqualityComparer.cs index 83b3502e8..280751d4d 100644 --- a/src/Sarif/Autogenerated/LocationEqualityComparer.cs +++ b/src/Sarif/Autogenerated/LocationEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Location for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class LocationEqualityComparer : IEqualityComparer { internal static readonly LocationEqualityComparer Instance = new LocationEqualityComparer(); diff --git a/src/Sarif/Autogenerated/LocationRelationship.cs b/src/Sarif/Autogenerated/LocationRelationship.cs index 1b090ee2c..91725c50a 100644 --- a/src/Sarif/Autogenerated/LocationRelationship.cs +++ b/src/Sarif/Autogenerated/LocationRelationship.cs @@ -13,7 +13,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Information about the relation of one location to another. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class LocationRelationship : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => LocationRelationshipEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/LocationRelationshipComparer.cs b/src/Sarif/Autogenerated/LocationRelationshipComparer.cs index f7241cd2d..b6c3f97a9 100644 --- a/src/Sarif/Autogenerated/LocationRelationshipComparer.cs +++ b/src/Sarif/Autogenerated/LocationRelationshipComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type LocationRelationship for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class LocationRelationshipComparer : IComparer { internal static readonly LocationRelationshipComparer Instance = new LocationRelationshipComparer(); diff --git a/src/Sarif/Autogenerated/LocationRelationshipEqualityComparer.cs b/src/Sarif/Autogenerated/LocationRelationshipEqualityComparer.cs index 30c588751..1f81a2e82 100644 --- a/src/Sarif/Autogenerated/LocationRelationshipEqualityComparer.cs +++ b/src/Sarif/Autogenerated/LocationRelationshipEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type LocationRelationship for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class LocationRelationshipEqualityComparer : IEqualityComparer { internal static readonly LocationRelationshipEqualityComparer Instance = new LocationRelationshipEqualityComparer(); diff --git a/src/Sarif/Autogenerated/LogicalLocation.cs b/src/Sarif/Autogenerated/LogicalLocation.cs index 2d2685444..486dc14c1 100644 --- a/src/Sarif/Autogenerated/LogicalLocation.cs +++ b/src/Sarif/Autogenerated/LogicalLocation.cs @@ -14,7 +14,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// A logical location of a construct that produced a result. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class LogicalLocation : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => LogicalLocationEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/LogicalLocationComparer.cs b/src/Sarif/Autogenerated/LogicalLocationComparer.cs index c21704efc..be27e7647 100644 --- a/src/Sarif/Autogenerated/LogicalLocationComparer.cs +++ b/src/Sarif/Autogenerated/LogicalLocationComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type LogicalLocation for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class LogicalLocationComparer : IComparer { internal static readonly LogicalLocationComparer Instance = new LogicalLocationComparer(); diff --git a/src/Sarif/Autogenerated/LogicalLocationEqualityComparer.cs b/src/Sarif/Autogenerated/LogicalLocationEqualityComparer.cs index a6db9ee8a..fc7e2d051 100644 --- a/src/Sarif/Autogenerated/LogicalLocationEqualityComparer.cs +++ b/src/Sarif/Autogenerated/LogicalLocationEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type LogicalLocation for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class LogicalLocationEqualityComparer : IEqualityComparer { internal static readonly LogicalLocationEqualityComparer Instance = new LogicalLocationEqualityComparer(); diff --git a/src/Sarif/Autogenerated/Message.cs b/src/Sarif/Autogenerated/Message.cs index 7f2d98043..29b98476f 100644 --- a/src/Sarif/Autogenerated/Message.cs +++ b/src/Sarif/Autogenerated/Message.cs @@ -13,7 +13,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Encapsulates a message intended to be read by the end user. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class Message : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => MessageEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/MessageComparer.cs b/src/Sarif/Autogenerated/MessageComparer.cs index 744ce7b02..2102913ee 100644 --- a/src/Sarif/Autogenerated/MessageComparer.cs +++ b/src/Sarif/Autogenerated/MessageComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Message for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class MessageComparer : IComparer { internal static readonly MessageComparer Instance = new MessageComparer(); diff --git a/src/Sarif/Autogenerated/MessageEqualityComparer.cs b/src/Sarif/Autogenerated/MessageEqualityComparer.cs index 5e0653af7..82763a1e6 100644 --- a/src/Sarif/Autogenerated/MessageEqualityComparer.cs +++ b/src/Sarif/Autogenerated/MessageEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Message for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class MessageEqualityComparer : IEqualityComparer { internal static readonly MessageEqualityComparer Instance = new MessageEqualityComparer(); diff --git a/src/Sarif/Autogenerated/MultiformatMessageString.cs b/src/Sarif/Autogenerated/MultiformatMessageString.cs index ece19ad10..06d701007 100644 --- a/src/Sarif/Autogenerated/MultiformatMessageString.cs +++ b/src/Sarif/Autogenerated/MultiformatMessageString.cs @@ -12,7 +12,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// A message string or message format string rendered in multiple formats. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class MultiformatMessageString : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => MultiformatMessageStringEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/MultiformatMessageStringComparer.cs b/src/Sarif/Autogenerated/MultiformatMessageStringComparer.cs index 398d34b54..e1bd485c2 100644 --- a/src/Sarif/Autogenerated/MultiformatMessageStringComparer.cs +++ b/src/Sarif/Autogenerated/MultiformatMessageStringComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type MultiformatMessageString for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class MultiformatMessageStringComparer : IComparer { internal static readonly MultiformatMessageStringComparer Instance = new MultiformatMessageStringComparer(); diff --git a/src/Sarif/Autogenerated/MultiformatMessageStringEqualityComparer.cs b/src/Sarif/Autogenerated/MultiformatMessageStringEqualityComparer.cs index c0fc9a3d7..729390724 100644 --- a/src/Sarif/Autogenerated/MultiformatMessageStringEqualityComparer.cs +++ b/src/Sarif/Autogenerated/MultiformatMessageStringEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type MultiformatMessageString for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class MultiformatMessageStringEqualityComparer : IEqualityComparer { internal static readonly MultiformatMessageStringEqualityComparer Instance = new MultiformatMessageStringEqualityComparer(); diff --git a/src/Sarif/Autogenerated/Node.cs b/src/Sarif/Autogenerated/Node.cs index f5cc51ac1..075ea492b 100644 --- a/src/Sarif/Autogenerated/Node.cs +++ b/src/Sarif/Autogenerated/Node.cs @@ -13,7 +13,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Represents a node in a graph. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class Node : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => NodeEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/NodeComparer.cs b/src/Sarif/Autogenerated/NodeComparer.cs index f8667e649..d997dcf4d 100644 --- a/src/Sarif/Autogenerated/NodeComparer.cs +++ b/src/Sarif/Autogenerated/NodeComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Node for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class NodeComparer : IComparer { internal static readonly NodeComparer Instance = new NodeComparer(); diff --git a/src/Sarif/Autogenerated/NodeEqualityComparer.cs b/src/Sarif/Autogenerated/NodeEqualityComparer.cs index ec8a4608c..c9c27023b 100644 --- a/src/Sarif/Autogenerated/NodeEqualityComparer.cs +++ b/src/Sarif/Autogenerated/NodeEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Node for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class NodeEqualityComparer : IEqualityComparer { internal static readonly NodeEqualityComparer Instance = new NodeEqualityComparer(); diff --git a/src/Sarif/Autogenerated/Notification.cs b/src/Sarif/Autogenerated/Notification.cs index 83f1df506..1673c89e2 100644 --- a/src/Sarif/Autogenerated/Notification.cs +++ b/src/Sarif/Autogenerated/Notification.cs @@ -14,7 +14,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Describes a condition relevant to the tool itself, as opposed to being relevant to a target being analyzed by the tool. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class Notification : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => NotificationEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/NotificationComparer.cs b/src/Sarif/Autogenerated/NotificationComparer.cs index 935665af3..ff8434c4a 100644 --- a/src/Sarif/Autogenerated/NotificationComparer.cs +++ b/src/Sarif/Autogenerated/NotificationComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Notification for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class NotificationComparer : IComparer { internal static readonly NotificationComparer Instance = new NotificationComparer(); diff --git a/src/Sarif/Autogenerated/NotificationEqualityComparer.cs b/src/Sarif/Autogenerated/NotificationEqualityComparer.cs index 16bc5bfe2..a9ff82f06 100644 --- a/src/Sarif/Autogenerated/NotificationEqualityComparer.cs +++ b/src/Sarif/Autogenerated/NotificationEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Notification for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class NotificationEqualityComparer : IEqualityComparer { internal static readonly NotificationEqualityComparer Instance = new NotificationEqualityComparer(); diff --git a/src/Sarif/Autogenerated/PhysicalLocation.cs b/src/Sarif/Autogenerated/PhysicalLocation.cs index 7608cfc11..50a430b9e 100644 --- a/src/Sarif/Autogenerated/PhysicalLocation.cs +++ b/src/Sarif/Autogenerated/PhysicalLocation.cs @@ -12,7 +12,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// A physical location relevant to a result. Specifies a reference to a programming artifact together with a range of bytes or characters within that artifact. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class PhysicalLocation : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => PhysicalLocationEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/PhysicalLocationComparer.cs b/src/Sarif/Autogenerated/PhysicalLocationComparer.cs index 0c4146c63..c8394c73d 100644 --- a/src/Sarif/Autogenerated/PhysicalLocationComparer.cs +++ b/src/Sarif/Autogenerated/PhysicalLocationComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type PhysicalLocation for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class PhysicalLocationComparer : IComparer { internal static readonly PhysicalLocationComparer Instance = new PhysicalLocationComparer(); diff --git a/src/Sarif/Autogenerated/PhysicalLocationEqualityComparer.cs b/src/Sarif/Autogenerated/PhysicalLocationEqualityComparer.cs index 5228c3cf6..9354a2f6e 100644 --- a/src/Sarif/Autogenerated/PhysicalLocationEqualityComparer.cs +++ b/src/Sarif/Autogenerated/PhysicalLocationEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type PhysicalLocation for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class PhysicalLocationEqualityComparer : IEqualityComparer { internal static readonly PhysicalLocationEqualityComparer Instance = new PhysicalLocationEqualityComparer(); diff --git a/src/Sarif/Autogenerated/PropertyBag.cs b/src/Sarif/Autogenerated/PropertyBag.cs index 32e8de31f..d5d053f4b 100644 --- a/src/Sarif/Autogenerated/PropertyBag.cs +++ b/src/Sarif/Autogenerated/PropertyBag.cs @@ -13,7 +13,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Key/value pairs that provide additional information about the object. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class PropertyBag : ISarifNode { public static IEqualityComparer ValueComparer => PropertyBagEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/PropertyBagComparer.cs b/src/Sarif/Autogenerated/PropertyBagComparer.cs index 7dabe4775..3c18daa8d 100644 --- a/src/Sarif/Autogenerated/PropertyBagComparer.cs +++ b/src/Sarif/Autogenerated/PropertyBagComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type PropertyBag for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class PropertyBagComparer : IComparer { internal static readonly PropertyBagComparer Instance = new PropertyBagComparer(); diff --git a/src/Sarif/Autogenerated/PropertyBagEqualityComparer.cs b/src/Sarif/Autogenerated/PropertyBagEqualityComparer.cs index d21019873..718ac2de9 100644 --- a/src/Sarif/Autogenerated/PropertyBagEqualityComparer.cs +++ b/src/Sarif/Autogenerated/PropertyBagEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type PropertyBag for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class PropertyBagEqualityComparer : IEqualityComparer { internal static readonly PropertyBagEqualityComparer Instance = new PropertyBagEqualityComparer(); diff --git a/src/Sarif/Autogenerated/Rectangle.cs b/src/Sarif/Autogenerated/Rectangle.cs index 0c57f524c..a52887102 100644 --- a/src/Sarif/Autogenerated/Rectangle.cs +++ b/src/Sarif/Autogenerated/Rectangle.cs @@ -12,7 +12,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// An area within an image. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class Rectangle : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => RectangleEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/RectangleComparer.cs b/src/Sarif/Autogenerated/RectangleComparer.cs index acdccb6f6..ae667f74a 100644 --- a/src/Sarif/Autogenerated/RectangleComparer.cs +++ b/src/Sarif/Autogenerated/RectangleComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Rectangle for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class RectangleComparer : IComparer { internal static readonly RectangleComparer Instance = new RectangleComparer(); diff --git a/src/Sarif/Autogenerated/RectangleEqualityComparer.cs b/src/Sarif/Autogenerated/RectangleEqualityComparer.cs index 767180b8a..780953e97 100644 --- a/src/Sarif/Autogenerated/RectangleEqualityComparer.cs +++ b/src/Sarif/Autogenerated/RectangleEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Rectangle for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class RectangleEqualityComparer : IEqualityComparer { internal static readonly RectangleEqualityComparer Instance = new RectangleEqualityComparer(); diff --git a/src/Sarif/Autogenerated/Region.cs b/src/Sarif/Autogenerated/Region.cs index 3040c7e84..c30668cad 100644 --- a/src/Sarif/Autogenerated/Region.cs +++ b/src/Sarif/Autogenerated/Region.cs @@ -14,7 +14,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// A region within an artifact where a result was detected. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class Region : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => RegionEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/RegionComparer.cs b/src/Sarif/Autogenerated/RegionComparer.cs index 6fc7ecc6a..97712cf0d 100644 --- a/src/Sarif/Autogenerated/RegionComparer.cs +++ b/src/Sarif/Autogenerated/RegionComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Region for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class RegionComparer : IComparer { internal static readonly RegionComparer Instance = new RegionComparer(); diff --git a/src/Sarif/Autogenerated/RegionEqualityComparer.cs b/src/Sarif/Autogenerated/RegionEqualityComparer.cs index a769e0f63..d8d4b7d21 100644 --- a/src/Sarif/Autogenerated/RegionEqualityComparer.cs +++ b/src/Sarif/Autogenerated/RegionEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Region for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class RegionEqualityComparer : IEqualityComparer { internal static readonly RegionEqualityComparer Instance = new RegionEqualityComparer(); diff --git a/src/Sarif/Autogenerated/Replacement.cs b/src/Sarif/Autogenerated/Replacement.cs index d505b4521..f6111f3e5 100644 --- a/src/Sarif/Autogenerated/Replacement.cs +++ b/src/Sarif/Autogenerated/Replacement.cs @@ -12,7 +12,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// The replacement of a single region of an artifact. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class Replacement : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => ReplacementEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/ReplacementComparer.cs b/src/Sarif/Autogenerated/ReplacementComparer.cs index ab467e804..51fd9f549 100644 --- a/src/Sarif/Autogenerated/ReplacementComparer.cs +++ b/src/Sarif/Autogenerated/ReplacementComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Replacement for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ReplacementComparer : IComparer { internal static readonly ReplacementComparer Instance = new ReplacementComparer(); diff --git a/src/Sarif/Autogenerated/ReplacementEqualityComparer.cs b/src/Sarif/Autogenerated/ReplacementEqualityComparer.cs index 5941bc024..ece6427ed 100644 --- a/src/Sarif/Autogenerated/ReplacementEqualityComparer.cs +++ b/src/Sarif/Autogenerated/ReplacementEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Replacement for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ReplacementEqualityComparer : IEqualityComparer { internal static readonly ReplacementEqualityComparer Instance = new ReplacementEqualityComparer(); diff --git a/src/Sarif/Autogenerated/ReportingConfiguration.cs b/src/Sarif/Autogenerated/ReportingConfiguration.cs index df8317b58..d83441ba9 100644 --- a/src/Sarif/Autogenerated/ReportingConfiguration.cs +++ b/src/Sarif/Autogenerated/ReportingConfiguration.cs @@ -17,7 +17,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Information about a rule or notification that can be configured at runtime. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class ReportingConfiguration : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => ReportingConfigurationEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/ReportingConfigurationComparer.cs b/src/Sarif/Autogenerated/ReportingConfigurationComparer.cs index 2238572f5..bc6998168 100644 --- a/src/Sarif/Autogenerated/ReportingConfigurationComparer.cs +++ b/src/Sarif/Autogenerated/ReportingConfigurationComparer.cs @@ -11,7 +11,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ReportingConfiguration for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ReportingConfigurationComparer : IComparer { internal static readonly ReportingConfigurationComparer Instance = new ReportingConfigurationComparer(); diff --git a/src/Sarif/Autogenerated/ReportingConfigurationEqualityComparer.cs b/src/Sarif/Autogenerated/ReportingConfigurationEqualityComparer.cs index 5ccd55cb7..7e7ebbd34 100644 --- a/src/Sarif/Autogenerated/ReportingConfigurationEqualityComparer.cs +++ b/src/Sarif/Autogenerated/ReportingConfigurationEqualityComparer.cs @@ -11,7 +11,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ReportingConfiguration for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ReportingConfigurationEqualityComparer : IEqualityComparer { internal static readonly ReportingConfigurationEqualityComparer Instance = new ReportingConfigurationEqualityComparer(); diff --git a/src/Sarif/Autogenerated/ReportingDescriptor.cs b/src/Sarif/Autogenerated/ReportingDescriptor.cs index 7cfc2cfae..9fd32376b 100644 --- a/src/Sarif/Autogenerated/ReportingDescriptor.cs +++ b/src/Sarif/Autogenerated/ReportingDescriptor.cs @@ -14,7 +14,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Metadata that describes a specific report produced by the tool, as part of the analysis it provides or its runtime reporting. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class ReportingDescriptor : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => ReportingDescriptorEqualityComparer.Instance; @@ -56,13 +56,13 @@ public virtual SarifNodeKind SarifNodeKind /// A unique identifier for the reporting descriptor in the form of a GUID. /// [DataMember(Name = "guid", IsRequired = false, EmitDefaultValue = false, Order = 10)] - public virtual string Guid { get; set; } + public virtual Guid? Guid { get; set; } /// /// An array of unique identifies in the form of a GUID by which this report was known in some previous version of the analysis tool. /// [DataMember(Name = "deprecatedGuids", IsRequired = false, EmitDefaultValue = false, Order = 11)] - public virtual IList DeprecatedGuids { get; set; } + public virtual IList DeprecatedGuids { get; set; } /// /// A report identifier that is understandable to an end user. @@ -179,7 +179,7 @@ public ReportingDescriptor() /// /// An initialization value for the property. /// - public ReportingDescriptor(string id, IEnumerable deprecatedIds, string guid, IEnumerable deprecatedGuids, string name, IEnumerable deprecatedNames, MultiformatMessageString shortDescription, MultiformatMessageString fullDescription, IDictionary messageStrings, ReportingConfiguration defaultConfiguration, Uri helpUri, MultiformatMessageString help, IEnumerable relationships, IDictionary properties) + public ReportingDescriptor(string id, IEnumerable deprecatedIds, Guid? guid, IEnumerable deprecatedGuids, string name, IEnumerable deprecatedNames, MultiformatMessageString shortDescription, MultiformatMessageString fullDescription, IDictionary messageStrings, ReportingConfiguration defaultConfiguration, Uri helpUri, MultiformatMessageString help, IEnumerable relationships, IDictionary properties) { Init(id, deprecatedIds, guid, deprecatedGuids, name, deprecatedNames, shortDescription, fullDescription, messageStrings, defaultConfiguration, helpUri, help, relationships, properties); } @@ -221,7 +221,7 @@ private ISarifNode DeepCloneCore() return new ReportingDescriptor(this); } - protected virtual void Init(string id, IEnumerable deprecatedIds, string guid, IEnumerable deprecatedGuids, string name, IEnumerable deprecatedNames, MultiformatMessageString shortDescription, MultiformatMessageString fullDescription, IDictionary messageStrings, ReportingConfiguration defaultConfiguration, Uri helpUri, MultiformatMessageString help, IEnumerable relationships, IDictionary properties) + protected virtual void Init(string id, IEnumerable deprecatedIds, Guid? guid, IEnumerable deprecatedGuids, string name, IEnumerable deprecatedNames, MultiformatMessageString shortDescription, MultiformatMessageString fullDescription, IDictionary messageStrings, ReportingConfiguration defaultConfiguration, Uri helpUri, MultiformatMessageString help, IEnumerable relationships, IDictionary properties) { Id = id; if (deprecatedIds != null) @@ -238,7 +238,7 @@ protected virtual void Init(string id, IEnumerable deprecatedIds, string Guid = guid; if (deprecatedGuids != null) { - var destination_1 = new List(); + var destination_1 = new List(); foreach (var value_1 in deprecatedGuids) { destination_1.Add(value_1); diff --git a/src/Sarif/Autogenerated/ReportingDescriptorComparer.cs b/src/Sarif/Autogenerated/ReportingDescriptorComparer.cs index 067cc97b2..a5f127b3e 100644 --- a/src/Sarif/Autogenerated/ReportingDescriptorComparer.cs +++ b/src/Sarif/Autogenerated/ReportingDescriptorComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ReportingDescriptor for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ReportingDescriptorComparer : IComparer { internal static readonly ReportingDescriptorComparer Instance = new ReportingDescriptorComparer(); @@ -38,7 +38,7 @@ public int Compare(ReportingDescriptor left, ReportingDescriptor right) return compareResult; } - compareResult = string.Compare(left.Guid, right.Guid); + compareResult = left.Guid.CompareTo(right.Guid); if (compareResult != 0) { return compareResult; diff --git a/src/Sarif/Autogenerated/ReportingDescriptorEqualityComparer.cs b/src/Sarif/Autogenerated/ReportingDescriptorEqualityComparer.cs index 6f760208f..80865c2cf 100644 --- a/src/Sarif/Autogenerated/ReportingDescriptorEqualityComparer.cs +++ b/src/Sarif/Autogenerated/ReportingDescriptorEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ReportingDescriptor for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ReportingDescriptorEqualityComparer : IEqualityComparer { internal static readonly ReportingDescriptorEqualityComparer Instance = new ReportingDescriptorEqualityComparer(); @@ -235,10 +235,7 @@ public int GetHashCode(ReportingDescriptor obj) foreach (var value_5 in obj.DeprecatedGuids) { result = result * 31; - if (value_5 != null) - { - result = (result * 31) + value_5.GetHashCode(); - } + result = (result * 31) + value_5.GetHashCode(); } } diff --git a/src/Sarif/Autogenerated/ReportingDescriptorReference.cs b/src/Sarif/Autogenerated/ReportingDescriptorReference.cs index c95bb2de7..81fe63944 100644 --- a/src/Sarif/Autogenerated/ReportingDescriptorReference.cs +++ b/src/Sarif/Autogenerated/ReportingDescriptorReference.cs @@ -14,7 +14,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Information about how to locate a relevant reporting descriptor. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class ReportingDescriptorReference : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => ReportingDescriptorReferenceEqualityComparer.Instance; @@ -53,7 +53,7 @@ public virtual SarifNodeKind SarifNodeKind /// A guid that uniquely identifies the descriptor. /// [DataMember(Name = "guid", IsRequired = false, EmitDefaultValue = false)] - public virtual string Guid { get; set; } + public virtual Guid? Guid { get; set; } /// /// A reference used to locate the toolComponent associated with the descriptor. @@ -93,7 +93,7 @@ public ReportingDescriptorReference() /// /// An initialization value for the property. /// - public ReportingDescriptorReference(string id, int index, string guid, ToolComponentReference toolComponent, IDictionary properties) + public ReportingDescriptorReference(string id, int index, Guid? guid, ToolComponentReference toolComponent, IDictionary properties) { Init(id, index, guid, toolComponent, properties); } @@ -135,7 +135,7 @@ private ISarifNode DeepCloneCore() return new ReportingDescriptorReference(this); } - protected virtual void Init(string id, int index, string guid, ToolComponentReference toolComponent, IDictionary properties) + protected virtual void Init(string id, int index, Guid? guid, ToolComponentReference toolComponent, IDictionary properties) { Id = id; Index = index; diff --git a/src/Sarif/Autogenerated/ReportingDescriptorReferenceComparer.cs b/src/Sarif/Autogenerated/ReportingDescriptorReferenceComparer.cs index ef9703834..dd4ae8425 100644 --- a/src/Sarif/Autogenerated/ReportingDescriptorReferenceComparer.cs +++ b/src/Sarif/Autogenerated/ReportingDescriptorReferenceComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ReportingDescriptorReference for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ReportingDescriptorReferenceComparer : IComparer { internal static readonly ReportingDescriptorReferenceComparer Instance = new ReportingDescriptorReferenceComparer(); @@ -38,7 +38,7 @@ public int Compare(ReportingDescriptorReference left, ReportingDescriptorReferen return compareResult; } - compareResult = string.Compare(left.Guid, right.Guid); + compareResult = left.Guid.CompareTo(right.Guid); if (compareResult != 0) { return compareResult; diff --git a/src/Sarif/Autogenerated/ReportingDescriptorReferenceEqualityComparer.cs b/src/Sarif/Autogenerated/ReportingDescriptorReferenceEqualityComparer.cs index 1b880a0ba..13b250040 100644 --- a/src/Sarif/Autogenerated/ReportingDescriptorReferenceEqualityComparer.cs +++ b/src/Sarif/Autogenerated/ReportingDescriptorReferenceEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ReportingDescriptorReference for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ReportingDescriptorReferenceEqualityComparer : IEqualityComparer { internal static readonly ReportingDescriptorReferenceEqualityComparer Instance = new ReportingDescriptorReferenceEqualityComparer(); diff --git a/src/Sarif/Autogenerated/ReportingDescriptorRelationship.cs b/src/Sarif/Autogenerated/ReportingDescriptorRelationship.cs index 5452137f6..145bd032a 100644 --- a/src/Sarif/Autogenerated/ReportingDescriptorRelationship.cs +++ b/src/Sarif/Autogenerated/ReportingDescriptorRelationship.cs @@ -13,7 +13,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Information about the relation of one reporting descriptor to another. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class ReportingDescriptorRelationship : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => ReportingDescriptorRelationshipEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/ReportingDescriptorRelationshipComparer.cs b/src/Sarif/Autogenerated/ReportingDescriptorRelationshipComparer.cs index a7c98bf9a..a5a16da49 100644 --- a/src/Sarif/Autogenerated/ReportingDescriptorRelationshipComparer.cs +++ b/src/Sarif/Autogenerated/ReportingDescriptorRelationshipComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ReportingDescriptorRelationship for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ReportingDescriptorRelationshipComparer : IComparer { internal static readonly ReportingDescriptorRelationshipComparer Instance = new ReportingDescriptorRelationshipComparer(); diff --git a/src/Sarif/Autogenerated/ReportingDescriptorRelationshipEqualityComparer.cs b/src/Sarif/Autogenerated/ReportingDescriptorRelationshipEqualityComparer.cs index a69cead5d..b09f9074a 100644 --- a/src/Sarif/Autogenerated/ReportingDescriptorRelationshipEqualityComparer.cs +++ b/src/Sarif/Autogenerated/ReportingDescriptorRelationshipEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ReportingDescriptorRelationship for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ReportingDescriptorRelationshipEqualityComparer : IEqualityComparer { internal static readonly ReportingDescriptorRelationshipEqualityComparer Instance = new ReportingDescriptorRelationshipEqualityComparer(); diff --git a/src/Sarif/Autogenerated/Result.cs b/src/Sarif/Autogenerated/Result.cs index 93740a77f..3e3dabf8a 100644 --- a/src/Sarif/Autogenerated/Result.cs +++ b/src/Sarif/Autogenerated/Result.cs @@ -15,7 +15,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// A result produced by an analysis tool. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class Result : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => ResultEqualityComparer.Instance; @@ -128,13 +128,13 @@ public virtual FailureLevel Level /// A stable, unique identifier for the result in the form of a GUID. /// [DataMember(Name = "guid", IsRequired = false, EmitDefaultValue = false)] - public virtual string Guid { get; set; } + public virtual Guid? Guid { get; set; } /// /// A stable, unique identifier for the equivalence class of logically identical results to which this result belongs, in the form of a GUID. /// [DataMember(Name = "correlationGuid", IsRequired = false, EmitDefaultValue = false)] - public virtual string CorrelationGuid { get; set; } + public virtual Guid? CorrelationGuid { get; set; } /// /// A positive integer specifying the number of times this logically unique result was observed in this run. @@ -373,7 +373,7 @@ public Result() /// /// An initialization value for the property. /// - public Result(string ruleId, int ruleIndex, ReportingDescriptorReference rule, ResultKind kind, FailureLevel level, Message message, ArtifactLocation analysisTarget, IEnumerable locations, string guid, string correlationGuid, int occurrenceCount, IDictionary partialFingerprints, IDictionary fingerprints, IEnumerable stacks, IEnumerable codeFlows, IEnumerable graphs, IEnumerable graphTraversals, IEnumerable relatedLocations, IEnumerable suppressions, BaselineState baselineState, double rank, IEnumerable attachments, Uri hostedViewerUri, IEnumerable workItemUris, ResultProvenance provenance, IEnumerable fixes, IEnumerable taxa, WebRequest webRequest, WebResponse webResponse, IDictionary properties) + public Result(string ruleId, int ruleIndex, ReportingDescriptorReference rule, ResultKind kind, FailureLevel level, Message message, ArtifactLocation analysisTarget, IEnumerable locations, Guid? guid, Guid? correlationGuid, int occurrenceCount, IDictionary partialFingerprints, IDictionary fingerprints, IEnumerable stacks, IEnumerable codeFlows, IEnumerable graphs, IEnumerable graphTraversals, IEnumerable relatedLocations, IEnumerable suppressions, BaselineState baselineState, double rank, IEnumerable attachments, Uri hostedViewerUri, IEnumerable workItemUris, ResultProvenance provenance, IEnumerable fixes, IEnumerable taxa, WebRequest webRequest, WebResponse webResponse, IDictionary properties) { Init(ruleId, ruleIndex, rule, kind, level, message, analysisTarget, locations, guid, correlationGuid, occurrenceCount, partialFingerprints, fingerprints, stacks, codeFlows, graphs, graphTraversals, relatedLocations, suppressions, baselineState, rank, attachments, hostedViewerUri, workItemUris, provenance, fixes, taxa, webRequest, webResponse, properties); } @@ -415,7 +415,7 @@ private ISarifNode DeepCloneCore() return new Result(this); } - protected virtual void Init(string ruleId, int ruleIndex, ReportingDescriptorReference rule, ResultKind kind, FailureLevel level, Message message, ArtifactLocation analysisTarget, IEnumerable locations, string guid, string correlationGuid, int occurrenceCount, IDictionary partialFingerprints, IDictionary fingerprints, IEnumerable stacks, IEnumerable codeFlows, IEnumerable graphs, IEnumerable graphTraversals, IEnumerable relatedLocations, IEnumerable suppressions, BaselineState baselineState, double rank, IEnumerable attachments, Uri hostedViewerUri, IEnumerable workItemUris, ResultProvenance provenance, IEnumerable fixes, IEnumerable taxa, WebRequest webRequest, WebResponse webResponse, IDictionary properties) + protected virtual void Init(string ruleId, int ruleIndex, ReportingDescriptorReference rule, ResultKind kind, FailureLevel level, Message message, ArtifactLocation analysisTarget, IEnumerable locations, Guid? guid, Guid? correlationGuid, int occurrenceCount, IDictionary partialFingerprints, IDictionary fingerprints, IEnumerable stacks, IEnumerable codeFlows, IEnumerable graphs, IEnumerable graphTraversals, IEnumerable relatedLocations, IEnumerable suppressions, BaselineState baselineState, double rank, IEnumerable attachments, Uri hostedViewerUri, IEnumerable workItemUris, ResultProvenance provenance, IEnumerable fixes, IEnumerable taxa, WebRequest webRequest, WebResponse webResponse, IDictionary properties) { RuleId = ruleId; RuleIndex = ruleIndex; diff --git a/src/Sarif/Autogenerated/ResultComparer.cs b/src/Sarif/Autogenerated/ResultComparer.cs index ca9111fa1..e7b9e3bad 100644 --- a/src/Sarif/Autogenerated/ResultComparer.cs +++ b/src/Sarif/Autogenerated/ResultComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Result for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ResultComparer : IComparer { internal static readonly ResultComparer Instance = new ResultComparer(); @@ -74,13 +74,13 @@ public int Compare(Result left, Result right) return compareResult; } - compareResult = string.Compare(left.Guid, right.Guid); + compareResult = left.Guid.CompareTo(right.Guid); if (compareResult != 0) { return compareResult; } - compareResult = string.Compare(left.CorrelationGuid, right.CorrelationGuid); + compareResult = left.CorrelationGuid.CompareTo(right.CorrelationGuid); if (compareResult != 0) { return compareResult; diff --git a/src/Sarif/Autogenerated/ResultEqualityComparer.cs b/src/Sarif/Autogenerated/ResultEqualityComparer.cs index 52d4cf3de..208462b03 100644 --- a/src/Sarif/Autogenerated/ResultEqualityComparer.cs +++ b/src/Sarif/Autogenerated/ResultEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Result for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ResultEqualityComparer : IEqualityComparer { internal static readonly ResultEqualityComparer Instance = new ResultEqualityComparer(); diff --git a/src/Sarif/Autogenerated/ResultKind.cs b/src/Sarif/Autogenerated/ResultKind.cs index 3001fa966..003abb57d 100644 --- a/src/Sarif/Autogenerated/ResultKind.cs +++ b/src/Sarif/Autogenerated/ResultKind.cs @@ -8,7 +8,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Values specifying the evaluation state of a result. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public enum ResultKind { None, diff --git a/src/Sarif/Autogenerated/ResultProvenance.cs b/src/Sarif/Autogenerated/ResultProvenance.cs index a2939e9fb..853e1b0bf 100644 --- a/src/Sarif/Autogenerated/ResultProvenance.cs +++ b/src/Sarif/Autogenerated/ResultProvenance.cs @@ -14,7 +14,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Contains information about how and when a result was detected. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class ResultProvenance : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => ResultProvenanceEqualityComparer.Instance; @@ -53,13 +53,13 @@ public virtual SarifNodeKind SarifNodeKind /// A GUID-valued string equal to the automationDetails.guid property of the run in which the result was first detected. /// [DataMember(Name = "firstDetectionRunGuid", IsRequired = false, EmitDefaultValue = false)] - public virtual string FirstDetectionRunGuid { get; set; } + public virtual Guid? FirstDetectionRunGuid { get; set; } /// /// A GUID-valued string equal to the automationDetails.guid property of the run in which the result was most recently detected. /// [DataMember(Name = "lastDetectionRunGuid", IsRequired = false, EmitDefaultValue = false)] - public virtual string LastDetectionRunGuid { get; set; } + public virtual Guid? LastDetectionRunGuid { get; set; } /// /// The index within the run.invocations array of the invocation object which describes the tool invocation that detected the result. @@ -114,7 +114,7 @@ public ResultProvenance() /// /// An initialization value for the property. /// - public ResultProvenance(DateTime firstDetectionTimeUtc, DateTime lastDetectionTimeUtc, string firstDetectionRunGuid, string lastDetectionRunGuid, int invocationIndex, IEnumerable conversionSources, IDictionary properties) + public ResultProvenance(DateTime firstDetectionTimeUtc, DateTime lastDetectionTimeUtc, Guid? firstDetectionRunGuid, Guid? lastDetectionRunGuid, int invocationIndex, IEnumerable conversionSources, IDictionary properties) { Init(firstDetectionTimeUtc, lastDetectionTimeUtc, firstDetectionRunGuid, lastDetectionRunGuid, invocationIndex, conversionSources, properties); } @@ -156,7 +156,7 @@ private ISarifNode DeepCloneCore() return new ResultProvenance(this); } - protected virtual void Init(DateTime firstDetectionTimeUtc, DateTime lastDetectionTimeUtc, string firstDetectionRunGuid, string lastDetectionRunGuid, int invocationIndex, IEnumerable conversionSources, IDictionary properties) + protected virtual void Init(DateTime firstDetectionTimeUtc, DateTime lastDetectionTimeUtc, Guid? firstDetectionRunGuid, Guid? lastDetectionRunGuid, int invocationIndex, IEnumerable conversionSources, IDictionary properties) { FirstDetectionTimeUtc = firstDetectionTimeUtc; LastDetectionTimeUtc = lastDetectionTimeUtc; diff --git a/src/Sarif/Autogenerated/ResultProvenanceComparer.cs b/src/Sarif/Autogenerated/ResultProvenanceComparer.cs index 3dc1c344e..626af506c 100644 --- a/src/Sarif/Autogenerated/ResultProvenanceComparer.cs +++ b/src/Sarif/Autogenerated/ResultProvenanceComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ResultProvenance for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ResultProvenanceComparer : IComparer { internal static readonly ResultProvenanceComparer Instance = new ResultProvenanceComparer(); @@ -38,13 +38,13 @@ public int Compare(ResultProvenance left, ResultProvenance right) return compareResult; } - compareResult = string.Compare(left.FirstDetectionRunGuid, right.FirstDetectionRunGuid); + compareResult = left.FirstDetectionRunGuid.CompareTo(right.FirstDetectionRunGuid); if (compareResult != 0) { return compareResult; } - compareResult = string.Compare(left.LastDetectionRunGuid, right.LastDetectionRunGuid); + compareResult = left.LastDetectionRunGuid.CompareTo(right.LastDetectionRunGuid); if (compareResult != 0) { return compareResult; diff --git a/src/Sarif/Autogenerated/ResultProvenanceEqualityComparer.cs b/src/Sarif/Autogenerated/ResultProvenanceEqualityComparer.cs index 5756798b2..2207a7cb4 100644 --- a/src/Sarif/Autogenerated/ResultProvenanceEqualityComparer.cs +++ b/src/Sarif/Autogenerated/ResultProvenanceEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ResultProvenance for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ResultProvenanceEqualityComparer : IEqualityComparer { internal static readonly ResultProvenanceEqualityComparer Instance = new ResultProvenanceEqualityComparer(); diff --git a/src/Sarif/Autogenerated/Run.cs b/src/Sarif/Autogenerated/Run.cs index 1345292e3..522a1b916 100644 --- a/src/Sarif/Autogenerated/Run.cs +++ b/src/Sarif/Autogenerated/Run.cs @@ -15,7 +15,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Describes a single run of an analysis tool, and contains the reported output of that run. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class Run : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => RunEqualityComparer.Instance; @@ -119,7 +119,7 @@ public virtual SarifNodeKind SarifNodeKind /// The 'guid' property of a previous SARIF 'run' that comprises the baseline that was used to compute result 'baselineState' properties for the run. /// [DataMember(Name = "baselineGuid", IsRequired = false, EmitDefaultValue = false)] - public virtual string BaselineGuid { get; set; } + public virtual Guid? BaselineGuid { get; set; } /// /// An array of strings used to replace sensitive information in a redaction-aware property. @@ -321,7 +321,7 @@ public Run() /// /// An initialization value for the property. /// - public Run(Tool tool, IEnumerable invocations, Conversion conversion, string language, IEnumerable versionControlProvenance, IDictionary originalUriBaseIds, IEnumerable artifacts, IEnumerable logicalLocations, IEnumerable graphs, IEnumerable results, RunAutomationDetails automationDetails, IEnumerable runAggregates, string baselineGuid, IEnumerable redactionTokens, string defaultEncoding, string defaultSourceLanguage, IEnumerable newlineSequences, ColumnKind columnKind, ExternalPropertyFileReferences externalPropertyFileReferences, IEnumerable threadFlowLocations, IEnumerable taxonomies, IEnumerable
addresses, IEnumerable translations, IEnumerable policies, IEnumerable webRequests, IEnumerable webResponses, SpecialLocations specialLocations, IDictionary properties) + public Run(Tool tool, IEnumerable invocations, Conversion conversion, string language, IEnumerable versionControlProvenance, IDictionary originalUriBaseIds, IEnumerable artifacts, IEnumerable logicalLocations, IEnumerable graphs, IEnumerable results, RunAutomationDetails automationDetails, IEnumerable runAggregates, Guid? baselineGuid, IEnumerable redactionTokens, string defaultEncoding, string defaultSourceLanguage, IEnumerable newlineSequences, ColumnKind columnKind, ExternalPropertyFileReferences externalPropertyFileReferences, IEnumerable threadFlowLocations, IEnumerable taxonomies, IEnumerable
addresses, IEnumerable translations, IEnumerable policies, IEnumerable webRequests, IEnumerable webResponses, SpecialLocations specialLocations, IDictionary properties) { Init(tool, invocations, conversion, language, versionControlProvenance, originalUriBaseIds, artifacts, logicalLocations, graphs, results, automationDetails, runAggregates, baselineGuid, redactionTokens, defaultEncoding, defaultSourceLanguage, newlineSequences, columnKind, externalPropertyFileReferences, threadFlowLocations, taxonomies, addresses, translations, policies, webRequests, webResponses, specialLocations, properties); } @@ -363,7 +363,7 @@ private ISarifNode DeepCloneCore() return new Run(this); } - protected virtual void Init(Tool tool, IEnumerable invocations, Conversion conversion, string language, IEnumerable versionControlProvenance, IDictionary originalUriBaseIds, IEnumerable artifacts, IEnumerable logicalLocations, IEnumerable graphs, IEnumerable results, RunAutomationDetails automationDetails, IEnumerable runAggregates, string baselineGuid, IEnumerable redactionTokens, string defaultEncoding, string defaultSourceLanguage, IEnumerable newlineSequences, ColumnKind columnKind, ExternalPropertyFileReferences externalPropertyFileReferences, IEnumerable threadFlowLocations, IEnumerable taxonomies, IEnumerable
addresses, IEnumerable translations, IEnumerable policies, IEnumerable webRequests, IEnumerable webResponses, SpecialLocations specialLocations, IDictionary properties) + protected virtual void Init(Tool tool, IEnumerable invocations, Conversion conversion, string language, IEnumerable versionControlProvenance, IDictionary originalUriBaseIds, IEnumerable artifacts, IEnumerable logicalLocations, IEnumerable graphs, IEnumerable results, RunAutomationDetails automationDetails, IEnumerable runAggregates, Guid? baselineGuid, IEnumerable redactionTokens, string defaultEncoding, string defaultSourceLanguage, IEnumerable newlineSequences, ColumnKind columnKind, ExternalPropertyFileReferences externalPropertyFileReferences, IEnumerable threadFlowLocations, IEnumerable taxonomies, IEnumerable
addresses, IEnumerable translations, IEnumerable policies, IEnumerable webRequests, IEnumerable webResponses, SpecialLocations specialLocations, IDictionary properties) { if (tool != null) { diff --git a/src/Sarif/Autogenerated/RunAutomationDetails.cs b/src/Sarif/Autogenerated/RunAutomationDetails.cs index f6fea0218..189e6f2c2 100644 --- a/src/Sarif/Autogenerated/RunAutomationDetails.cs +++ b/src/Sarif/Autogenerated/RunAutomationDetails.cs @@ -12,7 +12,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Information that describes a run's identity and role within an engineering system process. ///
[DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class RunAutomationDetails : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => RunAutomationDetailsEqualityComparer.Instance; @@ -49,13 +49,13 @@ public virtual SarifNodeKind SarifNodeKind /// A stable, unique identifier for this object's containing run object in the form of a GUID. /// [DataMember(Name = "guid", IsRequired = false, EmitDefaultValue = false)] - public virtual string Guid { get; set; } + public virtual Guid? Guid { get; set; } /// /// A stable, unique identifier for the equivalence class of runs to which this object's containing run object belongs in the form of a GUID. /// [DataMember(Name = "correlationGuid", IsRequired = false, EmitDefaultValue = false)] - public virtual string CorrelationGuid { get; set; } + public virtual Guid? CorrelationGuid { get; set; } /// /// Key/value pairs that provide additional information about the run automation details. @@ -88,7 +88,7 @@ public RunAutomationDetails() /// /// An initialization value for the property. /// - public RunAutomationDetails(Message description, string id, string guid, string correlationGuid, IDictionary properties) + public RunAutomationDetails(Message description, string id, Guid? guid, Guid? correlationGuid, IDictionary properties) { Init(description, id, guid, correlationGuid, properties); } @@ -130,7 +130,7 @@ private ISarifNode DeepCloneCore() return new RunAutomationDetails(this); } - protected virtual void Init(Message description, string id, string guid, string correlationGuid, IDictionary properties) + protected virtual void Init(Message description, string id, Guid? guid, Guid? correlationGuid, IDictionary properties) { if (description != null) { diff --git a/src/Sarif/Autogenerated/RunAutomationDetailsComparer.cs b/src/Sarif/Autogenerated/RunAutomationDetailsComparer.cs index 7c916ea9d..b0ff8b341 100644 --- a/src/Sarif/Autogenerated/RunAutomationDetailsComparer.cs +++ b/src/Sarif/Autogenerated/RunAutomationDetailsComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type RunAutomationDetails for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class RunAutomationDetailsComparer : IComparer { internal static readonly RunAutomationDetailsComparer Instance = new RunAutomationDetailsComparer(); @@ -38,13 +38,13 @@ public int Compare(RunAutomationDetails left, RunAutomationDetails right) return compareResult; } - compareResult = string.Compare(left.Guid, right.Guid); + compareResult = left.Guid.CompareTo(right.Guid); if (compareResult != 0) { return compareResult; } - compareResult = string.Compare(left.CorrelationGuid, right.CorrelationGuid); + compareResult = left.CorrelationGuid.CompareTo(right.CorrelationGuid); if (compareResult != 0) { return compareResult; diff --git a/src/Sarif/Autogenerated/RunAutomationDetailsEqualityComparer.cs b/src/Sarif/Autogenerated/RunAutomationDetailsEqualityComparer.cs index d171dfd52..382f5fc12 100644 --- a/src/Sarif/Autogenerated/RunAutomationDetailsEqualityComparer.cs +++ b/src/Sarif/Autogenerated/RunAutomationDetailsEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type RunAutomationDetails for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class RunAutomationDetailsEqualityComparer : IEqualityComparer { internal static readonly RunAutomationDetailsEqualityComparer Instance = new RunAutomationDetailsEqualityComparer(); diff --git a/src/Sarif/Autogenerated/RunComparer.cs b/src/Sarif/Autogenerated/RunComparer.cs index 5a7d82f0e..7fab369c0 100644 --- a/src/Sarif/Autogenerated/RunComparer.cs +++ b/src/Sarif/Autogenerated/RunComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Run for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class RunComparer : IComparer { internal static readonly RunComparer Instance = new RunComparer(); @@ -98,7 +98,7 @@ public int Compare(Run left, Run right) return compareResult; } - compareResult = string.Compare(left.BaselineGuid, right.BaselineGuid); + compareResult = left.BaselineGuid.CompareTo(right.BaselineGuid); if (compareResult != 0) { return compareResult; diff --git a/src/Sarif/Autogenerated/RunEqualityComparer.cs b/src/Sarif/Autogenerated/RunEqualityComparer.cs index ded4f8226..a6aaf5c9a 100644 --- a/src/Sarif/Autogenerated/RunEqualityComparer.cs +++ b/src/Sarif/Autogenerated/RunEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Run for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class RunEqualityComparer : IEqualityComparer { internal static readonly RunEqualityComparer Instance = new RunEqualityComparer(); diff --git a/src/Sarif/Autogenerated/SarifLog.cs b/src/Sarif/Autogenerated/SarifLog.cs index 243027c22..495f91881 100644 --- a/src/Sarif/Autogenerated/SarifLog.cs +++ b/src/Sarif/Autogenerated/SarifLog.cs @@ -14,7 +14,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Static Analysis Results Format (SARIF) Version 2.1.0-rtm.5 JSON Schema: a standard format for the output of static analysis tools. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class SarifLog : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => SarifLogEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/SarifLogComparer.cs b/src/Sarif/Autogenerated/SarifLogComparer.cs index 32f0c54a9..45947c147 100644 --- a/src/Sarif/Autogenerated/SarifLogComparer.cs +++ b/src/Sarif/Autogenerated/SarifLogComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type SarifLog for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class SarifLogComparer : IComparer { internal static readonly SarifLogComparer Instance = new SarifLogComparer(); diff --git a/src/Sarif/Autogenerated/SarifLogEqualityComparer.cs b/src/Sarif/Autogenerated/SarifLogEqualityComparer.cs index c1325b103..32dd562e5 100644 --- a/src/Sarif/Autogenerated/SarifLogEqualityComparer.cs +++ b/src/Sarif/Autogenerated/SarifLogEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type SarifLog for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class SarifLogEqualityComparer : IEqualityComparer { internal static readonly SarifLogEqualityComparer Instance = new SarifLogEqualityComparer(); diff --git a/src/Sarif/Autogenerated/SarifNodeKind.cs b/src/Sarif/Autogenerated/SarifNodeKind.cs index 02f406343..b10c34fef 100644 --- a/src/Sarif/Autogenerated/SarifNodeKind.cs +++ b/src/Sarif/Autogenerated/SarifNodeKind.cs @@ -8,7 +8,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// A set of values for all the types that implement . /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public enum SarifNodeKind { /// diff --git a/src/Sarif/Autogenerated/SarifRewritingVisitor.cs b/src/Sarif/Autogenerated/SarifRewritingVisitor.cs index 48baac493..a92b828e5 100644 --- a/src/Sarif/Autogenerated/SarifRewritingVisitor.cs +++ b/src/Sarif/Autogenerated/SarifRewritingVisitor.cs @@ -11,7 +11,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Rewriting visitor for the Sarif object model. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public abstract class SarifRewritingVisitor { /// diff --git a/src/Sarif/Autogenerated/SarifVersion.cs b/src/Sarif/Autogenerated/SarifVersion.cs index fa3ac7e3f..ee4e23e58 100644 --- a/src/Sarif/Autogenerated/SarifVersion.cs +++ b/src/Sarif/Autogenerated/SarifVersion.cs @@ -8,7 +8,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Possible values for the SARIF schema version. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public enum SarifVersion { Unknown, diff --git a/src/Sarif/Autogenerated/SpecialLocations.cs b/src/Sarif/Autogenerated/SpecialLocations.cs index 929f33955..334957bfb 100644 --- a/src/Sarif/Autogenerated/SpecialLocations.cs +++ b/src/Sarif/Autogenerated/SpecialLocations.cs @@ -12,7 +12,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Defines locations of special significance to SARIF consumers. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class SpecialLocations : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => SpecialLocationsEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/SpecialLocationsComparer.cs b/src/Sarif/Autogenerated/SpecialLocationsComparer.cs index 9b5c244d9..3b483a7f3 100644 --- a/src/Sarif/Autogenerated/SpecialLocationsComparer.cs +++ b/src/Sarif/Autogenerated/SpecialLocationsComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type SpecialLocations for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class SpecialLocationsComparer : IComparer { internal static readonly SpecialLocationsComparer Instance = new SpecialLocationsComparer(); diff --git a/src/Sarif/Autogenerated/SpecialLocationsEqualityComparer.cs b/src/Sarif/Autogenerated/SpecialLocationsEqualityComparer.cs index 3e3667a65..f2edbf4d3 100644 --- a/src/Sarif/Autogenerated/SpecialLocationsEqualityComparer.cs +++ b/src/Sarif/Autogenerated/SpecialLocationsEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type SpecialLocations for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class SpecialLocationsEqualityComparer : IEqualityComparer { internal static readonly SpecialLocationsEqualityComparer Instance = new SpecialLocationsEqualityComparer(); diff --git a/src/Sarif/Autogenerated/Stack.cs b/src/Sarif/Autogenerated/Stack.cs index 1934e6ac0..524b629ba 100644 --- a/src/Sarif/Autogenerated/Stack.cs +++ b/src/Sarif/Autogenerated/Stack.cs @@ -12,7 +12,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// A call stack that is relevant to a result. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class Stack : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => StackEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/StackComparer.cs b/src/Sarif/Autogenerated/StackComparer.cs index 27cb86eb1..576f16ef8 100644 --- a/src/Sarif/Autogenerated/StackComparer.cs +++ b/src/Sarif/Autogenerated/StackComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Stack for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class StackComparer : IComparer { internal static readonly StackComparer Instance = new StackComparer(); diff --git a/src/Sarif/Autogenerated/StackEqualityComparer.cs b/src/Sarif/Autogenerated/StackEqualityComparer.cs index c4e5b9d02..15fb7df7e 100644 --- a/src/Sarif/Autogenerated/StackEqualityComparer.cs +++ b/src/Sarif/Autogenerated/StackEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Stack for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class StackEqualityComparer : IEqualityComparer { internal static readonly StackEqualityComparer Instance = new StackEqualityComparer(); diff --git a/src/Sarif/Autogenerated/StackFrame.cs b/src/Sarif/Autogenerated/StackFrame.cs index 9dd25baad..bdf05d5f9 100644 --- a/src/Sarif/Autogenerated/StackFrame.cs +++ b/src/Sarif/Autogenerated/StackFrame.cs @@ -13,7 +13,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// A function call within a stack trace. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class StackFrame : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => StackFrameEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/StackFrameComparer.cs b/src/Sarif/Autogenerated/StackFrameComparer.cs index 04e492a7e..bf6c3f956 100644 --- a/src/Sarif/Autogenerated/StackFrameComparer.cs +++ b/src/Sarif/Autogenerated/StackFrameComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type StackFrame for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class StackFrameComparer : IComparer { internal static readonly StackFrameComparer Instance = new StackFrameComparer(); diff --git a/src/Sarif/Autogenerated/StackFrameEqualityComparer.cs b/src/Sarif/Autogenerated/StackFrameEqualityComparer.cs index 283721a4d..232f02572 100644 --- a/src/Sarif/Autogenerated/StackFrameEqualityComparer.cs +++ b/src/Sarif/Autogenerated/StackFrameEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type StackFrame for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class StackFrameEqualityComparer : IEqualityComparer { internal static readonly StackFrameEqualityComparer Instance = new StackFrameEqualityComparer(); diff --git a/src/Sarif/Autogenerated/Suppression.cs b/src/Sarif/Autogenerated/Suppression.cs index 92149c615..23051ca84 100644 --- a/src/Sarif/Autogenerated/Suppression.cs +++ b/src/Sarif/Autogenerated/Suppression.cs @@ -13,7 +13,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// A suppression that is relevant to a result. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class Suppression : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => SuppressionEqualityComparer.Instance; @@ -38,7 +38,7 @@ public virtual SarifNodeKind SarifNodeKind /// A stable, unique identifier for the suprression in the form of a GUID. /// [DataMember(Name = "guid", IsRequired = false, EmitDefaultValue = false)] - public virtual string Guid { get; set; } + public virtual Guid? Guid { get; set; } /// /// A string that indicates where the suppression is persisted. @@ -100,7 +100,7 @@ public Suppression() /// /// An initialization value for the property. /// - public Suppression(string guid, SuppressionKind kind, SuppressionStatus status, string justification, Location location, IDictionary properties) + public Suppression(Guid? guid, SuppressionKind kind, SuppressionStatus status, string justification, Location location, IDictionary properties) { Init(guid, kind, status, justification, location, properties); } @@ -142,7 +142,7 @@ private ISarifNode DeepCloneCore() return new Suppression(this); } - protected virtual void Init(string guid, SuppressionKind kind, SuppressionStatus status, string justification, Location location, IDictionary properties) + protected virtual void Init(Guid? guid, SuppressionKind kind, SuppressionStatus status, string justification, Location location, IDictionary properties) { Guid = guid; Kind = kind; diff --git a/src/Sarif/Autogenerated/SuppressionComparer.cs b/src/Sarif/Autogenerated/SuppressionComparer.cs index 6343c9d7e..af991b886 100644 --- a/src/Sarif/Autogenerated/SuppressionComparer.cs +++ b/src/Sarif/Autogenerated/SuppressionComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Suppression for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class SuppressionComparer : IComparer { internal static readonly SuppressionComparer Instance = new SuppressionComparer(); @@ -26,7 +26,7 @@ public int Compare(Suppression left, Suppression right) return compareResult; } - compareResult = string.Compare(left.Guid, right.Guid); + compareResult = left.Guid.CompareTo(right.Guid); if (compareResult != 0) { return compareResult; diff --git a/src/Sarif/Autogenerated/SuppressionEqualityComparer.cs b/src/Sarif/Autogenerated/SuppressionEqualityComparer.cs index 06f1412fe..e89a7be96 100644 --- a/src/Sarif/Autogenerated/SuppressionEqualityComparer.cs +++ b/src/Sarif/Autogenerated/SuppressionEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Suppression for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class SuppressionEqualityComparer : IEqualityComparer { internal static readonly SuppressionEqualityComparer Instance = new SuppressionEqualityComparer(); diff --git a/src/Sarif/Autogenerated/SuppressionKind.cs b/src/Sarif/Autogenerated/SuppressionKind.cs index a09ae441c..982fb0ef2 100644 --- a/src/Sarif/Autogenerated/SuppressionKind.cs +++ b/src/Sarif/Autogenerated/SuppressionKind.cs @@ -8,7 +8,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// A string that indicates where the suppression is persisted. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public enum SuppressionKind { None, diff --git a/src/Sarif/Autogenerated/SuppressionStatus.cs b/src/Sarif/Autogenerated/SuppressionStatus.cs index 16434ff71..57bfd30e6 100644 --- a/src/Sarif/Autogenerated/SuppressionStatus.cs +++ b/src/Sarif/Autogenerated/SuppressionStatus.cs @@ -8,7 +8,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// A string that indicates the review status of the suppression. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public enum SuppressionStatus { None, diff --git a/src/Sarif/Autogenerated/ThreadFlow.cs b/src/Sarif/Autogenerated/ThreadFlow.cs index 81935da93..7968b10e9 100644 --- a/src/Sarif/Autogenerated/ThreadFlow.cs +++ b/src/Sarif/Autogenerated/ThreadFlow.cs @@ -12,7 +12,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Describes a sequence of code locations that specify a path through a single thread of execution such as an operating system or fiber. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class ThreadFlow : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => ThreadFlowEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/ThreadFlowComparer.cs b/src/Sarif/Autogenerated/ThreadFlowComparer.cs index 5d0da5c19..e0e0da33b 100644 --- a/src/Sarif/Autogenerated/ThreadFlowComparer.cs +++ b/src/Sarif/Autogenerated/ThreadFlowComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ThreadFlow for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ThreadFlowComparer : IComparer { internal static readonly ThreadFlowComparer Instance = new ThreadFlowComparer(); diff --git a/src/Sarif/Autogenerated/ThreadFlowEqualityComparer.cs b/src/Sarif/Autogenerated/ThreadFlowEqualityComparer.cs index d53ea521b..498f4576c 100644 --- a/src/Sarif/Autogenerated/ThreadFlowEqualityComparer.cs +++ b/src/Sarif/Autogenerated/ThreadFlowEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ThreadFlow for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ThreadFlowEqualityComparer : IEqualityComparer { internal static readonly ThreadFlowEqualityComparer Instance = new ThreadFlowEqualityComparer(); diff --git a/src/Sarif/Autogenerated/ThreadFlowLocation.cs b/src/Sarif/Autogenerated/ThreadFlowLocation.cs index b433511a7..35525ebe4 100644 --- a/src/Sarif/Autogenerated/ThreadFlowLocation.cs +++ b/src/Sarif/Autogenerated/ThreadFlowLocation.cs @@ -14,7 +14,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// A location visited by an analysis tool while simulating or monitoring the execution of a program. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class ThreadFlowLocation : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => ThreadFlowLocationEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/ThreadFlowLocationComparer.cs b/src/Sarif/Autogenerated/ThreadFlowLocationComparer.cs index 407ad88d6..b3ecf65c7 100644 --- a/src/Sarif/Autogenerated/ThreadFlowLocationComparer.cs +++ b/src/Sarif/Autogenerated/ThreadFlowLocationComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ThreadFlowLocation for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ThreadFlowLocationComparer : IComparer { internal static readonly ThreadFlowLocationComparer Instance = new ThreadFlowLocationComparer(); diff --git a/src/Sarif/Autogenerated/ThreadFlowLocationEqualityComparer.cs b/src/Sarif/Autogenerated/ThreadFlowLocationEqualityComparer.cs index 4dfe3b06a..a0fa5a959 100644 --- a/src/Sarif/Autogenerated/ThreadFlowLocationEqualityComparer.cs +++ b/src/Sarif/Autogenerated/ThreadFlowLocationEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ThreadFlowLocation for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ThreadFlowLocationEqualityComparer : IEqualityComparer { internal static readonly ThreadFlowLocationEqualityComparer Instance = new ThreadFlowLocationEqualityComparer(); diff --git a/src/Sarif/Autogenerated/ThreadFlowLocationImportance.cs b/src/Sarif/Autogenerated/ThreadFlowLocationImportance.cs index 8eecbafb9..390e41fd8 100644 --- a/src/Sarif/Autogenerated/ThreadFlowLocationImportance.cs +++ b/src/Sarif/Autogenerated/ThreadFlowLocationImportance.cs @@ -8,7 +8,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Values specifying the importance of an "threadFlowLocation" within the "codeFlow" in which it occurs /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public enum ThreadFlowLocationImportance { Important, diff --git a/src/Sarif/Autogenerated/Tool.cs b/src/Sarif/Autogenerated/Tool.cs index f5be2cfa6..72e4059d8 100644 --- a/src/Sarif/Autogenerated/Tool.cs +++ b/src/Sarif/Autogenerated/Tool.cs @@ -13,7 +13,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// The analysis tool that was run. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class Tool : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => ToolEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/ToolComparer.cs b/src/Sarif/Autogenerated/ToolComparer.cs index b1a218613..b7ef4a6da 100644 --- a/src/Sarif/Autogenerated/ToolComparer.cs +++ b/src/Sarif/Autogenerated/ToolComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Tool for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ToolComparer : IComparer { internal static readonly ToolComparer Instance = new ToolComparer(); diff --git a/src/Sarif/Autogenerated/ToolComponent.cs b/src/Sarif/Autogenerated/ToolComponent.cs index 4d6a363ab..136dc685b 100644 --- a/src/Sarif/Autogenerated/ToolComponent.cs +++ b/src/Sarif/Autogenerated/ToolComponent.cs @@ -14,7 +14,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// A component, such as a plug-in or the driver, of the analysis tool that was run. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class ToolComponent : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => ToolComponentEqualityComparer.Instance; @@ -39,7 +39,7 @@ public virtual SarifNodeKind SarifNodeKind /// A unique identifier for the tool component in the form of a GUID. /// [DataMember(Name = "guid", IsRequired = false, EmitDefaultValue = false)] - public virtual string Guid { get; set; } + public virtual Guid? Guid { get; set; } /// /// The name of the tool component. @@ -310,7 +310,7 @@ public ToolComponent() /// /// An initialization value for the property. /// - public ToolComponent(string guid, string name, string organization, string product, string productSuite, MultiformatMessageString shortDescription, MultiformatMessageString fullDescription, string fullName, string version, string semanticVersion, string dottedQuadFileVersion, string releaseDateUtc, Uri downloadUri, Uri informationUri, IDictionary globalMessageStrings, IEnumerable notifications, IEnumerable rules, IEnumerable taxa, IEnumerable locations, string language, ToolComponentContents contents, bool isComprehensive, string localizedDataSemanticVersion, string minimumRequiredLocalizedDataSemanticVersion, ToolComponentReference associatedComponent, TranslationMetadata translationMetadata, IEnumerable supportedTaxonomies, IDictionary properties) + public ToolComponent(Guid? guid, string name, string organization, string product, string productSuite, MultiformatMessageString shortDescription, MultiformatMessageString fullDescription, string fullName, string version, string semanticVersion, string dottedQuadFileVersion, string releaseDateUtc, Uri downloadUri, Uri informationUri, IDictionary globalMessageStrings, IEnumerable notifications, IEnumerable rules, IEnumerable taxa, IEnumerable locations, string language, ToolComponentContents contents, bool isComprehensive, string localizedDataSemanticVersion, string minimumRequiredLocalizedDataSemanticVersion, ToolComponentReference associatedComponent, TranslationMetadata translationMetadata, IEnumerable supportedTaxonomies, IDictionary properties) { Init(guid, name, organization, product, productSuite, shortDescription, fullDescription, fullName, version, semanticVersion, dottedQuadFileVersion, releaseDateUtc, downloadUri, informationUri, globalMessageStrings, notifications, rules, taxa, locations, language, contents, isComprehensive, localizedDataSemanticVersion, minimumRequiredLocalizedDataSemanticVersion, associatedComponent, translationMetadata, supportedTaxonomies, properties); } @@ -352,7 +352,7 @@ private ISarifNode DeepCloneCore() return new ToolComponent(this); } - protected virtual void Init(string guid, string name, string organization, string product, string productSuite, MultiformatMessageString shortDescription, MultiformatMessageString fullDescription, string fullName, string version, string semanticVersion, string dottedQuadFileVersion, string releaseDateUtc, Uri downloadUri, Uri informationUri, IDictionary globalMessageStrings, IEnumerable notifications, IEnumerable rules, IEnumerable taxa, IEnumerable locations, string language, ToolComponentContents contents, bool isComprehensive, string localizedDataSemanticVersion, string minimumRequiredLocalizedDataSemanticVersion, ToolComponentReference associatedComponent, TranslationMetadata translationMetadata, IEnumerable supportedTaxonomies, IDictionary properties) + protected virtual void Init(Guid? guid, string name, string organization, string product, string productSuite, MultiformatMessageString shortDescription, MultiformatMessageString fullDescription, string fullName, string version, string semanticVersion, string dottedQuadFileVersion, string releaseDateUtc, Uri downloadUri, Uri informationUri, IDictionary globalMessageStrings, IEnumerable notifications, IEnumerable rules, IEnumerable taxa, IEnumerable locations, string language, ToolComponentContents contents, bool isComprehensive, string localizedDataSemanticVersion, string minimumRequiredLocalizedDataSemanticVersion, ToolComponentReference associatedComponent, TranslationMetadata translationMetadata, IEnumerable supportedTaxonomies, IDictionary properties) { Guid = guid; Name = name; diff --git a/src/Sarif/Autogenerated/ToolComponentComparer.cs b/src/Sarif/Autogenerated/ToolComponentComparer.cs index cfa8dc8b6..908c838f6 100644 --- a/src/Sarif/Autogenerated/ToolComponentComparer.cs +++ b/src/Sarif/Autogenerated/ToolComponentComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ToolComponent for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ToolComponentComparer : IComparer { internal static readonly ToolComponentComparer Instance = new ToolComponentComparer(); @@ -26,7 +26,7 @@ public int Compare(ToolComponent left, ToolComponent right) return compareResult; } - compareResult = string.Compare(left.Guid, right.Guid); + compareResult = left.Guid.CompareTo(right.Guid); if (compareResult != 0) { return compareResult; diff --git a/src/Sarif/Autogenerated/ToolComponentContents.cs b/src/Sarif/Autogenerated/ToolComponentContents.cs index 90e410d4e..8de37428c 100644 --- a/src/Sarif/Autogenerated/ToolComponentContents.cs +++ b/src/Sarif/Autogenerated/ToolComponentContents.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Values specifying the roles played by the file in the analysis. /// [Flags] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public enum ToolComponentContents { None, diff --git a/src/Sarif/Autogenerated/ToolComponentEqualityComparer.cs b/src/Sarif/Autogenerated/ToolComponentEqualityComparer.cs index db8e57fa7..2c6c1e6f8 100644 --- a/src/Sarif/Autogenerated/ToolComponentEqualityComparer.cs +++ b/src/Sarif/Autogenerated/ToolComponentEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ToolComponent for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ToolComponentEqualityComparer : IEqualityComparer { internal static readonly ToolComponentEqualityComparer Instance = new ToolComponentEqualityComparer(); diff --git a/src/Sarif/Autogenerated/ToolComponentReference.cs b/src/Sarif/Autogenerated/ToolComponentReference.cs index 5d7c86f3c..35e5301f4 100644 --- a/src/Sarif/Autogenerated/ToolComponentReference.cs +++ b/src/Sarif/Autogenerated/ToolComponentReference.cs @@ -14,7 +14,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Identifies a particular toolComponent object, either the driver or an extension. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class ToolComponentReference : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => ToolComponentReferenceEqualityComparer.Instance; @@ -53,7 +53,7 @@ public virtual SarifNodeKind SarifNodeKind /// The 'guid' property of the referenced toolComponent. /// [DataMember(Name = "guid", IsRequired = false, EmitDefaultValue = false)] - public virtual string Guid { get; set; } + public virtual Guid? Guid { get; set; } /// /// Key/value pairs that provide additional information about the toolComponentReference. @@ -84,7 +84,7 @@ public ToolComponentReference() /// /// An initialization value for the property. /// - public ToolComponentReference(string name, int index, string guid, IDictionary properties) + public ToolComponentReference(string name, int index, Guid? guid, IDictionary properties) { Init(name, index, guid, properties); } @@ -126,7 +126,7 @@ private ISarifNode DeepCloneCore() return new ToolComponentReference(this); } - protected virtual void Init(string name, int index, string guid, IDictionary properties) + protected virtual void Init(string name, int index, Guid? guid, IDictionary properties) { Name = name; Index = index; diff --git a/src/Sarif/Autogenerated/ToolComponentReferenceComparer.cs b/src/Sarif/Autogenerated/ToolComponentReferenceComparer.cs index 887308c4b..66c03721f 100644 --- a/src/Sarif/Autogenerated/ToolComponentReferenceComparer.cs +++ b/src/Sarif/Autogenerated/ToolComponentReferenceComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ToolComponentReference for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ToolComponentReferenceComparer : IComparer { internal static readonly ToolComponentReferenceComparer Instance = new ToolComponentReferenceComparer(); @@ -38,7 +38,7 @@ public int Compare(ToolComponentReference left, ToolComponentReference right) return compareResult; } - compareResult = string.Compare(left.Guid, right.Guid); + compareResult = left.Guid.CompareTo(right.Guid); if (compareResult != 0) { return compareResult; diff --git a/src/Sarif/Autogenerated/ToolComponentReferenceEqualityComparer.cs b/src/Sarif/Autogenerated/ToolComponentReferenceEqualityComparer.cs index dc5299a46..e52c34b2a 100644 --- a/src/Sarif/Autogenerated/ToolComponentReferenceEqualityComparer.cs +++ b/src/Sarif/Autogenerated/ToolComponentReferenceEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type ToolComponentReference for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ToolComponentReferenceEqualityComparer : IEqualityComparer { internal static readonly ToolComponentReferenceEqualityComparer Instance = new ToolComponentReferenceEqualityComparer(); diff --git a/src/Sarif/Autogenerated/ToolEqualityComparer.cs b/src/Sarif/Autogenerated/ToolEqualityComparer.cs index eae2e1822..b91901124 100644 --- a/src/Sarif/Autogenerated/ToolEqualityComparer.cs +++ b/src/Sarif/Autogenerated/ToolEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type Tool for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class ToolEqualityComparer : IEqualityComparer { internal static readonly ToolEqualityComparer Instance = new ToolEqualityComparer(); diff --git a/src/Sarif/Autogenerated/TranslationMetadata.cs b/src/Sarif/Autogenerated/TranslationMetadata.cs index 1937c6321..c0c3eab66 100644 --- a/src/Sarif/Autogenerated/TranslationMetadata.cs +++ b/src/Sarif/Autogenerated/TranslationMetadata.cs @@ -12,7 +12,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Provides additional metadata related to translation. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class TranslationMetadata : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => TranslationMetadataEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/TranslationMetadataComparer.cs b/src/Sarif/Autogenerated/TranslationMetadataComparer.cs index 265d20743..5965c598f 100644 --- a/src/Sarif/Autogenerated/TranslationMetadataComparer.cs +++ b/src/Sarif/Autogenerated/TranslationMetadataComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type TranslationMetadata for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class TranslationMetadataComparer : IComparer { internal static readonly TranslationMetadataComparer Instance = new TranslationMetadataComparer(); diff --git a/src/Sarif/Autogenerated/TranslationMetadataEqualityComparer.cs b/src/Sarif/Autogenerated/TranslationMetadataEqualityComparer.cs index f93333b00..f4bca04ad 100644 --- a/src/Sarif/Autogenerated/TranslationMetadataEqualityComparer.cs +++ b/src/Sarif/Autogenerated/TranslationMetadataEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type TranslationMetadata for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class TranslationMetadataEqualityComparer : IEqualityComparer { internal static readonly TranslationMetadataEqualityComparer Instance = new TranslationMetadataEqualityComparer(); diff --git a/src/Sarif/Autogenerated/VersionControlDetails.cs b/src/Sarif/Autogenerated/VersionControlDetails.cs index 3e8e1eca6..350e53692 100644 --- a/src/Sarif/Autogenerated/VersionControlDetails.cs +++ b/src/Sarif/Autogenerated/VersionControlDetails.cs @@ -13,7 +13,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Specifies the information necessary to retrieve a desired revision from a version control system. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class VersionControlDetails : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => VersionControlDetailsEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/VersionControlDetailsComparer.cs b/src/Sarif/Autogenerated/VersionControlDetailsComparer.cs index 47f7f758d..605902298 100644 --- a/src/Sarif/Autogenerated/VersionControlDetailsComparer.cs +++ b/src/Sarif/Autogenerated/VersionControlDetailsComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type VersionControlDetails for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class VersionControlDetailsComparer : IComparer { internal static readonly VersionControlDetailsComparer Instance = new VersionControlDetailsComparer(); diff --git a/src/Sarif/Autogenerated/VersionControlDetailsEqualityComparer.cs b/src/Sarif/Autogenerated/VersionControlDetailsEqualityComparer.cs index 6bf4a261a..caaa9cecf 100644 --- a/src/Sarif/Autogenerated/VersionControlDetailsEqualityComparer.cs +++ b/src/Sarif/Autogenerated/VersionControlDetailsEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type VersionControlDetails for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class VersionControlDetailsEqualityComparer : IEqualityComparer { internal static readonly VersionControlDetailsEqualityComparer Instance = new VersionControlDetailsEqualityComparer(); diff --git a/src/Sarif/Autogenerated/WebRequest.cs b/src/Sarif/Autogenerated/WebRequest.cs index 338d625a3..102e953a2 100644 --- a/src/Sarif/Autogenerated/WebRequest.cs +++ b/src/Sarif/Autogenerated/WebRequest.cs @@ -14,7 +14,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Describes an HTTP request. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class WebRequest : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => WebRequestEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/WebRequestComparer.cs b/src/Sarif/Autogenerated/WebRequestComparer.cs index 7715e71c0..0c013a359 100644 --- a/src/Sarif/Autogenerated/WebRequestComparer.cs +++ b/src/Sarif/Autogenerated/WebRequestComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type WebRequest for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class WebRequestComparer : IComparer { internal static readonly WebRequestComparer Instance = new WebRequestComparer(); diff --git a/src/Sarif/Autogenerated/WebRequestEqualityComparer.cs b/src/Sarif/Autogenerated/WebRequestEqualityComparer.cs index ea6877e37..b5720074b 100644 --- a/src/Sarif/Autogenerated/WebRequestEqualityComparer.cs +++ b/src/Sarif/Autogenerated/WebRequestEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type WebRequest for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class WebRequestEqualityComparer : IEqualityComparer { internal static readonly WebRequestEqualityComparer Instance = new WebRequestEqualityComparer(); diff --git a/src/Sarif/Autogenerated/WebResponse.cs b/src/Sarif/Autogenerated/WebResponse.cs index 30639bc0a..6995a37a1 100644 --- a/src/Sarif/Autogenerated/WebResponse.cs +++ b/src/Sarif/Autogenerated/WebResponse.cs @@ -14,7 +14,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Describes the response to an HTTP request. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class WebResponse : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => WebResponseEqualityComparer.Instance; diff --git a/src/Sarif/Autogenerated/WebResponseComparer.cs b/src/Sarif/Autogenerated/WebResponseComparer.cs index 024b53b00..645031bac 100644 --- a/src/Sarif/Autogenerated/WebResponseComparer.cs +++ b/src/Sarif/Autogenerated/WebResponseComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type WebResponse for sorting. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class WebResponseComparer : IComparer { internal static readonly WebResponseComparer Instance = new WebResponseComparer(); diff --git a/src/Sarif/Autogenerated/WebResponseEqualityComparer.cs b/src/Sarif/Autogenerated/WebResponseEqualityComparer.cs index 9119bb8a4..913be4c6f 100644 --- a/src/Sarif/Autogenerated/WebResponseEqualityComparer.cs +++ b/src/Sarif/Autogenerated/WebResponseEqualityComparer.cs @@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// /// Defines methods to support the comparison of objects of type WebResponse for equality. /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] internal sealed class WebResponseEqualityComparer : IEqualityComparer { internal static readonly WebResponseEqualityComparer Instance = new WebResponseEqualityComparer(); diff --git a/src/Sarif/Baseline/ResultMatching/DataStructures/MatchedResults.cs b/src/Sarif/Baseline/ResultMatching/DataStructures/MatchedResults.cs index 81ba4f191..e261903aa 100644 --- a/src/Sarif/Baseline/ResultMatching/DataStructures/MatchedResults.cs +++ b/src/Sarif/Baseline/ResultMatching/DataStructures/MatchedResults.cs @@ -170,7 +170,7 @@ private Result CreateBaselinedResult(BaselineState newBaselineState) Result result = (CurrentResult ?? PreviousResult).Result.DeepClone(); // Assign a Guid, if not assigned by the Result producer - result.Guid = result.Guid ?? Guid.NewGuid().ToString(SarifConstants.GuidFormat); + result.Guid = result.Guid ?? Guid.NewGuid(); // Assign a CorrelationGuid to map copies of this logical Result across baselined logs to each other if (PreviousResult?.Result == null) diff --git a/src/Sarif/Baseline/V2/WhatComparer.cs b/src/Sarif/Baseline/V2/WhatComparer.cs index ba34a36e9..dc21ac5a7 100644 --- a/src/Sarif/Baseline/V2/WhatComparer.cs +++ b/src/Sarif/Baseline/V2/WhatComparer.cs @@ -24,7 +24,7 @@ public static IEnumerable WhatProperties(this ExtractedResult res // Add Guid if (result.Result.Guid != null) { - yield return new WhatComponent(result.RuleId, locationSpecifier, PropertySetBase, "Guid", result.Result.Guid); + yield return new WhatComponent(result.RuleId, locationSpecifier, PropertySetBase, "Guid", result.Result.Guid?.ToString(SarifConstants.GuidFormat)); } // Add Message Text diff --git a/src/Sarif/Core/Location.cs b/src/Sarif/Core/Location.cs index 0e41f449b..e882aae8c 100644 --- a/src/Sarif/Core/Location.cs +++ b/src/Sarif/Core/Location.cs @@ -22,5 +22,10 @@ public LogicalLocation LogicalLocation } } } + + public bool ShouldSerializeId() + { + return Id >= 0; + } } } diff --git a/src/Sarif/Core/Result.cs b/src/Sarif/Core/Result.cs index c9b3011db..88c7f4882 100644 --- a/src/Sarif/Core/Result.cs +++ b/src/Sarif/Core/Result.cs @@ -80,9 +80,9 @@ public ReportingDescriptor GetRule(Run run = null) } // Look up by this.Rule.Guid, if present - if (!string.IsNullOrEmpty(this.Rule?.Guid) && rules != null) + if (this.Rule?.Guid != null && rules != null) { - ReportingDescriptor rule = component.GetRuleByGuid(this.Rule.Guid); + ReportingDescriptor rule = component.GetRuleByGuid(this.Rule.Guid.Value); if (rule != null) { return rule; } } diff --git a/src/Sarif/Core/Run.cs b/src/Sarif/Core/Run.cs index b9e0ab762..443291a56 100644 --- a/src/Sarif/Core/Run.cs +++ b/src/Sarif/Core/Run.cs @@ -224,8 +224,8 @@ public bool ShouldSerializeAutomationDetails() { return this.AutomationDetails?.Description != null || !string.IsNullOrWhiteSpace(this.AutomationDetails?.Id) || - !string.IsNullOrWhiteSpace(this.AutomationDetails?.Guid) || - !string.IsNullOrWhiteSpace(this.AutomationDetails?.CorrelationGuid); + this.AutomationDetails?.Guid != null || + this.AutomationDetails?.CorrelationGuid != null; } public bool ShouldSerializeInvocations() diff --git a/src/Sarif/Core/RunAutomationDetails.cs b/src/Sarif/Core/RunAutomationDetails.cs index c6437debf..a82676ff8 100644 --- a/src/Sarif/Core/RunAutomationDetails.cs +++ b/src/Sarif/Core/RunAutomationDetails.cs @@ -12,8 +12,8 @@ public partial class RunAutomationDetails public bool ShouldSerializeId() => !string.IsNullOrWhiteSpace(this.Id); - public bool ShouldSerializeGuid() => !string.IsNullOrWhiteSpace(this.Guid); + public bool ShouldSerializeGuid() => this.Guid != null; - public bool ShouldSerializeCorrelationGuid() => !string.IsNullOrWhiteSpace(this.CorrelationGuid); + public bool ShouldSerializeCorrelationGuid() => this.CorrelationGuid != null; } } diff --git a/src/Sarif/Core/Tool.cs b/src/Sarif/Core/Tool.cs index dc4238e61..b7a546703 100644 --- a/src/Sarif/Core/Tool.cs +++ b/src/Sarif/Core/Tool.cs @@ -88,7 +88,7 @@ public ToolComponent GetToolComponentFromReference(ToolComponentReference refere } // Lookup by GUID if present - if (!string.IsNullOrEmpty(reference.Guid)) + if (reference.Guid != null) { if (this.Extensions != null) { diff --git a/src/Sarif/Core/ToolComponent.cs b/src/Sarif/Core/ToolComponent.cs index c8a9b2ce4..3f2084deb 100644 --- a/src/Sarif/Core/ToolComponent.cs +++ b/src/Sarif/Core/ToolComponent.cs @@ -13,17 +13,17 @@ namespace Microsoft.CodeAnalysis.Sarif public partial class ToolComponent { private Dictionary _cachedRulesById; - private Dictionary _cachedRulesByGuid; + private Dictionary _cachedRulesByGuid; private void BuildRuleCaches() { _cachedRulesById = new Dictionary(); - _cachedRulesByGuid = new Dictionary(); + _cachedRulesByGuid = new Dictionary(); foreach (ReportingDescriptor r in this.Rules ?? Enumerable.Empty()) { if (r.Id != null) { _cachedRulesById[r.Id] = r; } - if (r.Guid != null) { _cachedRulesByGuid[r.Guid] = r; } + if (r.Guid != null) { _cachedRulesByGuid[r.Guid.Value] = r; } } } @@ -41,7 +41,7 @@ public ReportingDescriptor GetRuleById(string ruleId) return rule; } - public ReportingDescriptor GetRuleByGuid(string ruleGuid) + public ReportingDescriptor GetRuleByGuid(Guid ruleGuid) { ReportingDescriptor rule = null; diff --git a/src/Sarif/ExtensionMethods.cs b/src/Sarif/ExtensionMethods.cs index 2d7263a03..fa46ee42c 100644 --- a/src/Sarif/ExtensionMethods.cs +++ b/src/Sarif/ExtensionMethods.cs @@ -562,6 +562,36 @@ internal static string PropertyValue(this Dictionary properties, } } + /// + /// Extension method for comparing nullable structs + /// with proper handling of the case when 'left' is null. + /// + /// The type of struct. + /// The first item to compare. + /// The second item to compare. + /// + /// Returns 1 if left is greater than right, -1 if left is less than right, 0 if they are equal. + /// + internal static int CompareTo(this T? left, T? right) where T : struct, IComparable + { + if (left == null && right == null) + { + return 0; + } + + if (left == null) + { + return -1; + } + + if (right == null) + { + return 1; + } + + return left.Value.CompareTo(right.Value); + } + /// Checks if a character is a newline. /// The character to check. /// true if newline, false if not. diff --git a/src/Sarif/NotYetAutoGenerated/Address.cs b/src/Sarif/NotYetAutoGenerated/Address.cs index 39ec63b61..176243c2c 100644 --- a/src/Sarif/NotYetAutoGenerated/Address.cs +++ b/src/Sarif/NotYetAutoGenerated/Address.cs @@ -15,7 +15,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// A physical or virtual address, or a range of addresses, in an 'addressable region' (memory or a binary file). /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class Address : PropertyBagHolder, ISarifNode { public static IEqualityComparer
ValueComparer => AddressEqualityComparer.Instance; diff --git a/src/Sarif/NotYetAutoGenerated/AddressComparer.cs b/src/Sarif/NotYetAutoGenerated/AddressComparer.cs deleted file mode 100644 index 99f45085e..000000000 --- a/src/Sarif/NotYetAutoGenerated/AddressComparer.cs +++ /dev/null @@ -1,113 +0,0 @@ -// Copyright (c) Microsoft. All Rights Reserved. -// Licensed under the MIT license. See LICENSE file in the project root for full license information. - -using System; -using System.CodeDom.Compiler; -using System.Collections.Generic; - -namespace Microsoft.CodeAnalysis.Sarif -{ - /// - /// Defines methods to support the comparison of objects of type Address for sorting. - /// - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] - internal sealed class AddressComparer : IComparer
- { - internal static readonly AddressComparer Instance = new AddressComparer(); - - public int Compare(Address left, Address right) - { - int compareResult = 0; - - // TryReferenceCompares is an autogenerated extension method - // that will properly handle the case when 'left' is null. - if (left.TryReferenceCompares(right, out compareResult)) - { - return compareResult; - } - - compareResult = left.AbsoluteAddress.CompareTo(right.AbsoluteAddress); - if (compareResult != 0) - { - return compareResult; - } - - // TryReferenceCompares is an autogenerated extension method - // that will properly handle the case when 'left' is null. - if (left.RelativeAddress.TryReferenceCompares(right.RelativeAddress, out compareResult)) - { - return compareResult; - } - - compareResult = left.RelativeAddress.Value.CompareTo(right.RelativeAddress.Value); - if (compareResult != 0) - { - return compareResult; - } - - // TryReferenceCompares is an autogenerated extension method - // that will properly handle the case when 'left' is null. - if (left.Length.TryReferenceCompares(right.Length, out compareResult)) - { - return compareResult; - } - - compareResult = left.Length.Value.CompareTo(right.Length.Value); - if (compareResult != 0) - { - return compareResult; - } - - compareResult = string.Compare(left.Kind, right.Kind); - if (compareResult != 0) - { - return compareResult; - } - - compareResult = string.Compare(left.Name, right.Name); - if (compareResult != 0) - { - return compareResult; - } - - compareResult = string.Compare(left.FullyQualifiedName, right.FullyQualifiedName); - if (compareResult != 0) - { - return compareResult; - } - - // TryReferenceCompares is an autogenerated extension method - // that will properly handle the case when 'left' is null. - if (left.OffsetFromParent.TryReferenceCompares(right.OffsetFromParent, out compareResult)) - { - return compareResult; - } - - compareResult = left.OffsetFromParent.Value.CompareTo(right.OffsetFromParent.Value); - if (compareResult != 0) - { - return compareResult; - } - - compareResult = left.Index.CompareTo(right.Index); - if (compareResult != 0) - { - return compareResult; - } - - compareResult = left.ParentIndex.CompareTo(right.ParentIndex); - if (compareResult != 0) - { - return compareResult; - } - - compareResult = left.Properties.DictionaryCompares(right.Properties, SerializedPropertyInfoComparer.Instance); - if (compareResult != 0) - { - return compareResult; - } - - return compareResult; - } - } -} diff --git a/src/Sarif/NotYetAutoGenerated/Invocation.cs b/src/Sarif/NotYetAutoGenerated/Invocation.cs index 6eb1d505f..432f81129 100644 --- a/src/Sarif/NotYetAutoGenerated/Invocation.cs +++ b/src/Sarif/NotYetAutoGenerated/Invocation.cs @@ -14,7 +14,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// The runtime environment of the analysis tool run. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class Invocation : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => InvocationEqualityComparer.Instance; diff --git a/src/Sarif/NotYetAutoGenerated/Location.cs b/src/Sarif/NotYetAutoGenerated/Location.cs index 21a679f6b..2aa8d21a2 100644 --- a/src/Sarif/NotYetAutoGenerated/Location.cs +++ b/src/Sarif/NotYetAutoGenerated/Location.cs @@ -16,7 +16,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// A location within a programming artifact. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class Location : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => LocationEqualityComparer.Instance; @@ -45,11 +45,6 @@ public virtual SarifNodeKind SarifNodeKind [JsonProperty(DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate)] public virtual BigInteger Id { get; set; } - public bool ShouldSerializeId() - { - return Id >= 0; - } - /// /// Identifies the artifact and region. /// diff --git a/src/Sarif/NotYetAutoGenerated/ReportingConfiguration.cs b/src/Sarif/NotYetAutoGenerated/ReportingConfiguration.cs index df8317b58..d83441ba9 100644 --- a/src/Sarif/NotYetAutoGenerated/ReportingConfiguration.cs +++ b/src/Sarif/NotYetAutoGenerated/ReportingConfiguration.cs @@ -17,7 +17,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Information about a rule or notification that can be configured at runtime. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class ReportingConfiguration : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => ReportingConfigurationEqualityComparer.Instance; diff --git a/src/Sarif/NotYetAutoGenerated/ReportingDescriptor.cs b/src/Sarif/NotYetAutoGenerated/ReportingDescriptor.cs index 7cfc2cfae..9fd32376b 100644 --- a/src/Sarif/NotYetAutoGenerated/ReportingDescriptor.cs +++ b/src/Sarif/NotYetAutoGenerated/ReportingDescriptor.cs @@ -14,7 +14,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Metadata that describes a specific report produced by the tool, as part of the analysis it provides or its runtime reporting. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class ReportingDescriptor : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => ReportingDescriptorEqualityComparer.Instance; @@ -56,13 +56,13 @@ public virtual SarifNodeKind SarifNodeKind /// A unique identifier for the reporting descriptor in the form of a GUID. /// [DataMember(Name = "guid", IsRequired = false, EmitDefaultValue = false, Order = 10)] - public virtual string Guid { get; set; } + public virtual Guid? Guid { get; set; } /// /// An array of unique identifies in the form of a GUID by which this report was known in some previous version of the analysis tool. /// [DataMember(Name = "deprecatedGuids", IsRequired = false, EmitDefaultValue = false, Order = 11)] - public virtual IList DeprecatedGuids { get; set; } + public virtual IList DeprecatedGuids { get; set; } /// /// A report identifier that is understandable to an end user. @@ -179,7 +179,7 @@ public ReportingDescriptor() /// /// An initialization value for the property. /// - public ReportingDescriptor(string id, IEnumerable deprecatedIds, string guid, IEnumerable deprecatedGuids, string name, IEnumerable deprecatedNames, MultiformatMessageString shortDescription, MultiformatMessageString fullDescription, IDictionary messageStrings, ReportingConfiguration defaultConfiguration, Uri helpUri, MultiformatMessageString help, IEnumerable relationships, IDictionary properties) + public ReportingDescriptor(string id, IEnumerable deprecatedIds, Guid? guid, IEnumerable deprecatedGuids, string name, IEnumerable deprecatedNames, MultiformatMessageString shortDescription, MultiformatMessageString fullDescription, IDictionary messageStrings, ReportingConfiguration defaultConfiguration, Uri helpUri, MultiformatMessageString help, IEnumerable relationships, IDictionary properties) { Init(id, deprecatedIds, guid, deprecatedGuids, name, deprecatedNames, shortDescription, fullDescription, messageStrings, defaultConfiguration, helpUri, help, relationships, properties); } @@ -221,7 +221,7 @@ private ISarifNode DeepCloneCore() return new ReportingDescriptor(this); } - protected virtual void Init(string id, IEnumerable deprecatedIds, string guid, IEnumerable deprecatedGuids, string name, IEnumerable deprecatedNames, MultiformatMessageString shortDescription, MultiformatMessageString fullDescription, IDictionary messageStrings, ReportingConfiguration defaultConfiguration, Uri helpUri, MultiformatMessageString help, IEnumerable relationships, IDictionary properties) + protected virtual void Init(string id, IEnumerable deprecatedIds, Guid? guid, IEnumerable deprecatedGuids, string name, IEnumerable deprecatedNames, MultiformatMessageString shortDescription, MultiformatMessageString fullDescription, IDictionary messageStrings, ReportingConfiguration defaultConfiguration, Uri helpUri, MultiformatMessageString help, IEnumerable relationships, IDictionary properties) { Id = id; if (deprecatedIds != null) @@ -238,7 +238,7 @@ protected virtual void Init(string id, IEnumerable deprecatedIds, string Guid = guid; if (deprecatedGuids != null) { - var destination_1 = new List(); + var destination_1 = new List(); foreach (var value_1 in deprecatedGuids) { destination_1.Add(value_1); diff --git a/src/Sarif/NotYetAutoGenerated/Result.cs b/src/Sarif/NotYetAutoGenerated/Result.cs index 93740a77f..3e3dabf8a 100644 --- a/src/Sarif/NotYetAutoGenerated/Result.cs +++ b/src/Sarif/NotYetAutoGenerated/Result.cs @@ -15,7 +15,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// A result produced by an analysis tool. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class Result : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => ResultEqualityComparer.Instance; @@ -128,13 +128,13 @@ public virtual FailureLevel Level /// A stable, unique identifier for the result in the form of a GUID. /// [DataMember(Name = "guid", IsRequired = false, EmitDefaultValue = false)] - public virtual string Guid { get; set; } + public virtual Guid? Guid { get; set; } /// /// A stable, unique identifier for the equivalence class of logically identical results to which this result belongs, in the form of a GUID. /// [DataMember(Name = "correlationGuid", IsRequired = false, EmitDefaultValue = false)] - public virtual string CorrelationGuid { get; set; } + public virtual Guid? CorrelationGuid { get; set; } /// /// A positive integer specifying the number of times this logically unique result was observed in this run. @@ -373,7 +373,7 @@ public Result() /// /// An initialization value for the property. /// - public Result(string ruleId, int ruleIndex, ReportingDescriptorReference rule, ResultKind kind, FailureLevel level, Message message, ArtifactLocation analysisTarget, IEnumerable locations, string guid, string correlationGuid, int occurrenceCount, IDictionary partialFingerprints, IDictionary fingerprints, IEnumerable stacks, IEnumerable codeFlows, IEnumerable graphs, IEnumerable graphTraversals, IEnumerable relatedLocations, IEnumerable suppressions, BaselineState baselineState, double rank, IEnumerable attachments, Uri hostedViewerUri, IEnumerable workItemUris, ResultProvenance provenance, IEnumerable fixes, IEnumerable taxa, WebRequest webRequest, WebResponse webResponse, IDictionary properties) + public Result(string ruleId, int ruleIndex, ReportingDescriptorReference rule, ResultKind kind, FailureLevel level, Message message, ArtifactLocation analysisTarget, IEnumerable locations, Guid? guid, Guid? correlationGuid, int occurrenceCount, IDictionary partialFingerprints, IDictionary fingerprints, IEnumerable stacks, IEnumerable codeFlows, IEnumerable graphs, IEnumerable graphTraversals, IEnumerable relatedLocations, IEnumerable suppressions, BaselineState baselineState, double rank, IEnumerable attachments, Uri hostedViewerUri, IEnumerable workItemUris, ResultProvenance provenance, IEnumerable fixes, IEnumerable taxa, WebRequest webRequest, WebResponse webResponse, IDictionary properties) { Init(ruleId, ruleIndex, rule, kind, level, message, analysisTarget, locations, guid, correlationGuid, occurrenceCount, partialFingerprints, fingerprints, stacks, codeFlows, graphs, graphTraversals, relatedLocations, suppressions, baselineState, rank, attachments, hostedViewerUri, workItemUris, provenance, fixes, taxa, webRequest, webResponse, properties); } @@ -415,7 +415,7 @@ private ISarifNode DeepCloneCore() return new Result(this); } - protected virtual void Init(string ruleId, int ruleIndex, ReportingDescriptorReference rule, ResultKind kind, FailureLevel level, Message message, ArtifactLocation analysisTarget, IEnumerable locations, string guid, string correlationGuid, int occurrenceCount, IDictionary partialFingerprints, IDictionary fingerprints, IEnumerable stacks, IEnumerable codeFlows, IEnumerable graphs, IEnumerable graphTraversals, IEnumerable relatedLocations, IEnumerable suppressions, BaselineState baselineState, double rank, IEnumerable attachments, Uri hostedViewerUri, IEnumerable workItemUris, ResultProvenance provenance, IEnumerable fixes, IEnumerable taxa, WebRequest webRequest, WebResponse webResponse, IDictionary properties) + protected virtual void Init(string ruleId, int ruleIndex, ReportingDescriptorReference rule, ResultKind kind, FailureLevel level, Message message, ArtifactLocation analysisTarget, IEnumerable locations, Guid? guid, Guid? correlationGuid, int occurrenceCount, IDictionary partialFingerprints, IDictionary fingerprints, IEnumerable stacks, IEnumerable codeFlows, IEnumerable graphs, IEnumerable graphTraversals, IEnumerable relatedLocations, IEnumerable suppressions, BaselineState baselineState, double rank, IEnumerable attachments, Uri hostedViewerUri, IEnumerable workItemUris, ResultProvenance provenance, IEnumerable fixes, IEnumerable taxa, WebRequest webRequest, WebResponse webResponse, IDictionary properties) { RuleId = ruleId; RuleIndex = ruleIndex; diff --git a/src/Sarif/NotYetAutoGenerated/Run.cs b/src/Sarif/NotYetAutoGenerated/Run.cs index 1345292e3..522a1b916 100644 --- a/src/Sarif/NotYetAutoGenerated/Run.cs +++ b/src/Sarif/NotYetAutoGenerated/Run.cs @@ -15,7 +15,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Describes a single run of an analysis tool, and contains the reported output of that run. /// [DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class Run : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => RunEqualityComparer.Instance; @@ -119,7 +119,7 @@ public virtual SarifNodeKind SarifNodeKind /// The 'guid' property of a previous SARIF 'run' that comprises the baseline that was used to compute result 'baselineState' properties for the run. /// [DataMember(Name = "baselineGuid", IsRequired = false, EmitDefaultValue = false)] - public virtual string BaselineGuid { get; set; } + public virtual Guid? BaselineGuid { get; set; } /// /// An array of strings used to replace sensitive information in a redaction-aware property. @@ -321,7 +321,7 @@ public Run() /// /// An initialization value for the property. /// - public Run(Tool tool, IEnumerable invocations, Conversion conversion, string language, IEnumerable versionControlProvenance, IDictionary originalUriBaseIds, IEnumerable artifacts, IEnumerable logicalLocations, IEnumerable graphs, IEnumerable results, RunAutomationDetails automationDetails, IEnumerable runAggregates, string baselineGuid, IEnumerable redactionTokens, string defaultEncoding, string defaultSourceLanguage, IEnumerable newlineSequences, ColumnKind columnKind, ExternalPropertyFileReferences externalPropertyFileReferences, IEnumerable threadFlowLocations, IEnumerable taxonomies, IEnumerable
addresses, IEnumerable translations, IEnumerable policies, IEnumerable webRequests, IEnumerable webResponses, SpecialLocations specialLocations, IDictionary properties) + public Run(Tool tool, IEnumerable invocations, Conversion conversion, string language, IEnumerable versionControlProvenance, IDictionary originalUriBaseIds, IEnumerable artifacts, IEnumerable logicalLocations, IEnumerable graphs, IEnumerable results, RunAutomationDetails automationDetails, IEnumerable runAggregates, Guid? baselineGuid, IEnumerable redactionTokens, string defaultEncoding, string defaultSourceLanguage, IEnumerable newlineSequences, ColumnKind columnKind, ExternalPropertyFileReferences externalPropertyFileReferences, IEnumerable threadFlowLocations, IEnumerable taxonomies, IEnumerable
addresses, IEnumerable translations, IEnumerable policies, IEnumerable webRequests, IEnumerable webResponses, SpecialLocations specialLocations, IDictionary properties) { Init(tool, invocations, conversion, language, versionControlProvenance, originalUriBaseIds, artifacts, logicalLocations, graphs, results, automationDetails, runAggregates, baselineGuid, redactionTokens, defaultEncoding, defaultSourceLanguage, newlineSequences, columnKind, externalPropertyFileReferences, threadFlowLocations, taxonomies, addresses, translations, policies, webRequests, webResponses, specialLocations, properties); } @@ -363,7 +363,7 @@ private ISarifNode DeepCloneCore() return new Run(this); } - protected virtual void Init(Tool tool, IEnumerable invocations, Conversion conversion, string language, IEnumerable versionControlProvenance, IDictionary originalUriBaseIds, IEnumerable artifacts, IEnumerable logicalLocations, IEnumerable graphs, IEnumerable results, RunAutomationDetails automationDetails, IEnumerable runAggregates, string baselineGuid, IEnumerable redactionTokens, string defaultEncoding, string defaultSourceLanguage, IEnumerable newlineSequences, ColumnKind columnKind, ExternalPropertyFileReferences externalPropertyFileReferences, IEnumerable threadFlowLocations, IEnumerable taxonomies, IEnumerable
addresses, IEnumerable translations, IEnumerable policies, IEnumerable webRequests, IEnumerable webResponses, SpecialLocations specialLocations, IDictionary properties) + protected virtual void Init(Tool tool, IEnumerable invocations, Conversion conversion, string language, IEnumerable versionControlProvenance, IDictionary originalUriBaseIds, IEnumerable artifacts, IEnumerable logicalLocations, IEnumerable graphs, IEnumerable results, RunAutomationDetails automationDetails, IEnumerable runAggregates, Guid? baselineGuid, IEnumerable redactionTokens, string defaultEncoding, string defaultSourceLanguage, IEnumerable newlineSequences, ColumnKind columnKind, ExternalPropertyFileReferences externalPropertyFileReferences, IEnumerable threadFlowLocations, IEnumerable taxonomies, IEnumerable
addresses, IEnumerable translations, IEnumerable policies, IEnumerable webRequests, IEnumerable webResponses, SpecialLocations specialLocations, IDictionary properties) { if (tool != null) { diff --git a/src/Sarif/NotYetAutoGenerated/SarifLog.cs b/src/Sarif/NotYetAutoGenerated/SarifLog.cs index 243027c22..495f91881 100644 --- a/src/Sarif/NotYetAutoGenerated/SarifLog.cs +++ b/src/Sarif/NotYetAutoGenerated/SarifLog.cs @@ -14,7 +14,7 @@ namespace Microsoft.CodeAnalysis.Sarif /// Static Analysis Results Format (SARIF) Version 2.1.0-rtm.5 JSON Schema: a standard format for the output of static analysis tools. ///
[DataContract] - [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "1.1.5.0")] + [GeneratedCode("Microsoft.Json.Schema.ToDotNet", "2.1.0.0")] public partial class SarifLog : PropertyBagHolder, ISarifNode { public static IEqualityComparer ValueComparer => SarifLogEqualityComparer.Instance; diff --git a/src/Sarif/Query/Evaluators/SarifEvaluators.cs b/src/Sarif/Query/Evaluators/SarifEvaluators.cs index fa1e74c85..fc27cacac 100644 --- a/src/Sarif/Query/Evaluators/SarifEvaluators.cs +++ b/src/Sarif/Query/Evaluators/SarifEvaluators.cs @@ -17,9 +17,9 @@ public static IExpressionEvaluator ResultEvaluator(TermExpression term) case "baselinestate": return new EnumEvaluator(r => r.BaselineState, term); case "correlationguid": - return new StringEvaluator(r => r.CorrelationGuid, term, StringComparison.OrdinalIgnoreCase); + return new StringEvaluator(r => r.CorrelationGuid?.ToString(SarifConstants.GuidFormat), term, StringComparison.OrdinalIgnoreCase); case "guid": - return new StringEvaluator(r => r.Guid, term, StringComparison.OrdinalIgnoreCase); + return new StringEvaluator(r => r.Guid?.ToString(SarifConstants.GuidFormat), term, StringComparison.OrdinalIgnoreCase); case "hostedvieweruri": return new StringEvaluator(r => r.HostedViewerUri?.ToString(), term, StringComparison.OrdinalIgnoreCase); case "kind": diff --git a/src/Sarif/Schemata/sarif-2.1.0-rtm.5.json b/src/Sarif/Schemata/sarif-2.1.0-rtm.5.json index ac7df68c9..2c12fa7f7 100644 --- a/src/Sarif/Schemata/sarif-2.1.0-rtm.5.json +++ b/src/Sarif/Schemata/sarif-2.1.0-rtm.5.json @@ -1,5 +1,5 @@ { - "$schema": "http://json-schema.org/draft-04/schema#", + "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "Static Analysis Results Format (SARIF) Version 2.1.0-rtm.5 JSON Schema", "id": "https://raw.githubusercontent.com/schemastore/schemastore/master/src/schemas/json/sarif-2.1.0-rtm.5.json", "description": "Static Analysis Results Format (SARIF) Version 2.1.0-rtm.5 JSON Schema: a standard format for the output of static analysis tools.", @@ -593,13 +593,13 @@ "guid": { "description": "A stable, unique identifier for this external properties object, in the form of a GUID.", "type": "string", - "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$" + "format": "uuid" }, "runGuid": { "description": "A stable, unique identifier for the run associated with this external properties object, in the form of a GUID.", "type": "string", - "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$" + "format": "uuid" }, "conversion": { @@ -780,7 +780,7 @@ "guid": { "description": "A stable, unique identifier for the external property file in the form of a GUID.", "type": "string", - "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$" + "format": "uuid" }, "itemCount": { @@ -1827,7 +1827,7 @@ "guid": { "description": "A unique identifier for the reporting descriptor in the form of a GUID.", "type": "string", - "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$" + "format": "uuid" }, "deprecatedGuids": { @@ -1837,7 +1837,7 @@ "uniqueItems": true, "items": { "type": "string", - "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$" + "format": "uuid" } }, @@ -1968,7 +1968,7 @@ "guid": { "description": "A guid that uniquely identifies the descriptor.", "type": "string", - "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$" + "format": "uuid" }, "toolComponent": { @@ -2081,13 +2081,13 @@ "guid": { "description": "A stable, unique identifier for the result in the form of a GUID.", "type": "string", - "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$" + "format": "uuid" }, "correlationGuid": { "description": "A stable, unique identifier for the equivalence class of logically identical results to which this result belongs, in the form of a GUID.", "type": "string", - "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$" + "format": "uuid" }, "occurrenceCount": { @@ -2289,13 +2289,13 @@ "firstDetectionRunGuid": { "description": "A GUID-valued string equal to the automationDetails.guid property of the run in which the result was first detected.", "type": "string", - "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$" + "format": "uuid" }, "lastDetectionRunGuid": { "description": "A GUID-valued string equal to the automationDetails.guid property of the run in which the result was most recently detected.", "type": "string", - "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$" + "format": "uuid" }, "invocationIndex": { @@ -2437,7 +2437,7 @@ "baselineGuid": { "description": "The 'guid' property of a previous SARIF 'run' that comprises the baseline that was used to compute result 'baselineState' properties for the run.", "type": "string", - "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$" + "format": "uuid" }, "redactionTokens": { @@ -2592,13 +2592,13 @@ "guid": { "description": "A stable, unique identifier for this object's containing run object in the form of a GUID.", "type": "string", - "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$" + "format": "uuid" }, "correlationGuid": { "description": "A stable, unique identifier for the equivalence class of runs to which this object's containing run object belongs in the form of a GUID.", "type": "string", - "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$" + "format": "uuid" }, "properties": { @@ -2704,7 +2704,7 @@ "guid": { "description": "A stable, unique identifier for the suprression in the form of a GUID.", "type": "string", - "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$" + "format": "uuid" }, "kind": { @@ -2934,7 +2934,7 @@ "guid": { "description": "A unique identifier for the tool component in the form of a GUID.", "type": "string", - "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$" + "format": "uuid" }, "name": { @@ -3143,7 +3143,7 @@ "guid": { "description": "The 'guid' property of the referenced toolComponent.", "type": "string", - "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$" + "format": "uuid" }, "properties": { diff --git a/src/Sarif/Schemata/sarif-external-property-file-2.1.0-rtm.5.json b/src/Sarif/Schemata/sarif-external-property-file-2.1.0-rtm.5.json index fbc12645b..3cba480ec 100644 --- a/src/Sarif/Schemata/sarif-external-property-file-2.1.0-rtm.5.json +++ b/src/Sarif/Schemata/sarif-external-property-file-2.1.0-rtm.5.json @@ -19,13 +19,13 @@ "guid": { "description": "A stable, unique identifier for this external properties object, in the form of a GUID.", "type": "string", - "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$" + "format": "uuid" }, "runGuid": { "description": "A stable, unique identifier for the run associated with this external properties object, in the form of a GUID.", "type": "string", - "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$" + "format": "uuid" }, "conversion": { diff --git a/src/Sarif/ToDotNet/ToDotNet.targets b/src/Sarif/ToDotNet/ToDotNet.targets index 65f63403b..a51005559 100644 --- a/src/Sarif/ToDotNet/ToDotNet.targets +++ b/src/Sarif/ToDotNet/ToDotNet.targets @@ -10,11 +10,11 @@ - $(MSBuildProjectDirectory)\..\packages\Microsoft.Json.Schema.ToDotNet.1.1.5\tools\net461\Microsoft.Json.Schema.ToDotNet.Cli.exe + $(MSBuildProjectDirectory)\..\packages\Microsoft.Json.Schema.ToDotNet.2.1.0\tools\net461\Microsoft.Json.Schema.ToDotNet.Cli.exe "$(NuGetPath)\NuGet.exe" restore "$(MSBuildThisFileDirectory)packages.config" -PackagesDirectory "$(MSBuildThisFileDirectory)\..\..\packages" -ConfigFile "$(NuGetConfigPath)" -Verbosity quiet - $(MSBuildProjectDirectory)\..\packages\Microsoft.Json.Schema.ToDotNet.1.1.5\tools\netcoreapp3.1\Microsoft.Json.Schema.ToDotNet.Cli.dll + $(MSBuildProjectDirectory)\..\packages\Microsoft.Json.Schema.ToDotNet.2.1.0\tools\netcoreapp3.1\Microsoft.Json.Schema.ToDotNet.Cli.dll nuget restore "$(MSBuildThisFileDirectory)packages.config" -PackagesDirectory "$(MSBuildThisFileDirectory)\..\..\packages" -ConfigFile "$(NuGetConfigPath)" -Verbosity quiet diff --git a/src/Sarif/ToDotNet/packages.config b/src/Sarif/ToDotNet/packages.config index 90e00c6db..42aebbb8b 100644 --- a/src/Sarif/ToDotNet/packages.config +++ b/src/Sarif/ToDotNet/packages.config @@ -1,4 +1,4 @@ - + \ No newline at end of file diff --git a/src/Sarif/Visitors/InsertOptionalDataVisitor.cs b/src/Sarif/Visitors/InsertOptionalDataVisitor.cs index 394a5d7c2..dde41da32 100644 --- a/src/Sarif/Visitors/InsertOptionalDataVisitor.cs +++ b/src/Sarif/Visitors/InsertOptionalDataVisitor.cs @@ -214,9 +214,9 @@ public override Result VisitResult(Result node) node = base.VisitResult(node); _ruleIndex = -1; - if (string.IsNullOrEmpty(node.Guid) && _dataToInsert.HasFlag(OptionallyEmittedData.Guids)) + if (node.Guid == null && _dataToInsert.HasFlag(OptionallyEmittedData.Guids)) { - node.Guid = Guid.NewGuid().ToString(SarifConstants.GuidFormat); + node.Guid = Guid.NewGuid(); } if (_dataToInsert.HasFlag(OptionallyEmittedData.GitBlameInformation)) diff --git a/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs b/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs index c54449ac6..756c43e01 100644 --- a/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs +++ b/src/Sarif/Visitors/SarifCurrentToVersionOneVisitor.cs @@ -786,7 +786,7 @@ internal ResultVersionOne CreateResultVersionOne(Result v2Result) { BaselineState = Utilities.CreateBaselineStateVersionOne(v2Result.BaselineState), Fixes = v2Result.Fixes?.Select(CreateFixVersionOne).ToList(), - Id = v2Result.Guid, + Id = v2Result.Guid?.ToString(SarifConstants.GuidFormat), Level = Utilities.CreateResultLevelVersionOne(v2Result.Level, v2Result.Kind), Locations = v2Result.Locations?.Select(CreateLocationVersionOne).ToList(), Message = v2Result.Message?.Text, @@ -907,7 +907,7 @@ internal RunVersionOne CreateRunVersionOne(Run v2Run) CreateFileKeyIndexMappings(v2Run.Artifacts, out _v1FileKeyToV2IndexMap, out _v2FileIndexToV1KeyMap); _v2RuleIndexToV1KeyMap = CreateV2RuleIndexToV1KeyMapping(v2Run.Tool.Driver.Rules); - run.BaselineId = v2Run.BaselineGuid; + run.BaselineId = v2Run.BaselineGuid?.ToString(SarifConstants.GuidFormat); run.Files = CreateFileDataVersionOneDictionary(); run.Id = v2Run.AutomationDetails?.Id; run.AutomationId = v2Run.RunAggregates?.FirstOrDefault()?.Id; diff --git a/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs b/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs index 845cfe79f..97eeeb6d8 100644 --- a/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs +++ b/src/Sarif/Visitors/SarifVersionOneToCurrentVisitor.cs @@ -811,12 +811,14 @@ internal Result CreateResult(ResultVersionOne v1Result) if (v1Result != null) { + bool isIdGuid = Guid.TryParse(v1Result.Id, out Guid idGuid); + result = new Result { BaselineState = Utilities.CreateBaselineState(v1Result.BaselineState), CodeFlows = v1Result.CodeFlows?.Select(CreateCodeFlow).ToList(), Fixes = v1Result.Fixes?.Select(CreateFix).ToList(), - Guid = v1Result.Id, + Guid = isIdGuid ? idGuid : (Guid?)null, Level = Utilities.CreateFailureLevel(v1Result.Level), Kind = Utilities.CreateResultKind(v1Result.Level), Locations = v1Result.Locations?.Select(CreateLocation).ToList(), @@ -941,9 +943,10 @@ internal Run CreateRun(RunVersionOne v1Run) if (v1Run.Id != null || v1Run.StableId != null) { + bool isIdGuid = Guid.TryParse(v1Run.Id, out Guid idGuid); id = new RunAutomationDetails { - Guid = v1Run.Id, + Guid = isIdGuid ? idGuid : (Guid?)null, Id = v1Run.StableId != null ? v1Run.StableId + "/" : null }; } @@ -953,11 +956,13 @@ internal Run CreateRun(RunVersionOne v1Run) aggregateIds = new[] { new RunAutomationDetails { Id = v1Run.AutomationId + "/" } }; } + bool isBaselineIdGuid = Guid.TryParse(v1Run.BaselineId, out Guid baselineIdGuid); + run = new Run() { AutomationDetails = id, RunAggregates = aggregateIds, - BaselineGuid = v1Run.BaselineId, + BaselineGuid = isBaselineIdGuid ? baselineIdGuid : (Guid?)null, Properties = v1Run.Properties, Language = v1Run.Tool?.Language ?? "en-US", Tool = CreateTool(v1Run.Tool), diff --git a/src/Sarif/Visitors/SuppressVisitor.cs b/src/Sarif/Visitors/SuppressVisitor.cs index a421a5398..91617b019 100644 --- a/src/Sarif/Visitors/SuppressVisitor.cs +++ b/src/Sarif/Visitors/SuppressVisitor.cs @@ -55,7 +55,7 @@ public override Result VisitResult(Result node) if (guids) { - suppression.Guid = Guid.NewGuid().ToString(SarifConstants.GuidFormat); + suppression.Guid = Guid.NewGuid(); } if (timestamps) diff --git a/src/Test.EndToEnd.Baselining/BaseliningDetailEnricher.cs b/src/Test.EndToEnd.Baselining/BaseliningDetailEnricher.cs index fce60add7..d94b2d762 100644 --- a/src/Test.EndToEnd.Baselining/BaseliningDetailEnricher.cs +++ b/src/Test.EndToEnd.Baselining/BaseliningDetailEnricher.cs @@ -1,6 +1,7 @@ // Copyright (c) Microsoft. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. +using System; using System.Collections.Generic; using System.IO; using System.Text.RegularExpressions; @@ -36,7 +37,7 @@ public void AddLog(SarifLog currentLog) { foreach (Result result in currentLog.EnumerateResults()) { - DetailByGuid[result.Guid] = Details(result); + DetailByGuid[result.Guid?.ToString(SarifConstants.GuidFormat)] = Details(result); } } diff --git a/src/Test.EndToEnd.Baselining/BaseliningDetailLogger.cs b/src/Test.EndToEnd.Baselining/BaseliningDetailLogger.cs index 91c706787..e89883d01 100644 --- a/src/Test.EndToEnd.Baselining/BaseliningDetailLogger.cs +++ b/src/Test.EndToEnd.Baselining/BaseliningDetailLogger.cs @@ -47,7 +47,7 @@ private static string RelativeSeriesPath(string seriesPath) public void Write(SarifLog newBaselineLog, SarifLog baselineLog, BaseliningSummary summary) { - Dictionary baselineResultsByGuid = new Dictionary(); + Dictionary baselineResultsByGuid = new Dictionary(); foreach (Result result in baselineLog.EnumerateResults()) { baselineResultsByGuid[result.CorrelationGuid ?? result.Guid] = result; @@ -61,10 +61,10 @@ public void Write(SarifLog newBaselineLog, SarifLog baselineLog, BaseliningSumma switch (result.BaselineState) { case BaselineState.Absent: - Write('-', result.Guid); + Write('-', result.Guid?.ToString(SarifConstants.GuidFormat)); break; case BaselineState.New: - Write('+', result.Guid); + Write('+', result.Guid?.ToString(SarifConstants.GuidFormat)); break; case BaselineState.Unchanged: case BaselineState.Updated: @@ -75,14 +75,14 @@ public void Write(SarifLog newBaselineLog, SarifLog baselineLog, BaseliningSumma if (previousResult == null) { // Write '?' for the Previous if we couldn't look it up - Write('=', result.Guid); - Write('?', result.CorrelationGuid); + Write('=', result.Guid?.ToString(SarifConstants.GuidFormat)); + Write('?', result.CorrelationGuid?.ToString(SarifConstants.GuidFormat)); } else if (result.Guid != previousResult.Guid) { // Only Log Unchanged results from the latest log (with a new Guid) - Write('=', result.Guid); - Write(' ', previousResult.Guid); + Write('=', result.Guid?.ToString(SarifConstants.GuidFormat)); + Write(' ', previousResult.Guid?.ToString(SarifConstants.GuidFormat)); } break; diff --git a/src/Test.EndToEnd.Baselining/BaseliningTester.cs b/src/Test.EndToEnd.Baselining/BaseliningTester.cs index 5edf18106..195318e9c 100644 --- a/src/Test.EndToEnd.Baselining/BaseliningTester.cs +++ b/src/Test.EndToEnd.Baselining/BaseliningTester.cs @@ -249,7 +249,8 @@ public static void AssignResultRIDs(SarifLog log, int logIndex) int resultIndex = 0; foreach (Result result in log.EnumerateResults()) { - result.Guid = $"{logIndex:d3} {resultIndex:d3}"; + bool isGuid = Guid.TryParse($"{logIndex:d3} {resultIndex:d3}", out Guid newGuid); + result.Guid = isGuid ? newGuid : (Guid?)null; result.CorrelationGuid = null; resultIndex++; } diff --git a/src/Test.EndToEnd.Baselining/Extensions/SarifLogExtensions.cs b/src/Test.EndToEnd.Baselining/Extensions/SarifLogExtensions.cs index d38e9d495..e4c535a9e 100644 --- a/src/Test.EndToEnd.Baselining/Extensions/SarifLogExtensions.cs +++ b/src/Test.EndToEnd.Baselining/Extensions/SarifLogExtensions.cs @@ -59,7 +59,9 @@ public static IEnumerable EnumerateRuns(this SarifLog log) public static Result FindByGuid(this SarifLog log, string guid) { - return log.EnumerateResults().Where(result => result.CorrelationGuid == guid || result.Guid == guid).FirstOrDefault(); + bool isGuid = Guid.TryParse(guid, out Guid parsedGuid); + Guid? guidToCompare = isGuid ? parsedGuid : (Guid?)null; + return log.EnumerateResults().Where(result => result.CorrelationGuid == guidToCompare || result.Guid == guidToCompare).FirstOrDefault(); } } } diff --git a/src/Test.FunctionalTests.Sarif/SarifValidatorTests.cs b/src/Test.FunctionalTests.Sarif/SarifValidatorTests.cs index 9bc7dfe1a..27fba5513 100644 --- a/src/Test.FunctionalTests.Sarif/SarifValidatorTests.cs +++ b/src/Test.FunctionalTests.Sarif/SarifValidatorTests.cs @@ -113,7 +113,7 @@ public override LocationRelationship VisitLocationRelationship(LocationRelations public override ReportingDescriptor VisitReportingDescriptor(ReportingDescriptor node) { - node.DeprecatedGuids[0] = "36D2C336-7730-425A-9A94-43593A2A651C"; + node.DeprecatedGuids[0] = Guid.Parse("36D2C336-7730-425A-9A94-43593A2A651C"); return base.VisitReportingDescriptor(node); } } diff --git a/src/Test.UnitTests.Sarif.Driver/Sdk/AnalyzeCommandBaseTests.cs b/src/Test.UnitTests.Sarif.Driver/Sdk/AnalyzeCommandBaseTests.cs index b028aa9b6..ba2697977 100644 --- a/src/Test.UnitTests.Sarif.Driver/Sdk/AnalyzeCommandBaseTests.cs +++ b/src/Test.UnitTests.Sarif.Driver/Sdk/AnalyzeCommandBaseTests.cs @@ -1374,7 +1374,7 @@ public void AnalyzeCommandBase_AutomationDetailsTests() { const string whiteSpace = " "; const string automationId = "automation-id"; - const string automationGuid = "automation-guid"; + var automationGuid = Guid.NewGuid(); TestAnalyzeOptions[] enhancedOptions = new[] { @@ -1397,7 +1397,12 @@ public void AnalyzeCommandBase_AutomationDetailsTests() new TestAnalyzeOptions { AutomationId = string.Empty, - AutomationGuid = string.Empty + AutomationGuid = null + }, + new TestAnalyzeOptions + { + AutomationId = string.Empty, + AutomationGuid = automationGuid }, new TestAnalyzeOptions { @@ -1407,7 +1412,7 @@ public void AnalyzeCommandBase_AutomationDetailsTests() new TestAnalyzeOptions { AutomationId = whiteSpace, - AutomationGuid = whiteSpace + AutomationGuid = Guid.Empty }, new TestAnalyzeOptions { @@ -1417,11 +1422,16 @@ public void AnalyzeCommandBase_AutomationDetailsTests() new TestAnalyzeOptions { AutomationId = null, - AutomationGuid = whiteSpace + AutomationGuid = Guid.Empty + }, + new TestAnalyzeOptions + { + AutomationId = null, + AutomationGuid = automationGuid }, new TestAnalyzeOptions { - AutomationGuid = string.Empty + AutomationGuid = Guid.Empty }, new TestAnalyzeOptions { @@ -1775,7 +1785,7 @@ public void AnalyzeCommandBase_MultithreadedShouldUseCacheIfFilesAreTheSame() { runWithCaching.Artifacts.Should().NotBeEmpty(); - if (string.IsNullOrWhiteSpace(options.AutomationId) && string.IsNullOrWhiteSpace(options.AutomationGuid)) + if (string.IsNullOrWhiteSpace(options.AutomationId) && options.AutomationGuid == null) { runWithCaching.AutomationDetails.Should().Be(null); } @@ -1785,7 +1795,7 @@ public void AnalyzeCommandBase_MultithreadedShouldUseCacheIfFilesAreTheSame() runWithCaching.AutomationDetails.Id.Should().Be(options.AutomationId); } - if (!string.IsNullOrWhiteSpace(options.AutomationGuid)) + if (options.AutomationGuid != null) { runWithCaching.AutomationDetails.Guid.Should().Be(options.AutomationGuid); } diff --git a/src/Test.UnitTests.Sarif.Driver/SkimmerIdComparerTests.cs b/src/Test.UnitTests.Sarif.Driver/SkimmerIdComparerTests.cs index ed207cfa4..759a2156b 100644 --- a/src/Test.UnitTests.Sarif.Driver/SkimmerIdComparerTests.cs +++ b/src/Test.UnitTests.Sarif.Driver/SkimmerIdComparerTests.cs @@ -85,12 +85,12 @@ private TestRule PopulateRuleProperties(string id, string name) rule.DefaultConfiguration = new ReportingConfiguration(); rule.DefaultConfiguration.SetProperty(Guid.NewGuid().ToString(), Guid.NewGuid().ToString()); - rule.DeprecatedGuids = new string[] { Guid.NewGuid().ToString() }; + rule.DeprecatedGuids = new Guid[] { Guid.NewGuid() }; rule.DeprecatedIds = new string[] { Guid.NewGuid().ToString() }; rule.DeprecatedNames = new string[] { Guid.NewGuid().ToString() }; rule.FullDescription = new MultiformatMessageString { Text = Guid.NewGuid().ToString() }; - rule.Guid = Guid.NewGuid().ToString(); + rule.Guid = Guid.NewGuid(); rule.Help = new MultiformatMessageString { Text = Guid.NewGuid().ToString() }; rule.HelpUri = new Uri(Guid.NewGuid().ToString(), UriKind.RelativeOrAbsolute); diff --git a/src/Test.UnitTests.Sarif.Multitool.Library/ExtensionsTests.cs b/src/Test.UnitTests.Sarif.Multitool.Library/ExtensionsTests.cs index 19b774308..123a842fa 100644 --- a/src/Test.UnitTests.Sarif.Multitool.Library/ExtensionsTests.cs +++ b/src/Test.UnitTests.Sarif.Multitool.Library/ExtensionsTests.cs @@ -1,6 +1,7 @@ // Copyright (c) Microsoft. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. +using System; using System.Collections.ObjectModel; using System.Text; @@ -23,7 +24,7 @@ public void Extensions_Validate_RefersToDriver() if (actualOutput != item.ExpectedOutput) { - sb.AppendLine($" Input: {item.ToolComponentReference.Index} {item.ToolComponentReference.Guid ?? "null"} {item.DriverGuid ?? "null"} Expected: {item.ExpectedOutput} Actual: {actualOutput}"); + sb.AppendLine($" Input: {item.ToolComponentReference.Index} {item.ToolComponentReference.Guid?.ToString(SarifConstants.GuidFormat) ?? "null"} {item.DriverGuid?.ToString(SarifConstants.GuidFormat) ?? "null"} Expected: {item.ExpectedOutput} Actual: {actualOutput}"); } } @@ -33,7 +34,7 @@ public void Extensions_Validate_RefersToDriver() private class ToolComponentReferenceTestCase { - public ToolComponentReferenceTestCase(int index, string toolGuid, string driverGuid, bool expectedOutput) + public ToolComponentReferenceTestCase(int index, Guid? toolGuid, Guid? driverGuid, bool expectedOutput) { ToolComponentReference = new ToolComponentReference { @@ -46,16 +47,16 @@ public ToolComponentReferenceTestCase(int index, string toolGuid, string driverG } public ToolComponentReference ToolComponentReference { get; } - public string DriverGuid { get; } + public Guid? DriverGuid { get; } public bool ExpectedOutput { get; } } private static readonly ReadOnlyCollection s_toolComponentReferenceTestCases = new ReadOnlyCollection(new[] { new ToolComponentReferenceTestCase(-1, null, null, true), - new ToolComponentReferenceTestCase(-1, "774707BC-6949-4DB5-826D-9FC0E38BFDEE", "774707BC-6949-4DB5-826D-9FC0E38BFDEE", true), - new ToolComponentReferenceTestCase(-1, "774707BC-6949-4DB5-826D-9FC0E38BFDEF", "774707BC-6949-4DB5-826D-9FC0E38BFDEE", false), - new ToolComponentReferenceTestCase(2, "774707BC-6949-4DB5-826D-9FC0E38BFDEE", "774707BC-6949-4DB5-826D-9FC0E38BFDEE", false) + new ToolComponentReferenceTestCase(-1, Guid.Parse("774707BC-6949-4DB5-826D-9FC0E38BFDEE"), Guid.Parse("774707BC-6949-4DB5-826D-9FC0E38BFDEE"), true), + new ToolComponentReferenceTestCase(-1, Guid.Parse("774707BC-6949-4DB5-826D-9FC0E38BFDEF"), Guid.Parse("774707BC-6949-4DB5-826D-9FC0E38BFDEE"), false), + new ToolComponentReferenceTestCase(2, Guid.Parse("774707BC-6949-4DB5-826D-9FC0E38BFDEE"), Guid.Parse("774707BC-6949-4DB5-826D-9FC0E38BFDEE"), false) }); } } diff --git a/src/Test.UnitTests.Sarif.Multitool.Library/SuppressCommandTests.cs b/src/Test.UnitTests.Sarif.Multitool.Library/SuppressCommandTests.cs index f95856d47..3ec492c65 100644 --- a/src/Test.UnitTests.Sarif.Multitool.Library/SuppressCommandTests.cs +++ b/src/Test.UnitTests.Sarif.Multitool.Library/SuppressCommandTests.cs @@ -162,7 +162,7 @@ private static void VerifySuppressCommand(SuppressOptions options) if (options.Guids) { - suppression.Guid.Should().NotBeNullOrEmpty(); + suppression.Guid.Should().NotBeNull(); } if (options.Timestamps && suppression.TryGetProperty("timeUtc", out DateTime timeUtc)) diff --git a/src/Test.UnitTests.Sarif/Baseline/ResultMatching/ExactMatchers/IdenticalResultMatcherTests.cs b/src/Test.UnitTests.Sarif/Baseline/ResultMatching/ExactMatchers/IdenticalResultMatcherTests.cs index 395d57f57..061f91fb8 100644 --- a/src/Test.UnitTests.Sarif/Baseline/ResultMatching/ExactMatchers/IdenticalResultMatcherTests.cs +++ b/src/Test.UnitTests.Sarif/Baseline/ResultMatching/ExactMatchers/IdenticalResultMatcherTests.cs @@ -73,7 +73,7 @@ public void IdenticalResultMatcher_MatchesResults_DifferingOnIdOrStatus_Single() ExtractedResult resultA = new ExtractedResult(ResultMatchingTestHelpers.CreateMatchingResult("file://test", "file://test2", "test context"), null); Result changedResultA = resultA.Result.DeepClone(); - changedResultA.CorrelationGuid = Guid.NewGuid().ToString(); + changedResultA.CorrelationGuid = Guid.NewGuid(); changedResultA.BaselineState = BaselineState.Unchanged; ExtractedResult resultB = new ExtractedResult(changedResultA, null); @@ -91,14 +91,14 @@ public void IdenticalResultMatcher_MatchesResults_DifferingOnIdOrStatus_Multiple ExtractedResult resultAA = new ExtractedResult(ResultMatchingTestHelpers.CreateMatchingResult("file://test", "file://test2", "test context"), null); Result changedResultA = resultAA.Result.DeepClone(); - changedResultA.CorrelationGuid = Guid.NewGuid().ToString(); + changedResultA.CorrelationGuid = Guid.NewGuid(); changedResultA.BaselineState = BaselineState.Unchanged; ExtractedResult resultBA = new ExtractedResult(changedResultA, null); ExtractedResult resultAB = new ExtractedResult(ResultMatchingTestHelpers.CreateMatchingResult("file://test", "file://test2", "test context2"), null); Result changedResultB = resultAB.Result.DeepClone(); - changedResultA.CorrelationGuid = Guid.NewGuid().ToString(); + changedResultA.CorrelationGuid = Guid.NewGuid(); changedResultA.BaselineState = BaselineState.New; ExtractedResult resultBB = new ExtractedResult(changedResultB, null); @@ -116,7 +116,7 @@ public void IdenticalResultMatcher_MatchesResults_DifferingOnResultMatchingPrope ExtractedResult resultAA = new ExtractedResult(ResultMatchingTestHelpers.CreateMatchingResult("file://test", "file://test2", "test context"), null); Result changedResultA = resultAA.Result.DeepClone(); - changedResultA.CorrelationGuid = Guid.NewGuid().ToString(); + changedResultA.CorrelationGuid = Guid.NewGuid(); changedResultA.BaselineState = BaselineState.Unchanged; changedResultA.SetProperty(SarifLogResultMatcher.ResultMatchingResultPropertyName, new Dictionary { { "property", "value" } }); @@ -124,7 +124,7 @@ public void IdenticalResultMatcher_MatchesResults_DifferingOnResultMatchingPrope ExtractedResult resultAB = new ExtractedResult(ResultMatchingTestHelpers.CreateMatchingResult("file://test", "file://test2", "test context2"), null); Result changedResultB = resultAB.Result.DeepClone(); - changedResultA.CorrelationGuid = Guid.NewGuid().ToString(); + changedResultA.CorrelationGuid = Guid.NewGuid(); changedResultA.BaselineState = BaselineState.New; changedResultB.SetProperty(SarifLogResultMatcher.ResultMatchingResultPropertyName, new Dictionary { { "property1", "value1" } }); diff --git a/src/Test.UnitTests.Sarif/Baseline/ResultMatching/ResultMatchingBaselinerTests.cs b/src/Test.UnitTests.Sarif/Baseline/ResultMatching/ResultMatchingBaselinerTests.cs index 8b7d81e0c..2efdad86c 100644 --- a/src/Test.UnitTests.Sarif/Baseline/ResultMatching/ResultMatchingBaselinerTests.cs +++ b/src/Test.UnitTests.Sarif/Baseline/ResultMatching/ResultMatchingBaselinerTests.cs @@ -33,8 +33,8 @@ public void ResultMatchingBaseliner_BaselinesTwoSimpleSarifLogs() Random random = RandomSarifLogGenerator.GenerateRandomAndLog(this.output); SarifLog baselineLog = RandomSarifLogGenerator.GenerateSarifLogWithRuns(random, 1); SarifLog currentLog = baselineLog.DeepClone(); - baselineLog.Runs[0].AutomationDetails = new RunAutomationDetails { Guid = Guid.NewGuid().ToString() }; - currentLog.Runs[0].AutomationDetails = new RunAutomationDetails { Guid = Guid.NewGuid().ToString() }; + baselineLog.Runs[0].AutomationDetails = new RunAutomationDetails { Guid = Guid.NewGuid() }; + currentLog.Runs[0].AutomationDetails = new RunAutomationDetails { Guid = Guid.NewGuid() }; if (currentLog.Runs[0].Results.Any()) { @@ -43,7 +43,7 @@ public void ResultMatchingBaseliner_BaselinesTwoSimpleSarifLogs() foreach (Result result in baselineLog.Runs[0].Results) { - result.CorrelationGuid = Guid.NewGuid().ToString(); + result.CorrelationGuid = Guid.NewGuid(); } SarifLog calculatedNextBaseline = baseliner.Match(new SarifLog[] { baselineLog }, new SarifLog[] { currentLog }).First(); @@ -54,13 +54,13 @@ public void ResultMatchingBaseliner_BaselinesTwoSimpleSarifLogs() { calculatedNextBaseline.Runs[0].Results.Should().HaveCount(currentLog.Runs[0].Results.Count + 1); - calculatedNextBaseline.Runs[0].Results.Where(r => string.IsNullOrEmpty(r.CorrelationGuid)).Should().HaveCount(0); + calculatedNextBaseline.Runs[0].Results.Where(r => r.CorrelationGuid == null).Should().HaveCount(0); calculatedNextBaseline.Runs[0].Results.Where(r => r.BaselineState == BaselineState.Absent).Should().HaveCount(1); calculatedNextBaseline.Runs[0].Results.Where(r => r.BaselineState == BaselineState.Absent).First().TryGetProperty(SarifLogResultMatcher.ResultMatchingResultPropertyName, out Dictionary AbsentResultProperties).Should().BeTrue(); AbsentResultProperties.Should().ContainKey("Run"); - AbsentResultProperties["Run"].Should().BeEquivalentTo(baselineLog.Runs[0].AutomationDetails.Guid); + AbsentResultProperties["Run"].Should().BeEquivalentTo(baselineLog.Runs[0].AutomationDetails.Guid?.ToString(SarifConstants.GuidFormat)); int existingCount = currentLog.Runs[0].Results.Count - 1; calculatedNextBaseline.Runs[0].Results.Where(r => r.BaselineState == BaselineState.Unchanged).Count().Should().Be(existingCount); @@ -71,14 +71,14 @@ public void ResultMatchingBaseliner_BaselinesTwoSimpleSarifLogs() // since we adjusted the sole result value by adding a property to it. calculatedNextBaseline.Runs[0].Results.Where(r => r.BaselineState == BaselineState.Unchanged).First().TryGetProperty(SarifLogResultMatcher.ResultMatchingResultPropertyName, out Dictionary CurrentResultProperties).Should().BeTrue(); CurrentResultProperties.Should().ContainKey("Run"); - CurrentResultProperties["Run"].Should().BeEquivalentTo(currentLog.Runs[0].AutomationDetails.Guid); + CurrentResultProperties["Run"].Should().BeEquivalentTo(currentLog.Runs[0].AutomationDetails.Guid?.ToString(SarifConstants.GuidFormat)); } calculatedNextBaseline.Runs[0].Results.Where(r => r.BaselineState == BaselineState.New).Should().HaveCount(1); calculatedNextBaseline.Runs[0].Results.Where(r => r.BaselineState == BaselineState.New).First().TryGetProperty(SarifLogResultMatcher.ResultMatchingResultPropertyName, out Dictionary NewResultProperties).Should().BeTrue(); NewResultProperties.Should().ContainKey("Run"); - NewResultProperties["Run"].Should().BeEquivalentTo(currentLog.Runs[0].AutomationDetails.Guid); + NewResultProperties["Run"].Should().BeEquivalentTo(currentLog.Runs[0].AutomationDetails.Guid?.ToString(SarifConstants.GuidFormat)); } } diff --git a/src/Test.UnitTests.Sarif/Baseline/ResultMatching/SarifLogResultMatcherTests.cs b/src/Test.UnitTests.Sarif/Baseline/ResultMatching/SarifLogResultMatcherTests.cs index a1fa8bfc6..7745397c1 100644 --- a/src/Test.UnitTests.Sarif/Baseline/ResultMatching/SarifLogResultMatcherTests.cs +++ b/src/Test.UnitTests.Sarif/Baseline/ResultMatching/SarifLogResultMatcherTests.cs @@ -37,8 +37,8 @@ public void SarifLogResultMatcher_BaselinesTwoSimpleSarifLogs() Random random = RandomSarifLogGenerator.GenerateRandomAndLog(this.output); SarifLog baselineLog = RandomSarifLogGenerator.GenerateSarifLogWithRuns(random, 1); SarifLog currentLog = baselineLog.DeepClone(); - baselineLog.Runs[0].AutomationDetails = new RunAutomationDetails { Guid = Guid.NewGuid().ToString() }; - currentLog.Runs[0].AutomationDetails = new RunAutomationDetails { Guid = Guid.NewGuid().ToString() }; + baselineLog.Runs[0].AutomationDetails = new RunAutomationDetails { Guid = Guid.NewGuid() }; + currentLog.Runs[0].AutomationDetails = new RunAutomationDetails { Guid = Guid.NewGuid() }; // This code exists to force a result to diverge from the previous run. By modifying this tag, // we ensure that at least one result will be regarded as new (which implies one result @@ -54,7 +54,7 @@ public void SarifLogResultMatcher_BaselinesTwoSimpleSarifLogs() foreach (Result result in baselineLog.Runs[0].Results) { - result.CorrelationGuid = Guid.NewGuid().ToString(); + result.CorrelationGuid = Guid.NewGuid(); } SarifLog calculatedNextBaseline = s_preserveOldestPropertyBagMatcher.Match(new SarifLog[] { baselineLog }, new SarifLog[] { currentLog }).First(); @@ -68,13 +68,13 @@ public void SarifLogResultMatcher_BaselinesTwoSimpleSarifLogs() { calculatedNextBaseline.Runs[0].Results.Should().HaveCount(currentLog.Runs[0].Results.Count + 1); - calculatedNextBaseline.Runs[0].Results.Where(r => string.IsNullOrEmpty(r.CorrelationGuid)).Should().HaveCount(0); + calculatedNextBaseline.Runs[0].Results.Where(r => r.CorrelationGuid == null).Should().HaveCount(0); calculatedNextBaseline.Runs[0].Results.Where(r => r.BaselineState == BaselineState.Absent).Should().HaveCount(1); calculatedNextBaseline.Runs[0].Results.Where(r => r.BaselineState == BaselineState.Absent).First().TryGetProperty(SarifLogResultMatcher.ResultMatchingResultPropertyName, out Dictionary AbsentResultProperties).Should().BeTrue(); AbsentResultProperties.Should().ContainKey("Run"); - AbsentResultProperties["Run"].Should().BeEquivalentTo(baselineLog.Runs[0].AutomationDetails.Guid); + AbsentResultProperties["Run"].Should().BeEquivalentTo(baselineLog.Runs[0].AutomationDetails.Guid?.ToString(SarifConstants.GuidFormat)); if (currentLog.Runs[0].Results.Count > 1) { @@ -82,13 +82,13 @@ public void SarifLogResultMatcher_BaselinesTwoSimpleSarifLogs() calculatedNextBaseline.Runs[0].Results.Where(r => r.BaselineState == BaselineState.Unchanged).First().TryGetProperty(SarifLogResultMatcher.ResultMatchingResultPropertyName, out Dictionary CurrentResultProperties).Should().BeTrue(); CurrentResultProperties.Should().ContainKey("Run"); - CurrentResultProperties["Run"].Should().BeEquivalentTo(currentLog.Runs[0].AutomationDetails.Guid); + CurrentResultProperties["Run"].Should().BeEquivalentTo(currentLog.Runs[0].AutomationDetails.Guid?.ToString(SarifConstants.GuidFormat)); } calculatedNextBaseline.Runs[0].Results.Where(r => r.BaselineState == BaselineState.New).Should().HaveCount(1); calculatedNextBaseline.Runs[0].Results.Where(r => r.BaselineState == BaselineState.New).First().TryGetProperty(SarifLogResultMatcher.ResultMatchingResultPropertyName, out Dictionary NewResultProperties).Should().BeTrue(); NewResultProperties.Should().ContainKey("Run"); - NewResultProperties["Run"].Should().BeEquivalentTo(currentLog.Runs[0].AutomationDetails.Guid); + NewResultProperties["Run"].Should().BeEquivalentTo(currentLog.Runs[0].AutomationDetails.Guid?.ToString(SarifConstants.GuidFormat)); } } @@ -201,14 +201,14 @@ public void SarifLogResultMatcher_CurrentLogEmpty_AllAbsent() SarifLog baselineLog = RandomSarifLogGenerator.GenerateSarifLogWithRuns(random, 1); SarifLog currentLog = new SarifLog(); currentLog.Runs = new Run[] { new Run() }; - baselineLog.Runs[0].AutomationDetails = new RunAutomationDetails { Guid = Guid.NewGuid().ToString() }; + baselineLog.Runs[0].AutomationDetails = new RunAutomationDetails { Guid = Guid.NewGuid() }; - currentLog.Runs[0].AutomationDetails = new RunAutomationDetails { Guid = Guid.NewGuid().ToString() }; + currentLog.Runs[0].AutomationDetails = new RunAutomationDetails { Guid = Guid.NewGuid() }; currentLog.Runs[0].Tool = new Tool() { Driver = new ToolComponent { Name = "Test" } }; foreach (Result result in baselineLog.Runs[0].Results) { - result.CorrelationGuid = Guid.NewGuid().ToString(); + result.CorrelationGuid = Guid.NewGuid(); } SarifLog calculatedNextBaseline = s_preserveOldestPropertyBagMatcher.Match(new SarifLog[] { baselineLog }, new SarifLog[] { currentLog }).First(); @@ -218,12 +218,12 @@ public void SarifLogResultMatcher_CurrentLogEmpty_AllAbsent() if (baselineLog.Runs[0].Results.Any()) { calculatedNextBaseline.Runs[0].Results.Should().HaveCount(baselineLog.Runs[0].Results.Count); - calculatedNextBaseline.Runs[0].Results.Where(r => string.IsNullOrEmpty(r.CorrelationGuid)).Should().HaveCount(0); + calculatedNextBaseline.Runs[0].Results.Where(r => r.CorrelationGuid == null).Should().HaveCount(0); calculatedNextBaseline.Runs[0].Results.Where(r => r.BaselineState == BaselineState.Absent).Should().HaveCount(baselineLog.Runs[0].Results.Count); calculatedNextBaseline.Runs[0].Results.Where(r => r.BaselineState == BaselineState.Absent).First().TryGetProperty(SarifLogResultMatcher.ResultMatchingResultPropertyName, out Dictionary AbsentResultProperties).Should().BeTrue(); AbsentResultProperties.Should().ContainKey("Run"); - AbsentResultProperties["Run"].Should().BeEquivalentTo(baselineLog.Runs[0].AutomationDetails.Guid); + AbsentResultProperties["Run"].Should().BeEquivalentTo(baselineLog.Runs[0].AutomationDetails.Guid?.ToString(SarifConstants.GuidFormat)); } } @@ -232,7 +232,7 @@ public void SarifLogResultMatcher_PreviousLogNull_WorksAsExpected() { Random random = RandomSarifLogGenerator.GenerateRandomAndLog(this.output); SarifLog currentLog = RandomSarifLogGenerator.GenerateSarifLogWithRuns(random, 1); - currentLog.Runs[0].AutomationDetails = new RunAutomationDetails { Guid = Guid.NewGuid().ToString() }; + currentLog.Runs[0].AutomationDetails = new RunAutomationDetails { Guid = Guid.NewGuid() }; SarifLog calculatedNextBaseline = s_preserveOldestPropertyBagMatcher.Match(null, new SarifLog[] { currentLog }).First(); @@ -245,7 +245,7 @@ public void SarifLogResultMatcher_PreviousLogNull_WorksAsExpected() // They should all have correllation ids calculatedNextBaseline.Runs[0] - .Results.Where(r => string.IsNullOrEmpty(r.CorrelationGuid)).Should().HaveCount(0); + .Results.Where(r => r.CorrelationGuid == null).Should().HaveCount(0); // They should all be new. calculatedNextBaseline.Runs[0] @@ -259,7 +259,7 @@ public void SarifLogResultMatcher_PreviousLogNull_WorksAsExpected() out Dictionary NewResultProperties) .Should().BeTrue(); NewResultProperties.Should().ContainKey("Run"); - NewResultProperties["Run"].Should().BeEquivalentTo(currentLog.Runs[0].AutomationDetails.Guid); + NewResultProperties["Run"].Should().BeEquivalentTo(currentLog.Runs[0].AutomationDetails.Guid?.ToString(SarifConstants.GuidFormat)); } } @@ -268,7 +268,7 @@ public void SarifLogResultMatcher_PreviousLogEmpty_WorksAsExpected() { Random random = RandomSarifLogGenerator.GenerateRandomAndLog(this.output); SarifLog currentLog = RandomSarifLogGenerator.GenerateSarifLogWithRuns(random, 1); - currentLog.Runs[0].AutomationDetails = new RunAutomationDetails { Guid = Guid.NewGuid().ToString() }; + currentLog.Runs[0].AutomationDetails = new RunAutomationDetails { Guid = Guid.NewGuid() }; SarifLog calculatedNextBaseline = s_preserveOldestPropertyBagMatcher.Match(new SarifLog[0], new SarifLog[] { currentLog }).First(); @@ -281,7 +281,7 @@ public void SarifLogResultMatcher_PreviousLogEmpty_WorksAsExpected() // They should all have correllation ids calculatedNextBaseline.Runs[0] - .Results.Where(r => string.IsNullOrEmpty(r.CorrelationGuid)).Should().HaveCount(0); + .Results.Where(r => r.CorrelationGuid == null).Should().HaveCount(0); // They should all be new. calculatedNextBaseline.Runs[0] @@ -295,7 +295,7 @@ public void SarifLogResultMatcher_PreviousLogEmpty_WorksAsExpected() out Dictionary NewResultProperties) .Should().BeTrue(); NewResultProperties.Should().ContainKey("Run"); - NewResultProperties["Run"].Should().BeEquivalentTo(currentLog.Runs[0].AutomationDetails.Guid); + NewResultProperties["Run"].Should().BeEquivalentTo(currentLog.Runs[0].AutomationDetails.Guid?.ToString(SarifConstants.GuidFormat)); } } diff --git a/src/Test.UnitTests.Sarif/Baseline2/V2ResultMatcherTests.cs b/src/Test.UnitTests.Sarif/Baseline2/V2ResultMatcherTests.cs index c6b9f43e0..81bf84caa 100644 --- a/src/Test.UnitTests.Sarif/Baseline2/V2ResultMatcherTests.cs +++ b/src/Test.UnitTests.Sarif/Baseline2/V2ResultMatcherTests.cs @@ -575,8 +575,8 @@ private void AssertMatchedRunInvariants(Run baselinedRun) // The Guid also needs to be defined to provided an identity to attach other data (like Annotations) to the Result consistently. foreach (Result result in baselinedRun.Results ?? Enumerable.Empty()) { - result.Guid.Should().NotBeNullOrEmpty(); - result.CorrelationGuid.Should().NotBeNullOrEmpty(); + result.Guid.Should().NotBeNull(); + result.CorrelationGuid.Should().NotBeNull(); result.BaselineState.Should().NotBe(BaselineState.None); } } diff --git a/src/Test.UnitTests.Sarif/Baseline2/WhatComparerTests.cs b/src/Test.UnitTests.Sarif/Baseline2/WhatComparerTests.cs index 829b1ec7e..779c2f27d 100644 --- a/src/Test.UnitTests.Sarif/Baseline2/WhatComparerTests.cs +++ b/src/Test.UnitTests.Sarif/Baseline2/WhatComparerTests.cs @@ -27,7 +27,7 @@ public void WhatComparer_Basics() // GUIDs // ===== - string g1 = Guid.NewGuid().ToString(), g2 = Guid.NewGuid().ToString(); + Guid? g1 = Guid.NewGuid(), g2 = Guid.NewGuid(); // Match if Guids match. left.Guid = g1; diff --git a/src/Test.UnitTests.Sarif/Comparers/ComparersTests.cs b/src/Test.UnitTests.Sarif/Comparers/ComparersTests.cs index 6af08ceff..088394d56 100644 --- a/src/Test.UnitTests.Sarif/Comparers/ComparersTests.cs +++ b/src/Test.UnitTests.Sarif/Comparers/ComparersTests.cs @@ -93,7 +93,7 @@ public void CompareList_SameCountDifferentElement_Tests() [Fact] public void CompareList_WithNullComparer_Tests() { - var tool = new ToolComponent { Guid = Guid.Empty.ToString() }; + var tool = new ToolComponent { Guid = Guid.Empty }; IList runs1 = new[] { new Run { Tool = new Tool { Driver = tool } } }; IList runs2 = Array.Empty(); @@ -108,12 +108,12 @@ public void CompareList_WithComparer_Tests() IList run1 = new List { null, - new Run { Tool = new Tool { Driver = new ToolComponent { Guid = Guid.NewGuid().ToString() } } } + new Run { Tool = new Tool { Driver = new ToolComponent { Guid = Guid.NewGuid() } } } }; IList run2 = new List { - new Run { Tool = new Tool { Driver = new ToolComponent { Guid = Guid.NewGuid().ToString() } } }, + new Run { Tool = new Tool { Driver = new ToolComponent { Guid = Guid.NewGuid() } } }, null }; @@ -325,8 +325,8 @@ public void ToolComponentComparer_Tests() list1.ListCompares(list2, ToolComponentComparer.Instance).Should().Be(0); - list1.Insert(0, new ToolComponent() { Guid = Guid.Empty.ToString() }); - list2.Insert(0, new ToolComponent() { Guid = Guid.NewGuid().ToString() }); + list1.Insert(0, new ToolComponent() { Guid = Guid.Empty }); + list2.Insert(0, new ToolComponent() { Guid = Guid.NewGuid() }); list1.ListCompares(list2, ToolComponentComparer.Instance).Should().Be(-1); list2.ListCompares(list1, ToolComponentComparer.Instance).Should().Be(1); @@ -409,8 +409,8 @@ public void ReportingDescriptorComparer_Tests() rules1.ListCompares(rules2, ReportingDescriptorComparer.Instance).Should().Be(1); rules2.ListCompares(rules1, ReportingDescriptorComparer.Instance).Should().Be(-1); - rules1.Insert(0, new ReportingDescriptor() { Guid = Guid.NewGuid().ToString(), Id = "TestRule1" }); - rules2.Insert(0, new ReportingDescriptor() { Guid = Guid.Empty.ToString(), Id = "TestRule1" }); + rules1.Insert(0, new ReportingDescriptor() { Guid = Guid.NewGuid(), Id = "TestRule1" }); + rules2.Insert(0, new ReportingDescriptor() { Guid = Guid.Empty, Id = "TestRule1" }); rules1.ListCompares(rules2, ReportingDescriptorComparer.Instance).Should().Be(1); rules2.ListCompares(rules1, ReportingDescriptorComparer.Instance).Should().Be(-1); diff --git a/src/Test.UnitTests.Sarif/Core/RunTests.cs b/src/Test.UnitTests.Sarif/Core/RunTests.cs index 26c1aad6d..0cf6a84b8 100644 --- a/src/Test.UnitTests.Sarif/Core/RunTests.cs +++ b/src/Test.UnitTests.Sarif/Core/RunTests.cs @@ -496,8 +496,8 @@ public void HasSuppressedResults_ReturnsExpectedValue() public void Run_ShouldSerializeAutomationDetails_WhenAnyPropertyIsValid() { const string id = "automation-id"; - const string guid = "automation-guid"; - const string correlationGuid = "automation-correlation-guid"; + Guid guid = Guid.Parse("8b02f0b8-6df5-40b2-9e93-5404e56676e2"); + Guid correlationGuid = Guid.Parse("3d468dd8-3c62-45ed-b86a-a4fe9da93dd9"); var sarifLog = new SarifLog { @@ -506,21 +506,21 @@ public void Run_ShouldSerializeAutomationDetails_WhenAnyPropertyIsValid() sarifLog.Runs[0].AutomationDetails = new RunAutomationDetails(); sarifLog.Runs[0].AutomationDetails.Id = id; - sarifLog.Runs[0].AutomationDetails.Guid = string.Empty; - sarifLog.Runs[0].AutomationDetails.CorrelationGuid = string.Empty; + sarifLog.Runs[0].AutomationDetails.Guid = null; + sarifLog.Runs[0].AutomationDetails.CorrelationGuid = null; // Only 'id' should appear in the JSON. VaildateAutomationDetailsValues(sarifLog); sarifLog.Runs[0].AutomationDetails.Id = string.Empty; sarifLog.Runs[0].AutomationDetails.Guid = guid; - sarifLog.Runs[0].AutomationDetails.CorrelationGuid = string.Empty; + sarifLog.Runs[0].AutomationDetails.CorrelationGuid = null; // Only 'guid' should appear in the JSON. VaildateAutomationDetailsValues(sarifLog); sarifLog.Runs[0].AutomationDetails.Id = string.Empty; - sarifLog.Runs[0].AutomationDetails.Guid = string.Empty; + sarifLog.Runs[0].AutomationDetails.Guid = null; sarifLog.Runs[0].AutomationDetails.CorrelationGuid = correlationGuid; // Only 'correlationGuid' should appear in the JSON. @@ -542,8 +542,6 @@ public void Run_ShouldSerializeAutomationDetails_WhenAnyPropertyIsValid() [Fact] public void Run_ShouldNotSerializeAutomationDetails_WhenAllPropertiesAreNullOrWhiteSpace() { - const string whiteSpace = " "; - var sarifLog = new SarifLog { Runs = new[] { new Run() } @@ -551,8 +549,8 @@ public void Run_ShouldNotSerializeAutomationDetails_WhenAllPropertiesAreNullOrWh sarifLog.Runs[0].AutomationDetails = new RunAutomationDetails(); sarifLog.Runs[0].AutomationDetails.Id = string.Empty; - sarifLog.Runs[0].AutomationDetails.Guid = string.Empty; - sarifLog.Runs[0].AutomationDetails.CorrelationGuid = string.Empty; + sarifLog.Runs[0].AutomationDetails.Guid = null; + sarifLog.Runs[0].AutomationDetails.CorrelationGuid = null; // 'id', 'guid', and 'correlationGuid' should NOT appear in the JSON VaildateAutomationDetailsValues(sarifLog); @@ -563,13 +561,6 @@ public void Run_ShouldNotSerializeAutomationDetails_WhenAllPropertiesAreNullOrWh // 'id', 'guid', and 'correlationGuid' should NOT appear in the JSON VaildateAutomationDetailsValues(sarifLog); - - sarifLog.Runs[0].AutomationDetails.Id = whiteSpace; - sarifLog.Runs[0].AutomationDetails.Guid = whiteSpace; - sarifLog.Runs[0].AutomationDetails.CorrelationGuid = whiteSpace; - - // 'id', 'guid', and 'correlationGuid' should NOT appear in the JSON - VaildateAutomationDetailsValues(sarifLog); } private void VaildateAutomationDetailsValues(SarifLog sarifLog) @@ -586,24 +577,24 @@ private void VaildateAutomationDetailsValues(SarifLog sarifLog) sarifLogText.Should().Contain(automationDetails.Id); } - if (string.IsNullOrWhiteSpace(automationDetails.Guid)) + if (automationDetails.Guid == null) { // Checking if the property 'guid' exists. sarifLogText.Should().NotContain(@"""guid"""); } else { - sarifLogText.Should().Contain(automationDetails.Guid); + sarifLogText.Should().Contain(automationDetails.Guid.Value.ToString(SarifConstants.GuidFormat)); } - if (string.IsNullOrWhiteSpace(automationDetails.CorrelationGuid)) + if (automationDetails.CorrelationGuid == null) { // Checking if the property 'correlationGuid' exists. sarifLogText.Should().NotContain(@"""correlationGuid"""); } else { - sarifLogText.Should().Contain(automationDetails.CorrelationGuid); + sarifLogText.Should().Contain(automationDetails.CorrelationGuid.Value.ToString(SarifConstants.GuidFormat)); } if (automationDetails.Description == null) diff --git a/src/Test.UnitTests.Sarif/ExtensionsTests.cs b/src/Test.UnitTests.Sarif/ExtensionsTests.cs index a3dc23a2f..e55c21575 100644 --- a/src/Test.UnitTests.Sarif/ExtensionsTests.cs +++ b/src/Test.UnitTests.Sarif/ExtensionsTests.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Numerics; using System.Text; using System.Xml; using System.Xml.Linq; @@ -566,6 +567,50 @@ public void Extensions_DistinctMergeTests() } } + [Fact] + public void Extensions_CompareToTests() + { + const string guid = "25F72D7E-8A92-459D-AD67-64853F788765"; + const string guid2 = "FFC64C90-42B6-44CE-8BEB-F6B7DAE649E5"; + const string bigInteger = "31197130097450771296369962162453149327732752356239421572342053257324632475324"; + const string bigInteger2 = "31197130097450771296369962162453149327732752356239421572342053257324632475325"; + + ((int?)null).CompareTo(null).Should().Be(0); + ((bool?)null).CompareTo(null).Should().Be(0); + ((Guid?)null).CompareTo(null).Should().Be(0); + ((BigInteger?)null).CompareTo(null).Should().Be(0); + + ((int?)null).CompareTo(-1).Should().Be(-1); + ((bool?)null).CompareTo(false).Should().Be(-1); + ((Guid?)null).CompareTo(Guid.Empty).Should().Be(-1); + ((Guid?)null).CompareTo(Guid.NewGuid()).Should().Be(-1); + ((BigInteger?)null).CompareTo(ulong.MinValue).Should().Be(-1); + + ((bool?)false).CompareTo(null).Should().Be(1); + ((Guid?)Guid.Empty).CompareTo(null).Should().Be(1); + ((BigInteger?)BigInteger.Parse(bigInteger)).CompareTo(null).Should().Be(1); + ((int?)int.MinValue).CompareTo(null).Should().Be(1); + ((Guid?)Guid.NewGuid()).CompareTo(null).Should().Be(1); + + ((int?)5).CompareTo(5).Should().Be(0); + ((bool?)false).CompareTo(false).Should().Be(0); + ((Guid?)Guid.Empty).CompareTo(Guid.Empty).Should().Be(0); + ((Guid?)Guid.Parse(guid)).CompareTo((Guid?)Guid.Parse(guid)).Should().Be(0); + ((BigInteger?)BigInteger.Parse(bigInteger)).CompareTo(BigInteger.Parse(bigInteger)).Should().Be(0); + + ((int?)5).CompareTo(6).Should().Be(-1); + ((bool?)false).CompareTo(true).Should().Be(-1); + ((Guid?)Guid.Empty).CompareTo(Guid.Parse(guid)).Should().Be(-1); + ((Guid?)Guid.Parse(guid)).CompareTo((Guid?)Guid.Parse(guid2)).Should().Be(-1); + ((BigInteger?)BigInteger.Parse(bigInteger)).CompareTo(BigInteger.Parse(bigInteger2)).Should().Be(-1); + + ((int?)5).CompareTo(4).Should().Be(1); + ((bool?)true).CompareTo(false).Should().Be(1); + ((Guid?)Guid.Parse(guid)).CompareTo(Guid.Empty).Should().Be(1); + ((Guid?)Guid.Parse(guid2)).CompareTo((Guid?)Guid.Parse(guid)).Should().Be(1); + ((BigInteger?)BigInteger.Parse(bigInteger2)).CompareTo(BigInteger.Parse(bigInteger)).Should().Be(1); + } + private void VerifyDistinctMerge(IEnumerable first, IEnumerable second, IEqualityComparer comparer, IEnumerable expected) { if (expected == null) diff --git a/src/Test.UnitTests.Sarif/Test.UnitTests.Sarif.csproj b/src/Test.UnitTests.Sarif/Test.UnitTests.Sarif.csproj index 5435c0cd0..5a18282c0 100644 --- a/src/Test.UnitTests.Sarif/Test.UnitTests.Sarif.csproj +++ b/src/Test.UnitTests.Sarif/Test.UnitTests.Sarif.csproj @@ -156,8 +156,8 @@ - - + + diff --git a/src/Test.UnitTests.Sarif/Visitors/InsertOptionalDataVisitorTests.cs b/src/Test.UnitTests.Sarif/Visitors/InsertOptionalDataVisitorTests.cs index 3813d6ed1..8595baf63 100644 --- a/src/Test.UnitTests.Sarif/Visitors/InsertOptionalDataVisitorTests.cs +++ b/src/Test.UnitTests.Sarif/Visitors/InsertOptionalDataVisitorTests.cs @@ -102,7 +102,7 @@ protected override string ConstructTestOutputFromInputResource(string inputResou for (int i = 0; i < actualLog.Runs[0].Results.Count; ++i) { Result result = actualLog.Runs[0].Results[i]; - result.Guid.Should().NotBeNullOrEmpty(because: "OptionallyEmittedData.Guids flag was set"); + result.Guid.Should().NotBeNull(because: "OptionallyEmittedData.Guids flag was set"); result.Guid = null; } diff --git a/src/Test.UnitTests.Sarif/Visitors/RemoveOptionalDataVisitorTests.cs b/src/Test.UnitTests.Sarif/Visitors/RemoveOptionalDataVisitorTests.cs index 9bcbb03df..e82241a4c 100644 --- a/src/Test.UnitTests.Sarif/Visitors/RemoveOptionalDataVisitorTests.cs +++ b/src/Test.UnitTests.Sarif/Visitors/RemoveOptionalDataVisitorTests.cs @@ -22,7 +22,7 @@ public class RemoveOptionalDataVisitorTests { new Result() { - Guid = Guid.NewGuid().ToString(SarifConstants.GuidFormat) + Guid = Guid.NewGuid() } } } diff --git a/src/Test.UnitTests.Sarif/Visitors/SuppressVisitorTests.cs b/src/Test.UnitTests.Sarif/Visitors/SuppressVisitorTests.cs index 742fcb6f2..ce63b938b 100644 --- a/src/Test.UnitTests.Sarif/Visitors/SuppressVisitorTests.cs +++ b/src/Test.UnitTests.Sarif/Visitors/SuppressVisitorTests.cs @@ -122,7 +122,7 @@ public void SuppressVisitor_ShouldFlowPropertiesCorrectly() if (guids) { - suppression.Guid.Should().NotBeNullOrEmpty(); + suppression.Guid.Should().NotBeNull(); } if (timestamps && suppression.TryGetProperty("timeUtc", out DateTime timeUtc)) diff --git a/src/Test.UnitTests.Sarif/Writers/ResultLogJsonWriterTests.cs b/src/Test.UnitTests.Sarif/Writers/ResultLogJsonWriterTests.cs index f6e8b516a..0b07f0ef0 100644 --- a/src/Test.UnitTests.Sarif/Writers/ResultLogJsonWriterTests.cs +++ b/src/Test.UnitTests.Sarif/Writers/ResultLogJsonWriterTests.cs @@ -178,7 +178,7 @@ public void ResultLogJsonWriter_WritesInvocation() [Fact] public void ResultLogJsonWriter_WritesAutomationDetails() { - string instanceGuid = Guid.NewGuid().ToString(); + var instanceGuid = Guid.NewGuid(); string automationLogicalId = Guid.NewGuid().ToString(); string instanceId = automationLogicalId + "/" + instanceGuid; diff --git a/src/Test.UnitTests.Sarif/Writers/SarifLoggerTests.cs b/src/Test.UnitTests.Sarif/Writers/SarifLoggerTests.cs index c6c5c79f3..cf792cabc 100644 --- a/src/Test.UnitTests.Sarif/Writers/SarifLoggerTests.cs +++ b/src/Test.UnitTests.Sarif/Writers/SarifLoggerTests.cs @@ -247,8 +247,8 @@ public void SarifLogger_WritesRunProperties() { string propertyName = "numberValue"; double propertyValue = 3.14; - string baselineInstanceGuid = nameof(baselineInstanceGuid) + ":" + Guid.NewGuid().ToString(); - string runInstanceGuid = Guid.NewGuid().ToString(); + var baselineInstanceGuid = Guid.NewGuid(); + var runInstanceGuid = Guid.NewGuid(); string automationLogicalId = nameof(automationLogicalId) + ":" + Guid.NewGuid().ToString(); string runInstanceId = automationLogicalId + "/" + runInstanceGuid; var conversion = new Conversion() { Tool = DefaultTool }; diff --git a/src/Test.Utilities.Sarif/TestData.cs b/src/Test.Utilities.Sarif/TestData.cs index b6dd1edfb..a34a2dc3f 100644 --- a/src/Test.Utilities.Sarif/TestData.cs +++ b/src/Test.Utilities.Sarif/TestData.cs @@ -19,7 +19,7 @@ public static class TestData public const string NotActuallyASecret = nameof(NotActuallyASecret); public const string TestRootBaseId = "TEST_ROOT"; - public const string AutomationDetailsGuid = "D41BF9F2-225D-4254-984E-DFD659702E4D"; + public static Guid? AutomationDetailsGuid = Guid.Parse("D41BF9F2-225D-4254-984E-DFD659702E4D"); public const string ConverterName = "TestConverter"; public const string LanguageIdentifier = "xx-XX"; public const string PolicyName = "TestPolicy"; diff --git a/src/WorkItems/WorkItems.csproj b/src/WorkItems/WorkItems.csproj index 350aabb19..2def1c7a1 100644 --- a/src/WorkItems/WorkItems.csproj +++ b/src/WorkItems/WorkItems.csproj @@ -30,8 +30,8 @@ - - + + From 2e70072e94fa087657da48ae697e259313aff167 Mon Sep 17 00:00:00 2001 From: Shaopeng Li Date: Thu, 13 Oct 2022 16:31:13 -0700 Subject: [PATCH 2/4] Add a test --- src/Test.UnitTests.Sarif/Core/RunTests.cs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/Test.UnitTests.Sarif/Core/RunTests.cs b/src/Test.UnitTests.Sarif/Core/RunTests.cs index 0cf6a84b8..9fc24095e 100644 --- a/src/Test.UnitTests.Sarif/Core/RunTests.cs +++ b/src/Test.UnitTests.Sarif/Core/RunTests.cs @@ -526,6 +526,13 @@ public void Run_ShouldSerializeAutomationDetails_WhenAnyPropertyIsValid() // Only 'correlationGuid' should appear in the JSON. VaildateAutomationDetailsValues(sarifLog); + sarifLog.Runs[0].AutomationDetails.Id = id; + sarifLog.Runs[0].AutomationDetails.Guid = Guid.Empty; + sarifLog.Runs[0].AutomationDetails.CorrelationGuid = Guid.Empty; + + // 'id', 'guid', and 'correlationGuid' should appear in the JSON + VaildateAutomationDetailsValues(sarifLog); + sarifLog.Runs[0].AutomationDetails.Id = id; sarifLog.Runs[0].AutomationDetails.Guid = guid; sarifLog.Runs[0].AutomationDetails.CorrelationGuid = correlationGuid; @@ -542,6 +549,8 @@ public void Run_ShouldSerializeAutomationDetails_WhenAnyPropertyIsValid() [Fact] public void Run_ShouldNotSerializeAutomationDetails_WhenAllPropertiesAreNullOrWhiteSpace() { + const string whiteSpace = " "; + var sarifLog = new SarifLog { Runs = new[] { new Run() } @@ -561,6 +570,13 @@ public void Run_ShouldNotSerializeAutomationDetails_WhenAllPropertiesAreNullOrWh // 'id', 'guid', and 'correlationGuid' should NOT appear in the JSON VaildateAutomationDetailsValues(sarifLog); + + sarifLog.Runs[0].AutomationDetails.Id = whiteSpace; + sarifLog.Runs[0].AutomationDetails.Guid = null; + sarifLog.Runs[0].AutomationDetails.CorrelationGuid = null; + + // 'id', 'guid', and 'correlationGuid' should NOT appear in the JSON + VaildateAutomationDetailsValues(sarifLog); } private void VaildateAutomationDetailsValues(SarifLog sarifLog) From 846da85019fe28de428f2309435b252bc43ca2c1 Mon Sep 17 00:00:00 2001 From: Shaopeng Li Date: Thu, 13 Oct 2022 16:59:17 -0700 Subject: [PATCH 3/4] Update PR number --- src/ReleaseHistory.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ReleaseHistory.md b/src/ReleaseHistory.md index d857da52b..16ec3b500 100644 --- a/src/ReleaseHistory.md +++ b/src/ReleaseHistory.md @@ -1,7 +1,7 @@ # SARIF Package Release History (SDK, Driver, Converters, and Multitool) ## Unreleased -* BREAKING: For `Guid` properties defined in SARIF spec, updated Json schema to use `uuid`, and updated C# object model to use `Guid?` instead of `string`. [#2554](https://github.com/microsoft/sarif-sdk/pull/2554) +* BREAKING: For `Guid` properties defined in SARIF spec, updated Json schema to use `uuid`, and updated C# object model to use `Guid?` instead of `string`. [#2555](https://github.com/microsoft/sarif-sdk/pull/2555) * BUGFIX: Another attempt to resolve 'InvalidOperationException' with message `Collection was modified; enumeration operation may not execute` in `MultithreadedAnalyzeCommandBase`, raised when analyzing with the `--hashes` switch. [#2459](https://github.com/microsoft/sarif-sdk/pull/2549). There was a previous attempt to fix this in [#2447](https://github.com/microsoft/sarif-sdk/pull/2447). * FEATURE: Allow initialization of file regions cache in `InsertOptionalDataVisitor` (previously initialized exclusively from `FileRegionsCache.Instance`). * BUGFIX: Resolve issue where `match-results-forward` command fails to generate VersionControlDetails data. [#2487](https://github.com/microsoft/sarif-sdk/pull/2487) From eda8d1b0803ccec0c91d5e3c20e92c0b9e61c204 Mon Sep 17 00:00:00 2001 From: Shaopeng Li Date: Tue, 18 Oct 2022 00:50:44 -0700 Subject: [PATCH 4/4] Use Nullable.Compare --- src/Sarif/ExtensionMethods.cs | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/src/Sarif/ExtensionMethods.cs b/src/Sarif/ExtensionMethods.cs index fa46ee42c..bf0ca6658 100644 --- a/src/Sarif/ExtensionMethods.cs +++ b/src/Sarif/ExtensionMethods.cs @@ -572,24 +572,9 @@ internal static string PropertyValue(this Dictionary properties, /// /// Returns 1 if left is greater than right, -1 if left is less than right, 0 if they are equal. /// - internal static int CompareTo(this T? left, T? right) where T : struct, IComparable + internal static int CompareTo(this T? left, T? right) where T : struct { - if (left == null && right == null) - { - return 0; - } - - if (left == null) - { - return -1; - } - - if (right == null) - { - return 1; - } - - return left.Value.CompareTo(right.Value); + return Nullable.Compare(left, right); } /// Checks if a character is a newline.