]> Repositorios git - scryer-prolog.git/commitdiff
fix number/1 (#1329)
authorMark Thom <[email protected]>
Mon, 7 Mar 2022 02:17:52 +0000 (19:17 -0700)
committerMark Thom <[email protected]>
Mon, 7 Mar 2022 02:17:52 +0000 (19:17 -0700)
src/machine/dispatch.rs

index f8ee8c6b3ce268bb835eb2cc2b51f4543eaac594..53c5d9439d81bcba094de1ecde972e6c984e9c52 100644 (file)
@@ -2528,16 +2528,9 @@ impl Machine {
                     let d = self.machine_st.store(self.machine_st.deref(self.machine_st[r]));
 
                     match Number::try_from(d) {
-                        Ok(Number::Fixnum(_) | Number::Integer(_) | Number::Float(_)) => {
+                        Ok(_) => {
                             self.machine_st.p += 1;
                         }
-                        Ok(Number::Rational(n)) => {
-                            if n.denom() == &1 {
-                                self.machine_st.p += 1;
-                            } else {
-                                self.machine_st.backtrack();
-                            }
-                        }
                         _ => {
                             self.machine_st.backtrack();
                         }
@@ -2547,16 +2540,9 @@ impl Machine {
                     let d = self.machine_st.store(self.machine_st.deref(self.machine_st[r]));
 
                     match Number::try_from(d) {
-                        Ok(Number::Fixnum(_) | Number::Integer(_) | Number::Float(_)) => {
+                        Ok(_) => {
                             self.machine_st.p = self.machine_st.cp;
                         }
-                        Ok(Number::Rational(n)) => {
-                            if n.denom() == &1 {
-                                self.machine_st.p = self.machine_st.cp;
-                            } else {
-                                self.machine_st.backtrack();
-                            }
-                        }
                         _ => {
                             self.machine_st.backtrack();
                         }
@@ -2568,12 +2554,12 @@ impl Machine {
                     read_heap_cell!(d,
                         (HeapCellValueTag::Cons, ptr) => {
                             match_untyped_arena_ptr!(ptr,
-                                                     (ArenaHeaderTag::Rational, _r) => {
-                                                         self.machine_st.p += 1;
-                                                     }
-                                                     _ => {
-                                                         self.machine_st.backtrack();
-                                                     }
+                                 (ArenaHeaderTag::Rational, _r) => {
+                                     self.machine_st.p += 1;
+                                 }
+                                 _ => {
+                                     self.machine_st.backtrack();
+                                 }
                             );
                         }
                         _ => {