From: Mark Thom Date: Mon, 7 Mar 2022 02:17:52 +0000 (-0700) Subject: fix number/1 (#1329) X-Git-Tag: v0.9.1~125 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=bd594e0c058ecd3983972839227c7ed57be3b1ef;p=scryer-prolog.git fix number/1 (#1329) --- diff --git a/src/machine/dispatch.rs b/src/machine/dispatch.rs index f8ee8c6b..53c5d943 100644 --- a/src/machine/dispatch.rs +++ b/src/machine/dispatch.rs @@ -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(); + } ); } _ => {