fix implicit import

This commit is contained in:
Vítor Santos Costa 2012-04-27 15:52:03 +01:00
parent 6bb4db125d
commit 9e36576951
1 changed files with 9 additions and 6 deletions

View File

@ -137,7 +137,7 @@ module(N) :-
'$import'([PS|L],_,_) :- '$import'([PS|L],_,_) :-
'$do_error'(domain_error(predicate_spec,PS),import([PS|L])). '$do_error'(domain_error(predicate_spec,PS),import([PS|L])).
% $use_preds(Imports,Publics,Mod,M) $use_preds(Imports,Publics,Mod,M) :- writeln(),fail.
'$use_preds'(Imports,Publics,Mod,M) :- var(Imports), !, '$use_preds'(Imports,Publics,Mod,M) :- var(Imports), !,
'$import'(Publics,Mod,M). '$import'(Publics,Mod,M).
'$use_preds'(M:L,Publics,Mod,_) :- '$use_preds'(M:L,Publics,Mod,_) :-
@ -147,9 +147,9 @@ module(N) :-
'$use_preds'(P,Publics,Mod,M), '$use_preds'(P,Publics,Mod,M),
'$use_preds'(Ps,Publics,Mod,M). '$use_preds'(Ps,Publics,Mod,M).
'$use_preds'(N/K,Publics,M,Mod) :- '$use_preds'(N/K,Publics,M,Mod) :-
( lists:memberchk(N/K,Publics) -> true ; ( lists:memberchk(N/K,Publics) ->
print_message(warning,import(N/K,Mod,M,private)) true ;
), print_message(warning,import(N/K,Mod,M,private))
'$do_import'(N, K, M, Mod). '$do_import'(N, K, M, Mod).
'$use_preds'(N//K0,Publics,M,Mod) :- '$use_preds'(N//K0,Publics,M,Mod) :-
K is K0+2, K is K0+2,
@ -163,8 +163,11 @@ module(N) :-
% ignore imports that we do export % ignore imports that we do export
% %
'$do_import'(N, K, M, T) :- '$do_import'(N, K, M, T) :-
recorded('$module','$module'(_F,T,MyExports),_), recorded('$module','$module'(_F, T, MyExports),_),
lists:member(N/K,MyExports), !. once(lists:member(N/K, MyExports)),
functor(S, N, K),
% reexport predicates if they are undefined in the current module.
\+ '$undefined'(S, T), !.
'$do_import'(N, K, M, T) :- '$do_import'(N, K, M, T) :-
functor(G,N,K), functor(G,N,K),
'$follow_import_chain'(M,G,M0,G0), '$follow_import_chain'(M,G,M0,G0),