diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QueryExpressions.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QueryExpressions.cs index 419784718..591fe4fc3 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QueryExpressions.cs +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/QueryExpressions.cs @@ -204,6 +204,13 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty select (x); } +#if CS60 + private List Issue2545(List arglist) + { + return arglist?.OrderByDescending((string f) => f.Length).ThenBy((string f) => f.ToLower()).ToList(); + } +#endif + public static IEnumerable Issue1310a(bool test) { #if ROSLYN && OPT diff --git a/ICSharpCode.Decompiler/CSharp/Transforms/IntroduceQueryExpressions.cs b/ICSharpCode.Decompiler/CSharp/Transforms/IntroduceQueryExpressions.cs index 8725944da..1a9688e44 100644 --- a/ICSharpCode.Decompiler/CSharp/Transforms/IntroduceQueryExpressions.cs +++ b/ICSharpCode.Decompiler/CSharp/Transforms/IntroduceQueryExpressions.cs @@ -361,7 +361,7 @@ namespace ICSharpCode.Decompiler.CSharp.Transforms return false; if (mre.MemberName == "OrderBy" || mre.MemberName == "OrderByDescending") - return true; + return !IsNullConditional(mre.Target); else if (mre.MemberName == "ThenBy" || mre.MemberName == "ThenByDescending") return ValidateThenByChain(mre.Target as InvocationExpression, expectedParameterName); else