[INFO] cloning repository https://github.com/zirman/rust-lisp [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/zirman/rust-lisp" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzirman%2Frust-lisp", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzirman%2Frust-lisp'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] afbc27e07d0ce8288c17b3aa23aadb0a7e23dcf5 [INFO] checking zirman/rust-lisp against master#1f12b9b0fdbe735968ac002792a720f0ba4faca6 for crater-rollup-uwu [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzirman%2Frust-lisp" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/zirman/rust-lisp on toolchain 1f12b9b0fdbe735968ac002792a720f0ba4faca6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/zirman/rust-lisp [INFO] finished tweaking git repo https://github.com/zirman/rust-lisp [INFO] tweaked toml for git repo https://github.com/zirman/rust-lisp written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/zirman/rust-lisp 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" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded time v0.1.42 [INFO] [stderr] Downloaded redox_syscall v0.1.56 [INFO] [stderr] Downloaded libc v0.2.62 [INFO] [stderr] Downloaded winapi v0.3.8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 3124a2c36cdaf940859d6d8182fbf41962fc3936c43920e1fc7d42a6c5022d27 [INFO] running `Command { std: "docker" "start" "-a" "3124a2c36cdaf940859d6d8182fbf41962fc3936c43920e1fc7d42a6c5022d27", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3124a2c36cdaf940859d6d8182fbf41962fc3936c43920e1fc7d42a6c5022d27", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3124a2c36cdaf940859d6d8182fbf41962fc3936c43920e1fc7d42a6c5022d27", kill_on_drop: false }` [INFO] [stdout] 3124a2c36cdaf940859d6d8182fbf41962fc3936c43920e1fc7d42a6c5022d27 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 071c6f9e09b64bdf6580bf0e7eb810b063c5bb22c5e59fcdad7d8faa63e99392 [INFO] running `Command { std: "docker" "start" "-a" "071c6f9e09b64bdf6580bf0e7eb810b063c5bb22c5e59fcdad7d8faa63e99392", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.62 [INFO] [stderr] Checking time v0.1.42 [INFO] [stderr] Checking crust v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `LispVal` [INFO] [stdout] --> src/lcr.rs:1:30 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::lisp::{LispError, LispVal, OwnedString, ThrowsError}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Layout` and `dealloc` [INFO] [stdout] --> src/lcr.rs:2:18 [INFO] [stdout] | [INFO] [stdout] 2 | use std::alloc::{dealloc, Layout}; [INFO] [stdout] | ^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BorrowMut` [INFO] [stdout] --> src/lcr.rs:3:27 [INFO] [stdout] | [INFO] [stdout] 3 | use std::borrow::{Borrow, BorrowMut}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::BTreeMap` [INFO] [stdout] --> src/lcr.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::collections::BTreeMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ptr` [INFO] [stdout] --> src/lcr.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::ptr; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::bind::BindMut` [INFO] [stdout] --> src/main.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::bind::BindMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LispContext`, `read_expr`, `show_val`, and `trap_error` [INFO] [stdout] --> src/main.rs:10:19 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::lisp::{read_expr, show_val, trap_error, LispContext}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufRead` and `self` [INFO] [stdout] --> src/main.rs:11:15 [INFO] [stdout] | [INFO] [stdout] 11 | use std::io::{self, BufRead}; [INFO] [stdout] | ^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `LispVal` [INFO] [stdout] --> src/lcr.rs:1:30 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::lisp::{LispError, LispVal, OwnedString, ThrowsError}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Layout` and `dealloc` [INFO] [stdout] --> src/lcr.rs:2:18 [INFO] [stdout] | [INFO] [stdout] 2 | use std::alloc::{dealloc, Layout}; [INFO] [stdout] | ^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BorrowMut` [INFO] [stdout] --> src/lcr.rs:3:27 [INFO] [stdout] | [INFO] [stdout] 3 | use std::borrow::{Borrow, BorrowMut}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::BTreeMap` [INFO] [stdout] --> src/lcr.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::collections::BTreeMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ptr` [INFO] [stdout] --> src/lcr.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::ptr; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::bind::BindMut` [INFO] [stdout] --> src/main.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::bind::BindMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LispContext`, `read_expr`, `show_val`, and `trap_error` [INFO] [stdout] --> src/main.rs:10:19 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::lisp::{read_expr, show_val, trap_error, LispContext}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufRead` and `self` [INFO] [stdout] --> src/main.rs:11:15 [INFO] [stdout] | [INFO] [stdout] 11 | use std::io::{self, BufRead}; [INFO] [stdout] | ^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lcr.rs:86:20 [INFO] [stdout] | [INFO] [stdout] 86 | Ok(mut function) => { [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lcr.rs:276:21 [INFO] [stdout] | [INFO] [stdout] 276 | let mut x = &context[0]; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lcr.rs:86:20 [INFO] [stdout] | [INFO] [stdout] 86 | Ok(mut function) => { [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lcr.rs:276:21 [INFO] [stdout] | [INFO] [stdout] 276 | let mut x = &context[0]; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lcr.rs:324:24 [INFO] [stdout] | [INFO] [stdout] 324 | Ok(mut function) => { [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lcr.rs:540:25 [INFO] [stdout] | [INFO] [stdout] 540 | let mut x = unsafe { &(*context)[0] }; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lcr.rs:324:24 [INFO] [stdout] | [INFO] [stdout] 324 | Ok(mut function) => { [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lcr.rs:540:25 [INFO] [stdout] | [INFO] [stdout] 540 | let mut x = unsafe { &(*context)[0] }; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `bind` is never used [INFO] [stdout] --> src/bind.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub trait Bind [INFO] [stdout] | ---- method in this trait [INFO] [stdout] ... [INFO] [stdout] 5 | fn bind(self, f: F) -> R; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `bind_mut` is never used [INFO] [stdout] --> src/bind.rs:36:8 [INFO] [stdout] | [INFO] [stdout] 32 | pub trait BindMut [INFO] [stdout] | ------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 36 | fn bind_mut(self, f: F) -> R; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `bind` is never used [INFO] [stdout] --> src/bind.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub trait Bind [INFO] [stdout] | ---- method in this trait [INFO] [stdout] ... [INFO] [stdout] 5 | fn bind(self, f: F) -> R; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `bind_mut` is never used [INFO] [stdout] --> src/bind.rs:36:8 [INFO] [stdout] | [INFO] [stdout] 32 | pub trait BindMut [INFO] [stdout] | ------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 36 | fn bind_mut(self, f: F) -> R; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/lcr.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 11 | enum LcrPrimitive { [INFO] [stdout] | ------------ variants in this enum [INFO] [stdout] ... [INFO] [stdout] 15 | String(Rc), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | Sub, [INFO] [stdout] | ^^^ [INFO] [stdout] 22 | CurrySub(i32), [INFO] [stdout] 23 | Mul, [INFO] [stdout] | ^^^ [INFO] [stdout] 24 | CurryMul(i32), [INFO] [stdout] 25 | Div, [INFO] [stdout] | ^^^ [INFO] [stdout] 26 | CurryDiv(i32), [INFO] [stdout] 27 | Mod, [INFO] [stdout] | ^^^ [INFO] [stdout] 28 | CurryMod(i32), [INFO] [stdout] 29 | Eq, [INFO] [stdout] | ^^ [INFO] [stdout] 30 | CurryEq(i32), [INFO] [stdout] 31 | LT, [INFO] [stdout] | ^^ [INFO] [stdout] 32 | CurryLT(i32), [INFO] [stdout] 33 | GT, [INFO] [stdout] | ^^ [INFO] [stdout] 34 | CurryGT(i32), [INFO] [stdout] 35 | NEq, [INFO] [stdout] | ^^^ [INFO] [stdout] 36 | CurryNEq(i32), [INFO] [stdout] 37 | GTE, [INFO] [stdout] | ^^^ [INFO] [stdout] 38 | CurryGTE(i32), [INFO] [stdout] 39 | LTE, [INFO] [stdout] | ^^^ [INFO] [stdout] 40 | CurryLTE(i32), [INFO] [stdout] 41 | And, [INFO] [stdout] | ^^^ [INFO] [stdout] 42 | CurryAnd(bool), [INFO] [stdout] 43 | Or, [INFO] [stdout] | ^^ [INFO] [stdout] 44 | CurryOr(bool), [INFO] [stdout] 45 | Not, [INFO] [stdout] | ^^^ [INFO] [stdout] 46 | StrEq, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 47 | CurryStrEq(Rc), [INFO] [stdout] 48 | StrLT, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 49 | CurryStrLT(Rc), [INFO] [stdout] 50 | StrGT, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 51 | CurryStrGT(Rc), [INFO] [stdout] 52 | StrLTE, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 53 | CurryStrLTE(Rc), [INFO] [stdout] 54 | StrGTE, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LcrPrimitive` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/lcr.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 11 | enum LcrPrimitive { [INFO] [stdout] | ------------ variants in this enum [INFO] [stdout] ... [INFO] [stdout] 15 | String(Rc), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | Sub, [INFO] [stdout] | ^^^ [INFO] [stdout] 22 | CurrySub(i32), [INFO] [stdout] 23 | Mul, [INFO] [stdout] | ^^^ [INFO] [stdout] 24 | CurryMul(i32), [INFO] [stdout] 25 | Div, [INFO] [stdout] | ^^^ [INFO] [stdout] 26 | CurryDiv(i32), [INFO] [stdout] 27 | Mod, [INFO] [stdout] | ^^^ [INFO] [stdout] 28 | CurryMod(i32), [INFO] [stdout] 29 | Eq, [INFO] [stdout] | ^^ [INFO] [stdout] 30 | CurryEq(i32), [INFO] [stdout] 31 | LT, [INFO] [stdout] | ^^ [INFO] [stdout] 32 | CurryLT(i32), [INFO] [stdout] 33 | GT, [INFO] [stdout] | ^^ [INFO] [stdout] 34 | CurryGT(i32), [INFO] [stdout] 35 | NEq, [INFO] [stdout] | ^^^ [INFO] [stdout] 36 | CurryNEq(i32), [INFO] [stdout] 37 | GTE, [INFO] [stdout] | ^^^ [INFO] [stdout] 38 | CurryGTE(i32), [INFO] [stdout] 39 | LTE, [INFO] [stdout] | ^^^ [INFO] [stdout] 40 | CurryLTE(i32), [INFO] [stdout] 41 | And, [INFO] [stdout] | ^^^ [INFO] [stdout] 42 | CurryAnd(bool), [INFO] [stdout] 43 | Or, [INFO] [stdout] | ^^ [INFO] [stdout] 44 | CurryOr(bool), [INFO] [stdout] 45 | Not, [INFO] [stdout] | ^^^ [INFO] [stdout] 46 | StrEq, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 47 | CurryStrEq(Rc), [INFO] [stdout] 48 | StrLT, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 49 | CurryStrLT(Rc), [INFO] [stdout] 50 | StrGT, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 51 | CurryStrGT(Rc), [INFO] [stdout] 52 | StrLTE, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 53 | CurryStrLTE(Rc), [INFO] [stdout] 54 | StrGTE, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LcrPrimitive` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `eval` is never used [INFO] [stdout] --> src/lcr.rs:69:4 [INFO] [stdout] | [INFO] [stdout] 69 | fn eval(lcr: &LCR, context: &LcrContext) -> ThrowsError { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `eval` is never used [INFO] [stdout] --> src/lcr.rs:69:4 [INFO] [stdout] | [INFO] [stdout] 69 | fn eval(lcr: &LCR, context: &LcrContext) -> ThrowsError { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `LispFn` is never constructed [INFO] [stdout] --> src/lisp.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub enum LispVal { [INFO] [stdout] | ------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 21 | LispFn( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LispVal` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `LispFn` is never constructed [INFO] [stdout] --> src/lisp.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub enum LispVal { [INFO] [stdout] | ------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 21 | LispFn( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LispVal` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/lisp.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 30 | pub enum LispError { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 31 | NumArgs(u8, Vec), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 32 | TypeMismatch(&'static str, LispVal), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 33 | ParseError(OwnedString), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 34 | BadSpecialForm(&'static str, LispVal), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 35 | NotFunction(&'static str, OwnedString), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 36 | UnboundVar(OwnedString, OwnedString), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 37 | DivByZero, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LispError` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/lisp.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 30 | pub enum LispError { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 31 | NumArgs(u8, Vec), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 32 | TypeMismatch(&'static str, LispVal), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 33 | ParseError(OwnedString), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 34 | BadSpecialForm(&'static str, LispVal), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 35 | NotFunction(&'static str, OwnedString), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 36 | UnboundVar(OwnedString, OwnedString), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 37 | DivByZero, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LispError` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Void` and `Scope` are never constructed [INFO] [stdout] --> src/lisp.rs:78:5 [INFO] [stdout] | [INFO] [stdout] 77 | pub enum LispContext { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] 78 | Void, [INFO] [stdout] | ^^^^ [INFO] [stdout] 79 | Scope { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LispContext` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Void` and `Scope` are never constructed [INFO] [stdout] --> src/lisp.rs:78:5 [INFO] [stdout] | [INFO] [stdout] 77 | pub enum LispContext { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] 78 | Void, [INFO] [stdout] | ^^^^ [INFO] [stdout] 79 | Scope { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LispContext` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/lisp.rs:86:12 [INFO] [stdout] | [INFO] [stdout] 85 | impl LispContext { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 86 | pub fn new() -> LispContext { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn new_next(next: Rc) -> LispContext { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | fn lookup(&self, name: &str) -> Option<&LispVal> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | fn add(&mut self, name: OwnedString, lisp_val: LispVal) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | fn push(&mut self) -> Rc { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | pub fn eval(&mut self, lisp_expr: &LispVal) -> ThrowsError { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | fn apply_form( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 277 | fn apply_quote(&mut self, lisp_val: &LispVal) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 308 | fn apply_atom(&mut self, name: &str) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/lisp.rs:86:12 [INFO] [stdout] | [INFO] [stdout] 85 | impl LispContext { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 86 | pub fn new() -> LispContext { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn new_next(next: Rc) -> LispContext { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | fn lookup(&self, name: &str) -> Option<&LispVal> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | fn add(&mut self, name: OwnedString, lisp_val: LispVal) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | fn push(&mut self) -> Rc { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | pub fn eval(&mut self, lisp_expr: &LispVal) -> ThrowsError { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | fn apply_form( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 277 | fn apply_quote(&mut self, lisp_val: &LispVal) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 308 | fn apply_atom(&mut self, name: &str) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `collapse_dotted_list` is never used [INFO] [stdout] --> src/lisp.rs:348:4 [INFO] [stdout] | [INFO] [stdout] 348 | fn collapse_dotted_list(head: LispVal, mut tail: &LispVal) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `collapse_dotted_list` is never used [INFO] [stdout] --> src/lisp.rs:348:4 [INFO] [stdout] | [INFO] [stdout] 348 | fn collapse_dotted_list(head: LispVal, mut tail: &LispVal) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_expr` is never used [INFO] [stdout] --> src/lisp.rs:367:8 [INFO] [stdout] | [INFO] [stdout] 367 | pub fn read_expr(source: &str) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_expr` is never used [INFO] [stdout] --> src/lisp.rs:367:8 [INFO] [stdout] | [INFO] [stdout] 367 | pub fn read_expr(source: &str) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `div_op` is never used [INFO] [stdout] --> src/lisp.rs:380:4 [INFO] [stdout] | [INFO] [stdout] 380 | fn div_op(f: F) -> impl Fn(i64, i64) -> ThrowsError [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `div_op` is never used [INFO] [stdout] --> src/lisp.rs:380:4 [INFO] [stdout] | [INFO] [stdout] 380 | fn div_op(f: F) -> impl Fn(i64, i64) -> ThrowsError [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `pack_num_op` is never used [INFO] [stdout] --> src/lisp.rs:393:4 [INFO] [stdout] | [INFO] [stdout] 393 | fn pack_num_op(f: F) -> impl Fn(A, B) -> ThrowsError [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `pack_num_op` is never used [INFO] [stdout] --> src/lisp.rs:393:4 [INFO] [stdout] | [INFO] [stdout] 393 | fn pack_num_op(f: F) -> impl Fn(A, B) -> ThrowsError [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `pack_bool_op` is never used [INFO] [stdout] --> src/lisp.rs:400:4 [INFO] [stdout] | [INFO] [stdout] 400 | fn pack_bool_op(f: F) -> impl Fn(A, B) -> ThrowsError [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `pack_bool_op` is never used [INFO] [stdout] --> src/lisp.rs:400:4 [INFO] [stdout] | [INFO] [stdout] 400 | fn pack_bool_op(f: F) -> impl Fn(A, B) -> ThrowsError [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_num_op` is never used [INFO] [stdout] --> src/lisp.rs:407:4 [INFO] [stdout] | [INFO] [stdout] 407 | fn unpack_num_op(f: F) -> impl Fn(&LispVal, &LispVal) -> ThrowsError [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_num_op` is never used [INFO] [stdout] --> src/lisp.rs:407:4 [INFO] [stdout] | [INFO] [stdout] 407 | fn unpack_num_op(f: F) -> impl Fn(&LispVal, &LispVal) -> ThrowsError [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_bool_op` is never used [INFO] [stdout] --> src/lisp.rs:416:4 [INFO] [stdout] | [INFO] [stdout] 416 | fn unpack_bool_op(f: F) -> impl Fn(&LispVal, &LispVal) -> ThrowsError [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_bool_op` is never used [INFO] [stdout] --> src/lisp.rs:416:4 [INFO] [stdout] | [INFO] [stdout] 416 | fn unpack_bool_op(f: F) -> impl Fn(&LispVal, &LispVal) -> ThrowsError [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `apply_fn` is never used [INFO] [stdout] --> src/lisp.rs:425:4 [INFO] [stdout] | [INFO] [stdout] 425 | fn apply_fn(func: &str, args: &[LispVal]) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `apply_fn` is never used [INFO] [stdout] --> src/lisp.rs:425:4 [INFO] [stdout] | [INFO] [stdout] 425 | fn apply_fn(func: &str, args: &[LispVal]) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `show_error` is never used [INFO] [stdout] --> src/lisp.rs:456:4 [INFO] [stdout] | [INFO] [stdout] 456 | fn show_error(error: LispError) -> OwnedString { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `show_error` is never used [INFO] [stdout] --> src/lisp.rs:456:4 [INFO] [stdout] | [INFO] [stdout] 456 | fn show_error(error: LispError) -> OwnedString { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `list_op` is never used [INFO] [stdout] --> src/lisp.rs:494:4 [INFO] [stdout] | [INFO] [stdout] 494 | fn list_op(f: F) -> impl Fn(&LispVal) -> ThrowsError [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `list_op` is never used [INFO] [stdout] --> src/lisp.rs:494:4 [INFO] [stdout] | [INFO] [stdout] 494 | fn list_op(f: F) -> impl Fn(&LispVal) -> ThrowsError [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unary_op` is never used [INFO] [stdout] --> src/lisp.rs:511:4 [INFO] [stdout] | [INFO] [stdout] 511 | fn unary_op(f: F) -> impl Fn(&[LispVal]) -> ThrowsError [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unary_op` is never used [INFO] [stdout] --> src/lisp.rs:511:4 [INFO] [stdout] | [INFO] [stdout] 511 | fn unary_op(f: F) -> impl Fn(&[LispVal]) -> ThrowsError [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `binary_op` is never used [INFO] [stdout] --> src/lisp.rs:524:4 [INFO] [stdout] | [INFO] [stdout] 524 | fn binary_op(f: F) -> impl Fn(&str, &[LispVal]) -> ThrowsError [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `binary_op` is never used [INFO] [stdout] --> src/lisp.rs:524:4 [INFO] [stdout] | [INFO] [stdout] 524 | fn binary_op(f: F) -> impl Fn(&str, &[LispVal]) -> ThrowsError [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `string_to_bool_op` is never used [INFO] [stdout] --> src/lisp.rs:542:4 [INFO] [stdout] | [INFO] [stdout] 542 | fn string_to_bool_op(f: F) -> impl Fn(&LispVal, &LispVal) -> ThrowsError [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `string_to_bool_op` is never used [INFO] [stdout] --> src/lisp.rs:542:4 [INFO] [stdout] | [INFO] [stdout] 542 | fn string_to_bool_op(f: F) -> impl Fn(&LispVal, &LispVal) -> ThrowsError [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_num` is never used [INFO] [stdout] --> src/lisp.rs:551:4 [INFO] [stdout] | [INFO] [stdout] 551 | fn unpack_num(lisp_val: &LispVal) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_num` is never used [INFO] [stdout] --> src/lisp.rs:551:4 [INFO] [stdout] | [INFO] [stdout] 551 | fn unpack_num(lisp_val: &LispVal) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_bool` is never used [INFO] [stdout] --> src/lisp.rs:558:4 [INFO] [stdout] | [INFO] [stdout] 558 | fn unpack_bool(lisp_val: &LispVal) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_bool` is never used [INFO] [stdout] --> src/lisp.rs:558:4 [INFO] [stdout] | [INFO] [stdout] 558 | fn unpack_bool(lisp_val: &LispVal) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_atom` is never used [INFO] [stdout] --> src/lisp.rs:565:4 [INFO] [stdout] | [INFO] [stdout] 565 | fn unpack_atom(lisp_val: &LispVal) -> ThrowsError<&str> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_atom` is never used [INFO] [stdout] --> src/lisp.rs:565:4 [INFO] [stdout] | [INFO] [stdout] 565 | fn unpack_atom(lisp_val: &LispVal) -> ThrowsError<&str> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_list_ref` is never used [INFO] [stdout] --> src/lisp.rs:572:4 [INFO] [stdout] | [INFO] [stdout] 572 | fn unpack_list_ref(lisp_val: &LispVal) -> ThrowsError<&[LispVal]> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_list_ref` is never used [INFO] [stdout] --> src/lisp.rs:572:4 [INFO] [stdout] | [INFO] [stdout] 572 | fn unpack_list_ref(lisp_val: &LispVal) -> ThrowsError<&[LispVal]> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_list_of_atoms` is never used [INFO] [stdout] --> src/lisp.rs:579:4 [INFO] [stdout] | [INFO] [stdout] 579 | fn unpack_list_of_atoms(lisp_vals: &[LispVal]) -> ThrowsError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_list_of_atoms` is never used [INFO] [stdout] --> src/lisp.rs:579:4 [INFO] [stdout] | [INFO] [stdout] 579 | fn unpack_list_of_atoms(lisp_vals: &[LispVal]) -> ThrowsError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_dotted_list` is never used [INFO] [stdout] --> src/lisp.rs:590:4 [INFO] [stdout] | [INFO] [stdout] 590 | fn unpack_dotted_list(lisp_val: &LispVal) -> ThrowsError<(&LispVal, &LispVal)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_dotted_list` is never used [INFO] [stdout] --> src/lisp.rs:590:4 [INFO] [stdout] | [INFO] [stdout] 590 | fn unpack_dotted_list(lisp_val: &LispVal) -> ThrowsError<(&LispVal, &LispVal)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_string` is never used [INFO] [stdout] --> src/lisp.rs:597:4 [INFO] [stdout] | [INFO] [stdout] 597 | fn unpack_string(lisp_val: &LispVal) -> ThrowsError<&str> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_string` is never used [INFO] [stdout] --> src/lisp.rs:597:4 [INFO] [stdout] | [INFO] [stdout] 597 | fn unpack_string(lisp_val: &LispVal) -> ThrowsError<&str> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `trap_error` is never used [INFO] [stdout] --> src/lisp.rs:604:8 [INFO] [stdout] | [INFO] [stdout] 604 | pub fn trap_error(action: ThrowsError) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `trap_error` is never used [INFO] [stdout] --> src/lisp.rs:604:8 [INFO] [stdout] | [INFO] [stdout] 604 | pub fn trap_error(action: ThrowsError) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `map_err_mut` is never used [INFO] [stdout] --> src/lisp.rs:612:4 [INFO] [stdout] | [INFO] [stdout] 612 | fn map_err_mut(iter: &[LispVal], mut f: F) -> ThrowsError> [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `map_err_mut` is never used [INFO] [stdout] --> src/lisp.rs:612:4 [INFO] [stdout] | [INFO] [stdout] 612 | fn map_err_mut(iter: &[LispVal], mut f: F) -> ThrowsError> [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `lisp_vals_to_string` is never used [INFO] [stdout] --> src/lisp.rs:626:8 [INFO] [stdout] | [INFO] [stdout] 626 | pub fn lisp_vals_to_string(items: &[LispVal]) -> OwnedString { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `lisp_vals_to_string` is never used [INFO] [stdout] --> src/lisp.rs:626:8 [INFO] [stdout] | [INFO] [stdout] 626 | pub fn lisp_vals_to_string(items: &[LispVal]) -> OwnedString { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `show_val` is never used [INFO] [stdout] --> src/lisp.rs:634:8 [INFO] [stdout] | [INFO] [stdout] 634 | pub fn show_val(val: &LispVal) -> OwnedString { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `show_val` is never used [INFO] [stdout] --> src/lisp.rs:634:8 [INFO] [stdout] | [INFO] [stdout] 634 | pub fn show_val(val: &LispVal) -> OwnedString { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `pure` is never used [INFO] [stdout] --> src/parse.rs:252:8 [INFO] [stdout] | [INFO] [stdout] 252 | pub fn pure(x: A) -> impl Parser { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `pure` is never used [INFO] [stdout] --> src/parse.rs:252:8 [INFO] [stdout] | [INFO] [stdout] 252 | pub fn pure(x: A) -> impl Parser { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `end_by` is never used [INFO] [stdout] --> src/parse.rs:421:8 [INFO] [stdout] | [INFO] [stdout] 421 | pub fn end_by(pa: PA, ps: PS) -> impl Parser> [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `end_by` is never used [INFO] [stdout] --> src/parse.rs:421:8 [INFO] [stdout] | [INFO] [stdout] 421 | pub fn end_by(pa: PA, ps: PS) -> impl Parser> [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> src/lcr.rs:336:53 [INFO] [stdout] | [INFO] [stdout] 336 | ... Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 336 | let _ = Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> src/lcr.rs:358:53 [INFO] [stdout] | [INFO] [stdout] 358 | ... Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 358 | let _ = Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> src/lcr.rs:552:41 [INFO] [stdout] | [INFO] [stdout] 552 | ... Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 552 | let _ = Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> src/lcr.rs:336:53 [INFO] [stdout] | [INFO] [stdout] 336 | ... Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 336 | let _ = Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> src/lcr.rs:579:17 [INFO] [stdout] | [INFO] [stdout] 579 | Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 579 | let _ = Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> src/lcr.rs:358:53 [INFO] [stdout] | [INFO] [stdout] 358 | ... Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 358 | let _ = Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> src/lcr.rs:552:41 [INFO] [stdout] | [INFO] [stdout] 552 | ... Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 552 | let _ = Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> src/lcr.rs:579:17 [INFO] [stdout] | [INFO] [stdout] 579 | Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 579 | let _ = Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 50 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 50 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.77s [INFO] running `Command { std: "docker" "inspect" "071c6f9e09b64bdf6580bf0e7eb810b063c5bb22c5e59fcdad7d8faa63e99392", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "071c6f9e09b64bdf6580bf0e7eb810b063c5bb22c5e59fcdad7d8faa63e99392", kill_on_drop: false }` [INFO] [stdout] 071c6f9e09b64bdf6580bf0e7eb810b063c5bb22c5e59fcdad7d8faa63e99392 [INFO] checking zirman/rust-lisp against try#f9935d29d867449445ee008640ccca1bf1ae0889+rustflags=-Dtail_expr_drop_order for crater-rollup-uwu [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzirman%2Frust-lisp" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/zirman/rust-lisp on toolchain f9935d29d867449445ee008640ccca1bf1ae0889 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9935d29d867449445ee008640ccca1bf1ae0889" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/zirman/rust-lisp [INFO] finished tweaking git repo https://github.com/zirman/rust-lisp [INFO] tweaked toml for git repo https://github.com/zirman/rust-lisp written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/zirman/rust-lisp 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" "+f9935d29d867449445ee008640ccca1bf1ae0889" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+f9935d29d867449445ee008640ccca1bf1ae0889" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 2b4c5649ef332ecae20c6f44b711ab8207e02d533143b4672fb2a70ecde3fdb7 [INFO] running `Command { std: "docker" "start" "-a" "2b4c5649ef332ecae20c6f44b711ab8207e02d533143b4672fb2a70ecde3fdb7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2b4c5649ef332ecae20c6f44b711ab8207e02d533143b4672fb2a70ecde3fdb7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2b4c5649ef332ecae20c6f44b711ab8207e02d533143b4672fb2a70ecde3fdb7", kill_on_drop: false }` [INFO] [stdout] 2b4c5649ef332ecae20c6f44b711ab8207e02d533143b4672fb2a70ecde3fdb7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dtail_expr_drop_order" "-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+f9935d29d867449445ee008640ccca1bf1ae0889" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c446a0edcedeae9709d9de61978d8f63295e6b460415a69e350eb96f8d99c6f6 [INFO] running `Command { std: "docker" "start" "-a" "c446a0edcedeae9709d9de61978d8f63295e6b460415a69e350eb96f8d99c6f6", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.62 [INFO] [stderr] Checking time v0.1.42 [INFO] [stderr] Checking crust v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `LispVal` [INFO] [stdout] --> src/lcr.rs:1:30 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::lisp::{LispError, LispVal, OwnedString, ThrowsError}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `LispVal` [INFO] [stdout] --> src/lcr.rs:1:30 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::lisp::{LispError, LispVal, OwnedString, ThrowsError}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Layout` and `dealloc` [INFO] [stdout] --> src/lcr.rs:2:18 [INFO] [stdout] | [INFO] [stdout] 2 | use std::alloc::{dealloc, Layout}; [INFO] [stdout] | ^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BorrowMut` [INFO] [stdout] --> src/lcr.rs:3:27 [INFO] [stdout] | [INFO] [stdout] 3 | use std::borrow::{Borrow, BorrowMut}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Layout` and `dealloc` [INFO] [stdout] --> src/lcr.rs:2:18 [INFO] [stdout] | [INFO] [stdout] 2 | use std::alloc::{dealloc, Layout}; [INFO] [stdout] | ^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::BTreeMap` [INFO] [stdout] --> src/lcr.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::collections::BTreeMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BorrowMut` [INFO] [stdout] --> src/lcr.rs:3:27 [INFO] [stdout] | [INFO] [stdout] 3 | use std::borrow::{Borrow, BorrowMut}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ptr` [INFO] [stdout] --> src/lcr.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::ptr; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::BTreeMap` [INFO] [stdout] --> src/lcr.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::collections::BTreeMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ptr` [INFO] [stdout] --> src/lcr.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::ptr; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::bind::BindMut` [INFO] [stdout] --> src/main.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::bind::BindMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::bind::BindMut` [INFO] [stdout] --> src/main.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::bind::BindMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LispContext`, `read_expr`, `show_val`, and `trap_error` [INFO] [stdout] --> src/main.rs:10:19 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::lisp::{read_expr, show_val, trap_error, LispContext}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LispContext`, `read_expr`, `show_val`, and `trap_error` [INFO] [stdout] --> src/main.rs:10:19 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::lisp::{read_expr, show_val, trap_error, LispContext}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufRead` and `self` [INFO] [stdout] --> src/main.rs:11:15 [INFO] [stdout] | [INFO] [stdout] 11 | use std::io::{self, BufRead}; [INFO] [stdout] | ^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufRead` and `self` [INFO] [stdout] --> src/main.rs:11:15 [INFO] [stdout] | [INFO] [stdout] 11 | use std::io::{self, BufRead}; [INFO] [stdout] | ^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lcr.rs:86:20 [INFO] [stdout] | [INFO] [stdout] 86 | Ok(mut function) => { [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lcr.rs:276:21 [INFO] [stdout] | [INFO] [stdout] 276 | let mut x = &context[0]; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lcr.rs:86:20 [INFO] [stdout] | [INFO] [stdout] 86 | Ok(mut function) => { [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lcr.rs:276:21 [INFO] [stdout] | [INFO] [stdout] 276 | let mut x = &context[0]; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lcr.rs:324:24 [INFO] [stdout] | [INFO] [stdout] 324 | Ok(mut function) => { [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lcr.rs:540:25 [INFO] [stdout] | [INFO] [stdout] 540 | let mut x = unsafe { &(*context)[0] }; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lcr.rs:324:24 [INFO] [stdout] | [INFO] [stdout] 324 | Ok(mut function) => { [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lcr.rs:540:25 [INFO] [stdout] | [INFO] [stdout] 540 | let mut x = unsafe { &(*context)[0] }; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `bind` is never used [INFO] [stdout] --> src/bind.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub trait Bind [INFO] [stdout] | ---- method in this trait [INFO] [stdout] ... [INFO] [stdout] 5 | fn bind(self, f: F) -> R; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `bind_mut` is never used [INFO] [stdout] --> src/bind.rs:36:8 [INFO] [stdout] | [INFO] [stdout] 32 | pub trait BindMut [INFO] [stdout] | ------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 36 | fn bind_mut(self, f: F) -> R; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/lcr.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 11 | enum LcrPrimitive { [INFO] [stdout] | ------------ variants in this enum [INFO] [stdout] ... [INFO] [stdout] 15 | String(Rc), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | Sub, [INFO] [stdout] | ^^^ [INFO] [stdout] 22 | CurrySub(i32), [INFO] [stdout] 23 | Mul, [INFO] [stdout] | ^^^ [INFO] [stdout] 24 | CurryMul(i32), [INFO] [stdout] 25 | Div, [INFO] [stdout] | ^^^ [INFO] [stdout] 26 | CurryDiv(i32), [INFO] [stdout] 27 | Mod, [INFO] [stdout] | ^^^ [INFO] [stdout] 28 | CurryMod(i32), [INFO] [stdout] 29 | Eq, [INFO] [stdout] | ^^ [INFO] [stdout] 30 | CurryEq(i32), [INFO] [stdout] 31 | LT, [INFO] [stdout] | ^^ [INFO] [stdout] 32 | CurryLT(i32), [INFO] [stdout] 33 | GT, [INFO] [stdout] | ^^ [INFO] [stdout] 34 | CurryGT(i32), [INFO] [stdout] 35 | NEq, [INFO] [stdout] | ^^^ [INFO] [stdout] 36 | CurryNEq(i32), [INFO] [stdout] 37 | GTE, [INFO] [stdout] | ^^^ [INFO] [stdout] 38 | CurryGTE(i32), [INFO] [stdout] 39 | LTE, [INFO] [stdout] | ^^^ [INFO] [stdout] 40 | CurryLTE(i32), [INFO] [stdout] 41 | And, [INFO] [stdout] | ^^^ [INFO] [stdout] 42 | CurryAnd(bool), [INFO] [stdout] 43 | Or, [INFO] [stdout] | ^^ [INFO] [stdout] 44 | CurryOr(bool), [INFO] [stdout] 45 | Not, [INFO] [stdout] | ^^^ [INFO] [stdout] 46 | StrEq, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 47 | CurryStrEq(Rc), [INFO] [stdout] 48 | StrLT, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 49 | CurryStrLT(Rc), [INFO] [stdout] 50 | StrGT, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 51 | CurryStrGT(Rc), [INFO] [stdout] 52 | StrLTE, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 53 | CurryStrLTE(Rc), [INFO] [stdout] 54 | StrGTE, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LcrPrimitive` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `eval` is never used [INFO] [stdout] --> src/lcr.rs:69:4 [INFO] [stdout] | [INFO] [stdout] 69 | fn eval(lcr: &LCR, context: &LcrContext) -> ThrowsError { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `LispFn` is never constructed [INFO] [stdout] --> src/lisp.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub enum LispVal { [INFO] [stdout] | ------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 21 | LispFn( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LispVal` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/lisp.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 30 | pub enum LispError { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 31 | NumArgs(u8, Vec), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 32 | TypeMismatch(&'static str, LispVal), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 33 | ParseError(OwnedString), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 34 | BadSpecialForm(&'static str, LispVal), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 35 | NotFunction(&'static str, OwnedString), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 36 | UnboundVar(OwnedString, OwnedString), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 37 | DivByZero, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LispError` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Void` and `Scope` are never constructed [INFO] [stdout] --> src/lisp.rs:78:5 [INFO] [stdout] | [INFO] [stdout] 77 | pub enum LispContext { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] 78 | Void, [INFO] [stdout] | ^^^^ [INFO] [stdout] 79 | Scope { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LispContext` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/lisp.rs:86:12 [INFO] [stdout] | [INFO] [stdout] 85 | impl LispContext { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 86 | pub fn new() -> LispContext { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn new_next(next: Rc) -> LispContext { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | fn lookup(&self, name: &str) -> Option<&LispVal> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | fn add(&mut self, name: OwnedString, lisp_val: LispVal) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | fn push(&mut self) -> Rc { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | pub fn eval(&mut self, lisp_expr: &LispVal) -> ThrowsError { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | fn apply_form( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 277 | fn apply_quote(&mut self, lisp_val: &LispVal) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 308 | fn apply_atom(&mut self, name: &str) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `collapse_dotted_list` is never used [INFO] [stdout] --> src/lisp.rs:348:4 [INFO] [stdout] | [INFO] [stdout] 348 | fn collapse_dotted_list(head: LispVal, mut tail: &LispVal) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_expr` is never used [INFO] [stdout] --> src/lisp.rs:367:8 [INFO] [stdout] | [INFO] [stdout] 367 | pub fn read_expr(source: &str) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `div_op` is never used [INFO] [stdout] --> src/lisp.rs:380:4 [INFO] [stdout] | [INFO] [stdout] 380 | fn div_op(f: F) -> impl Fn(i64, i64) -> ThrowsError [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `pack_num_op` is never used [INFO] [stdout] --> src/lisp.rs:393:4 [INFO] [stdout] | [INFO] [stdout] 393 | fn pack_num_op(f: F) -> impl Fn(A, B) -> ThrowsError [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `pack_bool_op` is never used [INFO] [stdout] --> src/lisp.rs:400:4 [INFO] [stdout] | [INFO] [stdout] 400 | fn pack_bool_op(f: F) -> impl Fn(A, B) -> ThrowsError [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_num_op` is never used [INFO] [stdout] --> src/lisp.rs:407:4 [INFO] [stdout] | [INFO] [stdout] 407 | fn unpack_num_op(f: F) -> impl Fn(&LispVal, &LispVal) -> ThrowsError [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_bool_op` is never used [INFO] [stdout] --> src/lisp.rs:416:4 [INFO] [stdout] | [INFO] [stdout] 416 | fn unpack_bool_op(f: F) -> impl Fn(&LispVal, &LispVal) -> ThrowsError [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `apply_fn` is never used [INFO] [stdout] --> src/lisp.rs:425:4 [INFO] [stdout] | [INFO] [stdout] 425 | fn apply_fn(func: &str, args: &[LispVal]) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `show_error` is never used [INFO] [stdout] --> src/lisp.rs:456:4 [INFO] [stdout] | [INFO] [stdout] 456 | fn show_error(error: LispError) -> OwnedString { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `list_op` is never used [INFO] [stdout] --> src/lisp.rs:494:4 [INFO] [stdout] | [INFO] [stdout] 494 | fn list_op(f: F) -> impl Fn(&LispVal) -> ThrowsError [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unary_op` is never used [INFO] [stdout] --> src/lisp.rs:511:4 [INFO] [stdout] | [INFO] [stdout] 511 | fn unary_op(f: F) -> impl Fn(&[LispVal]) -> ThrowsError [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `binary_op` is never used [INFO] [stdout] --> src/lisp.rs:524:4 [INFO] [stdout] | [INFO] [stdout] 524 | fn binary_op(f: F) -> impl Fn(&str, &[LispVal]) -> ThrowsError [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `string_to_bool_op` is never used [INFO] [stdout] --> src/lisp.rs:542:4 [INFO] [stdout] | [INFO] [stdout] 542 | fn string_to_bool_op(f: F) -> impl Fn(&LispVal, &LispVal) -> ThrowsError [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_num` is never used [INFO] [stdout] --> src/lisp.rs:551:4 [INFO] [stdout] | [INFO] [stdout] 551 | fn unpack_num(lisp_val: &LispVal) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_bool` is never used [INFO] [stdout] --> src/lisp.rs:558:4 [INFO] [stdout] | [INFO] [stdout] 558 | fn unpack_bool(lisp_val: &LispVal) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_atom` is never used [INFO] [stdout] --> src/lisp.rs:565:4 [INFO] [stdout] | [INFO] [stdout] 565 | fn unpack_atom(lisp_val: &LispVal) -> ThrowsError<&str> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_list_ref` is never used [INFO] [stdout] --> src/lisp.rs:572:4 [INFO] [stdout] | [INFO] [stdout] 572 | fn unpack_list_ref(lisp_val: &LispVal) -> ThrowsError<&[LispVal]> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_list_of_atoms` is never used [INFO] [stdout] --> src/lisp.rs:579:4 [INFO] [stdout] | [INFO] [stdout] 579 | fn unpack_list_of_atoms(lisp_vals: &[LispVal]) -> ThrowsError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_dotted_list` is never used [INFO] [stdout] --> src/lisp.rs:590:4 [INFO] [stdout] | [INFO] [stdout] 590 | fn unpack_dotted_list(lisp_val: &LispVal) -> ThrowsError<(&LispVal, &LispVal)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_string` is never used [INFO] [stdout] --> src/lisp.rs:597:4 [INFO] [stdout] | [INFO] [stdout] 597 | fn unpack_string(lisp_val: &LispVal) -> ThrowsError<&str> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `trap_error` is never used [INFO] [stdout] --> src/lisp.rs:604:8 [INFO] [stdout] | [INFO] [stdout] 604 | pub fn trap_error(action: ThrowsError) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `map_err_mut` is never used [INFO] [stdout] --> src/lisp.rs:612:4 [INFO] [stdout] | [INFO] [stdout] 612 | fn map_err_mut(iter: &[LispVal], mut f: F) -> ThrowsError> [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `lisp_vals_to_string` is never used [INFO] [stdout] --> src/lisp.rs:626:8 [INFO] [stdout] | [INFO] [stdout] 626 | pub fn lisp_vals_to_string(items: &[LispVal]) -> OwnedString { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `show_val` is never used [INFO] [stdout] --> src/lisp.rs:634:8 [INFO] [stdout] | [INFO] [stdout] 634 | pub fn show_val(val: &LispVal) -> OwnedString { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `pure` is never used [INFO] [stdout] --> src/parse.rs:252:8 [INFO] [stdout] | [INFO] [stdout] 252 | pub fn pure(x: A) -> impl Parser { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `bind` is never used [INFO] [stdout] --> src/bind.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub trait Bind [INFO] [stdout] | ---- method in this trait [INFO] [stdout] ... [INFO] [stdout] 5 | fn bind(self, f: F) -> R; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `end_by` is never used [INFO] [stdout] --> src/parse.rs:421:8 [INFO] [stdout] | [INFO] [stdout] 421 | pub fn end_by(pa: PA, ps: PS) -> impl Parser> [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `bind_mut` is never used [INFO] [stdout] --> src/bind.rs:36:8 [INFO] [stdout] | [INFO] [stdout] 32 | pub trait BindMut [INFO] [stdout] | ------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 36 | fn bind_mut(self, f: F) -> R; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/lcr.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 11 | enum LcrPrimitive { [INFO] [stdout] | ------------ variants in this enum [INFO] [stdout] ... [INFO] [stdout] 15 | String(Rc), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | Sub, [INFO] [stdout] | ^^^ [INFO] [stdout] 22 | CurrySub(i32), [INFO] [stdout] 23 | Mul, [INFO] [stdout] | ^^^ [INFO] [stdout] 24 | CurryMul(i32), [INFO] [stdout] 25 | Div, [INFO] [stdout] | ^^^ [INFO] [stdout] 26 | CurryDiv(i32), [INFO] [stdout] 27 | Mod, [INFO] [stdout] | ^^^ [INFO] [stdout] 28 | CurryMod(i32), [INFO] [stdout] 29 | Eq, [INFO] [stdout] | ^^ [INFO] [stdout] 30 | CurryEq(i32), [INFO] [stdout] 31 | LT, [INFO] [stdout] | ^^ [INFO] [stdout] 32 | CurryLT(i32), [INFO] [stdout] 33 | GT, [INFO] [stdout] | ^^ [INFO] [stdout] 34 | CurryGT(i32), [INFO] [stdout] 35 | NEq, [INFO] [stdout] | ^^^ [INFO] [stdout] 36 | CurryNEq(i32), [INFO] [stdout] 37 | GTE, [INFO] [stdout] | ^^^ [INFO] [stdout] 38 | CurryGTE(i32), [INFO] [stdout] 39 | LTE, [INFO] [stdout] | ^^^ [INFO] [stdout] 40 | CurryLTE(i32), [INFO] [stdout] 41 | And, [INFO] [stdout] | ^^^ [INFO] [stdout] 42 | CurryAnd(bool), [INFO] [stdout] 43 | Or, [INFO] [stdout] | ^^ [INFO] [stdout] 44 | CurryOr(bool), [INFO] [stdout] 45 | Not, [INFO] [stdout] | ^^^ [INFO] [stdout] 46 | StrEq, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 47 | CurryStrEq(Rc), [INFO] [stdout] 48 | StrLT, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 49 | CurryStrLT(Rc), [INFO] [stdout] 50 | StrGT, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 51 | CurryStrGT(Rc), [INFO] [stdout] 52 | StrLTE, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 53 | CurryStrLTE(Rc), [INFO] [stdout] 54 | StrGTE, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LcrPrimitive` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `eval` is never used [INFO] [stdout] --> src/lcr.rs:69:4 [INFO] [stdout] | [INFO] [stdout] 69 | fn eval(lcr: &LCR, context: &LcrContext) -> ThrowsError { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `LispFn` is never constructed [INFO] [stdout] --> src/lisp.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub enum LispVal { [INFO] [stdout] | ------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 21 | LispFn( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LispVal` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/lisp.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 30 | pub enum LispError { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 31 | NumArgs(u8, Vec), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 32 | TypeMismatch(&'static str, LispVal), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 33 | ParseError(OwnedString), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 34 | BadSpecialForm(&'static str, LispVal), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 35 | NotFunction(&'static str, OwnedString), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 36 | UnboundVar(OwnedString, OwnedString), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 37 | DivByZero, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LispError` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Void` and `Scope` are never constructed [INFO] [stdout] --> src/lisp.rs:78:5 [INFO] [stdout] | [INFO] [stdout] 77 | pub enum LispContext { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] 78 | Void, [INFO] [stdout] | ^^^^ [INFO] [stdout] 79 | Scope { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LispContext` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/lisp.rs:86:12 [INFO] [stdout] | [INFO] [stdout] 85 | impl LispContext { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 86 | pub fn new() -> LispContext { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn new_next(next: Rc) -> LispContext { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | fn lookup(&self, name: &str) -> Option<&LispVal> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | fn add(&mut self, name: OwnedString, lisp_val: LispVal) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | fn push(&mut self) -> Rc { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | pub fn eval(&mut self, lisp_expr: &LispVal) -> ThrowsError { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | fn apply_form( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 277 | fn apply_quote(&mut self, lisp_val: &LispVal) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 308 | fn apply_atom(&mut self, name: &str) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `collapse_dotted_list` is never used [INFO] [stdout] --> src/lisp.rs:348:4 [INFO] [stdout] | [INFO] [stdout] 348 | fn collapse_dotted_list(head: LispVal, mut tail: &LispVal) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_expr` is never used [INFO] [stdout] --> src/lisp.rs:367:8 [INFO] [stdout] | [INFO] [stdout] 367 | pub fn read_expr(source: &str) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `div_op` is never used [INFO] [stdout] --> src/lisp.rs:380:4 [INFO] [stdout] | [INFO] [stdout] 380 | fn div_op(f: F) -> impl Fn(i64, i64) -> ThrowsError [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `pack_num_op` is never used [INFO] [stdout] --> src/lisp.rs:393:4 [INFO] [stdout] | [INFO] [stdout] 393 | fn pack_num_op(f: F) -> impl Fn(A, B) -> ThrowsError [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `pack_bool_op` is never used [INFO] [stdout] --> src/lisp.rs:400:4 [INFO] [stdout] | [INFO] [stdout] 400 | fn pack_bool_op(f: F) -> impl Fn(A, B) -> ThrowsError [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_num_op` is never used [INFO] [stdout] --> src/lisp.rs:407:4 [INFO] [stdout] | [INFO] [stdout] 407 | fn unpack_num_op(f: F) -> impl Fn(&LispVal, &LispVal) -> ThrowsError [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_bool_op` is never used [INFO] [stdout] --> src/lisp.rs:416:4 [INFO] [stdout] | [INFO] [stdout] 416 | fn unpack_bool_op(f: F) -> impl Fn(&LispVal, &LispVal) -> ThrowsError [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `apply_fn` is never used [INFO] [stdout] --> src/lisp.rs:425:4 [INFO] [stdout] | [INFO] [stdout] 425 | fn apply_fn(func: &str, args: &[LispVal]) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `show_error` is never used [INFO] [stdout] --> src/lisp.rs:456:4 [INFO] [stdout] | [INFO] [stdout] 456 | fn show_error(error: LispError) -> OwnedString { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `list_op` is never used [INFO] [stdout] --> src/lisp.rs:494:4 [INFO] [stdout] | [INFO] [stdout] 494 | fn list_op(f: F) -> impl Fn(&LispVal) -> ThrowsError [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unary_op` is never used [INFO] [stdout] --> src/lisp.rs:511:4 [INFO] [stdout] | [INFO] [stdout] 511 | fn unary_op(f: F) -> impl Fn(&[LispVal]) -> ThrowsError [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `binary_op` is never used [INFO] [stdout] --> src/lisp.rs:524:4 [INFO] [stdout] | [INFO] [stdout] 524 | fn binary_op(f: F) -> impl Fn(&str, &[LispVal]) -> ThrowsError [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `string_to_bool_op` is never used [INFO] [stdout] --> src/lisp.rs:542:4 [INFO] [stdout] | [INFO] [stdout] 542 | fn string_to_bool_op(f: F) -> impl Fn(&LispVal, &LispVal) -> ThrowsError [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_num` is never used [INFO] [stdout] --> src/lisp.rs:551:4 [INFO] [stdout] | [INFO] [stdout] 551 | fn unpack_num(lisp_val: &LispVal) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_bool` is never used [INFO] [stdout] --> src/lisp.rs:558:4 [INFO] [stdout] | [INFO] [stdout] 558 | fn unpack_bool(lisp_val: &LispVal) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_atom` is never used [INFO] [stdout] --> src/lisp.rs:565:4 [INFO] [stdout] | [INFO] [stdout] 565 | fn unpack_atom(lisp_val: &LispVal) -> ThrowsError<&str> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_list_ref` is never used [INFO] [stdout] --> src/lisp.rs:572:4 [INFO] [stdout] | [INFO] [stdout] 572 | fn unpack_list_ref(lisp_val: &LispVal) -> ThrowsError<&[LispVal]> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_list_of_atoms` is never used [INFO] [stdout] --> src/lisp.rs:579:4 [INFO] [stdout] | [INFO] [stdout] 579 | fn unpack_list_of_atoms(lisp_vals: &[LispVal]) -> ThrowsError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_dotted_list` is never used [INFO] [stdout] --> src/lisp.rs:590:4 [INFO] [stdout] | [INFO] [stdout] 590 | fn unpack_dotted_list(lisp_val: &LispVal) -> ThrowsError<(&LispVal, &LispVal)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unpack_string` is never used [INFO] [stdout] --> src/lisp.rs:597:4 [INFO] [stdout] | [INFO] [stdout] 597 | fn unpack_string(lisp_val: &LispVal) -> ThrowsError<&str> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `trap_error` is never used [INFO] [stdout] --> src/lisp.rs:604:8 [INFO] [stdout] | [INFO] [stdout] 604 | pub fn trap_error(action: ThrowsError) -> ThrowsError { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `map_err_mut` is never used [INFO] [stdout] --> src/lisp.rs:612:4 [INFO] [stdout] | [INFO] [stdout] 612 | fn map_err_mut(iter: &[LispVal], mut f: F) -> ThrowsError> [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `lisp_vals_to_string` is never used [INFO] [stdout] --> src/lisp.rs:626:8 [INFO] [stdout] | [INFO] [stdout] 626 | pub fn lisp_vals_to_string(items: &[LispVal]) -> OwnedString { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `show_val` is never used [INFO] [stdout] --> src/lisp.rs:634:8 [INFO] [stdout] | [INFO] [stdout] 634 | pub fn show_val(val: &LispVal) -> OwnedString { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `pure` is never used [INFO] [stdout] --> src/parse.rs:252:8 [INFO] [stdout] | [INFO] [stdout] 252 | pub fn pure(x: A) -> impl Parser { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `end_by` is never used [INFO] [stdout] --> src/parse.rs:421:8 [INFO] [stdout] | [INFO] [stdout] 421 | pub fn end_by(pa: PA, ps: PS) -> impl Parser> [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> src/lcr.rs:336:53 [INFO] [stdout] | [INFO] [stdout] 336 | ... Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 336 | let _ = Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> src/lcr.rs:358:53 [INFO] [stdout] | [INFO] [stdout] 358 | ... Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 358 | let _ = Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> src/lcr.rs:552:41 [INFO] [stdout] | [INFO] [stdout] 552 | ... Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 552 | let _ = Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> src/lcr.rs:579:17 [INFO] [stdout] | [INFO] [stdout] 579 | Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 579 | let _ = Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp.rs:94:18 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn new_next(next: Rc) -> LispContext { [INFO] [stdout] | --------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 93 | LispContext::Scope { [INFO] [stdout] 94 | map: BTreeMap::new(), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] = note: requested on the command line with `-D tail-expr-drop-order` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp.rs:141:77 [INFO] [stdout] | [INFO] [stdout] 141 | .ok_or_else(|| BadSpecialForm("Empty function application", lisp_expr.clone())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp.rs:149:34 [INFO] [stdout] | [INFO] [stdout] 149 | .bind_mut(|func| collapse_dotted_list(func, args_list).bind_mut(|x| self.eval(&x))), [INFO] [stdout] | ---- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp.rs:191:36 [INFO] [stdout] | [INFO] [stdout] 189 | ... self.eval(&args[1]).bind_mut(|lisp_val| { [INFO] [stdout] | -------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 190 | ... self.add(name.to_owned(), lisp_val); [INFO] [stdout] 191 | ... Ok(List(vec![])) [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp.rs:397:26 [INFO] [stdout] | [INFO] [stdout] 393 | fn pack_num_op(f: F) -> impl Fn(A, B) -> ThrowsError [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 397 | move |x: A, y: B| Ok(Number(f(x, y))) [INFO] [stdout] | ---- ---- ^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp.rs:404:26 [INFO] [stdout] | [INFO] [stdout] 400 | fn pack_bool_op(f: F) -> impl Fn(A, B) -> ThrowsError [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 404 | move |x: A, y: B| Ok(Bool(f(x, y))) [INFO] [stdout] | ---- ---- ^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp.rs:412:9 [INFO] [stdout] | [INFO] [stdout] 407 | fn unpack_num_op(f: F) -> impl Fn(&LispVal, &LispVal) -> ThrowsError [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 412 | unpack_num(x).bind(|x: i64| unpack_num(y).bind(|y: i64| f(x, y))) [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp.rs:412:37 [INFO] [stdout] | [INFO] [stdout] 412 | unpack_num(x).bind(|x: i64| unpack_num(y).bind(|y: i64| f(x, y))) [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp.rs:421:9 [INFO] [stdout] | [INFO] [stdout] 416 | fn unpack_bool_op(f: F) -> impl Fn(&LispVal, &LispVal) -> ThrowsError [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 421 | unpack_bool(x).bind(|x: bool| unpack_bool(y).bind(|y: bool| f(x, y))) [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp.rs:421:39 [INFO] [stdout] | [INFO] [stdout] 421 | unpack_bool(x).bind(|x: bool| unpack_bool(y).bind(|y: bool| f(x, y))) [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp.rs:500:13 [INFO] [stdout] | [INFO] [stdout] 499 | unpack_dotted_list(x).map(f).or_else(|_| { [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 500 | unpack_list_ref(x).bind(|ls: &[LispVal]| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp.rs:547:9 [INFO] [stdout] | [INFO] [stdout] 542 | fn string_to_bool_op(f: F) -> impl Fn(&LispVal, &LispVal) -> ThrowsError [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 547 | unpack_string(x).bind(|x: &str| unpack_string(y).bind(|y: &str| Ok(Bool(f(x, y))))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp.rs:547:41 [INFO] [stdout] | [INFO] [stdout] 547 | unpack_string(x).bind(|x: &str| unpack_string(y).bind(|y: &str| Ok(Bool(f(x, y))))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp.rs:547:76 [INFO] [stdout] | [INFO] [stdout] 547 | unpack_string(x).bind(|x: &str| unpack_string(y).bind(|y: &str| Ok(Bool(f(x, y))))) [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp_parse.rs:66:9 [INFO] [stdout] | [INFO] [stdout] 65 | expr().bind(|head| { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 66 | / spaces() [INFO] [stdout] 67 | | .next(pchar('.')) [INFO] [stdout] 68 | | .next(spaces()) [INFO] [stdout] 69 | | .next(expr()) [INFO] [stdout] 70 | | .fmap(Box::new) [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp_parse.rs:71:19 [INFO] [stdout] | [INFO] [stdout] 65 | expr().bind(|head| { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 71 | .fmap(move |tail: Box| DottedList(Box::new(head.clone()), tail)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp_parse.rs:71:56 [INFO] [stdout] | [INFO] [stdout] 65 | expr().bind(|head| { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 71 | .fmap(move |tail: Box| DottedList(Box::new(head.clone()), tail)) [INFO] [stdout] | ------------------ ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parse.rs:253:20 [INFO] [stdout] | [INFO] [stdout] 252 | pub fn pure(x: A) -> impl Parser { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 253 | ParserFn::from(move |source| Ok((x.clone(), source))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parse.rs:253:37 [INFO] [stdout] | [INFO] [stdout] 252 | pub fn pure(x: A) -> impl Parser { [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 253 | ParserFn::from(move |source| Ok((x.clone(), source))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parse.rs:293:20 [INFO] [stdout] | [INFO] [stdout] 289 | pub fn predicate(f: F) -> impl Parser [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 293 | ParserFn::from(move |source| { [INFO] [stdout] | ____________________^ [INFO] [stdout] 294 | | let mut chars = source.chars(); [INFO] [stdout] 295 | | match chars.next() { [INFO] [stdout] 296 | | Some(c) => { [INFO] [stdout] ... | [INFO] [stdout] 304 | | } [INFO] [stdout] 305 | | }) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parse.rs:330:20 [INFO] [stdout] | [INFO] [stdout] 325 | pub fn many(pa: PA) -> impl Parser> [INFO] [stdout] | ------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 330 | ParserFn::from(move |mut source| { [INFO] [stdout] | ____________________^ [INFO] [stdout] 331 | | let mut xs: Vec = vec![]; [INFO] [stdout] 332 | | loop { [INFO] [stdout] 333 | | match pa.parse(source) { [INFO] [stdout] ... | [INFO] [stdout] 340 | | } [INFO] [stdout] 341 | | }) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parse.rs:349:20 [INFO] [stdout] | [INFO] [stdout] 344 | pub fn many1(pa: PA) -> impl Parser> [INFO] [stdout] | ------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 349 | ParserFn::from(move |mut source| { [INFO] [stdout] | ____________________^ [INFO] [stdout] 350 | | let mut xs: Vec = vec![]; [INFO] [stdout] 351 | | match pa.parse(source) { [INFO] [stdout] 352 | | Ok((x, source1)) => { [INFO] [stdout] ... | [INFO] [stdout] 366 | | } [INFO] [stdout] 367 | | }) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parse.rs:375:20 [INFO] [stdout] | [INFO] [stdout] 370 | pub fn skip_many1(pa: PA) -> impl Parser<()> [INFO] [stdout] | ------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 375 | ParserFn::from(move |mut source| { [INFO] [stdout] | ____________________^ [INFO] [stdout] 376 | | match pa.parse(source) { [INFO] [stdout] 377 | | Ok((_, source1)) => source = source1, [INFO] [stdout] 378 | | Err(e) => return Err(e), [INFO] [stdout] ... | [INFO] [stdout] 385 | | } [INFO] [stdout] 386 | | }) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parse.rs:396:20 [INFO] [stdout] | [INFO] [stdout] 389 | pub fn sep_by(pa: PA, ps: PS) -> impl Parser> [INFO] [stdout] | ------ ------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | | [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 396 | ParserFn::from(move |mut source| { [INFO] [stdout] | ____________________^ [INFO] [stdout] 397 | | let mut xs: Vec = vec![]; [INFO] [stdout] 398 | | match pa.parse(source) { [INFO] [stdout] 399 | | Ok((x, source1)) => { [INFO] [stdout] ... | [INFO] [stdout] 417 | | } [INFO] [stdout] 418 | | }) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parse.rs:428:20 [INFO] [stdout] | [INFO] [stdout] 421 | pub fn end_by(pa: PA, ps: PS) -> impl Parser> [INFO] [stdout] | ------ ------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | | [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 428 | ParserFn::from(move |mut source| { [INFO] [stdout] | ____________________^ [INFO] [stdout] 429 | | let mut xs: Vec = vec![]; [INFO] [stdout] 430 | | match pa.parse(source) { [INFO] [stdout] 431 | | Ok((x, source1)) => { [INFO] [stdout] ... | [INFO] [stdout] 453 | | } [INFO] [stdout] 454 | | }) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> src/lcr.rs:336:53 [INFO] [stdout] | [INFO] [stdout] 336 | ... Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 336 | let _ = Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> src/lcr.rs:358:53 [INFO] [stdout] | [INFO] [stdout] 358 | ... Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 358 | let _ = Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> src/lcr.rs:552:41 [INFO] [stdout] | [INFO] [stdout] 552 | ... Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 552 | let _ = Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `Box::::from_raw` that must be used [INFO] [stdout] --> src/lcr.rs:579:17 [INFO] [stdout] | [INFO] [stdout] 579 | Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box` [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 579 | let _ = Box::from_raw(context as *mut LcrContext); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp.rs:94:18 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn new_next(next: Rc) -> LispContext { [INFO] [stdout] | --------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 93 | LispContext::Scope { [INFO] [stdout] 94 | map: BTreeMap::new(), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] = note: requested on the command line with `-D tail-expr-drop-order` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp.rs:141:77 [INFO] [stdout] | [INFO] [stdout] 141 | .ok_or_else(|| BadSpecialForm("Empty function application", lisp_expr.clone())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp.rs:149:34 [INFO] [stdout] | [INFO] [stdout] 149 | .bind_mut(|func| collapse_dotted_list(func, args_list).bind_mut(|x| self.eval(&x))), [INFO] [stdout] | ---- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp.rs:191:36 [INFO] [stdout] | [INFO] [stdout] 189 | ... self.eval(&args[1]).bind_mut(|lisp_val| { [INFO] [stdout] | -------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 190 | ... self.add(name.to_owned(), lisp_val); [INFO] [stdout] 191 | ... Ok(List(vec![])) [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp.rs:397:26 [INFO] [stdout] | [INFO] [stdout] 393 | fn pack_num_op(f: F) -> impl Fn(A, B) -> ThrowsError [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 397 | move |x: A, y: B| Ok(Number(f(x, y))) [INFO] [stdout] | ---- ---- ^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp.rs:404:26 [INFO] [stdout] | [INFO] [stdout] 400 | fn pack_bool_op(f: F) -> impl Fn(A, B) -> ThrowsError [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 404 | move |x: A, y: B| Ok(Bool(f(x, y))) [INFO] [stdout] | ---- ---- ^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp.rs:412:9 [INFO] [stdout] | [INFO] [stdout] 407 | fn unpack_num_op(f: F) -> impl Fn(&LispVal, &LispVal) -> ThrowsError [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 412 | unpack_num(x).bind(|x: i64| unpack_num(y).bind(|y: i64| f(x, y))) [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp.rs:412:37 [INFO] [stdout] | [INFO] [stdout] 412 | unpack_num(x).bind(|x: i64| unpack_num(y).bind(|y: i64| f(x, y))) [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp.rs:421:9 [INFO] [stdout] | [INFO] [stdout] 416 | fn unpack_bool_op(f: F) -> impl Fn(&LispVal, &LispVal) -> ThrowsError [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 421 | unpack_bool(x).bind(|x: bool| unpack_bool(y).bind(|y: bool| f(x, y))) [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp.rs:421:39 [INFO] [stdout] | [INFO] [stdout] 421 | unpack_bool(x).bind(|x: bool| unpack_bool(y).bind(|y: bool| f(x, y))) [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp.rs:500:13 [INFO] [stdout] | [INFO] [stdout] 499 | unpack_dotted_list(x).map(f).or_else(|_| { [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 500 | unpack_list_ref(x).bind(|ls: &[LispVal]| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp.rs:547:9 [INFO] [stdout] | [INFO] [stdout] 542 | fn string_to_bool_op(f: F) -> impl Fn(&LispVal, &LispVal) -> ThrowsError [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 547 | unpack_string(x).bind(|x: &str| unpack_string(y).bind(|y: &str| Ok(Bool(f(x, y))))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp.rs:547:41 [INFO] [stdout] | [INFO] [stdout] 547 | unpack_string(x).bind(|x: &str| unpack_string(y).bind(|y: &str| Ok(Bool(f(x, y))))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp.rs:547:76 [INFO] [stdout] | [INFO] [stdout] 547 | unpack_string(x).bind(|x: &str| unpack_string(y).bind(|y: &str| Ok(Bool(f(x, y))))) [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp_parse.rs:66:9 [INFO] [stdout] | [INFO] [stdout] 65 | expr().bind(|head| { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 66 | / spaces() [INFO] [stdout] 67 | | .next(pchar('.')) [INFO] [stdout] 68 | | .next(spaces()) [INFO] [stdout] 69 | | .next(expr()) [INFO] [stdout] 70 | | .fmap(Box::new) [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp_parse.rs:71:19 [INFO] [stdout] | [INFO] [stdout] 65 | expr().bind(|head| { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 71 | .fmap(move |tail: Box| DottedList(Box::new(head.clone()), tail)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lisp_parse.rs:71:56 [INFO] [stdout] | [INFO] [stdout] 65 | expr().bind(|head| { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 71 | .fmap(move |tail: Box| DottedList(Box::new(head.clone()), tail)) [INFO] [stdout] | ------------------ ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parse.rs:253:20 [INFO] [stdout] | [INFO] [stdout] 252 | pub fn pure(x: A) -> impl Parser { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 253 | ParserFn::from(move |source| Ok((x.clone(), source))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parse.rs:253:37 [INFO] [stdout] | [INFO] [stdout] 252 | pub fn pure(x: A) -> impl Parser { [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 253 | ParserFn::from(move |source| Ok((x.clone(), source))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parse.rs:293:20 [INFO] [stdout] | [INFO] [stdout] 289 | pub fn predicate(f: F) -> impl Parser [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 293 | ParserFn::from(move |source| { [INFO] [stdout] | ____________________^ [INFO] [stdout] 294 | | let mut chars = source.chars(); [INFO] [stdout] 295 | | match chars.next() { [INFO] [stdout] 296 | | Some(c) => { [INFO] [stdout] ... | [INFO] [stdout] 304 | | } [INFO] [stdout] 305 | | }) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parse.rs:330:20 [INFO] [stdout] | [INFO] [stdout] 325 | pub fn many(pa: PA) -> impl Parser> [INFO] [stdout] | ------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 330 | ParserFn::from(move |mut source| { [INFO] [stdout] | ____________________^ [INFO] [stdout] 331 | | let mut xs: Vec = vec![]; [INFO] [stdout] 332 | | loop { [INFO] [stdout] 333 | | match pa.parse(source) { [INFO] [stdout] ... | [INFO] [stdout] 340 | | } [INFO] [stdout] 341 | | }) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parse.rs:349:20 [INFO] [stdout] | [INFO] [stdout] 344 | pub fn many1(pa: PA) -> impl Parser> [INFO] [stdout] | ------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 349 | ParserFn::from(move |mut source| { [INFO] [stdout] | ____________________^ [INFO] [stdout] 350 | | let mut xs: Vec = vec![]; [INFO] [stdout] 351 | | match pa.parse(source) { [INFO] [stdout] 352 | | Ok((x, source1)) => { [INFO] [stdout] ... | [INFO] [stdout] 366 | | } [INFO] [stdout] 367 | | }) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parse.rs:375:20 [INFO] [stdout] | [INFO] [stdout] 370 | pub fn skip_many1(pa: PA) -> impl Parser<()> [INFO] [stdout] | ------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 375 | ParserFn::from(move |mut source| { [INFO] [stdout] | ____________________^ [INFO] [stdout] 376 | | match pa.parse(source) { [INFO] [stdout] 377 | | Ok((_, source1)) => source = source1, [INFO] [stdout] 378 | | Err(e) => return Err(e), [INFO] [stdout] ... | [INFO] [stdout] 385 | | } [INFO] [stdout] 386 | | }) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parse.rs:396:20 [INFO] [stdout] | [INFO] [stdout] 389 | pub fn sep_by(pa: PA, ps: PS) -> impl Parser> [INFO] [stdout] | ------ ------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | | [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 396 | ParserFn::from(move |mut source| { [INFO] [stdout] | ____________________^ [INFO] [stdout] 397 | | let mut xs: Vec = vec![]; [INFO] [stdout] 398 | | match pa.parse(source) { [INFO] [stdout] 399 | | Ok((x, source1)) => { [INFO] [stdout] ... | [INFO] [stdout] 417 | | } [INFO] [stdout] 418 | | }) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parse.rs:428:20 [INFO] [stdout] | [INFO] [stdout] 421 | pub fn end_by(pa: PA, ps: PS) -> impl Parser> [INFO] [stdout] | ------ ------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | | [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 428 | ParserFn::from(move |mut source| { [INFO] [stdout] | ____________________^ [INFO] [stdout] 429 | | let mut xs: Vec = vec![]; [INFO] [stdout] 430 | | match pa.parse(source) { [INFO] [stdout] 431 | | Ok((x, source1)) => { [INFO] [stdout] ... | [INFO] [stdout] 453 | | } [INFO] [stdout] 454 | | }) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 25 previous errors; 50 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 25 previous errors; 50 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `crust` (bin "crust" test) due to 26 previous errors; 50 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: could not compile `crust` (bin "crust") due to 26 previous errors; 50 warnings emitted [INFO] running `Command { std: "docker" "inspect" "c446a0edcedeae9709d9de61978d8f63295e6b460415a69e350eb96f8d99c6f6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c446a0edcedeae9709d9de61978d8f63295e6b460415a69e350eb96f8d99c6f6", kill_on_drop: false }` [INFO] [stdout] c446a0edcedeae9709d9de61978d8f63295e6b460415a69e350eb96f8d99c6f6