From 3b8afce7c72d5b3460eecde56e060b7201fa9c64 Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Wed, 12 Jan 2022 23:55:40 -0700 Subject: [PATCH] fix syntax regressions (#1198, #1164) --- src/forms.rs | 7 +++++-- src/heap_print.rs | 31 ++++++++++++++----------------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/forms.rs b/src/forms.rs index 167b937e..372613b8 100644 --- a/src/forms.rs +++ b/src/forms.rs @@ -384,8 +384,8 @@ pub(crate) fn fetch_atom_op_spec( spec: Option, op_dir: &OpDir, ) -> Option { - fetch_op_spec_from_existing(name, 1, spec, op_dir) - .or_else(|| fetch_op_spec_from_existing(name, 2, spec, op_dir)) + fetch_op_spec_from_existing(name, 2, spec, op_dir) + .or_else(|| fetch_op_spec_from_existing(name, 1, spec, op_dir)) } pub(crate) fn fetch_op_spec_from_existing( @@ -430,6 +430,9 @@ pub(crate) fn fetch_op_spec(name: Atom, arity: usize, op_dir: &OpDir) -> Option< } }) } + 0 => { + fetch_atom_op_spec(name, None, op_dir) + } _ => None, } } diff --git a/src/heap_print.rs b/src/heap_print.rs index f7ba606c..cb8e34e5 100644 --- a/src/heap_print.rs +++ b/src/heap_print.rs @@ -88,7 +88,7 @@ fn needs_bracketing(child_desc: OpDesc, op: &DirectedOp) -> bool { true } else if (is_postfix!(spec) || is_infix!(spec)) && !is_postfix!(child_desc.get_spec()) { - *cell == child_desc && child_desc.get_prec() == priority + *cell != child_desc && child_desc.get_prec() == priority } else { false } @@ -191,10 +191,10 @@ enum NumberFocus { } impl NumberFocus { - fn is_positive(&self) -> bool { + fn is_negative(&self) -> bool { match self { - NumberFocus::Unfocused(n) => n.is_positive(), - NumberFocus::Denominator(r) | NumberFocus::Numerator(r) => **r > 0, + NumberFocus::Unfocused(n) => n.is_negative(), + NumberFocus::Denominator(r) | NumberFocus::Numerator(r) => **r < 0, } } } @@ -922,7 +922,7 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter> { fn print_number(&mut self, n: NumberFocus, op: &Option) { let add_brackets = if let Some(op) = op { - op.is_negative_sign() && n.is_positive() + op.is_negative_sign() && !n.is_negative() } else { false }; @@ -934,23 +934,20 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter> { match n { NumberFocus::Unfocused(n) => match n { Number::Float(fl) => { - if &fl == &OrderedFloat(0f64) { - push_space_if_amb!(self, "0.0", { - append_str!(self, "0.0"); - }); - } else { - let OrderedFloat(fl) = fl; - let output_str = format!("{0:<20?}", fl); + let OrderedFloat(fl) = fl; + let output_str = format!("{0:<20?}", fl); - push_space_if_amb!(self, &output_str, { - append_str!(self, &output_str.trim()); - }); - } + push_space_if_amb!(self, &output_str, { + append_str!(self, &output_str.trim()); + }); } Number::Rational(r) => { self.print_rational(r, add_brackets); return; } + Number::Fixnum(n) => { + append_str!(self, &format!("{}", n.get_num())); + } n => { let output_str = format!("{}", n); @@ -1427,7 +1424,7 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter> { } } (HeapCellValueTag::Fixnum, n) => { - append_str!(self, &format!("{}", n.get_num())); + self.print_number(NumberFocus::Unfocused(Number::Fixnum(n)), &op); } (HeapCellValueTag::F64, f) => { self.print_number(NumberFocus::Unfocused(Number::Float(**f)), &op); -- 2.54.0