Skip to content

Commit c82b6b0

Browse files
committed
CSHARP-5450: Verify that all calls to Translate or TranslateEnumerable are correct.
1 parent a8bccc2 commit c82b6b0

File tree

25 files changed

+34
-17
lines changed

25 files changed

+34
-17
lines changed

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToAggregationExpressionTranslators/ArrayLengthExpressionToAggregationExpressionTranslator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public static AggregationExpression Translate(TranslationContext context, UnaryE
2626
if (expression.NodeType == ExpressionType.ArrayLength)
2727
{
2828
var arrayExpression = expression.Operand;
29-
var arrayTranslation = ExpressionToAggregationExpressionTranslator.Translate(context, arrayExpression);
29+
var arrayTranslation = ExpressionToAggregationExpressionTranslator.TranslateEnumerable(context, arrayExpression);
3030
var ast = AstExpression.Size(arrayTranslation.Ast);
3131
var serializer = BsonSerializer.LookupSerializer(expression.Type);
3232
return new AggregationExpression(expression, ast, serializer);

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToAggregationExpressionTranslators/MethodTranslators/ContainsMethodToAggregationExpressionTranslator.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,10 @@ private static AggregationExpression TranslateEnumerableContains(TranslationCont
7777
{
7878
var sourceTranslation = ExpressionToAggregationExpressionTranslator.TranslateEnumerable(context, sourceExpression);
7979
NestedAsQueryableHelper.EnsureQueryableMethodHasNestedAsQueryableSource(expression, sourceTranslation);
80+
8081
var valueTranslation = ExpressionToAggregationExpressionTranslator.Translate(context, valueExpression);
8182
var ast = AstExpression.In(valueTranslation.Ast, sourceTranslation.Ast);
83+
8284
return new AggregationExpression(expression, ast, BooleanSerializer.Instance);
8385
}
8486
}

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToAggregationExpressionTranslators/MethodTranslators/DefaultIfEmptyMethodToAggregationExpressionTranslator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ public static AggregationExpression Translate(TranslationContext context, Method
4949
{
5050
var sourceExpression = arguments[0];
5151
var sourceTranslation = ExpressionToAggregationExpressionTranslator.TranslateEnumerable(context, sourceExpression);
52-
var itemSerializer = ArraySerializerHelper.GetItemSerializer(sourceTranslation.Serializer);
5352
NestedAsQueryableHelper.EnsureQueryableMethodHasNestedAsQueryableSource(expression, sourceTranslation);
53+
var itemSerializer = ArraySerializerHelper.GetItemSerializer(sourceTranslation.Serializer);
5454

5555
var (sourceVarBinding, sourceAst) = AstExpression.UseVarIfNotSimple("source", sourceTranslation.Ast);
5656
AstExpression defaultValueAst;

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToAggregationExpressionTranslators/MethodTranslators/DistinctMethodToAggregationExpressionTranslator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ public static AggregationExpression Translate(TranslationContext context, Method
3939
{
4040
var sourceExpression = arguments[0];
4141
var sourceTranslation = ExpressionToAggregationExpressionTranslator.TranslateEnumerable(context, sourceExpression);
42-
var itemSerializer = ArraySerializerHelper.GetItemSerializer(sourceTranslation.Serializer);
4342
NestedAsQueryableHelper.EnsureQueryableMethodHasNestedAsQueryableSource(expression, sourceTranslation);
43+
var itemSerializer = ArraySerializerHelper.GetItemSerializer(sourceTranslation.Serializer);
4444

4545
var ast = AstExpression.SetIntersection(sourceTranslation.Ast);
4646
var serializer = NestedAsQueryableSerializer.CreateIEnumerableOrNestedAsQueryableSerializer(expression.Type, itemSerializer);

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToAggregationExpressionTranslators/MethodTranslators/ElementAtMethodToAggregationExpressionTranslator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ public static AggregationExpression Translate(TranslationContext context, Method
4747
{
4848
var sourceExpression = arguments[0];
4949
var sourceTranslation = ExpressionToAggregationExpressionTranslator.TranslateEnumerable(context, sourceExpression);
50-
var itemSerializer = ArraySerializerHelper.GetItemSerializer(sourceTranslation.Serializer);
5150
NestedAsQueryableHelper.EnsureQueryableMethodHasNestedAsQueryableSource(expression, sourceTranslation);
51+
var itemSerializer = ArraySerializerHelper.GetItemSerializer(sourceTranslation.Serializer);
5252

5353
var indexExpression = arguments[1];
5454
var indexTranslation = ExpressionToAggregationExpressionTranslator.Translate(context, indexExpression);

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToAggregationExpressionTranslators/MethodTranslators/PickMethodToAggregationExpressionTranslator.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ public static AggregationExpression Translate(TranslationContext context, Method
102102
{
103103
var sourceExpression = arguments[0];
104104
var sourceTranslation = ExpressionToAggregationExpressionTranslator.TranslateEnumerable(context, sourceExpression);
105+
NestedAsQueryableHelper.EnsureQueryableMethodHasNestedAsQueryableSource(expression, sourceTranslation);
105106
var itemSerializer = ArraySerializerHelper.GetItemSerializer(sourceTranslation.Serializer);
106107

107108
if (method.IsOneOf(__accumulatorOnlyMethods) && !IsGroupingSource(sourceTranslation.Ast))

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToAggregationExpressionTranslators/MethodTranslators/ReverseMethodToAggregationExpressionTranslator.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ public static AggregationExpression Translate(TranslationContext context, Method
4040
var sourceExpression = arguments[0];
4141
var sourceTranslation = ExpressionToAggregationExpressionTranslator.TranslateEnumerable(context, sourceExpression);
4242
NestedAsQueryableHelper.EnsureQueryableMethodHasNestedAsQueryableSource(expression, sourceTranslation);
43+
4344
var ast = AstExpression.ReverseArray(sourceTranslation.Ast);
4445
var itemSerializer = ArraySerializerHelper.GetItemSerializer(sourceTranslation.Serializer);
4546
var serializer = NestedAsQueryableSerializer.CreateIEnumerableOrNestedAsQueryableSerializer(expression.Type, itemSerializer);

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToAggregationExpressionTranslators/MethodTranslators/SelectManyMethodToAggregationExpressionTranslator.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,14 @@ public static AggregationExpression Translate(TranslationContext context, Method
4040
var sourceExpression = arguments[0];
4141
var sourceTranslation = ExpressionToAggregationExpressionTranslator.TranslateEnumerable(context, sourceExpression);
4242
NestedAsQueryableHelper.EnsureQueryableMethodHasNestedAsQueryableSource(expression, sourceTranslation);
43+
4344
var selectorLambda = ExpressionHelper.UnquoteLambdaIfQueryableMethod(method, arguments[1]);
4445
var selectorParameter = selectorLambda.Parameters[0];
4546
var selectorParameterSerializer = ArraySerializerHelper.GetItemSerializer(sourceTranslation.Serializer);
4647
var selectorParameterSymbol = context.CreateSymbol(selectorParameter, selectorParameterSerializer);
4748
var selectorContext = context.WithSymbol(selectorParameterSymbol);
4849
var selectorTranslation = ExpressionToAggregationExpressionTranslator.Translate(selectorContext, selectorLambda.Body);
50+
4951
var asVar = selectorParameterSymbol.Var;
5052
var valueVar = AstExpression.Var("value");
5153
var thisVar = AstExpression.Var("this");
@@ -56,6 +58,7 @@ public static AggregationExpression Translate(TranslationContext context, Method
5658
@in: selectorTranslation.Ast),
5759
initialValue: new BsonArray(),
5860
@in: AstExpression.ConcatArrays(valueVar, thisVar));
61+
5962
return new AggregationExpression(expression, ast, selectorTranslation.Serializer);
6063
}
6164

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToAggregationExpressionTranslators/MethodTranslators/SelectMethodToAggregationExpressionTranslator.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,17 +40,20 @@ public static AggregationExpression Translate(TranslationContext context, Method
4040
var sourceExpression = arguments[0];
4141
var sourceTranslation = ExpressionToAggregationExpressionTranslator.TranslateEnumerable(context, sourceExpression);
4242
NestedAsQueryableHelper.EnsureQueryableMethodHasNestedAsQueryableSource(expression, sourceTranslation);
43+
4344
var selectorLambda = ExpressionHelper.UnquoteLambdaIfQueryableMethod(method, arguments[1]);
4445
var selectorParameter = selectorLambda.Parameters[0];
4546
var selectorParameterSerializer = ArraySerializerHelper.GetItemSerializer(sourceTranslation.Serializer);
4647
var selectorParameterSymbol = context.CreateSymbol(selectorParameter, selectorParameterSerializer);
4748
var selectorContext = context.WithSymbol(selectorParameterSymbol);
4849
var translatedSelector = ExpressionToAggregationExpressionTranslator.Translate(selectorContext, selectorLambda.Body);
50+
4951
var ast = AstExpression.Map(
5052
sourceTranslation.Ast,
5153
selectorParameterSymbol.Var,
5254
translatedSelector.Ast);
5355
var serializer = NestedAsQueryableSerializer.CreateIEnumerableOrNestedAsQueryableSerializer(expression.Type, itemSerializer : translatedSelector.Serializer);
56+
5457
return new AggregationExpression(expression, ast, serializer);
5558
}
5659

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToAggregationExpressionTranslators/MethodTranslators/StandardDeviationMethodsToAggregationExpressionTranslator.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ public static AggregationExpression Translate(TranslationContext context, Method
3434
{
3535
var sourceExpression = arguments[0];
3636
var sourceTranslation = ExpressionToAggregationExpressionTranslator.TranslateEnumerable(context, sourceExpression);
37+
NestedAsQueryableHelper.EnsureQueryableMethodHasNestedAsQueryableSource(expression, sourceTranslation);
3738

3839
if (arguments.Count == 2)
3940
{

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToAggregationExpressionTranslators/MethodTranslators/StringConcatMethodToAggregationExpressionTranslator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ public static AggregationExpression Translate(TranslationContext context, Expres
9595

9696
if (method.Is(StringMethod.ConcatWithStringArray))
9797
{
98-
var argumentTranslation = ExpressionToAggregationExpressionTranslator.Translate(context, arguments.Single());
98+
var argumentTranslation = ExpressionToAggregationExpressionTranslator.TranslateEnumerable(context, arguments.Single());
9999
if (argumentTranslation.Ast is AstComputedArrayExpression astArray)
100100
{
101101
argumentsTranslations = astArray.Items;

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToAggregationExpressionTranslators/MethodTranslators/SumMethodToAggregationExpressionTranslator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ public static AggregationExpression Translate(TranslationContext context, Method
7777
{
7878
var sourceExpression = arguments[0];
7979
var sourceTranslation = ExpressionToAggregationExpressionTranslator.TranslateEnumerable(context, sourceExpression);
80-
var sourceItemSerializer = ArraySerializerHelper.GetItemSerializer(sourceTranslation.Serializer);
8180
NestedAsQueryableHelper.EnsureQueryableMethodHasNestedAsQueryableSource(expression, sourceTranslation);
81+
var sourceItemSerializer = ArraySerializerHelper.GetItemSerializer(sourceTranslation.Serializer);
8282

8383
AstExpression ast;
8484
IBsonSerializer serializer;

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToAggregationExpressionTranslators/MethodTranslators/ToArrayMethodToAggregationExpressionTranslator.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,13 @@ public static AggregationExpression Translate(TranslationContext context, Method
3232
if (EnumerableMethod.IsToArrayMethod(expression, out var sourceExpression))
3333
{
3434
var sourceTranslation = ExpressionToAggregationExpressionTranslator.TranslateEnumerable(context, sourceExpression);
35+
NestedAsQueryableHelper.EnsureQueryableMethodHasNestedAsQueryableSource(expression, sourceTranslation);
36+
3537
var arrayItemSerializer = ArraySerializerHelper.GetItemSerializer(sourceTranslation.Serializer);
3638
var arrayItemType = arrayItemSerializer.ValueType;
3739
var arraySerializerType = typeof(ArraySerializer<>).MakeGenericType(arrayItemType);
3840
var arraySerializer = (IBsonSerializer)Activator.CreateInstance(arraySerializerType, arrayItemSerializer);
41+
3942
return new AggregationExpression(expression, sourceTranslation.Ast, arraySerializer);
4043
}
4144

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToAggregationExpressionTranslators/MethodTranslators/ToListMethodToAggregationExpressionTranslator.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,14 @@ public static AggregationExpression Translate(TranslationContext context, Method
3434
{
3535
var sourceExpression = arguments[0];
3636
var sourceTranslation = ExpressionToAggregationExpressionTranslator.TranslateEnumerable(context, sourceExpression);
37+
NestedAsQueryableHelper.EnsureQueryableMethodHasNestedAsQueryableSource(expression, sourceTranslation);
38+
3739
var listItemSerializer = ArraySerializerHelper.GetItemSerializer(sourceTranslation.Serializer);
3840
var listItemType = listItemSerializer.ValueType;
3941
var listType = typeof(List<>).MakeGenericType(listItemType);
4042
var listSerializerType = typeof(EnumerableInterfaceImplementerSerializer<,>).MakeGenericType(listType, listItemType);
4143
var listSerializer = (IBsonSerializer)Activator.CreateInstance(listSerializerType, listItemSerializer);
44+
4245
return new AggregationExpression(expression, sourceTranslation.Ast, listSerializer);
4346
}
4447

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToAggregationExpressionTranslators/MethodTranslators/WhereMethodToAggregationExpressionTranslator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ public static AggregationExpression Translate(TranslationContext context, Method
4040
{
4141
var sourceExpression = arguments[0];
4242
var sourceTranslation = ExpressionToAggregationExpressionTranslator.TranslateEnumerable(context, sourceExpression);
43-
var itemSerializer = ArraySerializerHelper.GetItemSerializer(sourceTranslation.Serializer);
4443
NestedAsQueryableHelper.EnsureQueryableMethodHasNestedAsQueryableSource(expression, sourceTranslation);
44+
var itemSerializer = ArraySerializerHelper.GetItemSerializer(sourceTranslation.Serializer);
4545

4646
var predicateLambda = ExpressionHelper.UnquoteLambdaIfQueryableMethod(method, arguments[1]);
4747
var predicateParameter = predicateLambda.Parameters[0];

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToFilterTranslators/ExpressionTranslators/ArrayLengthComparisonExpressionToFilterTranslator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public static AstFilter Translate(TranslationContext context, BinaryExpression e
4343
if (arrayLengthExpression.NodeType == ExpressionType.ArrayLength)
4444
{
4545
var fieldExpression = arrayLengthExpression.Operand;
46-
var fieldTranslation = ExpressionToFilterFieldTranslator.Translate(context, fieldExpression);
46+
var fieldTranslation = ExpressionToFilterFieldTranslator.TranslateEnumerable(context, fieldExpression);
4747
var size = sizeExpression.GetConstantValue<int>(containingExpression: expression);
4848

4949
switch (comparisonOperator)

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToFilterTranslators/ExpressionTranslators/CountComparisonExpressionToFilterTranslator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public static bool CanTranslate(Expression leftExpression, Expression rightExpre
6161

6262
public static AstFilter Translate(TranslationContext context, BinaryExpression expression, AstComparisonFilterOperator comparisonOperator, Expression enumerableExpression, Expression sizeExpression)
6363
{
64-
var fieldTranslation = ExpressionToFilterFieldTranslator.Translate(context, enumerableExpression);
64+
var fieldTranslation = ExpressionToFilterFieldTranslator.TranslateEnumerable(context, enumerableExpression);
6565
SerializationHelper.EnsureRepresentationIsArray(enumerableExpression, fieldTranslation.Serializer);
6666

6767
if (TryConvertSizeExpressionToBsonValue(sizeExpression, out var size))

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToFilterTranslators/MethodTranslators/AllOrAnyMethodToFilterTranslator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ public static (TranslatedFilterField, AstFilter) Translate(TranslationContext co
156156
}
157157

158158
{
159-
var fieldTranslation = ExpressionToFilterFieldTranslator.Translate(context, sourceExpression);
159+
var fieldTranslation = ExpressionToFilterFieldTranslator.TranslateEnumerable(context, sourceExpression);
160160
return (fieldTranslation, null);
161161
}
162162
}

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToFilterTranslators/MethodTranslators/AllWithContainsInPredicateMethodToFilterTranslator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public static bool CanTranslate(MethodCallExpression expression, out Expression
5454

5555
public static AstFilter Translate(TranslationContext context, Expression arrayFieldExpression, ConstantExpression arrayConstantExpression)
5656
{
57-
var arrayFieldTranslation = ExpressionToFilterFieldTranslator.Translate(context, arrayFieldExpression);
57+
var arrayFieldTranslation = ExpressionToFilterFieldTranslator.TranslateEnumerable(context, arrayFieldExpression);
5858
var itemSerializer = ArraySerializerHelper.GetItemSerializer(arrayFieldTranslation.Serializer);
5959
var values = (IEnumerable)arrayConstantExpression.Value;
6060
var serializedValues = SerializationHelper.SerializeValues(itemSerializer, values);

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToFilterTranslators/MethodTranslators/AnyWithContainsInPredicateMethodToFilterTranslator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public static bool CanTranslate(MethodCallExpression expression, out Expression
6363

6464
public static AstFilter Translate(TranslationContext context, Expression arrayFieldExpression, ConstantExpression arrayConstantExpression)
6565
{
66-
var arrayFieldTranslation = ExpressionToFilterFieldTranslator.Translate(context, arrayFieldExpression);
66+
var arrayFieldTranslation = ExpressionToFilterFieldTranslator.TranslateEnumerable(context, arrayFieldExpression);
6767
var itemSerializer = ArraySerializerHelper.GetItemSerializer(arrayFieldTranslation.Serializer);
6868
var values = (IEnumerable)arrayConstantExpression.Value;
6969
var serializedValues = SerializationHelper.SerializeValues(itemSerializer, values);

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToFilterTranslators/MethodTranslators/ContainsMethodToFilterTranslator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ private static AstFilter Translate(TranslationContext context, Expression expres
7373
{
7474
if (itemExpression.NodeType == ExpressionType.Constant)
7575
{
76-
var fieldTranslation = ExpressionToFilterFieldTranslator.Translate(context, fieldExpression);
76+
var fieldTranslation = ExpressionToFilterFieldTranslator.TranslateEnumerable(context, fieldExpression);
7777
var itemSerializer = ArraySerializerHelper.GetItemSerializer(fieldTranslation.Serializer);
7878
var value = itemExpression.GetConstantValue<object>(containingExpression: expression);
7979
var serializedValue = SerializationHelper.SerializeValue(itemSerializer, value);

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToFilterTranslators/ToFilterFieldTranslators/AllElementsMethodToFilterFieldTranslator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public static TranslatedFilterField Translate(TranslationContext context, Method
3131
if (method.Is(MongoEnumerableMethod.AllElements))
3232
{
3333
var fieldExpression = arguments[0];
34-
var fieldTranslation = ExpressionToFilterFieldTranslator.Translate(context, fieldExpression);
34+
var fieldTranslation = ExpressionToFilterFieldTranslator.TranslateEnumerable(context, fieldExpression);
3535

3636
if (fieldTranslation.Serializer is IBsonArraySerializer arraySerializer &&
3737
arraySerializer.TryGetItemSerializationInfo(out var itemSerializationInfo))

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToFilterTranslators/ToFilterFieldTranslators/AllMatchingElementsMethodToFilterFieldTranslator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public static TranslatedFilterField Translate(TranslationContext context, Method
3232
if (method.Is(MongoEnumerableMethod.AllMatchingElements))
3333
{
3434
var fieldExpression = arguments[0];
35-
var fieldTranslation = ExpressionToFilterFieldTranslator.Translate(context, fieldExpression);
35+
var fieldTranslation = ExpressionToFilterFieldTranslator.TranslateEnumerable(context, fieldExpression);
3636

3737
var identifierExpression = arguments[1];
3838
var identifier = identifierExpression.GetConstantValue<string>(containingExpression: expression);

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToFilterTranslators/ToFilterFieldTranslators/FirstMatchingElementMethodToFilterFieldTranslator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public static TranslatedFilterField Translate(TranslationContext context, Method
3131
if (method.Is(MongoEnumerableMethod.FirstMatchingElement))
3232
{
3333
var fieldExpression = arguments[0];
34-
var fieldTranslation = ExpressionToFilterFieldTranslator.Translate(context, fieldExpression);
34+
var fieldTranslation = ExpressionToFilterFieldTranslator.TranslateEnumerable(context, fieldExpression);
3535

3636
if (fieldTranslation.Serializer is IBsonArraySerializer arraySerializer &&
3737
arraySerializer.TryGetItemSerializationInfo(out var itemSerializationInfo))

src/MongoDB.Driver/Linq/Linq3Implementation/Translators/ExpressionToFilterTranslators/ToFilterFieldTranslators/SelectMethodToFilterFieldTranslator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public static TranslatedFilterField Translate(TranslationContext context, Method
3333
if (method.Is(EnumerableMethod.Select))
3434
{
3535
var fieldExpression = arguments[0];
36-
var fieldTranslation = ExpressionToFilterFieldTranslator.Translate(context, fieldExpression);
36+
var fieldTranslation = ExpressionToFilterFieldTranslator.TranslateEnumerable(context, fieldExpression);
3737

3838
var selectorExpression = arguments[1];
3939
if (selectorExpression is LambdaExpression lambdaExpression &&

0 commit comments

Comments
 (0)