You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
CMTK0008: report FullJoin's key selectors as the other joins' #273
CMTK0008 reports a join whose two key selectors unwrap value objects of different types, for Join, GroupJoin, LeftJoin and RightJoin (MixedValueComparisonAnalyzer.JoinNames). .NET 11 adds FullJoin on Enumerable, Queryable and AsyncEnumerable with the same outerKeySelector and innerKeySelector parameters, plus tuple-returning LeftJoin/RightJoin/FullJoin overloads. FullJoin isn't in the list, so a.FullJoin(b, o => o.OrderId.Value, c => c.CustomerId.Value, …) is silent.
Found while widening CMTK0009 to the outer joins (#261), which resolves the same joins through the shared LinqJoins helper. The tuple overloads already reach CMTK0008 through their names; FullJoin needs adding.
Change
Add FullJoin to CMTK0008's join names, and name it in the Analyzers README's CMTK0008 section and design/analyzers.md.
Test
A FullJoin row on each host in MixedValueComparisonAnalyzerTests, against a stub with the .NET 11 signatures as OuterJoinDefaultTests has, shown caught by removing the name.
Done when
The rows pass and are shown caught, and the README and design note name FullJoin.
Activity