fix dif:vars_remove_goal/2 (#2175), untabify forms.rs to appease format check

This commit is contained in:
Mark
2023-11-20 13:40:58 -07:00
parent 8d9a759a7d
commit 1e5bb2d3da
3 changed files with 19 additions and 10 deletions

View File

@@ -33,11 +33,13 @@ remove_goal([G0|G0s], Goal0, Goals) :-
vars_remove_goal([], _). vars_remove_goal([], _).
vars_remove_goal([Var|Vars], Goal0) :- vars_remove_goal([Var|Vars], Goal0) :-
get_atts(Var, +dif(Goals0)), ( get_atts(Var, +dif(Goals0)) ->
remove_goal(Goals0, Goal0, Goals), remove_goal(Goals0, Goal0, Goals),
( Goals = [] -> ( Goals = [] ->
put_atts(Var, -dif(_)) put_atts(Var, -dif(_))
; put_atts(Var, +dif(Goals)) ; put_atts(Var, +dif(Goals))
)
; true
), ),
vars_remove_goal(Vars, Goal0). vars_remove_goal(Vars, Goal0).

View File

@@ -207,6 +207,13 @@ test("scryer-prolog#2056",(
\+ E=[] \+ E=[]
)). )).
% https://github.com/mthom/scryer-prolog/issues/2175
test("scryer-prolog#2175",(
dif(A,B),
A=_C*[],
A=[]*D*B,D=[]
)).
main :- main :-
findall(test(Name, Goal), test(Name, Goal), Tests), findall(test(Name, Goal), test(Name, Goal), Tests),
run_tests(Tests, Failed), run_tests(Tests, Failed),