From bd594e0c058ecd3983972839227c7ed57be3b1ef Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Sun, 6 Mar 2022 19:17:52 -0700 Subject: [PATCH] fix number/1 (#1329) --- src/machine/dispatch.rs | 30 ++++++++---------------------- 1 file changed, 8 insertions(+), 22 deletions(-) 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(); + } ); } _ => { -- 2.54.0