From d5ec09edb073e8b6fb61d372dbe130b31242e903 Mon Sep 17 00:00:00 2001 From: Josef Pihrt Date: Mon, 4 Aug 2025 22:45:58 +0200 Subject: [PATCH 1/2] fix --- .../CSharp/Extensions/SyntaxExtensions.cs | 9 ++++++++ .../RCS1248NormalizeNullCheckTests.cs | 23 +++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/src/CSharp/CSharp/Extensions/SyntaxExtensions.cs b/src/CSharp/CSharp/Extensions/SyntaxExtensions.cs index 389d6bb961..e5e21b0378 100644 --- a/src/CSharp/CSharp/Extensions/SyntaxExtensions.cs +++ b/src/CSharp/CSharp/Extensions/SyntaxExtensions.cs @@ -2918,6 +2918,15 @@ public static bool IsInExpressionTree( case SyntaxKind.GroupClause: case SyntaxKind.SelectClause: { + if (semanticModel + .GetTypeInfo(current, cancellationToken) + .ConvertedType? + .OriginalDefinition + .HasMetadataName(MetadataNames.System_Linq_IQueryable_T) == true) + { + return true; + } + SymbolInfo symbolInfo = semanticModel.GetSymbolInfo(current, cancellationToken); if (IsMethodThatAcceptsExpressionAsFirstParameter(symbolInfo)) diff --git a/src/Tests/Analyzers.Tests/RCS1248NormalizeNullCheckTests.cs b/src/Tests/Analyzers.Tests/RCS1248NormalizeNullCheckTests.cs index 6ab1cd099a..2c0e829397 100644 --- a/src/Tests/Analyzers.Tests/RCS1248NormalizeNullCheckTests.cs +++ b/src/Tests/Analyzers.Tests/RCS1248NormalizeNullCheckTests.cs @@ -209,6 +209,29 @@ void M() public object P { get; } } +", options: Options.AddConfigOption(ConfigOptionKeys.NullCheckStyle, ConfigOptionValues.NullCheckStyle_PatternMatching)); + } + + [Fact, Trait(Traits.Analyzer, DiagnosticIdentifiers.NormalizeNullCheck)] + public async Task TestNoDiagnostic_ExpressionTree2() + { + await VerifyNoDiagnosticAsync(@" +using System.Linq; + +class C +{ + void M() + { + var _ = from x in new[] { ""a"" }.AsQueryable() + join yy in new[] { ""b"" }.AsQueryable() + on x equals yy into y + from yy in y.DefaultIfEmpty() + select new + { + A = yy != null + }; + } +} ", options: Options.AddConfigOption(ConfigOptionKeys.NullCheckStyle, ConfigOptionValues.NullCheckStyle_PatternMatching)); } } From ca6ad48884063a70794c9c78b4b5589d07e334aa Mon Sep 17 00:00:00 2001 From: Josef Pihrt Date: Mon, 4 Aug 2025 22:47:10 +0200 Subject: [PATCH 2/2] changelog --- ChangeLog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog.md b/ChangeLog.md index 2b3eb45610..c93ea27723 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Fix analyzer [RCS1246](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1246) ([PR](https://github.com/dotnet/roslynator/pull/1676)) +- Fix analyzer [RCS1248](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1248) ([PR](https://github.com/dotnet/roslynator/pull/1677)) ## [4.14.0] - 2025-07-26