fix number/1 (#1329)
This commit is contained in:
@@ -2528,16 +2528,9 @@ impl Machine {
|
|||||||
let d = self.machine_st.store(self.machine_st.deref(self.machine_st[r]));
|
let d = self.machine_st.store(self.machine_st.deref(self.machine_st[r]));
|
||||||
|
|
||||||
match Number::try_from(d) {
|
match Number::try_from(d) {
|
||||||
Ok(Number::Fixnum(_) | Number::Integer(_) | Number::Float(_)) => {
|
Ok(_) => {
|
||||||
self.machine_st.p += 1;
|
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();
|
self.machine_st.backtrack();
|
||||||
}
|
}
|
||||||
@@ -2547,16 +2540,9 @@ impl Machine {
|
|||||||
let d = self.machine_st.store(self.machine_st.deref(self.machine_st[r]));
|
let d = self.machine_st.store(self.machine_st.deref(self.machine_st[r]));
|
||||||
|
|
||||||
match Number::try_from(d) {
|
match Number::try_from(d) {
|
||||||
Ok(Number::Fixnum(_) | Number::Integer(_) | Number::Float(_)) => {
|
Ok(_) => {
|
||||||
self.machine_st.p = self.machine_st.cp;
|
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();
|
self.machine_st.backtrack();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user