]> Repositorios git - scryer-prolog.git/commitdiff
collaps els-if / if-if
authorBennet Bleßmann <[email protected]>
Thu, 31 Jul 2025 19:41:23 +0000 (21:41 +0200)
committerBennet Bleßmann <[email protected]>
Thu, 31 Jul 2025 19:47:08 +0000 (21:47 +0200)
src/machine/heap.rs
src/machine/machine_state_impl.rs

index 66e511f5adb42b156c3bb3dc33e9c112d1a5b1d1..0aad650af8324592b20c3b53255cc4b14bee2a6f 100644 (file)
@@ -745,10 +745,8 @@ impl Heap {
     // the heap to a pre-allocated resource error
     pub(crate) fn push_cell(&mut self, cell: HeapCellValue) -> Result<(), usize> {
         unsafe {
-            if self.inner.byte_len == self.inner.byte_cap {
-                if !self.grow() {
-                    return Err(self.resource_error_offset());
-                }
+            if self.inner.byte_len == self.inner.byte_cap && !self.grow() {
+                return Err(self.resource_error_offset());
             }
 
             // SAFETY:
index f663656cefca31980b4f16a909f300d7af2c2a84..3f14253d03e2dde95b548b76da162885df5037fc 100644 (file)
@@ -847,13 +847,11 @@ impl MachineState {
                             if let Some(c) = char_iter.next() {
                                 if n == 1 {
                                     self.unify_char(c, a3);
+                                } else if char_iter.next().is_some() {
+                                    unify_fn!(*self, pstr_loc_as_cell!(pstr_loc + c.len_utf8()), a3);
                                 } else {
-                                    if char_iter.next().is_some() {
-                                        unify_fn!(*self, pstr_loc_as_cell!(pstr_loc + c.len_utf8()), a3);
-                                    } else {
-                                        let tail_idx = Heap::pstr_tail_idx(pstr_loc + c.len_utf8());
-                                        unify_fn!(*self, self.heap[tail_idx], a3);
-                                    }
+                                    let tail_idx = Heap::pstr_tail_idx(pstr_loc + c.len_utf8());
+                                    unify_fn!(*self, self.heap[tail_idx], a3);
                                 }
                             } else {
                                 unreachable!()