Skip to content

Commit a8bccc2

Browse files
committed
CSHARP-5462: Remove unused expression parameter from TranslationContext.Create.
1 parent cfb662f commit a8bccc2

File tree

12 files changed

+29
-31
lines changed

12 files changed

+29
-31
lines changed

src/MongoDB.Driver/Linq/Linq3Implementation/GroupingWithOutputExpressionStageDefinitions.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ private AstStage RenderProjectStage(
6464
out IBsonSerializer<TOutput> outputSerializer)
6565
{
6666
var partiallyEvaluatedOutput = (Expression<Func<TGrouping, TOutput>>)PartialEvaluator.EvaluatePartially(_output);
67-
var context = TranslationContext.Create(partiallyEvaluatedOutput, translationOptions);
67+
var context = TranslationContext.Create(translationOptions);
6868
var outputTranslation = ExpressionToAggregationExpressionTranslator.TranslateLambdaBody(context, partiallyEvaluatedOutput, inputSerializer, asRoot: true);
6969
var (projectStage, projectSerializer) = ProjectionHelper.CreateProjectStage(outputTranslation);
7070
outputSerializer = (IBsonSerializer<TOutput>)projectSerializer;
@@ -106,7 +106,7 @@ protected override AstStage RenderGroupingStage(
106106
out IBsonSerializer<IGrouping<TValue, TInput>> groupingOutputSerializer)
107107
{
108108
var partiallyEvaluatedGroupBy = (Expression<Func<TInput, TValue>>)PartialEvaluator.EvaluatePartially(_groupBy);
109-
var context = TranslationContext.Create(partiallyEvaluatedGroupBy, translationOptions);
109+
var context = TranslationContext.Create(translationOptions);
110110
var groupByTranslation = ExpressionToAggregationExpressionTranslator.TranslateLambdaBody(context, partiallyEvaluatedGroupBy, inputSerializer, asRoot: true);
111111

112112
var valueSerializer = (IBsonSerializer<TValue>)groupByTranslation.Serializer;
@@ -150,7 +150,7 @@ protected override AstStage RenderGroupingStage(
150150
out IBsonSerializer<IGrouping<AggregateBucketAutoResultId<TValue>, TInput>> groupingOutputSerializer)
151151
{
152152
var partiallyEvaluatedGroupBy = (Expression<Func<TInput, TValue>>)PartialEvaluator.EvaluatePartially(_groupBy);
153-
var context = TranslationContext.Create(partiallyEvaluatedGroupBy, translationOptions);
153+
var context = TranslationContext.Create(translationOptions);
154154
var groupByTranslation = ExpressionToAggregationExpressionTranslator.TranslateLambdaBody(context, partiallyEvaluatedGroupBy, inputSerializer, asRoot: true);
155155

156156
var valueSerializer = (IBsonSerializer<TValue>)groupByTranslation.Serializer;
@@ -188,7 +188,7 @@ protected override AstStage RenderGroupingStage(
188188
out IBsonSerializer<IGrouping<TValue, TInput>> groupingOutputSerializer)
189189
{
190190
var partiallyEvaluatedGroupBy = (Expression<Func<TInput, TValue>>)PartialEvaluator.EvaluatePartially(_groupBy);
191-
var context = TranslationContext.Create(partiallyEvaluatedGroupBy, translationOptions);
191+
var context = TranslationContext.Create(translationOptions);
192192
var groupByTranslation = ExpressionToAggregationExpressionTranslator.TranslateLambdaBody(context, partiallyEvaluatedGroupBy, inputSerializer, asRoot: true);
193193
var pushElements = AstExpression.AccumulatorField("_elements", AstUnaryAccumulatorOperator.Push, AstExpression.RootVar);
194194
var groupBySerializer = (IBsonSerializer<TValue>)groupByTranslation.Serializer;

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToExecutableQueryTranslators/ExpressionToExecutableQueryTranslator.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public static ExecutableQuery<TDocument, IAsyncCursor<TOutput>> Translate<TDocum
3131
{
3232
expression = PartialEvaluator.EvaluatePartially(expression);
3333

34-
var context = TranslationContext.Create(expression, translationOptions);
34+
var context = TranslationContext.Create(translationOptions);
3535
var pipeline = ExpressionToPipelineTranslator.Translate(context, expression);
3636

3737
return ExecutableQuery.Create(
@@ -47,7 +47,7 @@ public static ExecutableQuery<TDocument, TResult> TranslateScalar<TDocument, TRe
4747
{
4848
expression = PartialEvaluator.EvaluatePartially(expression);
4949

50-
var context = TranslationContext.Create(expression, translationOptions);
50+
var context = TranslationContext.Create(translationOptions);
5151
var methodCallExpression = (MethodCallExpression)expression;
5252
switch (methodCallExpression.Method.Name)
5353
{

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToPipelineTranslators/ConcatMethodToPipelineTranslator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ secondProvider.CollectionNamespace is var secondCollectionNamespace &&
4444
secondCollectionNamespace != null)
4545
{
4646
var secondCollectionName = secondCollectionNamespace.CollectionName;
47-
var secondContext = TranslationContext.Create(secondQueryable.Expression, context.TranslationOptions);
47+
var secondContext = TranslationContext.Create(context.TranslationOptions);
4848
var secondPipeline = ExpressionToPipelineTranslator.Translate(secondContext, secondQueryable.Expression);
4949
if (secondPipeline.Ast.Stages.Count == 0)
5050
{

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToPipelineTranslators/LookupMethodToPipelineTranslator.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ private static TranslatedPipeline TranslateDocumentsPipelineGeneric<TLocal, TDoc
281281
var queryableParameter = parameters[1];
282282
var body = pipelineLambda.Body;
283283

284-
context = TranslationContext.Create(body, context.TranslationOptions);
284+
context = TranslationContext.Create(context.TranslationOptions);
285285
var localAst = AstExpression.Var("local");
286286
var localSymbol = context.CreateSymbol(localParameter, localAst, localSerializer);
287287
context = context.WithSymbol(localSymbol);
@@ -332,7 +332,7 @@ private static TranslatedPipeline TranslateLookupPipelineAgainstQueryable<TLocal
332332
var queryableParameter = parameters[1];
333333
var body = pipelineLambda.Body;
334334

335-
context = TranslationContext.Create(body, context.TranslationOptions);
335+
context = TranslationContext.Create(context.TranslationOptions);
336336
var localAst = AstExpression.Var("local");
337337
var localSymbol = context.CreateSymbol(localParameter, localAst, localSerializer);
338338
context = context.WithSymbol(localSymbol);

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToPipelineTranslators/UnionMethodToPipelineTranslator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ secondProvider.CollectionNamespace is var secondCollectionNamespace &&
4646
secondCollectionNamespace != null)
4747
{
4848
var secondCollectionName = secondCollectionNamespace.CollectionName;
49-
var secondContext = TranslationContext.Create(secondQueryable.Expression, context.TranslationOptions);
49+
var secondContext = TranslationContext.Create(context.TranslationOptions);
5050
var secondPipeline = ExpressionToPipelineTranslator.Translate(secondContext, secondQueryable.Expression);
5151
if (secondPipeline.Ast.Stages.Count == 0)
5252
{

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/TranslationContext.cs

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,19 @@
1818
using MongoDB.Driver.Core.Misc;
1919
using MongoDB.Driver.Linq.Linq3Implementation.Ast.Expressions;
2020
using MongoDB.Driver.Linq.Linq3Implementation.Misc;
21-
using MongoDB.Driver.Linq.Linq3Implementation.Serializers;
2221

2322
namespace MongoDB.Driver.Linq.Linq3Implementation.Translators
2423
{
2524
internal class TranslationContext
2625
{
2726
#region static
2827
public static TranslationContext Create(
29-
Expression expression,
3028
ExpressionTranslationOptions translationOptions,
3129
TranslationContextData data = null)
3230
{
3331
var symbolTable = new SymbolTable();
3432
var nameGenerator = new NameGenerator();
35-
return new TranslationContext(symbolTable, nameGenerator, translationOptions, data);
33+
return new TranslationContext(translationOptions, data, symbolTable, nameGenerator);
3634
}
3735
#endregion
3836

@@ -43,15 +41,15 @@ public static TranslationContext Create(
4341
private readonly ExpressionTranslationOptions _translationOptions;
4442

4543
private TranslationContext(
46-
SymbolTable symbolTable,
47-
NameGenerator nameGenerator,
4844
ExpressionTranslationOptions translationOptions,
49-
TranslationContextData data = null)
45+
TranslationContextData data,
46+
SymbolTable symbolTable,
47+
NameGenerator nameGenerator)
5048
{
51-
_symbolTable = Ensure.IsNotNull(symbolTable, nameof(symbolTable));
52-
_nameGenerator = Ensure.IsNotNull(nameGenerator, nameof(nameGenerator));
5349
_translationOptions = translationOptions ?? new ExpressionTranslationOptions();
5450
_data = data; // can be null
51+
_symbolTable = Ensure.IsNotNull(symbolTable, nameof(symbolTable));
52+
_nameGenerator = Ensure.IsNotNull(nameGenerator, nameof(nameGenerator));
5553
}
5654

5755
// public properties
@@ -126,7 +124,7 @@ public TranslationContext WithSymbols(params Symbol[] newSymbols)
126124

127125
public TranslationContext WithSymbolTable(SymbolTable symbolTable)
128126
{
129-
return new TranslationContext(symbolTable, _nameGenerator, _translationOptions, _data);
127+
return new TranslationContext(_translationOptions, _data, symbolTable, _nameGenerator);
130128
}
131129
}
132130
}

src/MongoDB.Driver/Linq/LinqProviderAdapter.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ internal static BsonValue TranslateExpressionToAggregateExpression<TSource, TRes
6060
TranslationContextData contextData = null)
6161
{
6262
expression = (Expression<Func<TSource, TResult>>)PartialEvaluator.EvaluatePartially(expression);
63-
var context = TranslationContext.Create(expression, translationOptions, contextData);
63+
var context = TranslationContext.Create(translationOptions, contextData);
6464
var translation = ExpressionToAggregationExpressionTranslator.TranslateLambdaBody(context, expression, sourceSerializer, asRoot: true);
6565
var simplifiedAst = AstSimplifier.Simplify(translation.Ast);
6666

@@ -75,7 +75,7 @@ internal static RenderedFieldDefinition TranslateExpressionToField<TDocument>(
7575
{
7676
expression = (LambdaExpression)PartialEvaluator.EvaluatePartially(expression);
7777
var parameter = expression.Parameters.Single();
78-
var context = TranslationContext.Create(expression, translationOptions);
78+
var context = TranslationContext.Create(translationOptions);
7979
var symbol = context.CreateSymbol(parameter, documentSerializer, isCurrent: true);
8080
context = context.WithSymbol(symbol);
8181
var body = RemovePossibleConvertToObject(expression.Body);
@@ -105,7 +105,7 @@ internal static RenderedFieldDefinition<TField> TranslateExpressionToField<TDocu
105105
{
106106
expression = (Expression<Func<TDocument, TField>>)PartialEvaluator.EvaluatePartially(expression);
107107
var parameter = expression.Parameters.Single();
108-
var context = TranslationContext.Create(expression, translationOptions);
108+
var context = TranslationContext.Create(translationOptions);
109109
var symbol = context.CreateSymbol(parameter, documentSerializer, isCurrent: true);
110110
context = context.WithSymbol(symbol);
111111
var fieldTranslation = ExpressionToFilterFieldTranslator.Translate(context, expression.Body);
@@ -124,7 +124,7 @@ internal static BsonDocument TranslateExpressionToElemMatchFilter<TElement>(
124124
ExpressionTranslationOptions translationOptions)
125125
{
126126
expression = (Expression<Func<TElement, bool>>)PartialEvaluator.EvaluatePartially(expression);
127-
var context = TranslationContext.Create(expression, translationOptions);
127+
var context = TranslationContext.Create(translationOptions);
128128
var parameter = expression.Parameters.Single();
129129
var symbol = context.CreateSymbol(parameter, "@<elem>", elementSerializer); // @<elem> represents the implied element
130130
context = context.WithSingleSymbol(symbol); // @<elem> is the only symbol visible inside an $elemMatch
@@ -141,7 +141,7 @@ internal static BsonDocument TranslateExpressionToFilter<TDocument>(
141141
ExpressionTranslationOptions translationOptions)
142142
{
143143
expression = (Expression<Func<TDocument, bool>>)PartialEvaluator.EvaluatePartially(expression);
144-
var context = TranslationContext.Create(expression, translationOptions);
144+
var context = TranslationContext.Create(translationOptions);
145145
var filter = ExpressionToFilterTranslator.TranslateLambda(context, expression, documentSerializer, asRoot: true);
146146
filter = AstSimplifier.SimplifyAndConvert(filter);
147147

@@ -176,7 +176,7 @@ private static RenderedProjectionDefinition<TOutput> TranslateExpressionToProjec
176176
}
177177

178178
expression = (Expression<Func<TInput, TOutput>>)PartialEvaluator.EvaluatePartially(expression);
179-
var context = TranslationContext.Create(expression, translationOptions);
179+
var context = TranslationContext.Create(translationOptions);
180180

181181
try
182182
{
@@ -200,7 +200,7 @@ internal static BsonDocument TranslateExpressionToSetStage<TDocument, TFields>(
200200
IBsonSerializerRegistry serializerRegistry,
201201
ExpressionTranslationOptions translationOptions)
202202
{
203-
var context = TranslationContext.Create(expression, translationOptions); // do not partially evaluate expression
203+
var context = TranslationContext.Create(translationOptions); // do not partially evaluate expression
204204
var parameter = expression.Parameters.Single();
205205
var symbol = context.CreateRootSymbol(parameter, documentSerializer);
206206
context = context.WithSymbol(symbol);

tests/MongoDB.Driver.Tests/Linq/Linq3Implementation/Jira/CSharp1585Tests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public void Nested_Any_should_translate_correctly()
4040
var parameter = expression.Parameters[0];
4141
var serializerRegistry = BsonSerializer.SerializerRegistry;
4242
var documentSerializer = serializerRegistry.GetSerializer<Document>();
43-
var context = TranslationContext.Create(expression, translationOptions: null);
43+
var context = TranslationContext.Create(translationOptions: null);
4444
var symbol = context.CreateSymbol(parameter, documentSerializer, isCurrent: true);
4545
context = context.WithSymbol(symbol);
4646
var filter = ExpressionToFilterTranslator.Translate(context, expression.Body, exprOk: false);

tests/MongoDB.Driver.Tests/Linq/Linq3Implementation/Translators/ExpressionToFilterTranslators/ExpressionTranslators/ModuloComparisonExpressionToFilterTranslatorTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ private void Assert(AstFilter result, string path, BsonValue divisor, BsonValue
183183
private TranslationContext CreateContext(ParameterExpression parameter)
184184
{
185185
var serializer = BsonSerializer.LookupSerializer(parameter.Type);
186-
var context = TranslationContext.Create(parameter, translationOptions: null);
186+
var context = TranslationContext.Create(translationOptions: null);
187187
var symbol = context.CreateSymbol(parameter, serializer, isCurrent: true);
188188
return context.WithSymbol(symbol);
189189
}

tests/MongoDB.Driver.Tests/Linq/Linq3ImplementationWithLinq2Tests/Translators/AggregateGroupTranslatorTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -546,7 +546,7 @@ private ProjectedResult<TResult> Group<TKey, TResult>(Expression<Func<Root, TKey
546546
.GroupBy(idProjector)
547547
.Select(groupProjector);
548548

549-
var context = TranslationContext.Create(queryable.Expression, translationOptions: null);
549+
var context = TranslationContext.Create(translationOptions: null);
550550
var pipeline = ExpressionToPipelineTranslator.Translate(context, queryable.Expression);
551551
var optimizedAstPipeline = AstPipelineOptimizer.Optimize(pipeline.Ast);
552552
pipeline = new TranslatedPipeline(optimizedAstPipeline, pipeline.OutputSerializer);

tests/MongoDB.Driver.Tests/Linq/Linq3ImplementationWithLinq2Tests/Translators/LegacyPredicateTranslatorTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1184,7 +1184,7 @@ private void Assert<TDocument>(Expression<Func<TDocument, bool>> expression, int
11841184

11851185
var parameter = expression.Parameters.Single();
11861186
var serializer = BsonSerializer.LookupSerializer<TDocument>();
1187-
var context = TranslationContext.Create(expression, translationOptions: null);
1187+
var context = TranslationContext.Create(translationOptions: null);
11881188
var symbol = context.CreateSymbol(parameter, serializer, isCurrent: true);
11891189
context = context.WithSymbol(symbol);
11901190
var filterAst = ExpressionToFilterTranslator.Translate(context, expression.Body);

tests/MongoDB.Driver.Tests/Linq/Linq3ImplementationWithLinq2Tests/Translators/PredicateTranslatorTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1154,7 +1154,7 @@ public List<TDocument> Assert<TDocument>(IMongoCollection<TDocument> collection,
11541154

11551155
var serializer = BsonSerializer.SerializerRegistry.GetSerializer<TDocument>();
11561156
var parameter = filter.Parameters.Single();
1157-
var context = TranslationContext.Create(filter, translationOptions: null);
1157+
var context = TranslationContext.Create(translationOptions: null);
11581158
var symbol = context.CreateSymbol(parameter, serializer, isCurrent: true);
11591159
context = context.WithSymbol(symbol);
11601160
var filterAst = ExpressionToFilterTranslator.Translate(context, filter.Body);

0 commit comments

Comments
 (0)