private void ReportDiagnosticsIfNeeded(NameColonSyntax nameColon, SyntaxNodeAnalysisContext context, OptionSet optionSet, SyntaxTree syntaxTree) { if (!nameColon.IsParentKind(SyntaxKind.Argument)) { return; } var argument = (ArgumentSyntax)nameColon.Parent; var parseOptions = (CSharpParseOptions)syntaxTree.Options; if (!optionSet.GetOption(CSharpCodeStyleOptions.PreferInferredTupleNames).Value || !CSharpInferredMemberNameReducer.CanSimplifyTupleElementName(argument, parseOptions)) { return; } // Create a normal diagnostic context.ReportDiagnostic( Diagnostic.Create(GetDescriptorWithSeverity( optionSet.GetOption(CSharpCodeStyleOptions.PreferInferredTupleNames).Notification.Value), nameColon.GetLocation())); // Also fade out the part of the name-colon syntax var fadeSpan = TextSpan.FromBounds(nameColon.Name.SpanStart, nameColon.ColonToken.Span.End); context.ReportDiagnostic( Diagnostic.Create( UnnecessaryWithoutSuggestionDescriptor, syntaxTree.GetLocation(fadeSpan))); }