Skip to content

Commit 9078264

Browse files
committed
Improve list function
1 parent f3aa738 commit 9078264

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

src/ModuleInterfaceTools.jl

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,21 @@ macro api(cmd::Symbol)
129129
error("@api unrecognized command: $cmd")
130130
end
131131

132-
_api_display(mod, nam) =
133-
isdefined(mod, nam) && (api = m_eval(mod, nam)) !== nothing && (show(api) ; println())
132+
function _api_display(mod, nam)
133+
if isdefined(mod, nam) && (api = m_eval(mod, nam)) !== nothing
134+
show(api);
135+
else
136+
println("Exported from $mod:")
137+
syms = names(mod)
138+
if !isempty(syms)
139+
print(fld, ":")
140+
for s in syms
141+
print(" ", s)
142+
end
143+
end
144+
end
145+
println()
146+
end
134147

135148
_api_list(mod::Module) = (_api_display(mod, :__api__) ; _api_display(mod, :__tmp_api__))
136149

@@ -362,7 +375,7 @@ function _api(curmod::Module, cmd::Symbol, exprs)
362375
: _api_extend(curmod, modules, cpy))
363376
end
364377

365-
@static V6_COMPAT || (_dot_name(nam) = Expr(:., nam))
378+
makecmd(cmd, nam, sym) = @static V6_COMPAT ? Expr(cmd, nam, sym) : Expr(cmd, Expr(:., nam, sym))
366379

367380
_do_list(curmod, cpy, cmd, mod, nam, grp, api::API) =
368381
_do_list(curmod, cpy, cmd, mod, nam, grp, getfield(api, grp))
@@ -371,7 +384,7 @@ function _do_list(curmod, cpy, cmd, mod, nam, grp, lst)
371384
debug[] && println("_do_list($curmod, $cpy, $cmd, $mod, $nam, $grp, $lst)")
372385
for sym in lst
373386
if isdefined(mod, sym)
374-
m_eval(curmod, Expr(cmd, nam, sym))
387+
m_eval(curmod, makecmd(cmd, nam, sym))
375388
cpy && m_eval(curmod, :( push!(__tmp_api__.$grp, $(QuoteNode(sym)) )))
376389
else
377390
println(_stderr(), "Warning: Exported symbol $sym is not defined in $nam")

0 commit comments

Comments
 (0)