]> Repositorios git - scryer-prolog.git/commitdiff
wrap variable goals in module-expanded call/1
authorMark Thom <[email protected]>
Mon, 1 Mar 2021 01:15:33 +0000 (18:15 -0700)
committerMark Thom <[email protected]>
Mon, 1 Mar 2021 01:15:33 +0000 (18:15 -0700)
src/loader.pl

index d1db274b55429e2a81f6358cf06bddb88ba3e68f..e5304812e9bededba9b71a3ff4ad6046a8169013 100644 (file)
@@ -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)