Skip to content

Commit fd16d36

Browse files
authored
Simplify swap BodyClauses logic in LINQ Visitors (#2379)
1 parent 4bd76b2 commit fd16d36

File tree

4 files changed

+5
-9
lines changed

4 files changed

+5
-9
lines changed

src/NHibernate/Linq/GroupBy/AggregatingGroupByRewriter.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,7 @@ private static void FlattenSubQuery(QueryModel queryModel, QueryModel subQueryMo
8383
var whereClause = clause as WhereClause;
8484
if (whereClause != null)
8585
{
86-
queryModel.BodyClauses.RemoveAt(i);
87-
queryModel.BodyClauses.Insert(i, new NhHavingClause(whereClause.Predicate));
86+
queryModel.BodyClauses[i] = new NhHavingClause(whereClause.Predicate);
8887
}
8988
}
9089

src/NHibernate/Linq/GroupJoin/NonAggregatingGroupJoinRewriter.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,7 @@ private void SwapClause(IBodyClause oldClause, IBodyClause newClause)
114114
{
115115
if (_model.BodyClauses[i] == oldClause)
116116
{
117-
_model.BodyClauses.RemoveAt(i);
118-
_model.BodyClauses.Insert(i, newClause);
117+
_model.BodyClauses[i] = newClause;
119118
}
120119
}
121120
}

src/NHibernate/Linq/ReWriters/MoveOrderByToEndRewriter.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,10 @@ public static void ReWrite(QueryModel queryModel)
1414
int len = queryModel.BodyClauses.Count;
1515
for(int i=0; i<len; i++)
1616
{
17-
if (queryModel.BodyClauses[i] is OrderByClause)
17+
if (queryModel.BodyClauses[i] is OrderByClause clause)
1818
{
1919
// If we find an order by clause, move it to the end of the list.
2020
// This preserves the ordering of multiple orderby clauses if there are any.
21-
IBodyClause clause = queryModel.BodyClauses[i];
2221
queryModel.BodyClauses.RemoveAt(i);
2322
queryModel.BodyClauses.Add(clause);
2423
i--;

src/NHibernate/Linq/Visitors/LeftJoinRewriter.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,7 @@ public override void VisitAdditionalFromClause(AdditionalFromClause fromClause,
4343

4444
queryModel.TransformExpressions(ex => ReferenceReplacingExpressionVisitor.ReplaceClauseReferences(ex, innerSelectorMapping, false));
4545

46-
queryModel.BodyClauses.RemoveAt(index);
47-
queryModel.BodyClauses.Insert(index, @join);
46+
queryModel.BodyClauses[index] = @join;
4847
InsertBodyClauses(subQueryModel.BodyClauses.Where(b => !(b is WhereClause)), queryModel, index + 1);
4948

5049
var innerBodyClauseMapping = new QuerySourceMapping();
@@ -68,4 +67,4 @@ private static bool IsLeftJoin(QueryModel subQueryModel)
6867
subQueryModel.ResultOperators[0] is DefaultIfEmptyResultOperator;
6968
}
7069
}
71-
}
70+
}

0 commit comments

Comments
 (0)