diff --git a/src/Meziantou.Analyzer/Rules/OptimizeLinqUsageAnalyzer.cs b/src/Meziantou.Analyzer/Rules/OptimizeLinqUsageAnalyzer.cs index 1cbae2663..280eee770 100755 --- a/src/Meziantou.Analyzer/Rules/OptimizeLinqUsageAnalyzer.cs +++ b/src/Meziantou.Analyzer/Rules/OptimizeLinqUsageAnalyzer.cs @@ -99,7 +99,7 @@ public sealed class OptimizeLinqUsageAnalyzer : DiagnosticAnalyzer private static readonly DiagnosticDescriptor UseOrderRule = new( RuleIdentifiers.OptimizeEnumerable_UseOrder, title: "Use 'Order' instead of 'OrderBy'", - messageFormat: "Use '{0}' instead of '{0}By'", + messageFormat: "Use '{0}' instead of '{1}'", RuleCategories.Performance, DiagnosticSeverity.Info, isEnabledByDefault: true, @@ -514,7 +514,9 @@ private void UseOrder(OperationAnalysisContext context, IInvocationOperation ope .Add("FirstOperationStart", operation.Syntax.Span.Start.ToString(CultureInfo.InvariantCulture)) .Add("FirstOperationLength", operation.Syntax.Span.Length.ToString(CultureInfo.InvariantCulture)); - context.ReportDiagnostic(UseOrderRule, properties, operation, DiagnosticInvocationReportOptions.ReportOnMember, operation.TargetMethod.Name); + var newMethodName = operation.TargetMethod.Name is "OrderBy" ? "Order" : "OrderDescending"; + + context.ReportDiagnostic(UseOrderRule, properties, operation, DiagnosticInvocationReportOptions.ReportOnMember, newMethodName, operation.TargetMethod.Name); } } } diff --git a/tests/Meziantou.Analyzer.Test/Rules/OptimizeLinqUsageAnalyzerOrderTests.cs b/tests/Meziantou.Analyzer.Test/Rules/OptimizeLinqUsageAnalyzerOrderTests.cs index 5505b6cbb..4d8327243 100644 --- a/tests/Meziantou.Analyzer.Test/Rules/OptimizeLinqUsageAnalyzerOrderTests.cs +++ b/tests/Meziantou.Analyzer.Test/Rules/OptimizeLinqUsageAnalyzerOrderTests.cs @@ -91,6 +91,7 @@ public Test() } } """) + .ShouldReportDiagnosticWithMessage("Use 'Order' instead of 'OrderBy'") .ShouldFixCodeWith(""" using System.Collections.Generic; using System.Linq; @@ -122,6 +123,7 @@ public Test() } } """) + .ShouldReportDiagnosticWithMessage("Use 'OrderDescending' instead of 'OrderByDescending'") .ShouldFixCodeWith(""" using System.Collections.Generic; using System.Linq;