]> Repositorios git - scryer-prolog.git/commitdiff
affirm integers as rational/1 (#1810)
authorMark <[email protected]>
Wed, 24 May 2023 19:43:52 +0000 (13:43 -0600)
committerMark <[email protected]>
Fri, 23 Jun 2023 20:11:31 +0000 (14:11 -0600)
src/machine/dispatch.rs

index 1d310bcd7afc75027859f587aff08675fc098053..a6e7963a501e47ac30ab45c14b8df796e84a2243 100644 (file)
@@ -2600,7 +2600,7 @@ impl Machine {
                     read_heap_cell!(d,
                         (HeapCellValueTag::Cons, ptr) => {
                             match_untyped_arena_ptr!(ptr,
-                                 (ArenaHeaderTag::Rational, _r) => {
+                                 (ArenaHeaderTag::Rational | ArenaHeaderTag::Integer, _r) => {
                                      self.machine_st.p += 1;
                                  }
                                  _ => {
@@ -2608,6 +2608,9 @@ impl Machine {
                                  }
                             );
                         }
+                        (HeapCellValueTag::Fixnum) => {
+                            self.machine_st.p += 1;
+                        }
                         _ => {
                             self.machine_st.backtrack();
                         }
@@ -2619,7 +2622,7 @@ impl Machine {
                     read_heap_cell!(d,
                         (HeapCellValueTag::Cons, ptr) => {
                             match_untyped_arena_ptr!(ptr,
-                                 (ArenaHeaderTag::Rational, _r) => {
+                                 (ArenaHeaderTag::Rational | ArenaHeaderTag::Integer, _r) => {
                                      self.machine_st.p = self.machine_st.cp;
                                  }
                                  _ => {
@@ -2627,6 +2630,9 @@ impl Machine {
                                  }
                             );
                         }
+                        (HeapCellValueTag::Fixnum) => {
+                            self.machine_st.p = self.machine_st.cp;
+                        }
                         _ => {
                             self.machine_st.backtrack();
                         }