mirror of
https://github.com/aharabada/glitchy-engine-beef.git
synced 2026-09-05 21:01:52 +00:00
Implement test code analyzer
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
using Microsoft.CodeAnalysis;
|
||||
using Microsoft.CodeAnalysis.CSharp;
|
||||
using System;
|
||||
using System.Collections.Immutable;
|
||||
|
||||
namespace MakeConst.Test
|
||||
{
|
||||
internal static class CSharpVerifierHelper
|
||||
{
|
||||
/// <summary>
|
||||
/// By default, the compiler reports diagnostics for nullable reference types at
|
||||
/// <see cref="DiagnosticSeverity.Warning"/>, and the analyzer test framework defaults to only validating
|
||||
/// diagnostics at <see cref="DiagnosticSeverity.Error"/>. This map contains all compiler diagnostic IDs
|
||||
/// related to nullability mapped to <see cref="ReportDiagnostic.Error"/>, which is then used to enable all
|
||||
/// of these warnings for default validation during analyzer and code fix tests.
|
||||
/// </summary>
|
||||
internal static ImmutableDictionary<string, ReportDiagnostic> NullableWarnings { get; } = GetNullableWarningsFromCompiler();
|
||||
|
||||
private static ImmutableDictionary<string, ReportDiagnostic> GetNullableWarningsFromCompiler()
|
||||
{
|
||||
string[] args = { "/warnaserror:nullable" };
|
||||
var commandLineArguments = CSharpCommandLineParser.Default.Parse(args, baseDirectory: Environment.CurrentDirectory, sdkDirectory: Environment.CurrentDirectory);
|
||||
var nullableWarnings = commandLineArguments.CompilationOptions.SpecificDiagnosticOptions;
|
||||
|
||||
// Workaround for https://github.com/dotnet/roslyn/issues/41610
|
||||
nullableWarnings = nullableWarnings
|
||||
.SetItem("CS8632", ReportDiagnostic.Error)
|
||||
.SetItem("CS8669", ReportDiagnostic.Error);
|
||||
|
||||
return nullableWarnings;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user