From 358098230ce09bcbbd04146d4a6443e600c119d1 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 19 Nov 2024 14:58:21 +0100 Subject: [PATCH 1/3] C#: Address review comment from previous PR. --- csharp/ql/integration-tests/all-platforms/dotnet_build/test.py | 1 - 1 file changed, 1 deletion(-) diff --git a/csharp/ql/integration-tests/all-platforms/dotnet_build/test.py b/csharp/ql/integration-tests/all-platforms/dotnet_build/test.py index c32d966acb4a..75ba09477fa0 100644 --- a/csharp/ql/integration-tests/all-platforms/dotnet_build/test.py +++ b/csharp/ql/integration-tests/all-platforms/dotnet_build/test.py @@ -1,7 +1,6 @@ import os def check_build_out(msg, s): - lines = s.splitlines() lines = s.splitlines() assert ( any (("[build-stdout]" in line) and (msg in line) for line in lines) From 0fc46f58558fe269affd73f1ad8973a55cbbcf04 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 19 Nov 2024 16:30:48 +0100 Subject: [PATCH 2/3] C#: Fix compiler warnings related to errors in XML comments. --- .../Semmle.Autobuild.CSharp/AutoBuildRule.cs | 8 ++--- .../Semmle.Autobuild.Shared/Autobuilder.cs | 4 +-- .../Semmle.Autobuild.Shared/MarkdownUtil.cs | 4 +-- .../Assets.cs | 30 +++++++++---------- .../DotNetVersion.cs | 2 +- .../FileContent.cs | 4 +-- .../IDotNetCliInvoker.cs | 6 ++-- .../SymbolExtensions.cs | 15 ++++------ .../Entities/Base/CachedEntity.cs | 2 +- .../Entities/Base/IEntity.cs | 8 ++--- .../Entities/Expression.cs | 5 +--- .../Entities/Expression`1.cs | 2 +- .../Entities/Types/NamedType.cs | 5 ++-- .../Entities/Types/Nullability.cs | 4 +-- .../Entities/UserOperator.cs | 2 +- .../Extractor/Context.cs | 3 +- .../Extractor/TrapWriter.cs | 2 +- .../Trap/EscapingTextWriter.cs | 2 +- .../Trap/TrapExtensions.cs | 4 +-- .../Semmle.Util/CanonicalPathCache.cs | 3 +- .../extractor/Semmle.Util/CommandBuilder.cs | 1 - 21 files changed, 52 insertions(+), 64 deletions(-) diff --git a/csharp/autobuilder/Semmle.Autobuild.CSharp/AutoBuildRule.cs b/csharp/autobuilder/Semmle.Autobuild.CSharp/AutoBuildRule.cs index e58c8ddccd96..b3efe64b7e95 100644 --- a/csharp/autobuilder/Semmle.Autobuild.CSharp/AutoBuildRule.cs +++ b/csharp/autobuilder/Semmle.Autobuild.CSharp/AutoBuildRule.cs @@ -49,11 +49,9 @@ public BuildScript Analyse(IAutobuilder builder, bool au tryCleanExtractorArgsLogs & BuildScript.DeleteFile(Extractor.GetCSharpLogPath()); - /// - /// Execute script `s` and check that the C# extractor has been executed. - /// If either fails, attempt to cleanup any artifacts produced by the extractor, - /// and exit with code 1, in order to proceed to the next attempt. - /// + // Execute script `s` and check that the C# extractor has been executed. + // If either fails, attempt to cleanup any artifacts produced by the extractor, + // and exit with code 1, in order to proceed to the next attempt. BuildScript IntermediateAttempt(BuildScript s) => (s & this.autobuilder.CheckExtractorRun(false)) | (attemptExtractorCleanup & BuildScript.Failure); diff --git a/csharp/autobuilder/Semmle.Autobuild.Shared/Autobuilder.cs b/csharp/autobuilder/Semmle.Autobuild.Shared/Autobuilder.cs index 371352cf5e24..919e3821750b 100644 --- a/csharp/autobuilder/Semmle.Autobuild.Shared/Autobuilder.cs +++ b/csharp/autobuilder/Semmle.Autobuild.Shared/Autobuilder.cs @@ -195,7 +195,7 @@ protected Autobuilder(IBuildActions actions, TAutobuildOptions options, Diagnost } /// - /// Retrieves the value of an environment variable named or throws + /// Retrieves the value of an environment variable named or throws /// an exception if no such environment variable has been set. /// /// The name of the environment variable. @@ -228,7 +228,7 @@ protected string RequireEnvironmentVariable(string name) private readonly IDiagnosticsWriter diagnostics; /// - /// Makes relative to the root source directory. + /// Makes relative to the root source directory. /// /// The path which to make relative. /// The relative path. diff --git a/csharp/autobuilder/Semmle.Autobuild.Shared/MarkdownUtil.cs b/csharp/autobuilder/Semmle.Autobuild.Shared/MarkdownUtil.cs index 13a3533eb319..f5721910a966 100644 --- a/csharp/autobuilder/Semmle.Autobuild.Shared/MarkdownUtil.cs +++ b/csharp/autobuilder/Semmle.Autobuild.Shared/MarkdownUtil.cs @@ -22,7 +22,7 @@ public static class MarkdownUtil public static string ToMarkdownLink(this string link, string title) => $"[{title}]({link})"; /// - /// Renders as a markdown list of the project paths. + /// Renders as a markdown list of the project paths. /// /// /// The list of projects whose paths should be rendered as a markdown list. @@ -35,7 +35,7 @@ public static string ToMarkdownList(this IEnumerable project } /// - /// Renders as a markdown list. + /// Renders as a markdown list. /// /// The item type. /// The list that should be formatted as a markdown list. diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Assets.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Assets.cs index 4a6b401038ef..13235ba19885 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Assets.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/Assets.cs @@ -127,21 +127,21 @@ private void AddPackageDependencies(JObject json, string jsonPath) /// /// Example: /// "project": { - // "version": "1.0.0", - // "frameworks": { - // "net7.0": { - // "frameworkReferences": { - // "Microsoft.AspNetCore.App": { - // "privateAssets": "none" - // }, - // "Microsoft.NETCore.App": { - // "privateAssets": "all" - // } - // } - // } - // } - // } - // + /// "version": "1.0.0", + /// "frameworks": { + /// "net7.0": { + /// "frameworkReferences": { + /// "Microsoft.AspNetCore.App": { + /// "privateAssets": "none" + /// }, + /// "Microsoft.NETCore.App": { + /// "privateAssets": "all" + /// } + /// } + /// } + /// } + /// } + /// /// Adds the following dependencies /// Paths: { /// "microsoft.aspnetcore.app.ref", diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetVersion.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetVersion.cs index f62c279d2400..b4273d02b77a 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetVersion.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetVersion.cs @@ -27,7 +27,7 @@ private string FullVersion * This is the same as FullPath, except that we assume that the * reference assemblies are in a directory called "packs" and * the reference assemblies themselves are in a directory called - * ".Ref/ref". + * "[Framework].Ref/ref". * Example: * FullPath: /usr/share/dotnet/shared/Microsoft.NETCore.App/7.0.2 * FullPathReferenceAssemblies: /usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/7.0.2/ref diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/FileContent.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/FileContent.cs index f33329046cf6..f5199de1c13a 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/FileContent.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/FileContent.cs @@ -38,8 +38,8 @@ public HashSet AllPackages /// True if any file in the source directory indicates that ASP.NET Core is used. /// The following heuristic is used to decide, if ASP.NET Core is used: /// If any file in the source directory contains something like (this will most like be a .csproj file) - /// - /// + /// <Project Sdk="Microsoft.NET.Sdk.Web"> + /// <FrameworkReference Include="Microsoft.AspNetCore.App"/> /// public bool UseAspNetCoreDlls { diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotNetCliInvoker.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotNetCliInvoker.cs index bfc8b44ee569..89631ffa861e 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotNetCliInvoker.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/IDotNetCliInvoker.cs @@ -10,20 +10,20 @@ internal interface IDotNetCliInvoker string Exec { get; } /// - /// Execute `dotnet ` and return true if the command succeeded, otherwise false. + /// Execute `dotnet ` and return true if the command succeeded, otherwise false. /// If `silent` is true the output of the command is logged as `debug` otherwise as `info`. /// bool RunCommand(string args, bool silent = true); /// - /// Execute `dotnet ` and return true if the command succeeded, otherwise false. + /// Execute `dotnet ` and return true if the command succeeded, otherwise false. /// The output of the command is returned in `output`. /// If `silent` is true the output of the command is logged as `debug` otherwise as `info`. /// bool RunCommand(string args, out IList output, bool silent = true); /// - /// Execute `dotnet ` in `` and return true if the command succeeded, otherwise false. + /// Execute `dotnet ` in `` and return true if the command succeeded, otherwise false. /// The output of the command is returned in `output`. /// If `silent` is true the output of the command is logged as `debug` otherwise as `info`. /// diff --git a/csharp/extractor/Semmle.Extraction.CSharp/CodeAnalysisExtensions/SymbolExtensions.cs b/csharp/extractor/Semmle.Extraction.CSharp/CodeAnalysisExtensions/SymbolExtensions.cs index 2ffdd9dbcd65..72c45b797d8a 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/CodeAnalysisExtensions/SymbolExtensions.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/CodeAnalysisExtensions/SymbolExtensions.cs @@ -133,9 +133,6 @@ bool IdDependsOnImpl(ITypeSymbol? type) /// /// Constructs a unique string for this type symbol. - /// - /// The supplied action is applied to the - /// syntactic sub terms of this type (if any). /// /// The extraction context. /// The trap builder used to store the result. @@ -495,31 +492,31 @@ public static bool IsReallyUnbound(this INamedTypeSymbol type) => /// /// Holds if this type is of the form int? or - /// System.Nullable. + /// System.Nullable<int>. /// public static bool IsBoundNullable(this ITypeSymbol type) => type.SpecialType == SpecialType.None && type.OriginalDefinition.IsUnboundNullable(); /// - /// Holds if this type is System.Nullable. + /// Holds if this type is System.Nullable<T>. /// public static bool IsUnboundNullable(this ITypeSymbol type) => type.SpecialType == SpecialType.System_Nullable_T; /// - /// Holds if this type is System.Span. + /// Holds if this type is System.Span<T>. /// public static bool IsUnboundSpan(this ITypeSymbol type) => type.ToString() == "System.Span"; /// - /// Holds if this type is of the form System.Span. + /// Holds if this type is of the form System.Span<byte>. /// public static bool IsBoundSpan(this ITypeSymbol type) => type.SpecialType == SpecialType.None && type.OriginalDefinition.IsUnboundSpan(); /// - /// Holds if this type is System.ReadOnlySpan. + /// Holds if this type is System.ReadOnlySpan<T>. /// public static bool IsUnboundReadOnlySpan(this ITypeSymbol type) => type.ToString() == "System.ReadOnlySpan"; @@ -536,7 +533,7 @@ attribute.AttributeClass is INamedTypeSymbol nt && } /// - /// Holds if this type is of the form System.ReadOnlySpan. + /// Holds if this type is of the form System.ReadOnlySpan<byte>. /// public static bool IsBoundReadOnlySpan(this ITypeSymbol type) => type.SpecialType == SpecialType.None && type.OriginalDefinition.IsUnboundReadOnlySpan(); diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Base/CachedEntity.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Base/CachedEntity.cs index ed0a21bc0836..96bef9732117 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Base/CachedEntity.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Base/CachedEntity.cs @@ -7,7 +7,7 @@ namespace Semmle.Extraction.CSharp.Entities /// /// A cached entity. /// - /// The property is used as label in caching. + /// The property is used as label in caching. /// public abstract class CachedEntity : LabelledEntity { diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Base/IEntity.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Base/IEntity.cs index d8d3c538e42c..f6f60ff91468 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Base/IEntity.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Base/IEntity.cs @@ -9,12 +9,12 @@ namespace Semmle.Extraction.CSharp /// Entities are divided into two types: normal entities and cached /// entities. /// - /// Normal entities implement directly, and they + /// Normal entities implement directly, and they /// (may) emit contents to the trap file during object construction. /// - /// Cached entities implement , and they - /// emit contents to the trap file when - /// is called. Caching prevents + /// Cached entities implement , and they + /// emit contents to the trap file when + /// is called. Caching prevents /// from being called on entities that have already been emitted. /// public interface IEntity diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Expression.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Expression.cs index f5021d38eeb5..9241528eb752 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Expression.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Expression.cs @@ -77,7 +77,7 @@ internal void SetType(ITypeSymbol? type) /// /// Gets a string representation of a constant value. /// - /// The value. + /// The value. /// The string representation. public static string ValueAsString(object? value) { @@ -98,7 +98,6 @@ public static string ValueAsString(object? value) /// The node to extract. /// The parent entity. /// The child index. - /// A type hint. /// The new expression. public static Expression Create(Context cx, ExpressionSyntax node, IExpressionParentEntity parent, int child, Boolean isCompilerGenerated = false) { @@ -120,7 +119,6 @@ public static Expression Create(Context cx, ExpressionSyntax node, IExpressionPa /// The node to extract. /// The parent entity. /// The child index. - /// A type hint. public static void CreateDeferred(Context cx, ExpressionSyntax node, IExpressionParentEntity parent, int child) { if (ContainsPattern(node)) @@ -244,7 +242,6 @@ public static ExprKind UnaryOperatorKind(Context cx, ExprKind originalKind, Expr /// to show the target of the call. Also note the dynamic method /// name if available. /// - /// Context /// The expression. public void OperatorCall(TextWriter trapFile, ExpressionSyntax node) { diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Expression`1.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Expression`1.cs index 6386e43a9b47..4c2670369e0c 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Expression`1.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Expression`1.cs @@ -20,7 +20,7 @@ protected Expression(ExpressionNodeInfo info) /// expressions and expr_location are populated by the constructor /// (should not fail), so even if expression-type specific population fails (e.g., in /// standalone extraction), the expression created via - /// will + /// will /// still be valid. /// protected abstract void PopulateExpression(TextWriter trapFile); diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/NamedType.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/NamedType.cs index 189a07f6f476..b2106febaff3 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/NamedType.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/NamedType.cs @@ -21,10 +21,9 @@ public static NamedType Create(Context cx, INamedTypeSymbol type) => NamedTypeFactory.Instance.CreateEntityFromSymbol(cx, type); /// - /// Creates a named type entity from a tuple type. Unlike `Create`, this + /// Creates a named type entity from a tuple type. Unlike , this /// will create an entity for the underlying `System.ValueTuple` struct. - /// For example, `(int, string)` will result in an entity for - /// `System.ValueTuple`. + /// For example, `(int, string)` will result in an entity for `System.ValueTuple<int, string>`. /// public static NamedType CreateNamedTypeFromTupleType(Context cx, INamedTypeSymbol type) => UnderlyingTupleTypeFactory.Instance.CreateEntity(cx, (new SymbolEqualityWrapper(type), typeof(TupleType)), type); diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/Nullability.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/Nullability.cs index 9791f386a199..add36226f165 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/Nullability.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/Nullability.cs @@ -209,8 +209,8 @@ public static IEnumerable GetAnnotatedTypeArguments(this An /// This is so that we can avoid populating nullability in most cases. /// For example, /// - /// IEnumerable<string?> // false - /// IEnumerable<string?>? // true + /// IEnumerable<string?> // false + /// IEnumerable<string?>? // true /// string? // true /// string[] // true /// string?[] // false diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/UserOperator.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/UserOperator.cs index f2fc4b85d7f5..141bded87acf 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/UserOperator.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/UserOperator.cs @@ -86,7 +86,7 @@ private bool IsImplicitOperator(out ITypeSymbol containingType) /// Logs an error if the name is not found. /// /// Extractor context. - /// The method name. + /// The method symbol. /// The converted name. private static string OperatorSymbol(Context cx, IMethodSymbol method) { diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Context.cs b/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Context.cs index 8d819d715f9f..67bb2808ae62 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Context.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Context.cs @@ -152,7 +152,7 @@ internal void AddFreshLabel(Entity entity) /// /// Enqueue the given action to be performed later. /// - /// The action to run. + /// The action to run. public void PopulateLater(Action a, bool preserveDuplicationKey = true) { var key = preserveDuplicationKey ? GetCurrentTagStackKey() : null; @@ -598,7 +598,6 @@ public Entities.Location CreateLocation(Microsoft.CodeAnalysis.Location? locatio /// /// Register a program entity which can be bound to comments. /// - /// Extractor context. /// Program entity. /// Location of the entity. public void BindComments(Entity entity, Microsoft.CodeAnalysis.Location? l) diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Extractor/TrapWriter.cs b/csharp/extractor/Semmle.Extraction.CSharp/Extractor/TrapWriter.cs index 4830c3209c26..42e933c8eaf4 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Extractor/TrapWriter.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Extractor/TrapWriter.cs @@ -171,7 +171,7 @@ private static bool TryMove(string sourceFile, string destFile) /// /// Close the trap file, and move it to the right place in the trap directory. /// If the file exists already, rename it to allow the new file (ending .trap.gz) - /// to sit alongside the old file (except if is true, + /// to sit alongside the old file (except if is true, /// in which case only the existing file is kept). /// public void Dispose() diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Trap/EscapingTextWriter.cs b/csharp/extractor/Semmle.Extraction.CSharp/Trap/EscapingTextWriter.cs index 63f5e81c3586..28e1d0bf146c 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Trap/EscapingTextWriter.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Trap/EscapingTextWriter.cs @@ -8,7 +8,7 @@ namespace Semmle.Extraction.CSharp { /// /// A `TextWriter` object that wraps another `TextWriter` object, and which - /// HTML escapes the characters `&`, `{`, `}`, `"`, `@`, and `#`, before + /// HTML escapes the characters &, {, }, ", @, and #, before /// writing to the underlying object. /// public sealed class EscapingTextWriter : TextWriter diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Trap/TrapExtensions.cs b/csharp/extractor/Semmle.Extraction.CSharp/Trap/TrapExtensions.cs index 787ba62e3e82..22e38bac51c0 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Trap/TrapExtensions.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Trap/TrapExtensions.cs @@ -226,7 +226,7 @@ public static TextWriter AppendList(this EscapingTextWriter trapFile, string /// /// Builds a trap builder using a separator and an action for each item in the list. /// - /// The type of the items. + /// The type of the items. /// The trap builder to append to. /// The separator string (e.g. ",") /// The list of items. @@ -251,7 +251,7 @@ public static T1 BuildList(this T1 trapFile, string separator, IEnumerab /// /// Builds a trap builder using a separator and an action for each item in the list. /// - /// The type of the items. + /// The type of the items. /// The trap builder to append to. /// The separator string (e.g. ",") /// The list of items. diff --git a/csharp/extractor/Semmle.Util/CanonicalPathCache.cs b/csharp/extractor/Semmle.Util/CanonicalPathCache.cs index a79854333ac7..d3cbf41fa101 100644 --- a/csharp/extractor/Semmle.Util/CanonicalPathCache.cs +++ b/csharp/extractor/Semmle.Util/CanonicalPathCache.cs @@ -208,7 +208,7 @@ public enum Symlinks /// Create cache with a given capacity. /// /// The algorithm for determining the canonical path. - /// The size of the cache. + /// The size of the cache. public CanonicalPathCache(int maxCapacity, PathStrategy pathStrategy) { if (maxCapacity <= 0) @@ -230,7 +230,6 @@ public CanonicalPathCache(int maxCapacity, PathStrategy pathStrategy) /// /// /// Size of the cache. - /// Policy for following symlinks. /// A new CanonicalPathCache. public static CanonicalPathCache Create(ILogger logger, int maxCapacity) { diff --git a/csharp/extractor/Semmle.Util/CommandBuilder.cs b/csharp/extractor/Semmle.Util/CommandBuilder.cs index 3d8f907f8669..1b6cd3176c43 100644 --- a/csharp/extractor/Semmle.Util/CommandBuilder.cs +++ b/csharp/extractor/Semmle.Util/CommandBuilder.cs @@ -62,7 +62,6 @@ public CommandBuilder CallBatFile(string batFile, string? argumentsOpt = null) /// /// The argument to append. /// Whether to always quote the argument. - /// Whether to escape for cmd.exe /// /// /// This implementation is copied from From 3b01efaf5da256749779599b2d19eac4f3c8ee69 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 19 Nov 2024 17:08:08 +0100 Subject: [PATCH 3/3] C#: Update launch.json. --- csharp/.vscode/launch.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/csharp/.vscode/launch.json b/csharp/.vscode/launch.json index 468588610474..1f598f5e44f7 100644 --- a/csharp/.vscode/launch.json +++ b/csharp/.vscode/launch.json @@ -6,7 +6,7 @@ "type": "coreclr", "request": "launch", "preLaunchTask": "dotnet: build", - "program": "${workspaceFolder}/extractor/Semmle.Extraction.CSharp.Standalone/bin/Debug/net8.0/Semmle.Extraction.CSharp.Standalone.dll", + "program": "${workspaceFolder}/extractor/Semmle.Extraction.CSharp.Standalone/bin/Debug/net9.0/Semmle.Extraction.CSharp.Standalone.dll", "args": [], // Set the path to the folder that should be extracted: "cwd": "${workspaceFolder}/ql/test/library-tests/standalone/standalonemode", @@ -35,7 +35,7 @@ "type": "coreclr", "request": "launch", "preLaunchTask": "dotnet: build", - "program": "${workspaceFolder}/autobuilder/Semmle.Autobuild.CSharp/bin/Debug/net8.0/Semmle.Autobuild.CSharp.dll", + "program": "${workspaceFolder}/autobuilder/Semmle.Autobuild.CSharp/bin/Debug/net9.0/Semmle.Autobuild.CSharp.dll", // Set the path to the folder that should be extracted: "cwd": "${workspaceFolder}/ql/integration-tests/all-platforms/autobuild", "stopAtEntry": true, @@ -53,7 +53,7 @@ "type": "coreclr", "request": "launch", "preLaunchTask": "dotnet: build", - "program": "${workspaceFolder}/extractor/Semmle.Extraction.CSharp.Driver/bin/Debug/net8.0/Semmle.Extraction.CSharp.Driver.dll", + "program": "${workspaceFolder}/extractor/Semmle.Extraction.CSharp.Driver/bin/Debug/net9.0/Semmle.Extraction.CSharp.Driver.dll", "stopAtEntry": true, "args": [ "--binlog",