From: Paulo Moura Date: Wed, 12 May 2021 22:48:12 +0000 (+0100) Subject: Fix retract_clause/2 internal predicate to correctly handle module qualification... X-Git-Tag: v0.9.0~66^2 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=88a2cfc5e1e92601d37f93343c79de519f3013d3;p=scryer-prolog.git Fix retract_clause/2 internal predicate to correctly handle module qualification and no lose body bindings --- diff --git a/src/lib/builtins.pl b/src/lib/builtins.pl index 89a50e7d..a8703dcd 100644 --- a/src/lib/builtins.pl +++ b/src/lib/builtins.pl @@ -985,13 +985,8 @@ retract_clause(Head, Body) :- ( Name == (:), Arity =:= 2 -> arg(1, Head, Module), - arg(2, Head, HeadAndBody), - ( HeadAndBody = (F :- Body1) -> - true - ; F = HeadAndBody, - Body1 = true - ), - retract_module_clause(F, Body1, Module) + arg(2, Head, Head1), + retract_module_clause(Head1, Body, Module) ; '$no_such_predicate'(user, Head) -> '$fail' ; '$head_is_dynamic'(user, Head) ->