From eace0d9b3797433b29a21dfea3a409dd096382bf Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Wed, 9 Mar 2022 21:24:16 -0700 Subject: [PATCH] print rationals that are integers as integers (#663) --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- src/heap_print.rs | 15 ++++++++++----- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4d699f11..dad5a5b4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1348,9 +1348,9 @@ dependencies = [ [[package]] name = "rug" -version = "1.13.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee0c6e98de59509e62e09f3456b23cebb75dad21928882016f169bb628843459" +checksum = "6ac804305677221f4c82469fd7eb8bfe00dd01420aa191197cb87d738520feef" dependencies = [ "az", "gmp-mpfr-sys", diff --git a/Cargo.toml b/Cargo.toml index 8e81a947..193d6ce6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,7 +49,7 @@ num-rug-adapter = { optional = true, path = "./crates/num-rug-adapter" } ordered-float = "2.1.1" phf = { version = "0.9", features = ["macros"] } ref_thread_local = "0.0.0" -rug = { version = "1.12.0", optional = true } +rug = { version = "1.15.0", optional = true } rustyline = "9.0.0" ring = "0.16.13" ripemd160 = "0.8.0" diff --git a/src/heap_print.rs b/src/heap_print.rs index b7ee8552..18d2d427 100644 --- a/src/heap_print.rs +++ b/src/heap_print.rs @@ -961,8 +961,7 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter> { }); } Number::Rational(r) => { - self.print_rational(r, add_brackets); - return; + self.print_rational(r); } n => { let output_str = format!("{}", n); @@ -993,11 +992,17 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter> { } } - fn print_rational(&mut self, r: TypedArenaPtr, add_brackets: bool) { + fn print_rational(&mut self, r: TypedArenaPtr) { match self.op_dir.get(&(atom!("rdiv"), Fixity::In)) { Some(op_desc) => { - if add_brackets { - self.state_stack.push(TokenOrRedirect::Close); + if r.is_integer() { + let output_str = format!("{}", r); + + push_space_if_amb!(self, &output_str, { + append_str!(self, &output_str); + }); + + return; } let rdiv_ct = atom!("rdiv"); -- 2.54.0