Skip to content

Commit e4c80fb

Browse files
authored
Reduce exports (#14)
And a few other fixups
1 parent 28b3b6a commit e4c80fb

File tree

4 files changed

+135
-111
lines changed

4 files changed

+135
-111
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "OverflowContexts"
22
uuid = "649716ba-0eb1-4560-ace2-251185f55281"
33
authors = ["Nicholas Bauer <[email protected]>"]
4-
version = "0.3"
4+
version = "0.3.0"
55

66
[compat]
77
julia = "1"

src/OverflowContexts.jl

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,6 @@ include("base_ext.jl")
55
include("base_ext_sat.jl")
66
include("abstractarraymath_ext.jl")
77

8-
export @default_checked, @default_unchecked, @default_saturating, @checked, @unchecked, @saturating,
9-
checked_neg, checked_add, checked_sub, checked_mul, checked_pow, checked_negsub, checked_abs, checked_div, checked_fld, checked_cld, checked_rem, checked_mod,
10-
unchecked_neg, unchecked_add, unchecked_sub, unchecked_mul, unchecked_negsub, unchecked_pow, unchecked_abs, unchecked_div, unchecked_fld, unchecked_cld, unchecked_rem, unchecked_mod,
11-
saturating_neg, saturating_add, saturating_sub, saturating_mul, saturating_pow, saturating_negsub, saturating_abs, saturating_div, saturating_fld, saturating_cld, saturating_rem, saturating_mod
8+
export @default_checked, @default_unchecked, @default_saturating, @checked, @unchecked, @saturating
129

1310
end # module

src/macros.jl

Lines changed: 68 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,19 @@ macro default_checked()
1515
else
1616
@warn "A previous default was set for this module. Previously defined methods in this module will be recompiled with this new default."
1717
end
18-
(@__MODULE__).eval(:(-(x) = checked_neg(x)))
19-
(@__MODULE__).eval(:(+(x...) = checked_add(x...)))
20-
(@__MODULE__).eval(:(-(x...) = checked_sub(x...)))
21-
(@__MODULE__).eval(:(*(x...) = checked_mul(x...)))
22-
(@__MODULE__).eval(:(^(x...) = checked_pow(x...)))
23-
(@__MODULE__).eval(:(abs(x) = checked_abs(x)))
24-
(@__MODULE__).eval(:(÷(x...) = checked_div(x...)))
25-
(@__MODULE__).eval(:(div(x) = checked_div(x)))
26-
(@__MODULE__).eval(:(fld(x) = checked_fld(x)))
27-
(@__MODULE__).eval(:(cld(x) = checked_cld(x)))
28-
(@__MODULE__).eval(:(%(x...) = checked_mod(x...)))
29-
(@__MODULE__).eval(:(rem(x) = checked_rem(x)))
30-
(@__MODULE__).eval(:(mod(x) = checked_mod(x)))
18+
(@__MODULE__).eval(:(-(x) = OverflowContexts.checked_neg(x)))
19+
(@__MODULE__).eval(:(+(x...) = OverflowContexts.checked_add(x...)))
20+
(@__MODULE__).eval(:(-(x...) = OverflowContexts.checked_sub(x...)))
21+
(@__MODULE__).eval(:(*(x...) = OverflowContexts.checked_mul(x...)))
22+
(@__MODULE__).eval(:(^(x...) = OverflowContexts.checked_pow(x...)))
23+
(@__MODULE__).eval(:(abs(x) = OverflowContexts.checked_abs(x)))
24+
(@__MODULE__).eval(:(÷(x...) = OverflowContexts.checked_div(x...)))
25+
(@__MODULE__).eval(:(div(x) = OverflowContexts.checked_div(x)))
26+
(@__MODULE__).eval(:(fld(x) = OverflowContexts.checked_fld(x)))
27+
(@__MODULE__).eval(:(cld(x) = OverflowContexts.checked_cld(x)))
28+
(@__MODULE__).eval(:(%(x...) = OverflowContexts.checked_mod(x...)))
29+
(@__MODULE__).eval(:(rem(x) = OverflowContexts.checked_rem(x)))
30+
(@__MODULE__).eval(:(mod(x) = OverflowContexts.checked_mod(x)))
3131
(@__MODULE__).eval(:(__OverflowContextDefaultSet = true))
3232
nothing
3333
end
@@ -46,19 +46,19 @@ macro default_unchecked()
4646
else
4747
@warn "A previous default was set for this module. Previously defined methods in this module will be recompiled with this new default."
4848
end
49-
(@__MODULE__).eval(:(-(x) = unchecked_neg(x)))
50-
(@__MODULE__).eval(:(+(x...) = unchecked_add(x...)))
51-
(@__MODULE__).eval(:(-(x...) = unchecked_sub(x...)))
52-
(@__MODULE__).eval(:(*(x...) = unchecked_mul(x...)))
53-
(@__MODULE__).eval(:(^(x...) = unchecked_pow(x...)))
54-
(@__MODULE__).eval(:(abs(x) = unchecked_abs(x)))
55-
(@__MODULE__).eval(:(÷(x...) = unchecked_div(x...)))
56-
(@__MODULE__).eval(:(div(x) = unchecked_div(x)))
57-
(@__MODULE__).eval(:(fld(x) = unchecked_fld(x)))
58-
(@__MODULE__).eval(:(cld(x) = unchecked_cld(x)))
59-
(@__MODULE__).eval(:(%(x...) = unchecked_mod(x...)))
60-
(@__MODULE__).eval(:(rem(x) = unchecked_rem(x)))
61-
(@__MODULE__).eval(:(mod(x) = unchecked_mod(x)))
49+
(@__MODULE__).eval(:(-(x) = OverflowContexts.unchecked_neg(x)))
50+
(@__MODULE__).eval(:(+(x...) = OverflowContexts.unchecked_add(x...)))
51+
(@__MODULE__).eval(:(-(x...) = OverflowContexts.unchecked_sub(x...)))
52+
(@__MODULE__).eval(:(*(x...) = OverflowContexts.unchecked_mul(x...)))
53+
(@__MODULE__).eval(:(^(x...) = OverflowContexts.unchecked_pow(x...)))
54+
(@__MODULE__).eval(:(abs(x) = OverflowContexts.unchecked_abs(x)))
55+
(@__MODULE__).eval(:(÷(x...) = OverflowContexts.unchecked_div(x...)))
56+
(@__MODULE__).eval(:(div(x) = OverflowContexts.unchecked_div(x)))
57+
(@__MODULE__).eval(:(fld(x) = OverflowContexts.unchecked_fld(x)))
58+
(@__MODULE__).eval(:(cld(x) = OverflowContexts.unchecked_cld(x)))
59+
(@__MODULE__).eval(:(%(x...) = OverflowContexts.unchecked_mod(x...)))
60+
(@__MODULE__).eval(:(rem(x) = OverflowContexts.unchecked_rem(x)))
61+
(@__MODULE__).eval(:(mod(x) = OverflowContexts.unchecked_mod(x)))
6262
(@__MODULE__).eval(:(__OverflowContextDefaultSet = true))
6363
nothing
6464
end
@@ -129,54 +129,54 @@ macro saturating(expr)
129129
end
130130

131131
const op_checked = Dict(
132-
Symbol("unary-") => :(checked_neg),
133-
Symbol("ambig-") => :(checked_negsub),
134-
:+ => :(checked_add),
135-
:- => :(checked_sub),
136-
:* => :(checked_mul),
137-
:^ => :(checked_pow),
138-
:abs => :(checked_abs),
139-
:÷ => :(checked_div),
140-
:div => :(checked_div),
141-
:fld => :(checked_fld),
142-
:cld => :(checked_cld),
143-
:% => :(checked_rem),
144-
:rem => :(checked_rem),
145-
:mod => :(checked_mod)
132+
Symbol("unary-") => :(OverflowContexts.checked_neg),
133+
Symbol("ambig-") => :(OverflowContexts.checked_negsub),
134+
:+ => :(OverflowContexts.checked_add),
135+
:- => :(OverflowContexts.checked_sub),
136+
:* => :(OverflowContexts.checked_mul),
137+
:^ => :(OverflowContexts.checked_pow),
138+
:abs => :(OverflowContexts.checked_abs),
139+
:÷ => :(OverflowContexts.checked_div),
140+
:div => :(OverflowContexts.checked_div),
141+
:fld => :(OverflowContexts.checked_fld),
142+
:cld => :(OverflowContexts.checked_cld),
143+
:% => :(OverflowContexts.checked_rem),
144+
:rem => :(OverflowContexts.checked_rem),
145+
:mod => :(OverflowContexts.checked_mod)
146146
)
147147

148148
const op_unchecked = Dict(
149-
Symbol("unary-") => :(unchecked_neg),
150-
Symbol("ambig-") => :(unchecked_negsub),
151-
:+ => :(unchecked_add),
152-
:- => :(unchecked_sub),
153-
:* => :(unchecked_mul),
154-
:^ => :(unchecked_pow),
155-
:abs => :(unchecked_abs),
156-
:÷ => :(unchecked_div),
157-
:div => :(unchecked_div),
158-
:fld => :(unchecked_fld),
159-
:cld => :(unchecked_cld),
160-
:% => :(unchecked_rem),
161-
:rem => :(unchecked_rem),
162-
:mod => :(unchecked_mod)
149+
Symbol("unary-") => :(OverflowContexts.unchecked_neg),
150+
Symbol("ambig-") => :(OverflowContexts.unchecked_negsub),
151+
:+ => :(OverflowContexts.unchecked_add),
152+
:- => :(OverflowContexts.unchecked_sub),
153+
:* => :(OverflowContexts.unchecked_mul),
154+
:^ => :(OverflowContexts.unchecked_pow),
155+
:abs => :(OverflowContexts.unchecked_abs),
156+
:÷ => :(OverflowContexts.unchecked_div),
157+
:div => :(OverflowContexts.unchecked_div),
158+
:fld => :(OverflowContexts.unchecked_fld),
159+
:cld => :(OverflowContexts.unchecked_cld),
160+
:% => :(OverflowContexts.unchecked_rem),
161+
:rem => :(OverflowContexts.unchecked_rem),
162+
:mod => :(OverflowContexts.unchecked_mod)
163163
)
164164

165165
const op_saturating = Dict(
166-
Symbol("unary-") => :(saturating_neg),
167-
Symbol("ambig-") => :(saturating_negsub),
168-
:+ => :(saturating_add),
169-
:- => :(saturating_sub),
170-
:* => :(saturating_mul),
171-
:^ => :(saturating_pow),
172-
:abs => :(saturating_abs),
173-
:÷ => :(saturating_div),
174-
:div => :(saturating_div),
175-
:fld => :(saturating_fld),
176-
:cld => :(saturating_cld),
177-
:% => :(saturating_rem),
178-
:rem => :(saturating_rem),
179-
:mod => :(saturating_mod)
166+
Symbol("unary-") => :(OverflowContexts.saturating_neg),
167+
Symbol("ambig-") => :(OverflowContexts.saturating_negsub),
168+
:+ => :(OverflowContexts.saturating_add),
169+
:- => :(OverflowContexts.saturating_sub),
170+
:* => :(OverflowContexts.saturating_mul),
171+
:^ => :(OverflowContexts.saturating_pow),
172+
:abs => :(OverflowContexts.saturating_abs),
173+
:÷ => :(OverflowContexts.saturating_div),
174+
:div => :(OverflowContexts.saturating_div),
175+
:fld => :(OverflowContexts.saturating_fld),
176+
:cld => :(OverflowContexts.saturating_cld),
177+
:% => :(OverflowContexts.saturating_rem),
178+
:rem => :(OverflowContexts.saturating_rem),
179+
:mod => :(OverflowContexts.saturating_mod)
180180
)
181181

182182
const broadcast_op_map = Dict(

test/runtests.jl

Lines changed: 65 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
using OverflowContexts
2+
using OverflowContexts: checked_neg, checked_add, checked_sub, checked_mul, checked_pow, checked_negsub, checked_abs,
3+
unchecked_neg, unchecked_add, unchecked_sub, unchecked_mul, unchecked_negsub, unchecked_pow, unchecked_abs,
4+
saturating_neg, saturating_add, saturating_sub, saturating_mul, saturating_pow, saturating_negsub, saturating_abs
25
using Test
36

47
@test isempty(detect_ambiguities(OverflowContexts, Base, Core))
@@ -377,50 +380,74 @@ end
377380
end
378381

379382
@testset "symbol replacement" begin
380-
expr = @macroexpand @checked foldl(+, [])
381-
@test expr.args[2] == :checked_add
382-
383-
expr = @macroexpand @unchecked foldl(+, [])
384-
@test expr.args[2] == :unchecked_add
385-
386-
expr = @macroexpand @saturating foldl(+, [])
387-
@test expr.args[2] == :saturating_add
388-
389383
expr = @macroexpand @checked foldl(-, [])
390-
@test expr.args[2] == :checked_negsub
391-
392-
expr = @macroexpand @unchecked foldl(-, [])
393-
@test expr.args[2] == :unchecked_negsub
394-
395-
expr = @macroexpand @saturating foldl(-, [])
396-
@test expr.args[2] == :saturating_negsub
397-
384+
@test expr.args[2] == :(OverflowContexts.checked_negsub)
385+
expr = @macroexpand @checked foldl(+, [])
386+
@test expr.args[2] == :(OverflowContexts.checked_add)
398387
expr = @macroexpand @checked foldl(*, [])
399-
@test expr.args[2] == :checked_mul
400-
401-
expr = @macroexpand @unchecked foldl(*, [])
402-
@test expr.args[2] == :unchecked_mul
403-
404-
expr = @macroexpand @saturating foldl(*, [])
405-
@test expr.args[2] == :saturating_mul
406-
388+
@test expr.args[2] == :(OverflowContexts.checked_mul)
407389
expr = @macroexpand @checked foldl(^, [])
408-
@test expr.args[2] == :checked_pow
409-
390+
@test expr.args[2] == :(OverflowContexts.checked_pow)
391+
expr = @macroexpand @checked foldl(÷, [])
392+
@test expr.args[2] == :(OverflowContexts.checked_div)
393+
expr = @macroexpand @checked foldl(div, [])
394+
@test expr.args[2] == :(OverflowContexts.checked_div)
395+
expr = @macroexpand @checked foldl(fld, [])
396+
@test expr.args[2] == :(OverflowContexts.checked_fld)
397+
expr = @macroexpand @checked foldl(cld, [])
398+
@test expr.args[2] == :(OverflowContexts.checked_cld)
399+
expr = @macroexpand @checked foldl(%, [])
400+
@test expr.args[2] == :(OverflowContexts.checked_rem)
401+
expr = @macroexpand @checked foldl(rem, [])
402+
@test expr.args[2] == :(OverflowContexts.checked_rem)
403+
expr = @macroexpand @checked foldl(mod, [])
404+
@test expr.args[2] == :(OverflowContexts.checked_mod)
405+
406+
expr = @macroexpand @unchecked foldl(-, [])
407+
@test expr.args[2] == :(OverflowContexts.unchecked_negsub)
408+
expr = @macroexpand @unchecked foldl(+, [])
409+
@test expr.args[2] == :(OverflowContexts.unchecked_add)
410+
expr = @macroexpand @unchecked foldl(*, [])
411+
@test expr.args[2] == :(OverflowContexts.unchecked_mul)
410412
expr = @macroexpand @unchecked foldl(^, [])
411-
@test expr.args[2] == :unchecked_pow
413+
@test expr.args[2] == :(OverflowContexts.unchecked_pow)
414+
expr = @macroexpand @unchecked foldl(÷, [])
415+
@test expr.args[2] == :(OverflowContexts.unchecked_div)
416+
expr = @macroexpand @unchecked foldl(div, [])
417+
@test expr.args[2] == :(OverflowContexts.unchecked_div)
418+
expr = @macroexpand @unchecked foldl(fld, [])
419+
@test expr.args[2] == :(OverflowContexts.unchecked_fld)
420+
expr = @macroexpand @unchecked foldl(cld, [])
421+
@test expr.args[2] == :(OverflowContexts.unchecked_cld)
422+
expr = @macroexpand @unchecked foldl(%, [])
423+
@test expr.args[2] == :(OverflowContexts.unchecked_rem)
424+
expr = @macroexpand @unchecked foldl(rem, [])
425+
@test expr.args[2] == :(OverflowContexts.unchecked_rem)
426+
expr = @macroexpand @unchecked foldl(mod, [])
427+
@test expr.args[2] == :(OverflowContexts.unchecked_mod)
412428

429+
expr = @macroexpand @saturating foldl(-, [])
430+
@test expr.args[2] == :(OverflowContexts.saturating_negsub)
431+
expr = @macroexpand @saturating foldl(+, [])
432+
@test expr.args[2] == :(OverflowContexts.saturating_add)
433+
expr = @macroexpand @saturating foldl(*, [])
434+
@test expr.args[2] == :(OverflowContexts.saturating_mul)
413435
expr = @macroexpand @saturating foldl(^, [])
414-
@test expr.args[2] == :saturating_pow
415-
416-
expr = @macroexpand @checked foldl(:abs, [])
417-
@test expr.args[2] == :checked_abs
418-
419-
expr = @macroexpand @unchecked foldl(:abs, [])
420-
@test expr.args[2] == :unchecked_abs
421-
422-
expr = @macroexpand @saturating foldl(:abs, [])
423-
@test expr.args[2] == :saturating_abs
436+
@test expr.args[2] == :(OverflowContexts.saturating_pow)
437+
expr = @macroexpand @saturating foldl(÷, [])
438+
@test expr.args[2] == :(OverflowContexts.saturating_div)
439+
expr = @macroexpand @saturating foldl(div, [])
440+
@test expr.args[2] == :(OverflowContexts.saturating_div)
441+
expr = @macroexpand @saturating foldl(fld, [])
442+
@test expr.args[2] == :(OverflowContexts.saturating_fld)
443+
expr = @macroexpand @saturating foldl(cld, [])
444+
@test expr.args[2] == :(OverflowContexts.saturating_cld)
445+
expr = @macroexpand @saturating foldl(%, [])
446+
@test expr.args[2] == :(OverflowContexts.saturating_rem)
447+
expr = @macroexpand @saturating foldl(rem, [])
448+
@test expr.args[2] == :(OverflowContexts.saturating_rem)
449+
expr = @macroexpand @saturating foldl(mod, [])
450+
@test expr.args[2] == :(OverflowContexts.saturating_mod)
424451
end
425452

426453
@testset "negsub helper methods dispatch correctly" begin

0 commit comments

Comments
 (0)