[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 try#db823df02fd0c2cf67b43025ac3fef3f2d743245 for pr-150681
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvnnamng%2Frust-calculator" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/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-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/vnnamng/rust-calculator on toolchain db823df02fd0c2cf67b43025ac3fef3f2d743245
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "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" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 08685e932da254ecc62ba7273e779243186fb6398a42e89b6af2a9e8014fadb2
[INFO] running `Command { std: "docker" "start" "-a" "08685e932da254ecc62ba7273e779243186fb6398a42e89b6af2a9e8014fadb2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "08685e932da254ecc62ba7273e779243186fb6398a42e89b6af2a9e8014fadb2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "08685e932da254ecc62ba7273e779243186fb6398a42e89b6af2a9e8014fadb2", kill_on_drop: false }`
[INFO] [stdout] 08685e932da254ecc62ba7273e779243186fb6398a42e89b6af2a9e8014fadb2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b245045772f6d12fd7820f23601ad832758f484df2559142c530dd355f224f75
[INFO] running `Command { std: "docker" "start" "-a" "b245045772f6d12fd7820f23601ad832758f484df2559142c530dd355f224f75", 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.52s
[INFO] running `Command { std: "docker" "inspect" "b245045772f6d12fd7820f23601ad832758f484df2559142c530dd355f224f75", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b245045772f6d12fd7820f23601ad832758f484df2559142c530dd355f224f75", kill_on_drop: false }`
[INFO] [stdout] b245045772f6d12fd7820f23601ad832758f484df2559142c530dd355f224f75
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 94f6f9d1f0f3223e90da5b4fb46d67785343f3b0037baf001d0e41e5434068c3
[INFO] running `Command { std: "docker" "start" "-a" "94f6f9d1f0f3223e90da5b4fb46d67785343f3b0037baf001d0e41e5434068c3", 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_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] [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] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.28s
[INFO] running `Command { std: "docker" "inspect" "94f6f9d1f0f3223e90da5b4fb46d67785343f3b0037baf001d0e41e5434068c3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "94f6f9d1f0f3223e90da5b4fb46d67785343f3b0037baf001d0e41e5434068c3", kill_on_drop: false }`
[INFO] [stdout] 94f6f9d1f0f3223e90da5b4fb46d67785343f3b0037baf001d0e41e5434068c3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] e8904e1faf1404d5f4d23c874c3ca60aef114d8226a79c9c0c207fb975b5a988
[INFO] running `Command { std: "docker" "start" "-a" "e8904e1faf1404d5f4d23c874c3ca60aef114d8226a79c9c0c207fb975b5a988", 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.04s
[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_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_negative ... ok
[INFO] [stdout] test big_num::tests::test_add_assign::test_add_assign_positive_positive ... ok
[INFO] [stdout] test big_num::tests::test_add_assign::test_add_assign_positive_negative ... ok
[INFO] [stdout] test big_num::tests::test_div::test_div_negative_positive ... ok
[INFO] [stdout] test big_num::tests::test_div::test_div_positive_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_le ... ok
[INFO] [stdout] test big_num::tests::test_eq_ord::test_lt ... ok
[INFO] [stdout] test big_num::tests::test_eq_ord::test_ne ... ok
[INFO] [stdout] test big_num::tests::test_gcd::test_gcd_negative ... 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_mul::test_mul_positive_negative ... ok
[INFO] [stdout] test big_num::tests::test_mul::test_mul_positive_positive ... ok
[INFO] [stdout] test big_num::tests::test_eq_ord::test_gt ... ok
[INFO] [stdout] test big_num::tests::test_mul::test_mul_zero ... ok
[INFO] [stdout] test big_num::tests::test_eq_ord::test_eq ... ok
[INFO] [stdout] test big_num::tests::test_gcd::test_gcd_normal ... ok
[INFO] [stdout] test big_num::tests::test_eq_ord::test_ge ... ok
[INFO] [stdout] test big_num::tests::test_mul::test_mul_negative_negative ... ok
[INFO] [stdout] test big_num::tests::test_neg::test_negate_positive ... ok
[INFO] [stdout] test big_num::tests::test_neg::test_negate_negative ... ok
[INFO] [stdout] test big_num::tests::test_rem::test_rem_positive_positive ... ok
[INFO] [stdout] test big_num::tests::test_rem::test_rem_positive_negative ... ok
[INFO] [stdout] test frac::tests::test_add_assign::test_add_assign ... ok
[INFO] [stdout] test frac::tests::test_add::test_add ... ok
[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 frac::tests::test_div_assign::test_div_assign ... ok
[INFO] [stdout] test frac::tests::test_div::test_div ... ok
[INFO] [stdout] test frac::tests::test_eq::test_eq ... ok
[INFO] [stdout] test big_num::tests::test_rem::test_rem_negative_negative ... ok
[INFO] [stdout] test frac::tests::test_from_str::test_from_str_invalid_format ... ok
[INFO] [stdout] test frac::tests::test_display::test_display ... ok
[INFO] [stdout] test frac::tests::test_from_str::test_from_str ... ok
[INFO] [stdout] test frac::tests::test_neg::test_neg ... ok
[INFO] [stdout] test frac::tests::test_simplify::test_simplify ... ok
[INFO] [stdout] test frac::tests::test_simplify::test_simplify_negative_numerator ... ok
[INFO] [stdout] test big_num::tests::test_add_assign::test_add_assign_negative_positive ... ok
[INFO] [stdout] test frac::tests::test_sub_assign::test_sub_assign ... ok
[INFO] [stdout] test frac::tests::test_sub::test_sub ... ok
[INFO] [stdout] test big_num::tests::test_rem::test_rem_negative_positive ... ok
[INFO] [stdout] test big_num::tests::test_gcd::test_gcd_zero - should panic ... FAILED
[INFO] [stdout] test frac::tests::test_simplify::test_simplify_negative_denominator ... ok
[INFO] [stdout] test frac::tests::test_from_str::test_from_str_invalid_denominator ... ok
[INFO] [stdout] test big_num::tests::test_rem::test_rem_by_zero - should panic ... ok
[INFO] [stdout] test big_num::tests::test_div::test_div_by_zero - should panic ... ok
[INFO] [stdout] test frac::tests::test_inverse::test_inverse ... 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] 
[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] [stderr] error: test failed, to rerun pass `--lib`
[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.03s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "e8904e1faf1404d5f4d23c874c3ca60aef114d8226a79c9c0c207fb975b5a988", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e8904e1faf1404d5f4d23c874c3ca60aef114d8226a79c9c0c207fb975b5a988", kill_on_drop: false }`
[INFO] [stdout] e8904e1faf1404d5f4d23c874c3ca60aef114d8226a79c9c0c207fb975b5a988
