private Diagnostic AnalyzeSyntax( SemanticModel semanticModel, CodeStyleOption2 <ExpressionBodyPreference> option, LambdaExpressionSyntax declaration, CancellationToken cancellationToken) { if (CanOfferUseExpressionBody(option.Value, declaration, declaration.GetLanguageVersion())) { var location = GetDiagnosticLocation(declaration); var additionalLocations = ImmutableArray.Create(declaration.GetLocation()); var properties = ImmutableDictionary <string, string> .Empty; return(DiagnosticHelper.Create( CreateDescriptorWithId(UseExpressionBodyTitle, UseExpressionBodyTitle), location, option.Notification.Severity, additionalLocations, properties)); } if (CanOfferUseBlockBody(semanticModel, option.Value, declaration, cancellationToken)) { // They have an expression body. Create a diagnostic to convert it to a block // if they don't want expression bodies for this member. var location = GetDiagnosticLocation(declaration); var properties = ImmutableDictionary <string, string> .Empty; var additionalLocations = ImmutableArray.Create(declaration.GetLocation()); return(DiagnosticHelper.Create( CreateDescriptorWithId(UseBlockBodyTitle, UseBlockBodyTitle), location, option.Notification.Severity, additionalLocations, properties)); } return(null); }
private static LambdaExpressionSyntax UpdateWorker( SemanticModel semanticModel, LambdaExpressionSyntax originalDeclaration, LambdaExpressionSyntax currentDeclaration) { var expressionBody = GetBodyAsExpression(currentDeclaration); return(expressionBody == null ? WithExpressionBody(currentDeclaration, originalDeclaration.GetLanguageVersion()) : WithBlockBody(semanticModel, originalDeclaration, currentDeclaration)); }