Skip to content

Commit 7793ffc

Browse files
committed
Fix OverflowError for older versions of julia
1 parent 2efb468 commit 7793ffc

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

src/FixedPointDecimals.jl

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -391,15 +391,15 @@ Base.checked_fld(x::FD, y::FD) = Base.checked_fld(promote(x, y)...)
391391
Base.checked_rem(x::FD, y::FD) = Base.checked_rem(promote(x, y)...)
392392
Base.checked_mod(x::FD, y::FD) = Base.checked_mod(promote(x, y)...)
393393

394-
Base.checked_add(x, y::FD) = Base.checked_add(promote(x, y)...)
395394
Base.checked_add(x::FD, y) = Base.checked_add(promote(x, y)...)
396-
Base.checked_sub(x, y::FD) = Base.checked_sub(promote(x, y)...)
395+
Base.checked_add(x, y::FD) = Base.checked_add(promote(x, y)...)
397396
Base.checked_sub(x::FD, y) = Base.checked_sub(promote(x, y)...)
398-
Base.checked_mul(x, y::FD) = Base.checked_mul(promote(x, y)...)
397+
Base.checked_sub(x, y::FD) = Base.checked_sub(promote(x, y)...)
399398
Base.checked_mul(x::FD, y) = Base.checked_mul(promote(x, y)...)
400-
Base.checked_div(x, y::FD) = Base.checked_div(promote(x, y)...)
399+
Base.checked_mul(x, y::FD) = Base.checked_mul(promote(x, y)...)
401400
Base.checked_div(x::FD, y) = Base.checked_div(promote(x, y)...)
402-
Base.checked_cld(x, y::FD) = Base.checked_cld(promote(x, y)...)
401+
Base.checked_div(x, y::FD) = Base.checked_div(promote(x, y)...)
402+
Base.checked_cld(x::FD, y) = Base.checked_cld(promote(x, y)...)
403403
Base.checked_cld(x, y::FD) = Base.checked_cld(promote(x, y)...)
404404
Base.checked_fld(x::FD, y) = Base.checked_fld(promote(x, y)...)
405405
Base.checked_fld(x, y::FD) = Base.checked_fld(promote(x, y)...)
@@ -450,8 +450,14 @@ end
450450
function Base.checked_abs(x::FD)
451451
r = ifelse(x<0, -x, x)
452452
r<0 || return r
453-
msg = LazyString("checked arithmetic: cannot compute |x| for x = ", x, "::", typeof(x))
454-
throw(OverflowError(msg))
453+
_throw_overflow_abs(x)
454+
end
455+
if VERSION >= v"1.8.0-"
456+
@noinline _throw_overflow_abs(x) =
457+
throw(OverflowError(LazyString("checked arithmetic: cannot compute |x| for x = ", x, "::", typeof(x))))
458+
else
459+
@noinline _throw_overflow_abs(x) =
460+
throw(OverflowError("checked arithmetic: cannot compute |x| for x = $x"))
455461
end
456462

457463
# We introduce a new function for this since Base.Checked only supports integers, and ints

0 commit comments

Comments
 (0)