[INFO] cloning repository https://github.com/shimomura1004/rust_playground [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/shimomura1004/rust_playground" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshimomura1004%2Frust_playground", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshimomura1004%2Frust_playground'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] b960e16272527c7c77000e863057e32b37c49b22 [INFO] linting shimomura1004/rust_playground against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshimomura1004%2Frust_playground" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/shimomura1004/rust_playground [INFO] finished tweaking git repo https://github.com/shimomura1004/rust_playground [INFO] tweaked toml for git repo https://github.com/shimomura1004/rust_playground written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/shimomura1004/rust_playground on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/shimomura1004/rust_playground 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" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] c9f7953bb9718f2ae162ca112abb492aee94e18aebe127ed50f237d6ebbca5d2 [INFO] running `Command { std: "docker" "start" "-a" "c9f7953bb9718f2ae162ca112abb492aee94e18aebe127ed50f237d6ebbca5d2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c9f7953bb9718f2ae162ca112abb492aee94e18aebe127ed50f237d6ebbca5d2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c9f7953bb9718f2ae162ca112abb492aee94e18aebe127ed50f237d6ebbca5d2", kill_on_drop: false }` [INFO] [stdout] c9f7953bb9718f2ae162ca112abb492aee94e18aebe127ed50f237d6ebbca5d2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 53fcf9e63b50ff39b4ed1213b3e0bb8f35b9a3333a4af8c6904bc2ada73d35c8 [INFO] running `Command { std: "docker" "start" "-a" "53fcf9e63b50ff39b4ed1213b3e0bb8f35b9a3333a4af8c6904bc2ada73d35c8", kill_on_drop: false }` [INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024` [INFO] [stderr] Checking stackmachine v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `parser` [INFO] [stdout] --> src/interpreter/mod.rs:121:5 [INFO] [stdout] | [INFO] [stdout] 121 | use parser; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:8:23 [INFO] [stdout] | [INFO] [stdout] 8 | type ParserB = Box>; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 8 | type ParserB = Box>; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:175:18 [INFO] [stdout] | [INFO] [stdout] 175 | pub p1 : Box>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 175 | pub p1 : Box>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:176:18 [INFO] [stdout] | [INFO] [stdout] 176 | pub p2 : Box>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 176 | pub p2 : Box>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:191:16 [INFO] [stdout] | [INFO] [stdout] 191 | pub p: Box>, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 191 | pub p: Box>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:209:16 [INFO] [stdout] | [INFO] [stdout] 209 | pub p: Box>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 209 | pub p: Box>>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:225:16 [INFO] [stdout] | [INFO] [stdout] 225 | pub p: Box>, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 225 | pub p: Box>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:253:16 [INFO] [stdout] | [INFO] [stdout] 253 | pub p: Box>, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 253 | pub p: Box>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:267:16 [INFO] [stdout] | [INFO] [stdout] 267 | pub p: Box>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 267 | pub p: Box>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:281:21 [INFO] [stdout] | [INFO] [stdout] 281 | pub left_p: Box>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 281 | pub left_p: Box>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:282:20 [INFO] [stdout] | [INFO] [stdout] 282 | pub mid_p: Box>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 282 | pub mid_p: Box>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:283:22 [INFO] [stdout] | [INFO] [stdout] 283 | pub right_p: Box>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 283 | pub right_p: Box>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:322:16 [INFO] [stdout] | [INFO] [stdout] 322 | pub p: Box>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 322 | pub p: Box>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:323:18 [INFO] [stdout] | [INFO] [stdout] 323 | pub sep: Box>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 323 | pub sep: Box>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:87:24 [INFO] [stdout] | [INFO] [stdout] 87 | pub fn new(p : Box>) -> Box>> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 87 | pub fn new(p : Box>) -> Box>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:87:43 [INFO] [stdout] | [INFO] [stdout] 87 | pub fn new(p : Box>) -> Box>> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 87 | pub fn new(p : Box>) -> Box>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:112:24 [INFO] [stdout] | [INFO] [stdout] 112 | pub fn new(p : Box>) -> Box> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 112 | pub fn new(p : Box>) -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:112:43 [INFO] [stdout] | [INFO] [stdout] 112 | pub fn new(p : Box>) -> Box> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 112 | pub fn new(p : Box>) -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:127:24 [INFO] [stdout] | [INFO] [stdout] 127 | pub fn new(p : Box>) -> Box>> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 127 | pub fn new(p : Box>) -> Box>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:127:43 [INFO] [stdout] | [INFO] [stdout] 127 | pub fn new(p : Box>) -> Box>> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 127 | pub fn new(p : Box>) -> Box>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:151:29 [INFO] [stdout] | [INFO] [stdout] 151 | pub fn new(ps : Vec>>) -> Box> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 151 | pub fn new(ps : Vec>>) -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:151:49 [INFO] [stdout] | [INFO] [stdout] 151 | pub fn new(ps : Vec>>) -> Box> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 151 | pub fn new(ps : Vec>>) -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:179:24 [INFO] [stdout] | [INFO] [stdout] 179 | pub fn new(p1: Box>, p2: Box>) -> Box> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 179 | pub fn new(p1: Box>, p2: Box>) -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:179:45 [INFO] [stdout] | [INFO] [stdout] 179 | pub fn new(p1: Box>, p2: Box>) -> Box> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 179 | pub fn new(p1: Box>, p2: Box>) -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:179:65 [INFO] [stdout] | [INFO] [stdout] 179 | pub fn new(p1: Box>, p2: Box>) -> Box> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 179 | pub fn new(p1: Box>, p2: Box>) -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:286:29 [INFO] [stdout] | [INFO] [stdout] 286 | pub fn new(left_p : Box>, mid_p: Box>, right_p: Box>) -> Box> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 286 | pub fn new(left_p : Box>, mid_p: Box>, right_p: Box>) -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:286:53 [INFO] [stdout] | [INFO] [stdout] 286 | pub fn new(left_p : Box>, mid_p: Box>, right_p: Box>) -> Box> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 286 | pub fn new(left_p : Box>, mid_p: Box>, right_p: Box>) -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:286:79 [INFO] [stdout] | [INFO] [stdout] 286 | pub fn new(left_p : Box>, mid_p: Box>, right_p: Box>) -> Box> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 286 | pub fn new(left_p : Box>, mid_p: Box>, right_p: Box>) -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:286:99 [INFO] [stdout] | [INFO] [stdout] 286 | pub fn new(left_p : Box>, mid_p: Box>, right_p: Box>) -> Box> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 286 | pub fn new(left_p : Box>, mid_p: Box>, right_p: Box>) -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:326:24 [INFO] [stdout] | [INFO] [stdout] 326 | pub fn new(p : Box>, sep : Box>) -> Box>> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 326 | pub fn new(p : Box>, sep : Box>) -> Box>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:326:47 [INFO] [stdout] | [INFO] [stdout] 326 | pub fn new(p : Box>, sep : Box>) -> Box>> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 326 | pub fn new(p : Box>, sep : Box>) -> Box>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:326:67 [INFO] [stdout] | [INFO] [stdout] 326 | pub fn new(p : Box>, sep : Box>) -> Box>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 326 | pub fn new(p : Box>, sep : Box>) -> Box>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:27:33 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn new(c : char) -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 27 | pub fn new(c : char) -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:62:35 [INFO] [stdout] | [INFO] [stdout] 62 | pub fn new(str : &str) -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 62 | pub fn new(str : &str) -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:194:36 [INFO] [stdout] | [INFO] [stdout] 194 | pub fn new(chars: &str) -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 194 | pub fn new(chars: &str) -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:212:25 [INFO] [stdout] | [INFO] [stdout] 212 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 212 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:228:25 [INFO] [stdout] | [INFO] [stdout] 228 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 228 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:256:25 [INFO] [stdout] | [INFO] [stdout] 256 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 256 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:270:25 [INFO] [stdout] | [INFO] [stdout] 270 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 270 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:301:25 [INFO] [stdout] | [INFO] [stdout] 301 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 301 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:8:25 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 8 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:22:25 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 22 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:59:25 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 59 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:79:25 [INFO] [stdout] | [INFO] [stdout] 79 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 79 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:96:26 [INFO] [stdout] | [INFO] [stdout] 96 | pub fn new () -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 96 | pub fn new () -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:123:25 [INFO] [stdout] | [INFO] [stdout] 123 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 123 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:141:25 [INFO] [stdout] | [INFO] [stdout] 141 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 141 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:157:25 [INFO] [stdout] | [INFO] [stdout] 157 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 157 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:169:25 [INFO] [stdout] | [INFO] [stdout] 169 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 169 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:184:25 [INFO] [stdout] | [INFO] [stdout] 184 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 184 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:200:25 [INFO] [stdout] | [INFO] [stdout] 200 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 200 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:218:25 [INFO] [stdout] | [INFO] [stdout] 218 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 218 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:236:25 [INFO] [stdout] | [INFO] [stdout] 236 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 236 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:248:25 [INFO] [stdout] | [INFO] [stdout] 248 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 248 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:264:25 [INFO] [stdout] | [INFO] [stdout] 264 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 264 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:280:25 [INFO] [stdout] | [INFO] [stdout] 280 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 280 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:296:25 [INFO] [stdout] | [INFO] [stdout] 296 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 296 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:312:25 [INFO] [stdout] | [INFO] [stdout] 312 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 312 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:324:25 [INFO] [stdout] | [INFO] [stdout] 324 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 324 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:340:25 [INFO] [stdout] | [INFO] [stdout] 340 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 340 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:357:25 [INFO] [stdout] | [INFO] [stdout] 357 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 357 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:371:25 [INFO] [stdout] | [INFO] [stdout] 371 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 371 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:391:25 [INFO] [stdout] | [INFO] [stdout] 391 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 391 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:409:25 [INFO] [stdout] | [INFO] [stdout] 409 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 409 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:423:25 [INFO] [stdout] | [INFO] [stdout] 423 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 423 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:442:25 [INFO] [stdout] | [INFO] [stdout] 442 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 442 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> src/parser/mod.rs:162:21 [INFO] [stdout] | [INFO] [stdout] 162 | fn parse(&self, input : &mut String) -> Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> src/parser/mod.rs:241:21 [INFO] [stdout] | [INFO] [stdout] 241 | fn parse(&self, input : &mut String) -> Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> src/parser/mod.rs:317:21 [INFO] [stdout] | [INFO] [stdout] 317 | fn parse(&self, input : &mut String) -> Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/interpreter/mod.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | _ => { [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/interpreter/mod.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 23 | ExpAst::Add(t1, t2) => { [INFO] [stdout] | ------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 29 | ExpAst::Sub(t1, t2) => { [INFO] [stdout] | ------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 35 | ExpAst::Mul(t1, t2) => { [INFO] [stdout] | ------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 41 | ExpAst::Div(t1, t2) => { [INFO] [stdout] | ------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 86 | _ => { [INFO] [stdout] | ^ ...and 5 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t1` [INFO] [stdout] --> src/compiler/mod.rs:28:21 [INFO] [stdout] | [INFO] [stdout] 28 | ExpAst::App(t1, t2) => { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_t1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t2` [INFO] [stdout] --> src/compiler/mod.rs:28:25 [INFO] [stdout] | [INFO] [stdout] 28 | ExpAst::App(t1, t2) => { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_t2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/compiler/mod.rs:31:21 [INFO] [stdout] | [INFO] [stdout] 31 | ExpAst::Var(name) => { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/compiler/mod.rs:63:30 [INFO] [stdout] | [INFO] [stdout] 63 | StatementAst::Assign(name, exp_ast) => (), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `exp_ast` [INFO] [stdout] --> src/compiler/mod.rs:63:36 [INFO] [stdout] | [INFO] [stdout] 63 | StatementAst::Assign(name, exp_ast) => (), [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_exp_ast` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ast` [INFO] [stdout] --> src/compiler/mod.rs:67:22 [INFO] [stdout] | [INFO] [stdout] 67 | pub fn compile_block(ast : &BlockAst, code : &mut Vec) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ast` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `code` [INFO] [stdout] --> src/compiler/mod.rs:67:39 [INFO] [stdout] | [INFO] [stdout] 67 | pub fn compile_block(ast : &BlockAst, code : &mut Vec) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_code` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/vm/mod.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 2 | pub enum Operator { [INFO] [stdout] | -------- variants in this enum [INFO] [stdout] 3 | PushInt32(i32), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 4 | Pop, [INFO] [stdout] | ^^^ [INFO] [stdout] 5 | [INFO] [stdout] 6 | Add, [INFO] [stdout] | ^^^ [INFO] [stdout] 7 | Sub, [INFO] [stdout] | ^^^ [INFO] [stdout] 8 | Mul, [INFO] [stdout] | ^^^ [INFO] [stdout] 9 | Div, [INFO] [stdout] | ^^^ [INFO] [stdout] 10 | [INFO] [stdout] 11 | Not, [INFO] [stdout] | ^^^ [INFO] [stdout] 12 | [INFO] [stdout] 13 | Equal, // read 2 value from stack, compare them and push 1/0 if values are the same/different [INFO] [stdout] | ^^^^^ [INFO] [stdout] 14 | [INFO] [stdout] 15 | Load(usize), // read the n-th item in the stack and push it on top [INFO] [stdout] | ^^^^ [INFO] [stdout] 16 | Store(usize), // write value on top of the stack to the n-th item in the stack [INFO] [stdout] | ^^^^^ [INFO] [stdout] 17 | [INFO] [stdout] 18 | Print, // print the value on top of the stack [INFO] [stdout] | ^^^^^ [INFO] [stdout] 19 | [INFO] [stdout] 20 | JumpIf(isize), // proceed the PC if top of the stack is not 0 [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 21 | JumpUnless(isize), // proced the PC if top of the stack is 0 [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 22 | Jump(isize), // proceed the PC for the size [INFO] [stdout] | ^^^^ [INFO] [stdout] 23 | [INFO] [stdout] 24 | Dump, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Operator` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Data` is never used [INFO] [stdout] --> src/vm/mod.rs:28:6 [INFO] [stdout] | [INFO] [stdout] 28 | enum Data { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `process` is never used [INFO] [stdout] --> src/vm/mod.rs:32:8 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn process(program : &Vec) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compile` is never used [INFO] [stdout] --> src/compiler/mod.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn compile(ast : &ExpAst, code : &mut Vec) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compile_statement` is never used [INFO] [stdout] --> src/compiler/mod.rs:60:8 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn compile_statement(ast : &StatementAst, code : &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/vm/mod.rs:32:26 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn process(program : &Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 32 - pub fn process(program : &Vec) { [INFO] [stdout] 32 + pub fn process(program : &[Operator]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | / pub fn new(c : char) -> Box> { [INFO] [stdout] 28 | | Box::new(Char{c}) [INFO] [stdout] 29 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] = note: `#[warn(clippy::new_ret_no_self)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 62 | / pub fn new(str : &str) -> Box> { [INFO] [stdout] 63 | | Box::new(Str{str: str.to_string()}) [INFO] [stdout] 64 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | / pub fn new(p : Box>) -> Box>> { [INFO] [stdout] 88 | | Box::new(Many{p}) [INFO] [stdout] 89 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `while let` loop [INFO] [stdout] --> src/parser/combinator.rs:95:9 [INFO] [stdout] | [INFO] [stdout] 95 | / loop { [INFO] [stdout] 96 | | match self.p.parse(input) { [INFO] [stdout] 97 | | Ok(r) => { [INFO] [stdout] 98 | | result.push(r); [INFO] [stdout] ... | [INFO] [stdout] 101 | | }; [INFO] [stdout] 102 | | } [INFO] [stdout] | |_________^ help: try: `while let Ok(r) = self.p.parse(input) { .. }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stdout] = note: `#[warn(clippy::while_let_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 112 | / pub fn new(p : Box>) -> Box> { [INFO] [stdout] 113 | | Box::new(SkipMany{p: Many::new(p)}) [INFO] [stdout] 114 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:127:5 [INFO] [stdout] | [INFO] [stdout] 127 | / pub fn new(p : Box>) -> Box>> { [INFO] [stdout] 128 | | Box::new(Many1{p}) [INFO] [stdout] 129 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `while let` loop [INFO] [stdout] --> src/parser/combinator.rs:136:9 [INFO] [stdout] | [INFO] [stdout] 136 | / loop { [INFO] [stdout] 137 | | match self.p.parse(input) { [INFO] [stdout] 138 | | Ok(r) => rs.push(r), [INFO] [stdout] 139 | | Err(_) => break, [INFO] [stdout] 140 | | }; [INFO] [stdout] 141 | | } [INFO] [stdout] | |_________^ help: try: `while let Ok(r) = self.p.parse(input) { .. }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:8:23 [INFO] [stdout] | [INFO] [stdout] 8 | type ParserB = Box>; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 8 | type ParserB = Box>; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:175:18 [INFO] [stdout] | [INFO] [stdout] 175 | pub p1 : Box>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 175 | pub p1 : Box>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:151:5 [INFO] [stdout] | [INFO] [stdout] 151 | / pub fn new(ps : Vec>>) -> Box> { [INFO] [stdout] 152 | | Box::new(Try{ps}) [INFO] [stdout] 153 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:176:18 [INFO] [stdout] | [INFO] [stdout] 176 | pub p2 : Box>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 176 | pub p2 : Box>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:191:16 [INFO] [stdout] | [INFO] [stdout] 191 | pub p: Box>, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 191 | pub p: Box>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:209:16 [INFO] [stdout] | [INFO] [stdout] 209 | pub p: Box>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 209 | pub p: Box>>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser/combinator.rs:159:12 [INFO] [stdout] | [INFO] [stdout] 159 | if !r.is_ok() { [INFO] [stdout] | ^^^^^^^^^^ help: try: `r.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:179:5 [INFO] [stdout] | [INFO] [stdout] 179 | / pub fn new(p1: Box>, p2: Box>) -> Box> { [INFO] [stdout] 180 | | Box::new(Then{p1, p2}) [INFO] [stdout] 181 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:225:16 [INFO] [stdout] | [INFO] [stdout] 225 | pub p: Box>, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 225 | pub p: Box>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:194:5 [INFO] [stdout] | [INFO] [stdout] 194 | / pub fn new(chars: &str) -> Box> { [INFO] [stdout] 195 | | let mut ps = vec![]; [INFO] [stdout] 196 | | for c in chars.chars().collect::>() { [INFO] [stdout] 197 | | ps.push(Char::new(c)); [INFO] [stdout] 198 | | } [INFO] [stdout] 199 | | Box::new(OneOf{p: Try::new(ps)}) [INFO] [stdout] 200 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:212:5 [INFO] [stdout] | [INFO] [stdout] 212 | / pub fn new() -> Box> { [INFO] [stdout] 213 | | Box::new(Digit{p: Many1::new(OneOf::new("0123456789"))}) [INFO] [stdout] 214 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:228:5 [INFO] [stdout] | [INFO] [stdout] 228 | / pub fn new() -> Box> { [INFO] [stdout] 229 | | Box::new(Lower{p: OneOf::new("abcdefghijklmnopqrstuvwxyz")}) [INFO] [stdout] 230 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:256:5 [INFO] [stdout] | [INFO] [stdout] 256 | / pub fn new() -> Box> { [INFO] [stdout] 257 | | Box::new(Space{p: OneOf::new(" \t\n\r")}) [INFO] [stdout] 258 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:253:16 [INFO] [stdout] | [INFO] [stdout] 253 | pub p: Box>, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 253 | pub p: Box>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:267:16 [INFO] [stdout] | [INFO] [stdout] 267 | pub p: Box>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 267 | pub p: Box>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:281:21 [INFO] [stdout] | [INFO] [stdout] 281 | pub left_p: Box>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 281 | pub left_p: Box>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:282:20 [INFO] [stdout] | [INFO] [stdout] 282 | pub mid_p: Box>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 282 | pub mid_p: Box>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:283:22 [INFO] [stdout] | [INFO] [stdout] 283 | pub right_p: Box>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 283 | pub right_p: Box>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:322:16 [INFO] [stdout] | [INFO] [stdout] 322 | pub p: Box>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 322 | pub p: Box>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:323:18 [INFO] [stdout] | [INFO] [stdout] 323 | pub sep: Box>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 323 | pub sep: Box>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:270:5 [INFO] [stdout] | [INFO] [stdout] 270 | / pub fn new() -> Box> { [INFO] [stdout] 271 | | Box::new(Spaces{p: SkipMany::new(Space::new())}) [INFO] [stdout] 272 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:286:5 [INFO] [stdout] | [INFO] [stdout] 286 | / pub fn new(left_p : Box>, mid_p: Box>, right_p: Box>) -> Box> { [INFO] [stdout] 287 | | Box::new(Between{left_p, mid_p, right_p}) [INFO] [stdout] 288 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:301:5 [INFO] [stdout] | [INFO] [stdout] 301 | / pub fn new() -> Box> { [INFO] [stdout] 302 | | Box::new(Eof{}) [INFO] [stdout] 303 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/parser/combinator.rs:307:12 [INFO] [stdout] | [INFO] [stdout] 307 | if input.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:326:5 [INFO] [stdout] | [INFO] [stdout] 326 | / pub fn new(p : Box>, sep : Box>) -> Box>> { [INFO] [stdout] 327 | | Box::new(SepBy{p, sep}) [INFO] [stdout] 328 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | / pub fn new() -> Box> { [INFO] [stdout] 9 | | Box::new(Num{}) [INFO] [stdout] 10 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | / pub fn new() -> Box> { [INFO] [stdout] 23 | | Box::new(Var{}) [INFO] [stdout] 24 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `contains()` instead of `iter().any()` is more efficient [INFO] [stdout] --> src/parser/mod.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | reserved.iter().any(|x| *x == name) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `reserved.contains(&name)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_contains [INFO] [stdout] = note: `#[warn(clippy::manual_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | / pub fn new() -> Box> { [INFO] [stdout] 60 | | Box::new(Fun{}) [INFO] [stdout] 61 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | / pub fn new() -> Box> { [INFO] [stdout] 80 | | Box::new(ParenedExpression{}) [INFO] [stdout] 81 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:96:5 [INFO] [stdout] | [INFO] [stdout] 96 | / pub fn new () -> Box> { [INFO] [stdout] 97 | | Box::new(IfExpression{}) [INFO] [stdout] 98 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:123:5 [INFO] [stdout] | [INFO] [stdout] 123 | / pub fn new() -> Box> { [INFO] [stdout] 124 | | Box::new(Term{}) [INFO] [stdout] 125 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:141:5 [INFO] [stdout] | [INFO] [stdout] 141 | / pub fn new() -> Box> { [INFO] [stdout] 142 | | Box::new(AppExpression{}) [INFO] [stdout] 143 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:157:5 [INFO] [stdout] | [INFO] [stdout] 157 | / pub fn new() -> Box> { [INFO] [stdout] 158 | | Box::new(EmptyExpression5{}) [INFO] [stdout] 159 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:169:5 [INFO] [stdout] | [INFO] [stdout] 169 | / pub fn new() -> Box> { [INFO] [stdout] 170 | | Box::new(Expression5{}) [INFO] [stdout] 171 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:184:5 [INFO] [stdout] | [INFO] [stdout] 184 | / pub fn new() -> Box> { [INFO] [stdout] 185 | | Box::new(Expression4{}) [INFO] [stdout] 186 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:200:5 [INFO] [stdout] | [INFO] [stdout] 200 | / pub fn new() -> Box> { [INFO] [stdout] 201 | | Box::new(MulExpression{}) [INFO] [stdout] 202 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:218:5 [INFO] [stdout] | [INFO] [stdout] 218 | / pub fn new() -> Box> { [INFO] [stdout] 219 | | Box::new(DivExpression{}) [INFO] [stdout] 220 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:236:5 [INFO] [stdout] | [INFO] [stdout] 236 | / pub fn new() -> Box> { [INFO] [stdout] 237 | | Box::new(EmptyExpression3{}) [INFO] [stdout] 238 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:248:5 [INFO] [stdout] | [INFO] [stdout] 248 | / pub fn new() -> Box> { [INFO] [stdout] 249 | | Box::new(Expression3{}) [INFO] [stdout] 250 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:264:5 [INFO] [stdout] | [INFO] [stdout] 264 | / pub fn new() -> Box> { [INFO] [stdout] 265 | | Box::new(Expression2{}) [INFO] [stdout] 266 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:280:5 [INFO] [stdout] | [INFO] [stdout] 280 | / pub fn new() -> Box> { [INFO] [stdout] 281 | | Box::new(AddExpression{}) [INFO] [stdout] 282 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:296:5 [INFO] [stdout] | [INFO] [stdout] 296 | / pub fn new() -> Box> { [INFO] [stdout] 297 | | Box::new(SubExpression{}) [INFO] [stdout] 298 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:312:5 [INFO] [stdout] | [INFO] [stdout] 312 | / pub fn new() -> Box> { [INFO] [stdout] 313 | | Box::new(EmptyExpression1{}) [INFO] [stdout] 314 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:324:5 [INFO] [stdout] | [INFO] [stdout] 324 | / pub fn new() -> Box> { [INFO] [stdout] 325 | | Box::new(Expression1{}) [INFO] [stdout] 326 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:340:5 [INFO] [stdout] | [INFO] [stdout] 340 | / pub fn new() -> Box> { [INFO] [stdout] 341 | | Box::new(Expression{}) [INFO] [stdout] 342 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:87:24 [INFO] [stdout] | [INFO] [stdout] 87 | pub fn new(p : Box>) -> Box>> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 87 | pub fn new(p : Box>) -> Box>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:87:43 [INFO] [stdout] | [INFO] [stdout] 87 | pub fn new(p : Box>) -> Box>> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 87 | pub fn new(p : Box>) -> Box>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:112:24 [INFO] [stdout] | [INFO] [stdout] 112 | pub fn new(p : Box>) -> Box> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 112 | pub fn new(p : Box>) -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:112:43 [INFO] [stdout] | [INFO] [stdout] 112 | pub fn new(p : Box>) -> Box> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 112 | pub fn new(p : Box>) -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:357:5 [INFO] [stdout] | [INFO] [stdout] 357 | / pub fn new() -> Box> { [INFO] [stdout] 358 | | Box::new(ExpressionStatement{}) [INFO] [stdout] 359 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:371:5 [INFO] [stdout] | [INFO] [stdout] 371 | / pub fn new() -> Box> { [INFO] [stdout] 372 | | Box::new(AssignmentStatement{}) [INFO] [stdout] 373 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:391:5 [INFO] [stdout] | [INFO] [stdout] 391 | / pub fn new() -> Box> { [INFO] [stdout] 392 | | Box::new(Statement{}) [INFO] [stdout] 393 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:409:5 [INFO] [stdout] | [INFO] [stdout] 409 | / pub fn new() -> Box> { [INFO] [stdout] 410 | | Box::new(SingleExpressionBlock{}) [INFO] [stdout] 411 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:127:24 [INFO] [stdout] | [INFO] [stdout] 127 | pub fn new(p : Box>) -> Box>> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 127 | pub fn new(p : Box>) -> Box>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:127:43 [INFO] [stdout] | [INFO] [stdout] 127 | pub fn new(p : Box>) -> Box>> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 127 | pub fn new(p : Box>) -> Box>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:151:29 [INFO] [stdout] | [INFO] [stdout] 151 | pub fn new(ps : Vec>>) -> Box> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 151 | pub fn new(ps : Vec>>) -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:151:49 [INFO] [stdout] | [INFO] [stdout] 151 | pub fn new(ps : Vec>>) -> Box> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 151 | pub fn new(ps : Vec>>) -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:179:24 [INFO] [stdout] | [INFO] [stdout] 179 | pub fn new(p1: Box>, p2: Box>) -> Box> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 179 | pub fn new(p1: Box>, p2: Box>) -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:179:45 [INFO] [stdout] | [INFO] [stdout] 179 | pub fn new(p1: Box>, p2: Box>) -> Box> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 179 | pub fn new(p1: Box>, p2: Box>) -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:179:65 [INFO] [stdout] | [INFO] [stdout] 179 | pub fn new(p1: Box>, p2: Box>) -> Box> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 179 | pub fn new(p1: Box>, p2: Box>) -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:286:29 [INFO] [stdout] | [INFO] [stdout] 286 | pub fn new(left_p : Box>, mid_p: Box>, right_p: Box>) -> Box> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 286 | pub fn new(left_p : Box>, mid_p: Box>, right_p: Box>) -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:286:53 [INFO] [stdout] | [INFO] [stdout] 286 | pub fn new(left_p : Box>, mid_p: Box>, right_p: Box>) -> Box> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 286 | pub fn new(left_p : Box>, mid_p: Box>, right_p: Box>) -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:286:79 [INFO] [stdout] | [INFO] [stdout] 286 | pub fn new(left_p : Box>, mid_p: Box>, right_p: Box>) -> Box> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 286 | pub fn new(left_p : Box>, mid_p: Box>, right_p: Box>) -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:286:99 [INFO] [stdout] | [INFO] [stdout] 286 | pub fn new(left_p : Box>, mid_p: Box>, right_p: Box>) -> Box> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 286 | pub fn new(left_p : Box>, mid_p: Box>, right_p: Box>) -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:326:24 [INFO] [stdout] | [INFO] [stdout] 326 | pub fn new(p : Box>, sep : Box>) -> Box>> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 326 | pub fn new(p : Box>, sep : Box>) -> Box>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:423:5 [INFO] [stdout] | [INFO] [stdout] 423 | / pub fn new() -> Box> { [INFO] [stdout] 424 | | Box::new(MultiExpressionBlock{}) [INFO] [stdout] 425 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:326:47 [INFO] [stdout] | [INFO] [stdout] 326 | pub fn new(p : Box>, sep : Box>) -> Box>> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 326 | pub fn new(p : Box>, sep : Box>) -> Box>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:326:67 [INFO] [stdout] | [INFO] [stdout] 326 | pub fn new(p : Box>, sep : Box>) -> Box>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 326 | pub fn new(p : Box>, sep : Box>) -> Box>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:442:5 [INFO] [stdout] | [INFO] [stdout] 442 | / pub fn new() -> Box> { [INFO] [stdout] 443 | | Box::new(Block{}) [INFO] [stdout] 444 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/compiler/mod.rs:67:46 [INFO] [stdout] | [INFO] [stdout] 67 | pub fn compile_block(ast : &BlockAst, code : &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 67 - pub fn compile_block(ast : &BlockAst, code : &mut Vec) { [INFO] [stdout] 67 + pub fn compile_block(ast : &BlockAst, code : &mut [vm::Operator]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:27:33 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn new(c : char) -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 27 | pub fn new(c : char) -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:62:35 [INFO] [stdout] | [INFO] [stdout] 62 | pub fn new(str : &str) -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 62 | pub fn new(str : &str) -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:194:36 [INFO] [stdout] | [INFO] [stdout] 194 | pub fn new(chars: &str) -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 194 | pub fn new(chars: &str) -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:212:25 [INFO] [stdout] | [INFO] [stdout] 212 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 212 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:228:25 [INFO] [stdout] | [INFO] [stdout] 228 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 228 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:256:25 [INFO] [stdout] | [INFO] [stdout] 256 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 256 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/parser/mod.rs:27:24 [INFO] [stdout] | [INFO] [stdout] 27 | let reserved = vec![ [INFO] [stdout] | ________________________^ [INFO] [stdout] 28 | | "if", [INFO] [stdout] 29 | | "then", [INFO] [stdout] 30 | | "else", [INFO] [stdout] 31 | | "end" [INFO] [stdout] 32 | | ]; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 27 ~ let reserved = ["if", [INFO] [stdout] 28 + "then", [INFO] [stdout] 29 + "else", [INFO] [stdout] 30 ~ "end"]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:270:25 [INFO] [stdout] | [INFO] [stdout] 270 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 270 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/combinator.rs:301:25 [INFO] [stdout] | [INFO] [stdout] 301 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 301 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:8:25 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 8 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:22:25 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 22 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:59:25 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 59 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:79:25 [INFO] [stdout] | [INFO] [stdout] 79 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 79 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:96:26 [INFO] [stdout] | [INFO] [stdout] 96 | pub fn new () -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 96 | pub fn new () -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:123:25 [INFO] [stdout] | [INFO] [stdout] 123 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 123 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:141:25 [INFO] [stdout] | [INFO] [stdout] 141 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 141 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:157:25 [INFO] [stdout] | [INFO] [stdout] 157 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 157 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:169:25 [INFO] [stdout] | [INFO] [stdout] 169 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 169 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:184:25 [INFO] [stdout] | [INFO] [stdout] 184 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 184 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:200:25 [INFO] [stdout] | [INFO] [stdout] 200 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 200 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:218:25 [INFO] [stdout] | [INFO] [stdout] 218 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 218 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:236:25 [INFO] [stdout] | [INFO] [stdout] 236 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 236 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:248:25 [INFO] [stdout] | [INFO] [stdout] 248 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 248 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:264:25 [INFO] [stdout] | [INFO] [stdout] 264 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 264 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:280:25 [INFO] [stdout] | [INFO] [stdout] 280 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 280 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:296:25 [INFO] [stdout] | [INFO] [stdout] 296 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 296 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:312:25 [INFO] [stdout] | [INFO] [stdout] 312 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 312 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:324:25 [INFO] [stdout] | [INFO] [stdout] 324 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 324 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:340:25 [INFO] [stdout] | [INFO] [stdout] 340 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 340 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:357:25 [INFO] [stdout] | [INFO] [stdout] 357 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 357 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:371:25 [INFO] [stdout] | [INFO] [stdout] 371 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 371 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:391:25 [INFO] [stdout] | [INFO] [stdout] 391 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 391 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:409:25 [INFO] [stdout] | [INFO] [stdout] 409 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 409 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:423:25 [INFO] [stdout] | [INFO] [stdout] 423 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 423 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:442:25 [INFO] [stdout] | [INFO] [stdout] 442 | pub fn new() -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 442 | pub fn new() -> Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> src/parser/mod.rs:162:21 [INFO] [stdout] | [INFO] [stdout] 162 | fn parse(&self, input : &mut String) -> Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> src/parser/mod.rs:241:21 [INFO] [stdout] | [INFO] [stdout] 241 | fn parse(&self, input : &mut String) -> Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> src/parser/mod.rs:317:21 [INFO] [stdout] | [INFO] [stdout] 317 | fn parse(&self, input : &mut String) -> Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/interpreter/mod.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | _ => { [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/interpreter/mod.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 23 | ExpAst::Add(t1, t2) => { [INFO] [stdout] | ------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 29 | ExpAst::Sub(t1, t2) => { [INFO] [stdout] | ------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 35 | ExpAst::Mul(t1, t2) => { [INFO] [stdout] | ------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 41 | ExpAst::Div(t1, t2) => { [INFO] [stdout] | ------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 86 | _ => { [INFO] [stdout] | ^ ...and 5 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t1` [INFO] [stdout] --> src/compiler/mod.rs:28:21 [INFO] [stdout] | [INFO] [stdout] 28 | ExpAst::App(t1, t2) => { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_t1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t2` [INFO] [stdout] --> src/compiler/mod.rs:28:25 [INFO] [stdout] | [INFO] [stdout] 28 | ExpAst::App(t1, t2) => { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_t2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/compiler/mod.rs:31:21 [INFO] [stdout] | [INFO] [stdout] 31 | ExpAst::Var(name) => { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/compiler/mod.rs:63:30 [INFO] [stdout] | [INFO] [stdout] 63 | StatementAst::Assign(name, exp_ast) => (), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `exp_ast` [INFO] [stdout] --> src/compiler/mod.rs:63:36 [INFO] [stdout] | [INFO] [stdout] 63 | StatementAst::Assign(name, exp_ast) => (), [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_exp_ast` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ast` [INFO] [stdout] --> src/compiler/mod.rs:67:22 [INFO] [stdout] | [INFO] [stdout] 67 | pub fn compile_block(ast : &BlockAst, code : &mut Vec) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ast` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `code` [INFO] [stdout] --> src/compiler/mod.rs:67:39 [INFO] [stdout] | [INFO] [stdout] 67 | pub fn compile_block(ast : &BlockAst, code : &mut Vec) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_code` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Sub`, `Mul`, `Div`, `JumpUnless`, and `Jump` are never constructed [INFO] [stdout] --> src/vm/mod.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 2 | pub enum Operator { [INFO] [stdout] | -------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 7 | Sub, [INFO] [stdout] | ^^^ [INFO] [stdout] 8 | Mul, [INFO] [stdout] | ^^^ [INFO] [stdout] 9 | Div, [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | JumpUnless(isize), // proced the PC if top of the stack is 0 [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 22 | Jump(isize), // proceed the PC for the size [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Operator` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compile` is never used [INFO] [stdout] --> src/compiler/mod.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn compile(ast : &ExpAst, code : &mut Vec) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compile_statement` is never used [INFO] [stdout] --> src/compiler/mod.rs:60:8 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn compile_statement(ast : &StatementAst, code : &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/vm/mod.rs:32:26 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn process(program : &Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 32 - pub fn process(program : &Vec) { [INFO] [stdout] 32 + pub fn process(program : &[Operator]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | / pub fn new(c : char) -> Box> { [INFO] [stdout] 28 | | Box::new(Char{c}) [INFO] [stdout] 29 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] = note: `#[warn(clippy::new_ret_no_self)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 62 | / pub fn new(str : &str) -> Box> { [INFO] [stdout] 63 | | Box::new(Str{str: str.to_string()}) [INFO] [stdout] 64 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | / pub fn new(p : Box>) -> Box>> { [INFO] [stdout] 88 | | Box::new(Many{p}) [INFO] [stdout] 89 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `while let` loop [INFO] [stdout] --> src/parser/combinator.rs:95:9 [INFO] [stdout] | [INFO] [stdout] 95 | / loop { [INFO] [stdout] 96 | | match self.p.parse(input) { [INFO] [stdout] 97 | | Ok(r) => { [INFO] [stdout] 98 | | result.push(r); [INFO] [stdout] ... | [INFO] [stdout] 101 | | }; [INFO] [stdout] 102 | | } [INFO] [stdout] | |_________^ help: try: `while let Ok(r) = self.p.parse(input) { .. }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stdout] = note: `#[warn(clippy::while_let_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 112 | / pub fn new(p : Box>) -> Box> { [INFO] [stdout] 113 | | Box::new(SkipMany{p: Many::new(p)}) [INFO] [stdout] 114 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:127:5 [INFO] [stdout] | [INFO] [stdout] 127 | / pub fn new(p : Box>) -> Box>> { [INFO] [stdout] 128 | | Box::new(Many1{p}) [INFO] [stdout] 129 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `while let` loop [INFO] [stdout] --> src/parser/combinator.rs:136:9 [INFO] [stdout] | [INFO] [stdout] 136 | / loop { [INFO] [stdout] 137 | | match self.p.parse(input) { [INFO] [stdout] 138 | | Ok(r) => rs.push(r), [INFO] [stdout] 139 | | Err(_) => break, [INFO] [stdout] 140 | | }; [INFO] [stdout] 141 | | } [INFO] [stdout] | |_________^ help: try: `while let Ok(r) = self.p.parse(input) { .. }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:151:5 [INFO] [stdout] | [INFO] [stdout] 151 | / pub fn new(ps : Vec>>) -> Box> { [INFO] [stdout] 152 | | Box::new(Try{ps}) [INFO] [stdout] 153 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser/combinator.rs:159:12 [INFO] [stdout] | [INFO] [stdout] 159 | if !r.is_ok() { [INFO] [stdout] | ^^^^^^^^^^ help: try: `r.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:179:5 [INFO] [stdout] | [INFO] [stdout] 179 | / pub fn new(p1: Box>, p2: Box>) -> Box> { [INFO] [stdout] 180 | | Box::new(Then{p1, p2}) [INFO] [stdout] 181 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:194:5 [INFO] [stdout] | [INFO] [stdout] 194 | / pub fn new(chars: &str) -> Box> { [INFO] [stdout] 195 | | let mut ps = vec![]; [INFO] [stdout] 196 | | for c in chars.chars().collect::>() { [INFO] [stdout] 197 | | ps.push(Char::new(c)); [INFO] [stdout] 198 | | } [INFO] [stdout] 199 | | Box::new(OneOf{p: Try::new(ps)}) [INFO] [stdout] 200 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:212:5 [INFO] [stdout] | [INFO] [stdout] 212 | / pub fn new() -> Box> { [INFO] [stdout] 213 | | Box::new(Digit{p: Many1::new(OneOf::new("0123456789"))}) [INFO] [stdout] 214 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:228:5 [INFO] [stdout] | [INFO] [stdout] 228 | / pub fn new() -> Box> { [INFO] [stdout] 229 | | Box::new(Lower{p: OneOf::new("abcdefghijklmnopqrstuvwxyz")}) [INFO] [stdout] 230 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:256:5 [INFO] [stdout] | [INFO] [stdout] 256 | / pub fn new() -> Box> { [INFO] [stdout] 257 | | Box::new(Space{p: OneOf::new(" \t\n\r")}) [INFO] [stdout] 258 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:270:5 [INFO] [stdout] | [INFO] [stdout] 270 | / pub fn new() -> Box> { [INFO] [stdout] 271 | | Box::new(Spaces{p: SkipMany::new(Space::new())}) [INFO] [stdout] 272 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:286:5 [INFO] [stdout] | [INFO] [stdout] 286 | / pub fn new(left_p : Box>, mid_p: Box>, right_p: Box>) -> Box> { [INFO] [stdout] 287 | | Box::new(Between{left_p, mid_p, right_p}) [INFO] [stdout] 288 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:301:5 [INFO] [stdout] | [INFO] [stdout] 301 | / pub fn new() -> Box> { [INFO] [stdout] 302 | | Box::new(Eof{}) [INFO] [stdout] 303 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/parser/combinator.rs:307:12 [INFO] [stdout] | [INFO] [stdout] 307 | if input.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/combinator.rs:326:5 [INFO] [stdout] | [INFO] [stdout] 326 | / pub fn new(p : Box>, sep : Box>) -> Box>> { [INFO] [stdout] 327 | | Box::new(SepBy{p, sep}) [INFO] [stdout] 328 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | / pub fn new() -> Box> { [INFO] [stdout] 9 | | Box::new(Num{}) [INFO] [stdout] 10 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | / pub fn new() -> Box> { [INFO] [stdout] 23 | | Box::new(Var{}) [INFO] [stdout] 24 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `contains()` instead of `iter().any()` is more efficient [INFO] [stdout] --> src/parser/mod.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | reserved.iter().any(|x| *x == name) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `reserved.contains(&name)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_contains [INFO] [stdout] = note: `#[warn(clippy::manual_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | / pub fn new() -> Box> { [INFO] [stdout] 60 | | Box::new(Fun{}) [INFO] [stdout] 61 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | / pub fn new() -> Box> { [INFO] [stdout] 80 | | Box::new(ParenedExpression{}) [INFO] [stdout] 81 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:96:5 [INFO] [stdout] | [INFO] [stdout] 96 | / pub fn new () -> Box> { [INFO] [stdout] 97 | | Box::new(IfExpression{}) [INFO] [stdout] 98 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:123:5 [INFO] [stdout] | [INFO] [stdout] 123 | / pub fn new() -> Box> { [INFO] [stdout] 124 | | Box::new(Term{}) [INFO] [stdout] 125 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:141:5 [INFO] [stdout] | [INFO] [stdout] 141 | / pub fn new() -> Box> { [INFO] [stdout] 142 | | Box::new(AppExpression{}) [INFO] [stdout] 143 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:157:5 [INFO] [stdout] | [INFO] [stdout] 157 | / pub fn new() -> Box> { [INFO] [stdout] 158 | | Box::new(EmptyExpression5{}) [INFO] [stdout] 159 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:169:5 [INFO] [stdout] | [INFO] [stdout] 169 | / pub fn new() -> Box> { [INFO] [stdout] 170 | | Box::new(Expression5{}) [INFO] [stdout] 171 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:184:5 [INFO] [stdout] | [INFO] [stdout] 184 | / pub fn new() -> Box> { [INFO] [stdout] 185 | | Box::new(Expression4{}) [INFO] [stdout] 186 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:200:5 [INFO] [stdout] | [INFO] [stdout] 200 | / pub fn new() -> Box> { [INFO] [stdout] 201 | | Box::new(MulExpression{}) [INFO] [stdout] 202 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:218:5 [INFO] [stdout] | [INFO] [stdout] 218 | / pub fn new() -> Box> { [INFO] [stdout] 219 | | Box::new(DivExpression{}) [INFO] [stdout] 220 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:236:5 [INFO] [stdout] | [INFO] [stdout] 236 | / pub fn new() -> Box> { [INFO] [stdout] 237 | | Box::new(EmptyExpression3{}) [INFO] [stdout] 238 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:248:5 [INFO] [stdout] | [INFO] [stdout] 248 | / pub fn new() -> Box> { [INFO] [stdout] 249 | | Box::new(Expression3{}) [INFO] [stdout] 250 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:264:5 [INFO] [stdout] | [INFO] [stdout] 264 | / pub fn new() -> Box> { [INFO] [stdout] 265 | | Box::new(Expression2{}) [INFO] [stdout] 266 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:280:5 [INFO] [stdout] | [INFO] [stdout] 280 | / pub fn new() -> Box> { [INFO] [stdout] 281 | | Box::new(AddExpression{}) [INFO] [stdout] 282 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:296:5 [INFO] [stdout] | [INFO] [stdout] 296 | / pub fn new() -> Box> { [INFO] [stdout] 297 | | Box::new(SubExpression{}) [INFO] [stdout] 298 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:312:5 [INFO] [stdout] | [INFO] [stdout] 312 | / pub fn new() -> Box> { [INFO] [stdout] 313 | | Box::new(EmptyExpression1{}) [INFO] [stdout] 314 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:324:5 [INFO] [stdout] | [INFO] [stdout] 324 | / pub fn new() -> Box> { [INFO] [stdout] 325 | | Box::new(Expression1{}) [INFO] [stdout] 326 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:340:5 [INFO] [stdout] | [INFO] [stdout] 340 | / pub fn new() -> Box> { [INFO] [stdout] 341 | | Box::new(Expression{}) [INFO] [stdout] 342 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:357:5 [INFO] [stdout] | [INFO] [stdout] 357 | / pub fn new() -> Box> { [INFO] [stdout] 358 | | Box::new(ExpressionStatement{}) [INFO] [stdout] 359 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:371:5 [INFO] [stdout] | [INFO] [stdout] 371 | / pub fn new() -> Box> { [INFO] [stdout] 372 | | Box::new(AssignmentStatement{}) [INFO] [stdout] 373 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:391:5 [INFO] [stdout] | [INFO] [stdout] 391 | / pub fn new() -> Box> { [INFO] [stdout] 392 | | Box::new(Statement{}) [INFO] [stdout] 393 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:409:5 [INFO] [stdout] | [INFO] [stdout] 409 | / pub fn new() -> Box> { [INFO] [stdout] 410 | | Box::new(SingleExpressionBlock{}) [INFO] [stdout] 411 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:423:5 [INFO] [stdout] | [INFO] [stdout] 423 | / pub fn new() -> Box> { [INFO] [stdout] 424 | | Box::new(MultiExpressionBlock{}) [INFO] [stdout] 425 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/parser/mod.rs:442:5 [INFO] [stdout] | [INFO] [stdout] 442 | / pub fn new() -> Box> { [INFO] [stdout] 443 | | Box::new(Block{}) [INFO] [stdout] 444 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `true` [INFO] [stdout] --> src/interpreter/mod.rs:133:31 [INFO] [stdout] | [INFO] [stdout] 133 | Data::Fun(_, _, _) => assert!(true), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove the assertion [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] = note: `#[warn(clippy::assertions_on_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/interpreter/mod.rs:134:14 [INFO] [stdout] | [INFO] [stdout] 134 | _ => assert!(false), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/interpreter/mod.rs:145:14 [INFO] [stdout] | [INFO] [stdout] 145 | _ => assert!(false), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `true` [INFO] [stdout] --> src/interpreter/mod.rs:160:31 [INFO] [stdout] | [INFO] [stdout] 160 | Data::Fun(_, _, _) => assert!(true), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove the assertion [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/interpreter/mod.rs:161:14 [INFO] [stdout] | [INFO] [stdout] 161 | _ => assert!(false), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/interpreter/mod.rs:172:14 [INFO] [stdout] | [INFO] [stdout] 172 | _ => assert!(false), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `true` [INFO] [stdout] --> src/interpreter/mod.rs:187:31 [INFO] [stdout] | [INFO] [stdout] 187 | Data::Fun(_, _, _) => assert!(true), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove the assertion [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/interpreter/mod.rs:188:14 [INFO] [stdout] | [INFO] [stdout] 188 | _ => assert!(false), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/interpreter/mod.rs:199:14 [INFO] [stdout] | [INFO] [stdout] 199 | _ => assert!(false), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/compiler/mod.rs:67:46 [INFO] [stdout] | [INFO] [stdout] 67 | pub fn compile_block(ast : &BlockAst, code : &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 67 - pub fn compile_block(ast : &BlockAst, code : &mut Vec) { [INFO] [stdout] 67 + pub fn compile_block(ast : &BlockAst, code : &mut [vm::Operator]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/parser/mod.rs:27:24 [INFO] [stdout] | [INFO] [stdout] 27 | let reserved = vec![ [INFO] [stdout] | ________________________^ [INFO] [stdout] 28 | | "if", [INFO] [stdout] 29 | | "then", [INFO] [stdout] 30 | | "else", [INFO] [stdout] 31 | | "end" [INFO] [stdout] 32 | | ]; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 27 ~ let reserved = ["if", [INFO] [stdout] 28 + "then", [INFO] [stdout] 29 + "else", [INFO] [stdout] 30 ~ "end"]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parser/combinator.rs:404:5 [INFO] [stdout] | [INFO] [stdout] 404 | whitespaces.parse(&mut input); [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] 404 | let _ = whitespaces.parse(&mut input); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/parser/combinator.rs:411:5 [INFO] [stdout] | [INFO] [stdout] 411 | whitespaces.parse(&mut input); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 411 | let _ = whitespaces.parse(&mut input); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.61s [INFO] running `Command { std: "docker" "inspect" "53fcf9e63b50ff39b4ed1213b3e0bb8f35b9a3333a4af8c6904bc2ada73d35c8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "53fcf9e63b50ff39b4ed1213b3e0bb8f35b9a3333a4af8c6904bc2ada73d35c8", kill_on_drop: false }` [INFO] [stdout] 53fcf9e63b50ff39b4ed1213b3e0bb8f35b9a3333a4af8c6904bc2ada73d35c8