]> Repositorios git - scryer-prolog.git/commitdiff
allow abolish_clause to abolish empty dynamic clauses (#3010)
authorMark Thom <[email protected]>
Sun, 20 Jul 2025 23:55:07 +0000 (16:55 -0700)
committerMark Thom <[email protected]>
Sun, 20 Jul 2025 23:55:07 +0000 (16:55 -0700)
src/machine/loader.rs

index 02b8a2b073efc20d775787f773c65603d81c9176..685a69a0532574903ed2044693f64b94ed82ef4a 100644 (file)
@@ -2120,14 +2120,16 @@ impl Machine {
                 .indices
                 .remove_predicate_skeleton(&compilation_target, &key)
                 .map(|skeleton| {
-                    let mut clause_clause_skeleton = loader
-                        .wam_prelude
-                        .indices
-                        .remove_predicate_skeleton(
+                    let mut clause_clause_skeleton =
+                        match loader.wam_prelude.indices.remove_predicate_skeleton(
                             &clause_clause_compilation_target,
                             &(atom!("$clause"), 2),
-                        )
-                        .unwrap();
+                        ) {
+                            Some(skeleton) => skeleton,
+                            None => {
+                                return vec![];
+                            }
+                        };
 
                     let result = skeleton
                         .core