C#: Use dependency injection in the auto builder for Diagnostic classifier.

This commit is contained in:
Michael Nebel
2023-03-02 09:18:56 +01:00
committed by Michael B. Gale
parent 85751e7ddd
commit df6f5d52b9
3 changed files with 6 additions and 15 deletions

View File

@@ -22,12 +22,7 @@ namespace Semmle.Autobuild.Cpp
public class CppAutobuilder : Autobuilder<CppAutobuildOptions>
{
private readonly DiagnosticClassifier classifier;
public CppAutobuilder(IBuildActions actions, CppAutobuildOptions options) : base(actions, options) =>
classifier = new DiagnosticClassifier();
protected override DiagnosticClassifier DiagnosticClassifier => classifier;
public CppAutobuilder(IBuildActions actions, CppAutobuildOptions options) : base(actions, options, new DiagnosticClassifier()) { }
public override BuildScript GetBuildScript()
{

View File

@@ -1,4 +1,4 @@
using Semmle.Extraction.CSharp;
using Semmle.Extraction.CSharp;
using Semmle.Util.Logging;
using Semmle.Autobuild.Shared;
using Semmle.Util;
@@ -36,13 +36,8 @@ namespace Semmle.Autobuild.CSharp
private readonly AutoBuildRule autoBuildRule;
protected override DiagnosticClassifier DiagnosticClassifier { get; }
public CSharpAutobuilder(IBuildActions actions, CSharpAutobuildOptions options) : base(actions, options)
{
public CSharpAutobuilder(IBuildActions actions, CSharpAutobuildOptions options) : base(actions, options, new CSharpDiagnosticClassifier()) =>
this.autoBuildRule = new AutoBuildRule(this);
this.DiagnosticClassifier = new CSharpDiagnosticClassifier();
}
public override BuildScript GetBuildScript()
{

View File

@@ -190,10 +190,11 @@ namespace Semmle.Autobuild.Shared
/// solution file and tools.
/// </summary>
/// <param name="options">The command line options.</param>
protected Autobuilder(IBuildActions actions, TAutobuildOptions options)
protected Autobuilder(IBuildActions actions, TAutobuildOptions options, DiagnosticClassifier diagnosticClassifier)
{
Actions = actions;
Options = options;
DiagnosticClassifier = diagnosticClassifier;
pathsLazy = new Lazy<IEnumerable<(string, int)>>(() =>
{
@@ -264,7 +265,7 @@ namespace Semmle.Autobuild.Shared
public string DiagnosticsDir { get; }
protected abstract DiagnosticClassifier DiagnosticClassifier { get; }
protected DiagnosticClassifier DiagnosticClassifier { get; }
private readonly ILogger logger = new ConsoleLogger(Verbosity.Info);