Skip to content

Commit 83ab09e

Browse files
committed
Use import instead of using for modules
1 parent 89380b1 commit 83ab09e

File tree

1 file changed

+14
-15
lines changed

1 file changed

+14
-15
lines changed

src/APITools.jl

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,17 @@ end
5151

5252
const APIList = Tuple{Vararg{API}}
5353

54+
"""Expression to get current module"""
55+
const _cur_mod = V6_COMPAT ? :( current_module() ) : :( @__MODULE__ )
56+
5457
"""
5558
@api <cmd> [<symbols>...]
5659
5760
* @api init # set up module/package for adding names
5861
* @api freeze # use at end of module, to "freeze" API
5962
63+
* @api list <modules>... # list API(s) of given modules
64+
6065
* @api use <modules>... # use for normal use
6166
* @api test <modules>... # using api and dev, for testing purposes
6267
* @api extend <modules>... # for development, imports api & dev, use api & dev definitions
@@ -77,19 +82,12 @@ macro api(cmd::Symbol)
7782
global __tmp_chain__ = Vector{APITools.API}[]
7883
end
7984
elseif cmd == :freeze
80-
@static if V6_COMPAT
81-
esc(quote
82-
const __chain__ = APITools.APIList(__tmp_chain__)
83-
const __api__ = APITools.API(current_module(), __tmp_api__)
84-
__tmp_chain__ = _tmp_api__ = nothing
85-
end)
86-
else
87-
esc(quote
88-
const __chain__ = APITools.APIList(__tmp_chain__)
89-
const __api__ = APITools.API(@__MODULE__, __tmp_api__)
90-
__tmp_chain__ = _tmp_api__ = nothing
91-
end)
92-
end
85+
esc(quote
86+
const __api__ = APITools.API($_cur_mod, __tmp_api__)
87+
push!(__tmp_chain__, __api__)
88+
const __chain__ = APITools.APIList(__tmp_chain__)
89+
__tmp_chain__ = _tmp_api__ = nothing
90+
end)
9391
else
9492
error("@api unrecognized command: $cmd")
9593
end
@@ -188,6 +186,7 @@ macro api(cmd::Symbol, exprs...)
188186
grplst = (:public, :define_public)
189187
elseif cmd == :test
190188
grplst = (:public, :develop, :define_public, :define_develop)
189+
push!(lst, V6_COMPAT ? :(using Base.Test) :(using Test))
191190
elseif cmd == :extend
192191
grplst = (:define_public, :define_develop)
193192
for mod in modules, grp in (:base, :public, :develop)
@@ -206,8 +205,8 @@ end
206205

207206
function _make_module_list(mod, lst)
208207
isempty(lst) && return nothing
209-
length(lst) == 1 ? :(using $mod.$(lst[1])) :
210-
Expr(:toplevel, [:(using $mod.$nam) for nam in lst]...)
208+
length(lst) == 1 ? :(import $mod.$(lst[1])) :
209+
Expr(:toplevel, [:(import $mod.$nam) for nam in lst]...)
211210
end
212211

213212
_make_module_exprs(mod) =

0 commit comments

Comments
 (0)