提交 f5f517a4 编写于 作者: C CyrusNajmabadi

Share code.

上级 515fe1c3
......@@ -36,24 +36,13 @@ internal abstract class AbstractUseThrowExpressionDiagnosticAnalyzer : Diagnosti
private static readonly LocalizableString s_localizableTitle = new LocalizableResourceString(nameof(FeaturesResources.Use_throw_expression), FeaturesResources.ResourceManager, typeof(FeaturesResources));
private static readonly LocalizableString s_localizableMessage = new LocalizableResourceString(nameof(FeaturesResources.Use_throw_expression), FeaturesResources.ResourceManager, typeof(FeaturesResources));
private static DiagnosticDescriptor s_descriptor = new DiagnosticDescriptor(
IDEDiagnosticIds.UseThrowExpressionDiagnosticId,
s_localizableTitle,
s_localizableMessage,
DiagnosticCategory.Style,
DiagnosticSeverity.Hidden,
isEnabledByDefault: true);
private static DiagnosticDescriptor s_unnecessaryCodeDescriptor = new DiagnosticDescriptor(
IDEDiagnosticIds.UseThrowExpressionDiagnosticId,
s_localizableTitle,
s_localizableMessage,
DiagnosticCategory.Style,
DiagnosticSeverity.Hidden,
isEnabledByDefault: true,
customTags: DiagnosticCustomTags.Unnecessary);
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics
private static DiagnosticDescriptor s_descriptor =
CreateDescriptor(DiagnosticSeverity.Hidden);
private static DiagnosticDescriptor s_unnecessaryCodeDescriptor =
CreateDescriptor(DiagnosticSeverity.Hidden, customTags: DiagnosticCustomTags.Unnecessary);
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics
=> ImmutableArray.Create(s_descriptor, s_unnecessaryCodeDescriptor);
public DiagnosticAnalyzerCategory GetAnalyzerCategory()
......@@ -69,6 +58,16 @@ public DiagnosticAnalyzerCategory GetAnalyzerCategory()
protected abstract bool IsSupported(ParseOptions options);
private static DiagnosticDescriptor CreateDescriptor(DiagnosticSeverity severity, params string[] customTags)
=> new DiagnosticDescriptor(
IDEDiagnosticIds.UseThrowExpressionDiagnosticId,
s_localizableTitle,
s_localizableMessage,
DiagnosticCategory.Style,
DiagnosticSeverity.Hidden,
isEnabledByDefault: true,
customTags: customTags);
public override void Initialize(AnalysisContext context)
{
s_registerOperationActionInfo.Invoke(context, new object[]
......@@ -149,13 +148,7 @@ private void AnalyzeOperation(OperationAnalysisContext context)
throwOperation.ThrownObject.Syntax.GetLocation(),
assignmentExpression.Value.Syntax.GetLocation());
var descriptor = new DiagnosticDescriptor(
IDEDiagnosticIds.UseThrowExpressionDiagnosticId,
s_localizableTitle,
s_localizableMessage,
DiagnosticCategory.Style,
option.Notification.Value,
isEnabledByDefault: true);
var descriptor = CreateDescriptor(option.Notification.Value);
context.ReportDiagnostic(
Diagnostic.Create(descriptor, throwStatement.GetLocation(), additionalLocations: allLocations));
......@@ -307,7 +300,7 @@ private bool IsNull(IOperation operation)
}
private static IOperation GetOperation(
SemanticModel semanticModel,
SemanticModel semanticModel,
SyntaxNode node,
CancellationToken cancellationToken)
{
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册