Skip to content

Commit 28e0b86

Browse files
committed
avoid turning MemberAccess expressions of literal types into Constants
1 parent 9d3ab17 commit 28e0b86

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

src/AutoMapper.Extensions.ExpressionMapping/XpressionMapperVisitor.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@ protected override Expression VisitMember(MemberExpression node)
5757
var baseExpression = node.GetBaseOfMemberExpression();
5858
if (baseExpression?.NodeType == ExpressionType.Constant)
5959
{
60+
if (node.Type.IsLiteralType())
61+
return node;
62+
6063
return this.Visit
6164
(
6265
Expression.Constant

tests/AutoMapper.Extensions.ExpressionMapping.UnitTests/XpressionMapper.Structs.Tests.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,9 +161,11 @@ public void Can_map_listeral_child_property_of_local_variable_in_filter()
161161

162162
//Act
163163
var mappedfilter = mapper.MapExpression<Expression<Func<Garage, bool>>>(filter);
164+
var mappedrhs = ((BinaryExpression)mappedfilter.Body).Right;
164165

165166
//Assert
166167
Assert.NotNull(mappedfilter);
168+
Assert.Equal(ExpressionType.MemberAccess, mappedrhs.NodeType);
167169
}
168170

169171
[Fact]

0 commit comments

Comments
 (0)