private static Expression ConvertMemberAccessExpressionIfNecessary(Expression memberExpression)
{
//Numeric types with less bits than Int32 have to be converted to Int32,
//so that appropriate extension method will be called.
var memberType = memberExpression.Type.GetNonNullableType();
if (ShouldConvertTypeToInteger(memberType))
{
memberExpression = ConvertMemberExpressionToInteger(memberExpression);
}
return memberExpression;
}