]> 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]>
Wed, 24 May 2023 19:58:43 +0000 (13:58 -0600)
src/machine/dispatch.rs

index 3067ecb9e3e2fc0f7200155cc5d58409d3087e0b..9599766d320bff061cf12c53e2c3cbfceac44436 100644 (file)
@@ -2601,7 +2601,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;
                                  }
                                  _ => {
@@ -2609,6 +2609,9 @@ impl Machine {
                                  }
                             );
                         }
+                        (HeapCellValueTag::Fixnum) => {
+                            self.machine_st.p += 1;
+                        }
                         _ => {
                             self.machine_st.backtrack();
                         }
@@ -2620,7 +2623,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;
                                  }
                                  _ => {
@@ -2628,6 +2631,9 @@ impl Machine {
                                  }
                             );
                         }
+                        (HeapCellValueTag::Fixnum) => {
+                            self.machine_st.p = self.machine_st.cp;
+                        }
                         _ => {
                             self.machine_st.backtrack();
                         }