module-qualify callables more liberally but not for built-ins (#1243)

This commit is contained in:
Mark Thom
2022-01-20 17:40:45 -07:00
parent 5dddf0a460
commit af76068297

View File

@@ -629,12 +629,15 @@ expand_subgoal(UnexpandedGoals, MS, Module, ExpandedGoals, HeadVars) :-
). ).
expand_module_name(ESG0, M, ESG) :- expand_module_name(ESG0, MS, M, ESG) :-
( var(ESG0) -> ( var(ESG0) ->
ESG = M:ESG0 ESG = M:ESG0
; ESG0 = _:_ -> ; ESG0 = _:_ ->
ESG = ESG0 ESG = ESG0
; predicate_property(ESG0, built_in) -> ; functor(ESG0, F, A0),
A is A0 + MS,
functor(EESG0, F, A),
predicate_property(EESG0, built_in) ->
ESG = ESG0 ESG = ESG0
; ESG = M:ESG0 ; ESG = M:ESG0
). ).
@@ -645,11 +648,10 @@ expand_meta_predicate_subgoals([SG | SGs], [MS | MSs], M, [ESG | ESGs], HeadVars
MS >= 0 MS >= 0
) -> ) ->
( var(SG), ( var(SG),
MS =:= 0,
pairs:same_key(SG, HeadVars, [_|_], _) -> pairs:same_key(SG, HeadVars, [_|_], _) ->
expand_subgoal(SG, MS, M, ESG, HeadVars) expand_subgoal(SG, MS, M, ESG, HeadVars)
; expand_subgoal(SG, MS, M, ESG0, HeadVars), ; expand_subgoal(SG, MS, M, ESG0, HeadVars),
expand_module_name(ESG0, M, ESG) expand_module_name(ESG0, MS, M, ESG)
), ),
expand_meta_predicate_subgoals(SGs, MSs, M, ESGs, HeadVars) expand_meta_predicate_subgoals(SGs, MSs, M, ESGs, HeadVars)
; ESG = SG, ; ESG = SG,
@@ -664,8 +666,7 @@ expand_module_names(Goals, MetaSpecs, Module, ExpandedGoals, HeadVars) :-
( GoalFunctor == (:), ( GoalFunctor == (:),
SubGoals = [M, SubGoal] -> SubGoals = [M, SubGoal] ->
expand_module_names(SubGoal, MetaSpecs, M, ExpandedSubGoal, HeadVars), expand_module_names(SubGoal, MetaSpecs, M, ExpandedSubGoal, HeadVars),
expand_module_name(ExpandedSubGoal, M, ExpandedGoals) expand_module_name(ExpandedSubGoal, 0, M, ExpandedGoals)
% ExpandedGoals = M:ExpandedSubGoal
; expand_meta_predicate_subgoals(SubGoals, MetaSpecs, Module, ExpandedGoalList, HeadVars), ; expand_meta_predicate_subgoals(SubGoals, MetaSpecs, Module, ExpandedGoalList, HeadVars),
ExpandedGoals =.. [GoalFunctor | ExpandedGoalList] ExpandedGoals =.. [GoalFunctor | ExpandedGoalList]
). ).