[INFO] cloning repository https://github.com/vnnamng/rust-calculator
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/vnnamng/rust-calculator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvnnamng%2Frust-calculator", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvnnamng%2Frust-calculator'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6d86f4c839f19242fda5c33065cab09a0e534b93
[INFO] testing vnnamng/rust-calculator against master#2fd6efc32704647e64d3d646d21c4c68eae100e4 for pr-149852-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvnnamng%2Frust-calculator" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/vnnamng/rust-calculator
[INFO] finished tweaking git repo https://github.com/vnnamng/rust-calculator
[INFO] tweaked toml for git repo https://github.com/vnnamng/rust-calculator written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/vnnamng/rust-calculator on toolchain 2fd6efc32704647e64d3d646d21c4c68eae100e4
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/vnnamng/rust-calculator already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b321931312adb210a3781d1e2e74c33c86fac6476f581ed946f84182cc6b10fa
[INFO] running `Command { std: "docker" "start" "-a" "b321931312adb210a3781d1e2e74c33c86fac6476f581ed946f84182cc6b10fa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b321931312adb210a3781d1e2e74c33c86fac6476f581ed946f84182cc6b10fa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b321931312adb210a3781d1e2e74c33c86fac6476f581ed946f84182cc6b10fa", kill_on_drop: false }`
[INFO] [stdout] b321931312adb210a3781d1e2e74c33c86fac6476f581ed946f84182cc6b10fa
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] da63e854a7ff8e5b9dead2f861dfca9a72997e389aeba37411dff013b30ad8df
[INFO] running `Command { std: "docker" "start" "-a" "da63e854a7ff8e5b9dead2f861dfca9a72997e389aeba37411dff013b30ad8df", kill_on_drop: false }`
[INFO] [stderr]    Compiling rust-calculator v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `IntoFrac`
[INFO] [stdout]  --> src/common.rs:2:25
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::frac::{Frac, IntoFrac};
[INFO] [stdout]   |                         ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/parser.rs:304:5
[INFO] [stdout]     |
[INFO] [stdout] 295 | /     loop {
[INFO] [stdout] 296 | |         let line = get_line();
[INFO] [stdout] 297 | |         if line == "quit" {
[INFO] [stdout] 298 | |             return Ok(());
[INFO] [stdout] ...   |
[INFO] [stdout] 303 | |     }
[INFO] [stdout]     | |_____- any code following this expression is unreachable
[INFO] [stdout] 304 |       Ok(())
[INFO] [stdout]     |       ^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Operator` is more private than the item `Expr::BinExpr::0`
[INFO] [stdout]   --> src/parser.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |     BinExpr(Operator, Box<Expr>, Box<Expr>),
[INFO] [stdout]    |             ^^^^^^^^ field `Expr::BinExpr::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Operator` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/parser.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | enum Operator {
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Operator` is more private than the item `Expr::UnaryExpr::0`
[INFO] [stdout]    --> src/parser.rs:100:15
[INFO] [stdout]     |
[INFO] [stdout] 100 |     UnaryExpr(Operator, Box<Expr>),
[INFO] [stdout]     |               ^^^^^^^^ field `Expr::UnaryExpr::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Operator` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/parser.rs:25:1
[INFO] [stdout]     |
[INFO] [stdout]  25 | enum Operator {
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SyntaxError` is more private than the item `Expr::eval`
[INFO] [stdout]    --> src/parser.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |     pub fn eval(&mut self) -> Result<Value, SyntaxError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Expr::eval` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `SyntaxError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/parser.rs:129:1
[INFO] [stdout]     |
[INFO] [stdout] 129 | struct SyntaxError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SyntaxError` is more private than the item `Parser::<'a>::parse`
[INFO] [stdout]    --> src/parser.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 186 |     pub fn parse(&mut self) -> Result<Expr, SyntaxError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Parser::<'a>::parse` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `SyntaxError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/parser.rs:129:1
[INFO] [stdout]     |
[INFO] [stdout] 129 | struct SyntaxError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_bignum` is never used
[INFO] [stdout]   --> src/frac.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Frac {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn from_bignum(num: BigNum) -> Frac {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `eval` is never used
[INFO] [stdout]    --> src/parser.rs:262:8
[INFO] [stdout]     |
[INFO] [stdout] 262 | pub fn eval(line: String) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_line` is never used
[INFO] [stdout]    --> src/parser.rs:283:4
[INFO] [stdout]     |
[INFO] [stdout] 283 | fn get_line() -> String {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_repl` is never used
[INFO] [stdout]    --> src/parser.rs:294:4
[INFO] [stdout]     |
[INFO] [stdout] 294 | fn run_repl() -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]    --> src/parser.rs:307:8
[INFO] [stdout]     |
[INFO] [stdout] 307 | pub fn run() -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IntoFrac`
[INFO] [stdout]  --> src/common.rs:2:25
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::frac::{Frac, IntoFrac};
[INFO] [stdout]   |                         ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parser::*`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use parser::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/parser.rs:304:5
[INFO] [stdout]     |
[INFO] [stdout] 295 | /     loop {
[INFO] [stdout] 296 | |         let line = get_line();
[INFO] [stdout] 297 | |         if line == "quit" {
[INFO] [stdout] 298 | |             return Ok(());
[INFO] [stdout] ...   |
[INFO] [stdout] 303 | |     }
[INFO] [stdout]     | |_____- any code following this expression is unreachable
[INFO] [stdout] 304 |       Ok(())
[INFO] [stdout]     |       ^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Operator` is more private than the item `Expr::BinExpr::0`
[INFO] [stdout]   --> src/parser.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |     BinExpr(Operator, Box<Expr>, Box<Expr>),
[INFO] [stdout]    |             ^^^^^^^^ field `Expr::BinExpr::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Operator` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/parser.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | enum Operator {
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Operator` is more private than the item `Expr::UnaryExpr::0`
[INFO] [stdout]    --> src/parser.rs:100:15
[INFO] [stdout]     |
[INFO] [stdout] 100 |     UnaryExpr(Operator, Box<Expr>),
[INFO] [stdout]     |               ^^^^^^^^ field `Expr::UnaryExpr::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Operator` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/parser.rs:25:1
[INFO] [stdout]     |
[INFO] [stdout]  25 | enum Operator {
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SyntaxError` is more private than the item `Expr::eval`
[INFO] [stdout]    --> src/parser.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |     pub fn eval(&mut self) -> Result<Value, SyntaxError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Expr::eval` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `SyntaxError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/parser.rs:129:1
[INFO] [stdout]     |
[INFO] [stdout] 129 | struct SyntaxError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SyntaxError` is more private than the item `Parser::<'a>::parse`
[INFO] [stdout]    --> src/parser.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 186 |     pub fn parse(&mut self) -> Result<Expr, SyntaxError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Parser::<'a>::parse` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `SyntaxError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/parser.rs:129:1
[INFO] [stdout]     |
[INFO] [stdout] 129 | struct SyntaxError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_bignum` is never used
[INFO] [stdout]   --> src/frac.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Frac {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn from_bignum(num: BigNum) -> Frac {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `eval_to_string` is never used
[INFO] [stdout]    --> src/parser.rs:275:8
[INFO] [stdout]     |
[INFO] [stdout] 275 | pub fn eval_to_string(input: String) -> Result<String, Box<dyn Error>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     parser::run();
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]   = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let _ = parser::run();
[INFO] [stdout]   |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.17s
[INFO] running `Command { std: "docker" "inspect" "da63e854a7ff8e5b9dead2f861dfca9a72997e389aeba37411dff013b30ad8df", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "da63e854a7ff8e5b9dead2f861dfca9a72997e389aeba37411dff013b30ad8df", kill_on_drop: false }`
[INFO] [stdout] da63e854a7ff8e5b9dead2f861dfca9a72997e389aeba37411dff013b30ad8df
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] bf0ead4b7a45abb00f28aa36137d60ca7dae8e938643c4de204f29acf35db9e9
[INFO] running `Command { std: "docker" "start" "-a" "bf0ead4b7a45abb00f28aa36137d60ca7dae8e938643c4de204f29acf35db9e9", kill_on_drop: false }`
[INFO] [stderr]    Compiling rust-calculator v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `IntoFrac`
[INFO] [stdout]  --> src/common.rs:2:25
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::frac::{Frac, IntoFrac};
[INFO] [stdout]   |                         ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/parser.rs:304:5
[INFO] [stdout]     |
[INFO] [stdout] 295 | /     loop {
[INFO] [stdout] 296 | |         let line = get_line();
[INFO] [stdout] 297 | |         if line == "quit" {
[INFO] [stdout] 298 | |             return Ok(());
[INFO] [stdout] ...   |
[INFO] [stdout] 303 | |     }
[INFO] [stdout]     | |_____- any code following this expression is unreachable
[INFO] [stdout] 304 |       Ok(())
[INFO] [stdout]     |       ^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Operator` is more private than the item `Expr::BinExpr::0`
[INFO] [stdout]   --> src/parser.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |     BinExpr(Operator, Box<Expr>, Box<Expr>),
[INFO] [stdout]    |             ^^^^^^^^ field `Expr::BinExpr::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Operator` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/parser.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | enum Operator {
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Operator` is more private than the item `Expr::UnaryExpr::0`
[INFO] [stdout]    --> src/parser.rs:100:15
[INFO] [stdout]     |
[INFO] [stdout] 100 |     UnaryExpr(Operator, Box<Expr>),
[INFO] [stdout]     |               ^^^^^^^^ field `Expr::UnaryExpr::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Operator` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/parser.rs:25:1
[INFO] [stdout]     |
[INFO] [stdout]  25 | enum Operator {
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SyntaxError` is more private than the item `Expr::eval`
[INFO] [stdout]    --> src/parser.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |     pub fn eval(&mut self) -> Result<Value, SyntaxError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Expr::eval` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `SyntaxError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/parser.rs:129:1
[INFO] [stdout]     |
[INFO] [stdout] 129 | struct SyntaxError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SyntaxError` is more private than the item `Parser::<'a>::parse`
[INFO] [stdout]    --> src/parser.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 186 |     pub fn parse(&mut self) -> Result<Expr, SyntaxError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Parser::<'a>::parse` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `SyntaxError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/parser.rs:129:1
[INFO] [stdout]     |
[INFO] [stdout] 129 | struct SyntaxError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_bignum` is never used
[INFO] [stdout]   --> src/frac.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Frac {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn from_bignum(num: BigNum) -> Frac {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `eval` is never used
[INFO] [stdout]    --> src/parser.rs:262:8
[INFO] [stdout]     |
[INFO] [stdout] 262 | pub fn eval(line: String) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_line` is never used
[INFO] [stdout]    --> src/parser.rs:283:4
[INFO] [stdout]     |
[INFO] [stdout] 283 | fn get_line() -> String {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_repl` is never used
[INFO] [stdout]    --> src/parser.rs:294:4
[INFO] [stdout]     |
[INFO] [stdout] 294 | fn run_repl() -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]    --> src/parser.rs:307:8
[INFO] [stdout]     |
[INFO] [stdout] 307 | pub fn run() -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IntoFrac`
[INFO] [stdout]  --> src/common.rs:2:25
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::frac::{Frac, IntoFrac};
[INFO] [stdout]   |                         ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parser::*`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use parser::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IntoFrac`
[INFO] [stdout]  --> src/common.rs:2:25
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::frac::{Frac, IntoFrac};
[INFO] [stdout]   |                         ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/parser.rs:304:5
[INFO] [stdout]     |
[INFO] [stdout] 295 | /     loop {
[INFO] [stdout] 296 | |         let line = get_line();
[INFO] [stdout] 297 | |         if line == "quit" {
[INFO] [stdout] 298 | |             return Ok(());
[INFO] [stdout] ...   |
[INFO] [stdout] 303 | |     }
[INFO] [stdout]     | |_____- any code following this expression is unreachable
[INFO] [stdout] 304 |       Ok(())
[INFO] [stdout]     |       ^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/parser.rs:304:5
[INFO] [stdout]     |
[INFO] [stdout] 295 | /     loop {
[INFO] [stdout] 296 | |         let line = get_line();
[INFO] [stdout] 297 | |         if line == "quit" {
[INFO] [stdout] 298 | |             return Ok(());
[INFO] [stdout] ...   |
[INFO] [stdout] 303 | |     }
[INFO] [stdout]     | |_____- any code following this expression is unreachable
[INFO] [stdout] 304 |       Ok(())
[INFO] [stdout]     |       ^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Operator` is more private than the item `Expr::BinExpr::0`
[INFO] [stdout]   --> src/parser.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |     BinExpr(Operator, Box<Expr>, Box<Expr>),
[INFO] [stdout]    |             ^^^^^^^^ field `Expr::BinExpr::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Operator` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/parser.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | enum Operator {
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Operator` is more private than the item `Expr::UnaryExpr::0`
[INFO] [stdout]    --> src/parser.rs:100:15
[INFO] [stdout]     |
[INFO] [stdout] 100 |     UnaryExpr(Operator, Box<Expr>),
[INFO] [stdout]     |               ^^^^^^^^ field `Expr::UnaryExpr::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Operator` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/parser.rs:25:1
[INFO] [stdout]     |
[INFO] [stdout]  25 | enum Operator {
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SyntaxError` is more private than the item `Expr::eval`
[INFO] [stdout]    --> src/parser.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |     pub fn eval(&mut self) -> Result<Value, SyntaxError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Expr::eval` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `SyntaxError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/parser.rs:129:1
[INFO] [stdout]     |
[INFO] [stdout] 129 | struct SyntaxError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SyntaxError` is more private than the item `Parser::<'a>::parse`
[INFO] [stdout]    --> src/parser.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 186 |     pub fn parse(&mut self) -> Result<Expr, SyntaxError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Parser::<'a>::parse` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `SyntaxError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/parser.rs:129:1
[INFO] [stdout]     |
[INFO] [stdout] 129 | struct SyntaxError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_bignum` is never used
[INFO] [stdout]   --> src/frac.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Frac {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn from_bignum(num: BigNum) -> Frac {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `eval` is never used
[INFO] [stdout]    --> src/parser.rs:262:8
[INFO] [stdout]     |
[INFO] [stdout] 262 | pub fn eval(line: String) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_line` is never used
[INFO] [stdout]    --> src/parser.rs:283:4
[INFO] [stdout]     |
[INFO] [stdout] 283 | fn get_line() -> String {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_repl` is never used
[INFO] [stdout]    --> src/parser.rs:294:4
[INFO] [stdout]     |
[INFO] [stdout] 294 | fn run_repl() -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]    --> src/parser.rs:307:8
[INFO] [stdout]     |
[INFO] [stdout] 307 | pub fn run() -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Operator` is more private than the item `Expr::BinExpr::0`
[INFO] [stdout]   --> src/parser.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |     BinExpr(Operator, Box<Expr>, Box<Expr>),
[INFO] [stdout]    |             ^^^^^^^^ field `Expr::BinExpr::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Operator` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/parser.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | enum Operator {
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Operator` is more private than the item `Expr::UnaryExpr::0`
[INFO] [stdout]    --> src/parser.rs:100:15
[INFO] [stdout]     |
[INFO] [stdout] 100 |     UnaryExpr(Operator, Box<Expr>),
[INFO] [stdout]     |               ^^^^^^^^ field `Expr::UnaryExpr::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Operator` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/parser.rs:25:1
[INFO] [stdout]     |
[INFO] [stdout]  25 | enum Operator {
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SyntaxError` is more private than the item `Expr::eval`
[INFO] [stdout]    --> src/parser.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |     pub fn eval(&mut self) -> Result<Value, SyntaxError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Expr::eval` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `SyntaxError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/parser.rs:129:1
[INFO] [stdout]     |
[INFO] [stdout] 129 | struct SyntaxError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SyntaxError` is more private than the item `Parser::<'a>::parse`
[INFO] [stdout]    --> src/parser.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 186 |     pub fn parse(&mut self) -> Result<Expr, SyntaxError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Parser::<'a>::parse` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `SyntaxError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/parser.rs:129:1
[INFO] [stdout]     |
[INFO] [stdout] 129 | struct SyntaxError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_bignum` is never used
[INFO] [stdout]   --> src/frac.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Frac {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn from_bignum(num: BigNum) -> Frac {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `eval_to_string` is never used
[INFO] [stdout]    --> src/parser.rs:275:8
[INFO] [stdout]     |
[INFO] [stdout] 275 | pub fn eval_to_string(input: String) -> Result<String, Box<dyn Error>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     parser::run();
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]   = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let _ = parser::run();
[INFO] [stdout]   |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.13s
[INFO] running `Command { std: "docker" "inspect" "bf0ead4b7a45abb00f28aa36137d60ca7dae8e938643c4de204f29acf35db9e9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bf0ead4b7a45abb00f28aa36137d60ca7dae8e938643c4de204f29acf35db9e9", kill_on_drop: false }`
[INFO] [stdout] bf0ead4b7a45abb00f28aa36137d60ca7dae8e938643c4de204f29acf35db9e9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 527b96fd2fdb5e071ec1f6caadf1b73062246ba14da009c7074802189dd1747f
[INFO] running `Command { std: "docker" "start" "-a" "527b96fd2fdb5e071ec1f6caadf1b73062246ba14da009c7074802189dd1747f", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `IntoFrac`
[INFO] [stderr]  --> src/common.rs:2:25
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::frac::{Frac, IntoFrac};
[INFO] [stderr]   |                         ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable expression
[INFO] [stderr]    --> src/parser.rs:304:5
[INFO] [stderr]     |
[INFO] [stderr] 295 | /     loop {
[INFO] [stderr] 296 | |         let line = get_line();
[INFO] [stderr] 297 | |         if line == "quit" {
[INFO] [stderr] 298 | |             return Ok(());
[INFO] [stderr] ...   |
[INFO] [stderr] 303 | |     }
[INFO] [stderr]     | |_____- any code following this expression is unreachable
[INFO] [stderr] 304 |       Ok(())
[INFO] [stderr]     |       ^^^^^^ unreachable expression
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: type `Operator` is more private than the item `Expr::BinExpr::0`
[INFO] [stderr]   --> src/parser.rs:99:13
[INFO] [stderr]    |
[INFO] [stderr] 99 |     BinExpr(Operator, Box<Expr>, Box<Expr>),
[INFO] [stderr]    |             ^^^^^^^^ field `Expr::BinExpr::0` is reachable at visibility `pub(crate)`
[INFO] [stderr]    |
[INFO] [stderr] note: but type `Operator` is only usable at visibility `pub(self)`
[INFO] [stderr]   --> src/parser.rs:25:1
[INFO] [stderr]    |
[INFO] [stderr] 25 | enum Operator {
[INFO] [stderr]    | ^^^^^^^^^^^^^
[INFO] [stderr]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: type `Operator` is more private than the item `Expr::UnaryExpr::0`
[INFO] [stderr]    --> src/parser.rs:100:15
[INFO] [stderr]     |
[INFO] [stderr] 100 |     UnaryExpr(Operator, Box<Expr>),
[INFO] [stderr]     |               ^^^^^^^^ field `Expr::UnaryExpr::0` is reachable at visibility `pub(crate)`
[INFO] [stderr]     |
[INFO] [stderr] note: but type `Operator` is only usable at visibility `pub(self)`
[INFO] [stderr]    --> src/parser.rs:25:1
[INFO] [stderr]     |
[INFO] [stderr]  25 | enum Operator {
[INFO] [stderr]     | ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type `SyntaxError` is more private than the item `Expr::eval`
[INFO] [stderr]    --> src/parser.rs:105:5
[INFO] [stderr]     |
[INFO] [stderr] 105 |     pub fn eval(&mut self) -> Result<Value, SyntaxError> {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Expr::eval` is reachable at visibility `pub(crate)`
[INFO] [stderr]     |
[INFO] [stderr] note: but type `SyntaxError` is only usable at visibility `pub(self)`
[INFO] [stderr]    --> src/parser.rs:129:1
[INFO] [stderr]     |
[INFO] [stderr] 129 | struct SyntaxError {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type `SyntaxError` is more private than the item `Parser::<'a>::parse`
[INFO] [stderr]    --> src/parser.rs:186:5
[INFO] [stderr]     |
[INFO] [stderr] 186 |     pub fn parse(&mut self) -> Result<Expr, SyntaxError> {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Parser::<'a>::parse` is reachable at visibility `pub(crate)`
[INFO] [stderr]     |
[INFO] [stderr] note: but type `SyntaxError` is only usable at visibility `pub(self)`
[INFO] [stderr]    --> src/parser.rs:129:1
[INFO] [stderr]     |
[INFO] [stderr] 129 | struct SyntaxError {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `from_bignum` is never used
[INFO] [stderr]   --> src/frac.rs:55:12
[INFO] [stderr]    |
[INFO] [stderr] 13 | impl Frac {
[INFO] [stderr]    | --------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 55 |     pub fn from_bignum(num: BigNum) -> Frac {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `eval` is never used
[INFO] [stderr]    --> src/parser.rs:262:8
[INFO] [stderr]     |
[INFO] [stderr] 262 | pub fn eval(line: String) -> Result<(), Box<dyn Error>> {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_line` is never used
[INFO] [stderr]    --> src/parser.rs:283:4
[INFO] [stderr]     |
[INFO] [stderr] 283 | fn get_line() -> String {
[INFO] [stderr]     |    ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `run_repl` is never used
[INFO] [stderr]    --> src/parser.rs:294:4
[INFO] [stderr]     |
[INFO] [stderr] 294 | fn run_repl() -> Result<(), Box<dyn Error>> {
[INFO] [stderr]     |    ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `run` is never used
[INFO] [stderr]    --> src/parser.rs:307:8
[INFO] [stderr]     |
[INFO] [stderr] 307 | pub fn run() -> Result<(), Box<dyn Error>> {
[INFO] [stderr]     |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `rust-calculator` (lib) generated 11 warnings (run `cargo fix --lib -p rust-calculator` to apply 1 suggestion)
[INFO] [stderr] warning: unused import: `parser::*`
[INFO] [stderr]  --> src/main.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use parser::*;
[INFO] [stderr]   |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `eval_to_string` is never used
[INFO] [stderr]    --> src/parser.rs:275:8
[INFO] [stderr]     |
[INFO] [stderr] 275 | pub fn eval_to_string(input: String) -> Result<String, Box<dyn Error>> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]  --> src/main.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 |     parser::run();
[INFO] [stderr]   |     ^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]   = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]   |
[INFO] [stderr] 8 |     let _ = parser::run();
[INFO] [stderr]   |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `rust-calculator` (bin "rust-calculator" test) generated 10 warnings (7 duplicates) (run `cargo fix --bin "rust-calculator" -p rust-calculator --tests` to apply 1 suggestion)
[INFO] [stderr] warning: `rust-calculator` (lib test) generated 11 warnings (11 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.03s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rust_calculator-fdf54ef6a28ca00b)
[INFO] [stdout] 
[INFO] [stdout] running 53 tests
[INFO] [stdout] test big_num::tests::test_add::test_add_negative_positive ... ok
[INFO] [stdout] test big_num::tests::test_add::test_add_positive_negative ... ok
[INFO] [stdout] test big_num::tests::test_add::test_add_positive_positive ... ok
[INFO] [stdout] test big_num::tests::test_add_assign::test_add_assign_negative_positive ... ok
[INFO] [stdout] test big_num::tests::test_add_assign::test_add_assign_positive_positive ... ok
[INFO] [stdout] test big_num::tests::test_add::test_add_negative_negative ... ok
[INFO] [stdout] test big_num::tests::test_div::test_div_negative_negative ... ok
[INFO] [stdout] test big_num::tests::test_div::test_div_positive_positive ... ok
[INFO] [stdout] test big_num::tests::test_eq_ord::test_eq ... ok
[INFO] [stdout] test big_num::tests::test_eq_ord::test_gt ... ok
[INFO] [stdout] test big_num::tests::test_eq_ord::test_ge ... ok
[INFO] [stdout] test big_num::tests::test_eq_ord::test_le ... ok
[INFO] [stdout] test big_num::tests::test_eq_ord::test_lt ... ok
[INFO] [stdout] test big_num::tests::test_gcd::test_gcd_normal ... ok
[INFO] [stdout] test big_num::tests::test_gcd::test_gcd_coprime ... ok
[INFO] [stdout] test big_num::tests::test_mul::test_mul_negative_positive ... ok
[INFO] [stdout] test big_num::tests::test_add_assign::test_add_assign_positive_negative ... ok
[INFO] [stdout] test big_num::tests::test_eq_ord::test_ne ... ok
[INFO] [stdout] test big_num::tests::test_mul::test_mul_zero ... ok
[INFO] [stdout] test big_num::tests::test_neg::test_negate_positive ... ok
[INFO] [stdout] test big_num::tests::test_div::test_div_positive_negative ... ok
[INFO] [stdout] test big_num::tests::test_mul::test_mul_negative_negative ... ok
[INFO] [stdout] test big_num::tests::test_gcd::test_gcd_negative ... ok
[INFO] [stdout] test big_num::tests::test_gcd::test_gcd_zero - should panic ... FAILED
[INFO] [stdout] test big_num::tests::test_add_assign::test_add_assign_negative_negative ... ok
[INFO] [stdout] test big_num::tests::test_div::test_div_negative_positive ... ok
[INFO] [stdout] test big_num::tests::test_neg::test_negate_negative ... ok
[INFO] [stdout] test big_num::tests::test_mul::test_mul_positive_positive ... ok
[INFO] [stdout] test big_num::tests::test_rem::test_rem_negative_negative ... ok
[INFO] [stdout] test big_num::tests::test_rem::test_rem_positive_negative ... ok
[INFO] [stdout] test frac::tests::test_from_str::test_from_str ... ok
[INFO] [stdout] test big_num::tests::test_rem::test_rem_positive_positive ... ok
[INFO] [stdout] test frac::tests::test_add_assign::test_add_assign ... ok
[INFO] [stdout] test frac::tests::test_display::test_display ... ok
[INFO] [stdout] test frac::tests::test_add::test_add ... ok
[INFO] [stdout] test frac::tests::test_div::test_div ... ok
[INFO] [stdout] test frac::tests::test_div_assign::test_div_assign ... ok
[INFO] [stdout] test frac::tests::test_from_str::test_from_str_invalid_denominator ... ok
[INFO] [stdout] test frac::tests::test_eq::test_eq ... ok
[INFO] [stdout] test frac::tests::test_from_str::test_from_str_invalid_format ... ok
[INFO] [stdout] test big_num::tests::test_rem::test_rem_negative_positive ... ok
[INFO] [stdout] test frac::tests::test_simplify::test_simplify ... ok
[INFO] [stdout] test frac::tests::test_neg::test_neg ... ok
[INFO] [stdout] test frac::tests::test_simplify::test_simplify_negative_numerator ... ok
[INFO] [stdout] test frac::tests::test_simplify::test_simplify_negative_denominator ... ok
[INFO] [stdout] test big_num::tests::test_mul::test_mul_positive_negative ... ok
[INFO] [stdout] test frac::tests::test_sub::test_sub ... ok
[INFO] [stdout] test frac::tests::test_mul::test_mul ... ok
[INFO] [stdout] test frac::tests::test_mul_assign::test_mul_assign ... ok
[INFO] [stdout] test frac::tests::test_sub_assign::test_sub_assign ... ok
[INFO] [stdout] test frac::tests::test_inverse::test_inverse ... ok
[INFO] [stdout] test big_num::tests::test_div::test_div_by_zero - should panic ... ok
[INFO] [stdout] test big_num::tests::test_rem::test_rem_by_zero - should panic ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- big_num::tests::test_gcd::test_gcd_zero stdout ----
[INFO] [stdout] note: test did not panic as expected at src/big_num.rs:747:12
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     big_num::tests::test_gcd::test_gcd_zero
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 52 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "527b96fd2fdb5e071ec1f6caadf1b73062246ba14da009c7074802189dd1747f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "527b96fd2fdb5e071ec1f6caadf1b73062246ba14da009c7074802189dd1747f", kill_on_drop: false }`
[INFO] [stdout] 527b96fd2fdb5e071ec1f6caadf1b73062246ba14da009c7074802189dd1747f
