Skip to content

Commit 4ec94ea

Browse files
committed
Removing min value range check when converting from unsigned numeric source values
1 parent 9ec1f97 commit 4ec94ea

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

AgileMapper/TypeConversion/NumericValueIsInRangeComparison.cs

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,23 @@ public static Expression For(Expression sourceValue, Type nonNullableTargetType)
1717
sourceValue,
1818
sourceValue.Type,
1919
nonNullableTargetType,
20-
out Expression maxValueComparisonLeftSide,
21-
out Expression maxValueComparisonRightSide);
20+
out var maxValueComparisonLeftSide,
21+
out var maxValueComparisonRightSide);
22+
23+
var sourceValueIsLessThanOrEqualToMaxValue =
24+
Expression.LessThanOrEqual(maxValueComparisonLeftSide, maxValueComparisonRightSide);
25+
26+
if (sourceValue.Type.IsUnsignedNumeric())
27+
{
28+
return sourceValueIsLessThanOrEqualToMaxValue;
29+
}
2230

2331
GetMinimumValueComparisonOperands(
2432
sourceValue,
2533
sourceValue.Type,
2634
nonNullableTargetType,
27-
out Expression minValueComparisonLeftSide,
28-
out Expression minValueComparisonRightSide);
29-
30-
var sourceValueIsLessThanOrEqualToMaxValue =
31-
Expression.LessThanOrEqual(maxValueComparisonLeftSide, maxValueComparisonRightSide);
35+
out var minValueComparisonLeftSide,
36+
out var minValueComparisonRightSide);
3237

3338
var sourceValueIsGreaterThanOrEqualToMinValue =
3439
Expression.GreaterThanOrEqual(minValueComparisonLeftSide, minValueComparisonRightSide);

0 commit comments

Comments
 (0)