[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#b56aaec52bc0fa35591a872fb4aac81f606e265c for pr-122661-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzirman%2Frust-lisp" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [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-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/zirman/rust-lisp on toolchain b56aaec52bc0fa35591a872fb4aac81f606e265c [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b56aaec52bc0fa35591a872fb4aac81f606e265c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [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" "+b56aaec52bc0fa35591a872fb4aac81f606e265c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+b56aaec52bc0fa35591a872fb4aac81f606e265c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 1bfa1fcf10d76bf89dc9dda5c92ec35577c5ab05bb04e157c22f1fa33ae0248f [INFO] running `Command { std: "docker" "start" "-a" "1bfa1fcf10d76bf89dc9dda5c92ec35577c5ab05bb04e157c22f1fa33ae0248f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1bfa1fcf10d76bf89dc9dda5c92ec35577c5ab05bb04e157c22f1fa33ae0248f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1bfa1fcf10d76bf89dc9dda5c92ec35577c5ab05bb04e157c22f1fa33ae0248f", kill_on_drop: false }` [INFO] [stdout] 1bfa1fcf10d76bf89dc9dda5c92ec35577c5ab05bb04e157c22f1fa33ae0248f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+b56aaec52bc0fa35591a872fb4aac81f606e265c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a9100439021b61640df4f246936c601fe27ec3da7bf39c204ab2cc9674b85a4b [INFO] running `Command { std: "docker" "start" "-a" "a9100439021b61640df4f246936c601fe27ec3da7bf39c204ab2cc9674b85a4b", 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: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: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: trait `Bind` is never used [INFO] [stdout] --> src/bind.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | pub trait Bind [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `BindMut` is never used [INFO] [stdout] --> src/bind.rs:32:11 [INFO] [stdout] | [INFO] [stdout] 32 | pub trait BindMut [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: multiple variants are never constructed [INFO] [stdout] --> src/lisp.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub enum LispVal { [INFO] [stdout] | ------- variants in this enum [INFO] [stdout] 15 | Atom(OwnedString), [INFO] [stdout] | ^^^^ [INFO] [stdout] 16 | List(Vec), [INFO] [stdout] | ^^^^ [INFO] [stdout] 17 | DottedList(Box, Box), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 18 | Number(i64), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 19 | String(OwnedString), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 20 | Bool(bool), [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 `letter` is never used [INFO] [stdout] --> src/lisp_parse.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn letter() -> impl Parser { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `symbol` is never used [INFO] [stdout] --> src/lisp_parse.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn symbol() -> impl Parser { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `digit` is never used [INFO] [stdout] --> src/lisp_parse.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn digit() -> impl Parser { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `spaces` is never used [INFO] [stdout] --> src/lisp_parse.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn spaces() -> impl Parser<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `string` is never used [INFO] [stdout] --> src/lisp_parse.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn string() -> impl Parser { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `atom` is never used [INFO] [stdout] --> src/lisp_parse.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn atom() -> impl Parser { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `number` is never used [INFO] [stdout] --> src/lisp_parse.rs:49:8 [INFO] [stdout] | [INFO] [stdout] 49 | pub fn number() -> impl Parser { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `list` is never used [INFO] [stdout] --> src/lisp_parse.rs:60:8 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn list() -> impl Parser { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dotted_list` is never used [INFO] [stdout] --> src/lisp_parse.rs:64:8 [INFO] [stdout] | [INFO] [stdout] 64 | pub fn dotted_list() -> impl Parser { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quoted` is never used [INFO] [stdout] --> src/lisp_parse.rs:75:8 [INFO] [stdout] | [INFO] [stdout] 75 | pub fn quoted() -> impl Parser { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unquoted` is never used [INFO] [stdout] --> src/lisp_parse.rs:81:8 [INFO] [stdout] | [INFO] [stdout] 81 | pub fn unquoted() -> impl Parser { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `expr` is never used [INFO] [stdout] --> src/lisp_parse.rs:87:8 [INFO] [stdout] | [INFO] [stdout] 87 | pub fn expr() -> LispExprParser { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LispExprParser` is never constructed [INFO] [stdout] --> src/lisp_parse.rs:92:12 [INFO] [stdout] | [INFO] [stdout] 92 | pub struct LispExprParser {} [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Res` is never used [INFO] [stdout] --> src/parse.rs:3:10 [INFO] [stdout] | [INFO] [stdout] 3 | pub type Res<'a, A> = Result<(A, &'a str), &'a str>; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Parser` is never used [INFO] [stdout] --> src/parse.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Parser: Sized [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ParserMap` is never constructed [INFO] [stdout] --> src/parse.rs:77:12 [INFO] [stdout] | [INFO] [stdout] 77 | pub struct ParserMap [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ParserBind` is never constructed [INFO] [stdout] --> src/parse.rs:105:12 [INFO] [stdout] | [INFO] [stdout] 105 | pub struct ParserBind [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ParserPrev` is never constructed [INFO] [stdout] --> src/parse.rs:136:12 [INFO] [stdout] | [INFO] [stdout] 136 | pub struct ParserPrev [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ParserNext` is never constructed [INFO] [stdout] --> src/parse.rs:167:12 [INFO] [stdout] | [INFO] [stdout] 167 | pub struct ParserNext [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ParserOr` is never constructed [INFO] [stdout] --> src/parse.rs:198:12 [INFO] [stdout] | [INFO] [stdout] 198 | pub struct ParserOr [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ParserFn` is never constructed [INFO] [stdout] --> src/parse.rs:224:12 [INFO] [stdout] | [INFO] [stdout] 224 | pub struct ParserFn { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from` is never used [INFO] [stdout] --> src/parse.rs:234:8 [INFO] [stdout] | [INFO] [stdout] 229 | / impl ParserFn [INFO] [stdout] 230 | | where [INFO] [stdout] 231 | | F: Fn(&str) -> Res, [INFO] [stdout] 232 | | A: Clone, [INFO] [stdout] | |_____________- associated function in this implementation [INFO] [stdout] 233 | { [INFO] [stdout] 234 | fn from(f: F) -> ParserFn { [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 `pchar` is never used [INFO] [stdout] --> src/parse.rs:256:8 [INFO] [stdout] | [INFO] [stdout] 256 | pub fn pchar(ch: char) -> impl Parser { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `one_of` is never used [INFO] [stdout] --> src/parse.rs:272:8 [INFO] [stdout] | [INFO] [stdout] 272 | pub fn one_of(cs: &str) -> impl Parser { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `predicate` is never used [INFO] [stdout] --> src/parse.rs:289:8 [INFO] [stdout] | [INFO] [stdout] 289 | pub fn predicate(f: F) -> impl Parser [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `none_of` is never used [INFO] [stdout] --> src/parse.rs:308:8 [INFO] [stdout] | [INFO] [stdout] 308 | pub fn none_of(cs: &str) -> impl Parser { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `many` is never used [INFO] [stdout] --> src/parse.rs:325:8 [INFO] [stdout] | [INFO] [stdout] 325 | pub fn many(pa: PA) -> impl Parser> [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `many1` is never used [INFO] [stdout] --> src/parse.rs:344:8 [INFO] [stdout] | [INFO] [stdout] 344 | pub fn many1(pa: PA) -> impl Parser> [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `skip_many1` is never used [INFO] [stdout] --> src/parse.rs:370:8 [INFO] [stdout] | [INFO] [stdout] 370 | pub fn skip_many1(pa: PA) -> impl Parser<()> [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sep_by` is never used [INFO] [stdout] --> src/parse.rs:389:8 [INFO] [stdout] | [INFO] [stdout] 389 | pub fn sep_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: trait `Bind` is never used [INFO] [stdout] --> src/bind.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | pub trait Bind [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `BindMut` is never used [INFO] [stdout] --> src/bind.rs:32:11 [INFO] [stdout] | [INFO] [stdout] 32 | pub trait BindMut [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: multiple variants are never constructed [INFO] [stdout] --> src/lisp.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub enum LispVal { [INFO] [stdout] | ------- variants in this enum [INFO] [stdout] 15 | Atom(OwnedString), [INFO] [stdout] | ^^^^ [INFO] [stdout] 16 | List(Vec), [INFO] [stdout] | ^^^^ [INFO] [stdout] 17 | DottedList(Box, Box), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 18 | Number(i64), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 19 | String(OwnedString), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 20 | Bool(bool), [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 `letter` is never used [INFO] [stdout] --> src/lisp_parse.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn letter() -> impl Parser { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `symbol` is never used [INFO] [stdout] --> src/lisp_parse.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn symbol() -> impl Parser { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `digit` is never used [INFO] [stdout] --> src/lisp_parse.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn digit() -> impl Parser { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `spaces` is never used [INFO] [stdout] --> src/lisp_parse.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn spaces() -> impl Parser<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `string` is never used [INFO] [stdout] --> src/lisp_parse.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn string() -> impl Parser { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `atom` is never used [INFO] [stdout] --> src/lisp_parse.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn atom() -> impl Parser { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `number` is never used [INFO] [stdout] --> src/lisp_parse.rs:49:8 [INFO] [stdout] | [INFO] [stdout] 49 | pub fn number() -> impl Parser { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `list` is never used [INFO] [stdout] --> src/lisp_parse.rs:60:8 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn list() -> impl Parser { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dotted_list` is never used [INFO] [stdout] --> src/lisp_parse.rs:64:8 [INFO] [stdout] | [INFO] [stdout] 64 | pub fn dotted_list() -> impl Parser { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `quoted` is never used [INFO] [stdout] --> src/lisp_parse.rs:75:8 [INFO] [stdout] | [INFO] [stdout] 75 | pub fn quoted() -> impl Parser { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unquoted` is never used [INFO] [stdout] --> src/lisp_parse.rs:81:8 [INFO] [stdout] | [INFO] [stdout] 81 | pub fn unquoted() -> impl Parser { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `expr` is never used [INFO] [stdout] --> src/lisp_parse.rs:87:8 [INFO] [stdout] | [INFO] [stdout] 87 | pub fn expr() -> LispExprParser { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LispExprParser` is never constructed [INFO] [stdout] --> src/lisp_parse.rs:92:12 [INFO] [stdout] | [INFO] [stdout] 92 | pub struct LispExprParser {} [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Res` is never used [INFO] [stdout] --> src/parse.rs:3:10 [INFO] [stdout] | [INFO] [stdout] 3 | pub type Res<'a, A> = Result<(A, &'a str), &'a str>; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Parser` is never used [INFO] [stdout] --> src/parse.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Parser: Sized [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ParserMap` is never constructed [INFO] [stdout] --> src/parse.rs:77:12 [INFO] [stdout] | [INFO] [stdout] 77 | pub struct ParserMap [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ParserBind` is never constructed [INFO] [stdout] --> src/parse.rs:105:12 [INFO] [stdout] | [INFO] [stdout] 105 | pub struct ParserBind [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ParserPrev` is never constructed [INFO] [stdout] --> src/parse.rs:136:12 [INFO] [stdout] | [INFO] [stdout] 136 | pub struct ParserPrev [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ParserNext` is never constructed [INFO] [stdout] --> src/parse.rs:167:12 [INFO] [stdout] | [INFO] [stdout] 167 | pub struct ParserNext [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ParserOr` is never constructed [INFO] [stdout] --> src/parse.rs:198:12 [INFO] [stdout] | [INFO] [stdout] 198 | pub struct ParserOr [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ParserFn` is never constructed [INFO] [stdout] --> src/parse.rs:224:12 [INFO] [stdout] | [INFO] [stdout] 224 | pub struct ParserFn { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from` is never used [INFO] [stdout] --> src/parse.rs:234:8 [INFO] [stdout] | [INFO] [stdout] 229 | / impl ParserFn [INFO] [stdout] 230 | | where [INFO] [stdout] 231 | | F: Fn(&str) -> Res, [INFO] [stdout] 232 | | A: Clone, [INFO] [stdout] | |_____________- associated function in this implementation [INFO] [stdout] 233 | { [INFO] [stdout] 234 | fn from(f: F) -> ParserFn { [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 `pchar` is never used [INFO] [stdout] --> src/parse.rs:256:8 [INFO] [stdout] | [INFO] [stdout] 256 | pub fn pchar(ch: char) -> impl Parser { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `one_of` is never used [INFO] [stdout] --> src/parse.rs:272:8 [INFO] [stdout] | [INFO] [stdout] 272 | pub fn one_of(cs: &str) -> impl Parser { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `predicate` is never used [INFO] [stdout] --> src/parse.rs:289:8 [INFO] [stdout] | [INFO] [stdout] 289 | pub fn predicate(f: F) -> impl Parser [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `none_of` is never used [INFO] [stdout] --> src/parse.rs:308:8 [INFO] [stdout] | [INFO] [stdout] 308 | pub fn none_of(cs: &str) -> impl Parser { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `many` is never used [INFO] [stdout] --> src/parse.rs:325:8 [INFO] [stdout] | [INFO] [stdout] 325 | pub fn many(pa: PA) -> impl Parser> [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `many1` is never used [INFO] [stdout] --> src/parse.rs:344:8 [INFO] [stdout] | [INFO] [stdout] 344 | pub fn many1(pa: PA) -> impl Parser> [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `skip_many1` is never used [INFO] [stdout] --> src/parse.rs:370:8 [INFO] [stdout] | [INFO] [stdout] 370 | pub fn skip_many1(pa: PA) -> impl Parser<()> [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sep_by` is never used [INFO] [stdout] --> src/parse.rs:389:8 [INFO] [stdout] | [INFO] [stdout] 389 | pub fn sep_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] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/lcr.rs:540:43 [INFO] [stdout] | [INFO] [stdout] 540 | let mut x = unsafe { &(*context)[0] }; [INFO] [stdout] | ^^-------^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const Vec` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec` [INFO] [stdout] --> src/lcr.rs:540:43 [INFO] [stdout] | [INFO] [stdout] 540 | let mut x = unsafe { &(*context)[0] }; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = note: `#[deny(dangerous_implicit_autorefs)]` on by default [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 540 | let mut x = unsafe { &(&(*context))[0] }; [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: 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] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/lcr.rs:540:43 [INFO] [stdout] | [INFO] [stdout] 540 | let mut x = unsafe { &(*context)[0] }; [INFO] [stdout] | ^^-------^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*const Vec` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec` [INFO] [stdout] --> src/lcr.rs:540:43 [INFO] [stdout] | [INFO] [stdout] 540 | let mut x = unsafe { &(*context)[0] }; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = note: `#[deny(dangerous_implicit_autorefs)]` on by default [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 540 | let mut x = unsafe { &(&(*context))[0] }; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `crust` (bin "crust" test) due to 1 previous error; 80 warnings emitted [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] [stderr] warning: build failed, waiting for other jobs to finish... [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] [stderr] error: could not compile `crust` (bin "crust") due to 1 previous error; 80 warnings emitted [INFO] running `Command { std: "docker" "inspect" "a9100439021b61640df4f246936c601fe27ec3da7bf39c204ab2cc9674b85a4b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a9100439021b61640df4f246936c601fe27ec3da7bf39c204ab2cc9674b85a4b", kill_on_drop: false }` [INFO] [stdout] a9100439021b61640df4f246936c601fe27ec3da7bf39c204ab2cc9674b85a4b