From: Mark Thom Date: Mon, 1 Mar 2021 01:15:33 +0000 (-0700) Subject: wrap variable goals in module-expanded call/1 X-Git-Tag: v0.9.0~150^2~1 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=9a225e624458cf6ab5bd31638a800f8ccbad7747;p=scryer-prolog.git wrap variable goals in module-expanded call/1 --- diff --git a/src/loader.pl b/src/loader.pl index d1db274b..e5304812 100644 --- a/src/loader.pl +++ b/src/loader.pl @@ -603,7 +603,7 @@ expand_meta_predicate_subgoals([SG | SGs], [MS | MSs], M, [ESG | ESGs], HeadVars ) -> ( var(SG), pairs:same_key(SG, HeadVars, [_|_], _) -> - expand_subgoal(SG, MS, M, ESG, HeadVars) %%TODO: Shortcut this.. set SG = ESG. Or wrap it in '$call', ie. ESG = '$call'(SG). + expand_subgoal(SG, MS, M, ESG, HeadVars) ; expand_subgoal(SG, MS, M, ESG0, HeadVars), expand_module_name(ESG0, M, ESG) ), @@ -654,7 +654,7 @@ expand_goal_cases((Module:Goals0), _, ExpandedGoals, HeadVars) :- expand_goal(UnexpandedGoals, Module, ExpandedGoals, HeadVars) :- ( var(UnexpandedGoals) -> - UnexpandedGoals = ExpandedGoals + call(Module:UnexpandedGoals) = ExpandedGoals ; goal_expansion(UnexpandedGoals, Module, UnexpandedGoals1), ( Module \== user -> goal_expansion(UnexpandedGoals1, user, Goals)