]> Repositorios git - scryer-prolog.git/commitdiff
use strip module in retract/1, a meta-predicate
authorMark Thom <[email protected]>
Thu, 25 Nov 2021 02:00:52 +0000 (19:00 -0700)
committerMark Thom <[email protected]>
Fri, 7 Jan 2022 04:44:41 +0000 (21:44 -0700)
src/lib/builtins.pl

index d0f7245ed8a3b591542d65ae27137c8ac43925fd..2f3066f353c6472d9bcb66e330a5d9f1645ea511 100644 (file)
@@ -964,13 +964,14 @@ retract_clause(Head, Body) :-
 :- meta_predicate retract(0).
 
 retract(Clause0) :-
-    strip_module(Clause0, Module, Clause),
-    (   Clause = (Head :- Body) ->
-        true
-    ;   Head = Clause,
-        Body = true
-    ),
-    retract_clause(Module:Head, Body).
+    loader:strip_module(Clause0, Module, Clause),
+    (  Clause \= (_ :- _) ->
+       Head = Clause,
+       Body = true,
+       retract_module_clause(Head, Body, Module)
+    ;  Clause = (Head :- Body) ->
+       retract_module_clause(Head, Body, Module)
+    ).
 
 
 :- meta_predicate retractall(0).