[INFO] cloning repository https://github.com/dgoetsch/dnd-character [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dgoetsch/dnd-character" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdgoetsch%2Fdnd-character", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdgoetsch%2Fdnd-character'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 6d7a927507b46b25384b1baa4dea4c2cc3019c79 [INFO] testing dgoetsch/dnd-character against try#1b74e096b9bfb06f84a3007193dcd2f059cbdf6a for pr-96025 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdgoetsch%2Fdnd-character" "/workspace/builds/worker-23/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-23/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/dgoetsch/dnd-character on toolchain 1b74e096b9bfb06f84a3007193dcd2f059cbdf6a [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1b74e096b9bfb06f84a3007193dcd2f059cbdf6a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/dgoetsch/dnd-character [INFO] finished tweaking git repo https://github.com/dgoetsch/dnd-character [INFO] tweaked toml for git repo https://github.com/dgoetsch/dnd-character written to /workspace/builds/worker-23/source/Cargo.toml [INFO] crate git repo https://github.com/dgoetsch/dnd-character already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1b74e096b9bfb06f84a3007193dcd2f059cbdf6a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-23/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-23/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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1b74e096b9bfb06f84a3007193dcd2f059cbdf6a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 6a59fb07e1f8fa7d89ce9f98c210754f61be4a721ceaeb262556dd84dc21300a [INFO] running `Command { std: "docker" "start" "-a" "6a59fb07e1f8fa7d89ce9f98c210754f61be4a721ceaeb262556dd84dc21300a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "6a59fb07e1f8fa7d89ce9f98c210754f61be4a721ceaeb262556dd84dc21300a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6a59fb07e1f8fa7d89ce9f98c210754f61be4a721ceaeb262556dd84dc21300a", kill_on_drop: false }` [INFO] [stdout] 6a59fb07e1f8fa7d89ce9f98c210754f61be4a721ceaeb262556dd84dc21300a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-23/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-23/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" "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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1b74e096b9bfb06f84a3007193dcd2f059cbdf6a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] cc0cc5dcfbca5a900af293d2b7ee8dcd958098b31a5c07207330884bb799ee2b [INFO] running `Command { std: "docker" "start" "-a" "cc0cc5dcfbca5a900af293d2b7ee8dcd958098b31a5c07207330884bb799ee2b", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.81 [INFO] [stderr] Compiling cfg-if v0.1.10 [INFO] [stderr] Compiling proc-macro2 v1.0.24 [INFO] [stderr] Compiling unicode-xid v0.2.1 [INFO] [stderr] Compiling log v0.4.11 [INFO] [stderr] Compiling pkg-config v0.3.19 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling autocfg v1.0.1 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Compiling syn v1.0.56 [INFO] [stderr] Compiling once_cell v1.5.2 [INFO] [stderr] Compiling memchr v2.3.4 [INFO] [stderr] Compiling xml-rs v0.8.3 [INFO] [stderr] Compiling byteorder v1.3.4 [INFO] [stderr] Compiling smallvec v1.5.1 [INFO] [stderr] Compiling futures-core v0.3.8 [INFO] [stderr] Compiling slab v0.4.2 [INFO] [stderr] Compiling version_check v0.9.2 [INFO] [stderr] Compiling scopeguard v1.1.0 [INFO] [stderr] Compiling ab_glyph_rasterizer v0.1.4 [INFO] [stderr] Compiling futures-io v0.3.8 [INFO] [stderr] Compiling nix v0.18.0 [INFO] [stderr] Compiling proc-macro-hack v0.5.19 [INFO] [stderr] Compiling getrandom v0.1.15 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling proc-macro-nested v0.1.6 [INFO] [stderr] Compiling pin-utils v0.1.0 [INFO] [stderr] Compiling futures-sink v0.3.8 [INFO] [stderr] Compiling const_fn v0.4.4 [INFO] [stderr] Compiling scoped-tls v1.0.0 [INFO] [stderr] Compiling downcast-rs v1.2.0 [INFO] [stderr] Compiling semver-parser v0.7.0 [INFO] [stderr] Compiling ppv-lite86 v0.2.10 [INFO] [stderr] Compiling khronos_api v3.1.0 [INFO] [stderr] Compiling pin-project-lite v0.2.0 [INFO] [stderr] Compiling ttf-parser v0.6.2 [INFO] [stderr] Compiling rayon-core v1.9.0 [INFO] [stderr] Compiling static_assertions v1.1.0 [INFO] [stderr] Compiling ttf-parser v0.9.0 [INFO] [stderr] Compiling xdg v2.2.0 [INFO] [stderr] Compiling maybe-uninit v2.0.0 [INFO] [stderr] Compiling either v1.6.1 [INFO] [stderr] Compiling iced_core v0.3.0 [INFO] [stderr] Compiling unicode-segmentation v1.7.1 [INFO] [stderr] Compiling bit-vec v0.6.3 [INFO] [stderr] Compiling cache-padded v1.1.1 [INFO] [stderr] Compiling xi-unicode v0.3.0 [INFO] [stderr] Compiling float-ord v0.2.0 [INFO] [stderr] Compiling arrayvec v0.5.2 [INFO] [stderr] Compiling linked-hash-map v0.5.3 [INFO] [stderr] Compiling rustc-hash v1.1.0 [INFO] [stderr] Compiling lazycell v1.3.0 [INFO] [stderr] Compiling fastrand v1.4.0 [INFO] [stderr] Compiling winit v0.23.0 [INFO] [stderr] Compiling waker-fn v1.1.0 [INFO] [stderr] Compiling parking v2.0.0 [INFO] [stderr] Compiling inplace_it v0.3.2 [INFO] [stderr] Compiling copyless v0.1.5 [INFO] [stderr] Compiling percent-encoding v2.1.0 [INFO] [stderr] Compiling typed-arena v2.0.1 [INFO] [stderr] Compiling serde_derive v1.0.118 [INFO] [stderr] Compiling async-task v4.0.3 [INFO] [stderr] Compiling event-listener v2.5.1 [INFO] [stderr] Compiling vec-arena v1.0.0 [INFO] [stderr] Compiling ryu v1.0.5 [INFO] [stderr] Compiling glow v0.6.1 [INFO] [stderr] Compiling serde v1.0.118 [INFO] [stderr] Compiling svg_fmt v0.4.1 [INFO] [stderr] Compiling atomic-waker v1.0.0 [INFO] [stderr] Compiling serde_json v1.0.61 [INFO] [stderr] Compiling itoa v0.4.7 [INFO] [stderr] Compiling libloading v0.6.6 [INFO] [stderr] Compiling instant v0.1.9 [INFO] [stderr] Compiling lock_api v0.4.2 [INFO] [stderr] Compiling tracing-core v0.1.17 [INFO] [stderr] Compiling futures-task v0.3.8 [INFO] [stderr] Compiling concurrent-queue v1.2.2 [INFO] [stderr] Compiling dlib v0.4.2 [INFO] [stderr] Compiling ash v0.31.0 [INFO] [stderr] Compiling async-mutex v1.4.0 [INFO] [stderr] Compiling futures-channel v0.3.8 [INFO] [stderr] Compiling walkdir v2.3.1 [INFO] [stderr] Compiling semver v0.9.0 [INFO] [stderr] Compiling bit-set v0.5.2 [INFO] [stderr] Compiling async-channel v1.5.1 [INFO] [stderr] Compiling iced_style v0.2.0 [INFO] [stderr] Compiling rustc_version v0.2.3 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling crossbeam-utils v0.8.1 [INFO] [stderr] Compiling memoffset v0.6.1 [INFO] [stderr] Compiling rayon v1.5.0 [INFO] [stderr] Compiling futures-lite v1.11.3 [INFO] [stderr] Compiling tracing v0.1.22 [INFO] [stderr] Compiling wgpu-types v0.6.1 [INFO] [stderr] Compiling nom v6.0.1 [INFO] [stderr] Compiling glam v0.10.2 [INFO] [stderr] Compiling wayland-sys v0.28.2 [INFO] [stderr] Compiling servo-fontconfig-sys v4.0.9 [INFO] [stderr] Compiling x11 v2.18.2 [INFO] [stderr] Compiling x11-dl v2.18.5 [INFO] [stderr] Compiling gl_generator v0.14.0 [INFO] [stderr] Compiling kv-log-macro v1.0.7 [INFO] [stderr] Compiling pathfinder_simd v0.5.0 [INFO] [stderr] Compiling fxhash v0.2.1 [INFO] [stderr] Compiling quote v1.0.8 [INFO] [stderr] Compiling wayland-scanner v0.28.2 [INFO] [stderr] Compiling owned_ttf_parser v0.6.0 [INFO] [stderr] Compiling async-executor v1.4.0 [INFO] [stderr] Compiling blocking v1.0.2 [INFO] [stderr] Compiling rusttype v0.9.2 [INFO] [stderr] Compiling owned_ttf_parser v0.9.0 [INFO] [stderr] Compiling crossbeam-epoch v0.9.1 [INFO] [stderr] Compiling crossbeam-channel v0.5.0 [INFO] [stderr] Compiling andrew v0.3.1 [INFO] [stderr] Compiling ab_glyph v0.2.7 [INFO] [stderr] Compiling glutin_glx_sys v0.1.7 [INFO] [stderr] Compiling glutin_egl_sys v0.1.5 [INFO] [stderr] Compiling pathfinder_geometry v0.5.1 [INFO] [stderr] Compiling crossbeam-deque v0.8.0 [INFO] [stderr] Compiling approx v0.4.0 [INFO] [stderr] Compiling spirv_headers v1.5.0 [INFO] [stderr] Compiling ordered-float v2.0.1 [INFO] [stderr] Compiling euclid v0.22.1 [INFO] [stderr] Compiling glyph_brush_layout v0.2.1 [INFO] [stderr] Compiling jobserver v0.1.21 [INFO] [stderr] Compiling num_cpus v1.13.0 [INFO] [stderr] Compiling raw-window-handle v0.3.3 [INFO] [stderr] Compiling parking_lot_core v0.8.2 [INFO] [stderr] Compiling memmap2 v0.1.0 [INFO] [stderr] Compiling dirs-sys v0.3.5 [INFO] [stderr] Compiling iovec v0.1.4 [INFO] [stderr] Compiling net2 v0.2.37 [INFO] [stderr] Compiling shared_library v0.1.9 [INFO] [stderr] Compiling nb-connect v1.0.2 [INFO] [stderr] Compiling polling v2.0.2 [INFO] [stderr] Compiling gfx-hal v0.6.0 [INFO] [stderr] Compiling xcb v0.9.0 [INFO] [stderr] Compiling dirs v2.0.2 [INFO] [stderr] Compiling cc v1.0.66 [INFO] [stderr] Compiling osmesa-sys v0.1.2 [INFO] [stderr] Compiling rand_core v0.5.1 [INFO] [stderr] Compiling wayland-client v0.28.2 [INFO] [stderr] Compiling wayland-protocols v0.28.2 [INFO] [stderr] Compiling parking_lot v0.11.1 [INFO] [stderr] Compiling async-io v1.3.1 [INFO] [stderr] Compiling mio v0.6.23 [INFO] [stderr] Compiling rand_chacha v0.2.2 [INFO] [stderr] Compiling xcursor v0.3.3 [INFO] [stderr] Compiling guillotiere v0.6.0 [INFO] [stderr] Compiling rand v0.7.3 [INFO] [stderr] Compiling async-global-executor v1.4.3 [INFO] [stderr] Compiling cmake v0.1.45 [INFO] [stderr] Compiling async-std v1.8.0 [INFO] [stderr] Compiling mio-extras v2.0.6 [INFO] [stderr] Compiling servo-freetype-sys v4.0.5 [INFO] [stderr] Compiling expat-sys v2.1.6 [INFO] [stderr] Compiling twox-hash v1.6.0 [INFO] [stderr] Compiling freetype v0.4.1 [INFO] [stderr] Compiling servo-fontconfig v0.4.0 [INFO] [stderr] Compiling font-kit v0.8.0 [INFO] [stderr] Compiling gfx-descriptor v0.2.0 [INFO] [stderr] Compiling gfx-memory v0.2.2 [INFO] [stderr] Compiling gfx-backend-empty v0.6.0 [INFO] [stderr] Compiling glyph_brush_draw_cache v0.1.3 [INFO] [stderr] Compiling glyph_brush v0.7.1 [INFO] [stderr] Compiling wayland-commons v0.28.2 [INFO] [stderr] Compiling calloop v0.6.5 [INFO] [stderr] Compiling synstructure v0.12.4 [INFO] [stderr] Compiling wayland-cursor v0.28.2 [INFO] [stderr] Compiling wayland-egl v0.28.2 [INFO] [stderr] Compiling pin-project-internal v1.0.2 [INFO] [stderr] Compiling futures-macro v0.3.8 [INFO] [stderr] Compiling thiserror-impl v1.0.23 [INFO] [stderr] Compiling bytemuck_derive v1.0.1 [INFO] [stderr] Compiling zerocopy-derive v0.2.0 [INFO] [stderr] Compiling bytemuck v1.4.1 [INFO] [stderr] Compiling glow_glyph v0.4.0 [INFO] [stderr] Compiling zerocopy v0.3.0 [INFO] [stderr] Compiling thiserror v1.0.23 [INFO] [stderr] Compiling naga v0.2.0 [INFO] [stderr] Compiling gfx-backend-vulkan v0.6.5 [INFO] [stderr] Compiling pin-project v1.0.2 [INFO] [stderr] Compiling futures-util v0.3.8 [INFO] [stderr] Compiling clipboard_x11 v0.1.0 [INFO] [stderr] Compiling wgpu-core v0.6.5 [INFO] [stderr] Compiling smithay-client-toolkit v0.12.1 [INFO] [stderr] Compiling futures-executor v0.3.8 [INFO] [stderr] Compiling futures v0.3.8 [INFO] [stderr] Compiling smithay-clipboard v0.6.2 [INFO] [stderr] Compiling iced_futures v0.2.0 [INFO] [stderr] Compiling iced_native v0.3.0 [INFO] [stderr] Compiling clipboard_wayland v0.1.2 [INFO] [stderr] Compiling window_clipboard v0.1.3 [INFO] [stderr] Compiling iced_graphics v0.1.0 [INFO] [stderr] Compiling iced_glow v0.1.0 [INFO] [stderr] Compiling wgpu v0.6.2 [INFO] [stderr] Compiling glutin v0.25.1 [INFO] [stderr] Compiling iced_winit v0.2.0 [INFO] [stderr] Compiling iced_glutin v0.1.0 [INFO] [stderr] Compiling wgpu_glyph v0.10.0 [INFO] [stderr] Compiling iced_wgpu v0.3.0 [INFO] [stderr] Compiling iced v0.2.0 [INFO] [stderr] Compiling dnd-character v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/character/class.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 24 | if (self.classes.len() > 1) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 24 - if (self.classes.len() > 1) { [INFO] [stdout] 24 + if self.classes.len() > 1 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Element`, `HorizontalAlignment`, `VerticalAlignment` [INFO] [stdout] --> src/character/description.rs:4:20 [INFO] [stdout] | [INFO] [stdout] 4 | use iced::{Column, Element, HorizontalAlignment, Length, Row, Text, VerticalAlignment}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `FeatureState` [INFO] [stdout] --> src/character/persistence.rs:8:37 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::core::feature::{Feature, FeatureState, FeaturesState}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/character/proficiencies.rs:76:23 [INFO] [stdout] | [INFO] [stdout] 76 | let text = if (proficiencies.is_empty()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 76 - let text = if (proficiencies.is_empty()) { [INFO] [stdout] 76 + let text = if proficiencies.is_empty() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Dice`, `Roll` [INFO] [stdout] --> src/core/ability_score.rs:3:25 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::core::roll::{Dice, Roll}; [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::util::format_modifier` [INFO] [stdout] --> src/core/ability_score.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::util::format_modifier; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Element` [INFO] [stdout] --> src/core/ability_score.rs:5:20 [INFO] [stdout] | [INFO] [stdout] 5 | use iced::{Column, Element, HorizontalAlignment, Length, Row, Text, VerticalAlignment}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Dice` [INFO] [stdout] --> src/core/effect.rs:2:25 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::core::roll::{Dice, RollBonus, RollScope}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HorizontalAlignment`, `Length`, `VerticalAlignment` [INFO] [stdout] --> src/core/effect.rs:4:29 [INFO] [stdout] | [INFO] [stdout] 4 | use iced::{Column, Element, HorizontalAlignment, Length, Row, Text, VerticalAlignment}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `EffectState` [INFO] [stdout] --> src/core/feature.rs:4:35 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::core::effect::{Effect, EffectState, EffectsState}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RollScope` [INFO] [stdout] --> src/core/feature.rs:6:31 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::core::roll::{Roll, RollScope, RollState}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Button`, `button` [INFO] [stdout] --> src/core/feature.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | use iced::{button, Button, Column, Element, Length, Row, Text}; [INFO] [stdout] | ^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde::export::Formatter` [INFO] [stdout] --> src/core/feature.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use serde::export::Formatter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::borrow::Borrow` [INFO] [stdout] --> src/core/feature.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::borrow::Borrow; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Display` [INFO] [stdout] --> src/core/feature.rs:14:23 [INFO] [stdout] | [INFO] [stdout] 14 | use std::fmt::{Debug, Display}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/core/feature.rs:246:20 [INFO] [stdout] | [INFO] [stdout] 246 | if (matches) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 246 - if (matches) { [INFO] [stdout] 246 + if matches { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/core/feature.rs:383:16 [INFO] [stdout] | [INFO] [stdout] 383 | if (!apply_to_children.is_empty()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 383 - if (!apply_to_children.is_empty()) { [INFO] [stdout] 383 + if !apply_to_children.is_empty() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/core/feature.rs:509:12 [INFO] [stdout] | [INFO] [stdout] 509 | if (!rolls_state.is_empty()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 509 - if (!rolls_state.is_empty()) { [INFO] [stdout] 509 + if !rolls_state.is_empty() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/core/feature_path.rs:40:20 [INFO] [stdout] | [INFO] [stdout] 40 | if (feature == head) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 40 - if (feature == head) { [INFO] [stdout] 40 + if feature == head { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Class` [INFO] [stdout] --> src/core/roll/mod.rs:1:31 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::character::class::{Class, Classes}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ModifiedAbilityScores` [INFO] [stdout] --> src/core/roll/mod.rs:2:58 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::core::ability_score::{Ability, AbilityScores, ModifiedAbilityScores}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Element` [INFO] [stdout] --> src/core/roll/mod.rs:8:20 [INFO] [stdout] | [INFO] [stdout] 8 | use iced::{Column, Element, Length, Row, Text}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Roll` [INFO] [stdout] --> src/core/roll/rollable.rs:2:31 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::core::roll::{Dice, Roll}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/core/roll/mod.rs:212:20 [INFO] [stdout] | [INFO] [stdout] 212 | if (matches) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 212 - if (matches) { [INFO] [stdout] 212 + if matches { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/core/roll/mod.rs:273:32 [INFO] [stdout] | [INFO] [stdout] 273 | ... if (prev.is_empty()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 273 - if (prev.is_empty()) { [INFO] [stdout] 273 + if prev.is_empty() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/core/roll/mod.rs:286:16 [INFO] [stdout] | [INFO] [stdout] 286 | if (prev.is_empty()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 286 - if (prev.is_empty()) { [INFO] [stdout] 286 + if prev.is_empty() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/core/roll/mod.rs:300:16 [INFO] [stdout] | [INFO] [stdout] 300 | if (prev.is_empty()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 300 - if (prev.is_empty()) { [INFO] [stdout] 300 + if prev.is_empty() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/core/roll/mod.rs:311:20 [INFO] [stdout] | [INFO] [stdout] 311 | if (prev.is_empty()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 311 - if (prev.is_empty()) { [INFO] [stdout] 311 + if prev.is_empty() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/core/roll/mod.rs:346:8 [INFO] [stdout] | [INFO] [stdout] 346 | if (!external_bonuses.is_empty()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 346 - if (!external_bonuses.is_empty()) { [INFO] [stdout] 346 + if !external_bonuses.is_empty() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/core/roll/mod.rs:448:20 [INFO] [stdout] | [INFO] [stdout] 448 | if (is_matching) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 448 - if (is_matching) { [INFO] [stdout] 448 + if is_matching { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::core::feature_path::FeaturePath` [INFO] [stdout] --> src/core/slot.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::core::feature_path::FeaturePath; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Element`, `Length` [INFO] [stdout] --> src/core/slot.rs:2:36 [INFO] [stdout] | [INFO] [stdout] 2 | use iced::{button, Button, Column, Element, Length, Row, Text}; [INFO] [stdout] | ^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/core/slot.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 51 | if (slot.max == Some(slot.current)) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 51 - if (slot.max == Some(slot.current)) { [INFO] [stdout] 51 + if slot.max == Some(slot.current) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `FromSlotCommand` [INFO] [stdout] --> src/core/feature.rs:7:25 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::core::slot::{FromSlotCommand, Slot, SlotCommand, SlotState}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `iced::futures::StreamExt` [INFO] [stdout] --> src/core/feature.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use iced::futures::StreamExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/character/mod.rs:87:31 [INFO] [stdout] | [INFO] [stdout] 87 | Character::Loaded(state) => "Character".to_string(), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `config` [INFO] [stdout] --> src/character/mod.rs:148:17 [INFO] [stdout] | [INFO] [stdout] 148 | config, [INFO] [stdout] | ^^^^^^ help: try ignoring the field: `config: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `resources` [INFO] [stdout] --> src/character/mod.rs:149:17 [INFO] [stdout] | [INFO] [stdout] 149 | resources, [INFO] [stdout] | ^^^^^^^^^ help: try ignoring the field: `resources: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `saving` [INFO] [stdout] --> src/character/mod.rs:157:17 [INFO] [stdout] | [INFO] [stdout] 157 | saving, [INFO] [stdout] | ^^^^^^ help: try ignoring the field: `saving: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dirty` [INFO] [stdout] --> src/character/mod.rs:158:17 [INFO] [stdout] | [INFO] [stdout] 158 | dirty, [INFO] [stdout] | ^^^^^ help: try ignoring the field: `dirty: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> src/core/feature.rs:102:26 [INFO] [stdout] | [INFO] [stdout] 102 | .filter(|n| !name.is_empty()) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `effects_state` [INFO] [stdout] --> src/core/feature.rs:264:13 [INFO] [stdout] | [INFO] [stdout] 264 | effects_state, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try ignoring the field: `effects_state: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rolls_state` [INFO] [stdout] --> src/core/feature.rs:265:13 [INFO] [stdout] | [INFO] [stdout] 265 | rolls_state, [INFO] [stdout] | ^^^^^^^^^^^ help: try ignoring the field: `rolls_state: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `overlayed_feature` [INFO] [stdout] --> src/core/feature.rs:266:13 [INFO] [stdout] | [INFO] [stdout] 266 | overlayed_feature, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try ignoring the field: `overlayed_feature: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/core/feature.rs:379:33 [INFO] [stdout] | [INFO] [stdout] 379 | .filter(|(path, f)| path.include_children()) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `feature` [INFO] [stdout] --> src/core/feature.rs:385:21 [INFO] [stdout] | [INFO] [stdout] 385 | feature, [INFO] [stdout] | ^^^^^^^ help: try ignoring the field: `feature: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `overlayed_feature` [INFO] [stdout] --> src/core/feature.rs:386:21 [INFO] [stdout] | [INFO] [stdout] 386 | overlayed_feature, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try ignoring the field: `overlayed_feature: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `slot_state` [INFO] [stdout] --> src/core/feature.rs:387:21 [INFO] [stdout] | [INFO] [stdout] 387 | slot_state, [INFO] [stdout] | ^^^^^^^^^^ help: try ignoring the field: `slot_state: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `effects_state` [INFO] [stdout] --> src/core/feature.rs:389:21 [INFO] [stdout] | [INFO] [stdout] 389 | effects_state, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try ignoring the field: `effects_state: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rolls_state` [INFO] [stdout] --> src/core/feature.rs:390:21 [INFO] [stdout] | [INFO] [stdout] 390 | rolls_state, [INFO] [stdout] | ^^^^^^^^^^^ help: try ignoring the field: `rolls_state: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `overlayed_feature` [INFO] [stdout] --> src/core/feature.rs:409:13 [INFO] [stdout] | [INFO] [stdout] 409 | overlayed_feature, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try ignoring the field: `overlayed_feature: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `slot_state` [INFO] [stdout] --> src/core/feature.rs:410:13 [INFO] [stdout] | [INFO] [stdout] 410 | slot_state, [INFO] [stdout] | ^^^^^^^^^^ help: try ignoring the field: `slot_state: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `effects_state` [INFO] [stdout] --> src/core/feature.rs:412:13 [INFO] [stdout] | [INFO] [stdout] 412 | effects_state, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try ignoring the field: `effects_state: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rolls_state` [INFO] [stdout] --> src/core/feature.rs:413:13 [INFO] [stdout] | [INFO] [stdout] 413 | rolls_state, [INFO] [stdout] | ^^^^^^^^^^^ help: try ignoring the field: `rolls_state: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `remaining` [INFO] [stdout] --> src/core/feature.rs:437:21 [INFO] [stdout] | [INFO] [stdout] 437 | (false, remaining) => false, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_remaining` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `overlayed_feature` [INFO] [stdout] --> src/core/feature.rs:454:13 [INFO] [stdout] | [INFO] [stdout] 454 | overlayed_feature, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try ignoring the field: `overlayed_feature: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `slot` [INFO] [stdout] --> src/core/feature.rs:477:13 [INFO] [stdout] | [INFO] [stdout] 477 | slot, [INFO] [stdout] | ^^^^ help: try ignoring the field: `slot: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `children` [INFO] [stdout] --> src/core/feature.rs:478:13 [INFO] [stdout] | [INFO] [stdout] 478 | children, [INFO] [stdout] | ^^^^^^^^ help: try ignoring the field: `children: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `show_reset_chidren` [INFO] [stdout] --> src/core/feature.rs:479:13 [INFO] [stdout] | [INFO] [stdout] 479 | show_reset_chidren, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try ignoring the field: `show_reset_chidren: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `effects` [INFO] [stdout] --> src/core/feature.rs:481:13 [INFO] [stdout] | [INFO] [stdout] 481 | effects, [INFO] [stdout] | ^^^^^^^ help: try ignoring the field: `effects: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rolls` [INFO] [stdout] --> src/core/feature.rs:482:13 [INFO] [stdout] | [INFO] [stdout] 482 | rolls, [INFO] [stdout] | ^^^^^ help: try ignoring the field: `rolls: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `templates` [INFO] [stdout] --> src/core/feature.rs:483:13 [INFO] [stdout] | [INFO] [stdout] 483 | templates, [INFO] [stdout] | ^^^^^^^^^ help: try ignoring the field: `templates: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/core/roll/mod.rs:335:9 [INFO] [stdout] | [INFO] [stdout] 335 | name, [INFO] [stdout] | ^^^^ help: try ignoring the field: `name: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tags` [INFO] [stdout] --> src/core/roll/mod.rs:336:9 [INFO] [stdout] | [INFO] [stdout] 336 | tags, [INFO] [stdout] | ^^^^ help: try ignoring the field: `tags: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `range` [INFO] [stdout] --> src/core/roll/mod.rs:338:9 [INFO] [stdout] | [INFO] [stdout] 338 | range, [INFO] [stdout] | ^^^^^ help: try ignoring the field: `range: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/core/roll/mod.rs:85:13 [INFO] [stdout] | [INFO] [stdout] 85 | name, [INFO] [stdout] | ^^^^ help: try ignoring the field: `name: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dice` [INFO] [stdout] --> src/core/roll/mod.rs:405:21 [INFO] [stdout] | [INFO] [stdout] 405 | dice, [INFO] [stdout] | ^^^^ help: try ignoring the field: `dice: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bonuses` [INFO] [stdout] --> src/core/roll/mod.rs:406:21 [INFO] [stdout] | [INFO] [stdout] 406 | bonuses, [INFO] [stdout] | ^^^^^^^ help: try ignoring the field: `bonuses: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sub_path` [INFO] [stdout] --> src/core/roll/mod.rs:422:36 [INFO] [stdout] | [INFO] [stdout] 422 | let (path_matches, sub_path) = match path { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sub_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tags` [INFO] [stdout] --> src/core/roll/mod.rs:473:13 [INFO] [stdout] | [INFO] [stdout] 473 | tags, [INFO] [stdout] | ^^^^ help: try ignoring the field: `tags: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dice` [INFO] [stdout] --> src/core/roll/mod.rs:476:13 [INFO] [stdout] | [INFO] [stdout] 476 | dice, [INFO] [stdout] | ^^^^ help: try ignoring the field: `dice: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bonuses` [INFO] [stdout] --> src/core/roll/mod.rs:477:13 [INFO] [stdout] | [INFO] [stdout] 477 | bonuses, [INFO] [stdout] | ^^^^^^^ help: try ignoring the field: `bonuses: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `control` [INFO] [stdout] --> src/core/slot.rs:32:25 [INFO] [stdout] | [INFO] [stdout] 32 | let SlotState { control, slot } = self; [INFO] [stdout] | ^^^^^^^ help: try ignoring the field: `control: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `control` [INFO] [stdout] --> src/core/slot.rs:44:25 [INFO] [stdout] | [INFO] [stdout] 44 | let SlotState { control, slot } = self; [INFO] [stdout] | ^^^^^^^ help: try ignoring the field: `control: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `control` [INFO] [stdout] --> src/core/slot.rs:50:25 [INFO] [stdout] | [INFO] [stdout] 50 | let SlotState { control, slot } = self; [INFO] [stdout] | ^^^^^^^ help: try ignoring the field: `control: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `reset_all` [INFO] [stdout] --> src/core/slot.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | reset_all, [INFO] [stdout] | ^^^^^^^^^ help: try ignoring the field: `reset_all: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/character/description.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | let mut column_1 = Column::new() [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/character/mod.rs:115:29 [INFO] [stdout] | [INFO] [stdout] 115 | let mut active_effects = state.features.effects(); [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/core/feature.rs:416:13 [INFO] [stdout] | [INFO] [stdout] 416 | let mut path = path.clone(); [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/core/roll/mod.rs:233:13 [INFO] [stdout] | [INFO] [stdout] 233 | let mut tags = self.tags.clone(); [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/core/roll/mod.rs:343:9 [INFO] [stdout] | [INFO] [stdout] 343 | let mut dice = dice.clone(); [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/core/roll/mod.rs:512:13 [INFO] [stdout] | [INFO] [stdout] 512 | let mut column = Column::new().push(row); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/dimensions.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn new(lbs: isize, oz: isize) -> Weight { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `two_element_row` [INFO] [stdout] --> src/util.rs:32:8 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn two_element_row<'a, T: Debug + Clone + 'a>( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `three_column_row` [INFO] [stdout] --> src/util.rs:41:8 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn three_column_row<'a>(left: Text, middle: Text, right: Text) -> Row<'a, Message> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `three_element_row` [INFO] [stdout] --> src/util.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 62 | pub fn three_element_row<'a, T: Debug + Clone + 'a>( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/character/class.rs:95:12 [INFO] [stdout] | [INFO] [stdout] 95 | pub fn new(name: String, level: isize) -> Class { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `modifier_for_bonus` [INFO] [stdout] --> src/character/proficiencies.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 20 | pub fn modifier_for_bonus(&self, class_proficiency_bonus: isize) -> isize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `modifier` [INFO] [stdout] --> src/character/proficiencies.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn modifier(&self, class: Classes) -> isize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `name` [INFO] [stdout] --> src/character/proficiencies.rs:43:12 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn name(&self) -> String { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `proficiency_type` [INFO] [stdout] --> src/character/proficiencies.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn proficiency_type(&self) -> ProficiencyType { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `default` [INFO] [stdout] --> src/core/ability_score.rs:66:12 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn default() -> AbilityScores { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `with` [INFO] [stdout] --> src/core/ability_score.rs:88:12 [INFO] [stdout] | [INFO] [stdout] 88 | pub fn with(&self, ability: Ability, score: AbilityScore) -> AbilityScores { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get` [INFO] [stdout] --> src/core/ability_score.rs:103:12 [INFO] [stdout] | [INFO] [stdout] 103 | pub fn get(&self, ability: Ability) -> ModifiedAbilityScore { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `roll` [INFO] [stdout] --> src/core/ability_score.rs:283:12 [INFO] [stdout] | [INFO] [stdout] 283 | pub fn roll(&self) -> Rollable { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `score` [INFO] [stdout] --> src/core/ability_score.rs:286:12 [INFO] [stdout] | [INFO] [stdout] 286 | pub fn score(&self) -> AbilityScore { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `persistable` [INFO] [stdout] --> src/core/effect.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn persistable(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `persistable` [INFO] [stdout] --> src/core/effect.rs:64:12 [INFO] [stdout] | [INFO] [stdout] 64 | pub fn persistable(&self) -> Effect { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `is_empty` [INFO] [stdout] --> src/core/feature.rs:154:12 [INFO] [stdout] | [INFO] [stdout] 154 | pub fn is_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `apply` [INFO] [stdout] --> src/core/feature.rs:403:8 [INFO] [stdout] | [INFO] [stdout] 403 | fn apply(&mut self, path: &FeaturePath, f: &F) -> IsDirty [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `of` [INFO] [stdout] --> src/core/feature_path.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn of(path: Vec) -> FeaturePath { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `with_include_children` [INFO] [stdout] --> src/core/feature_path.rs:75:12 [INFO] [stdout] | [INFO] [stdout] 75 | pub fn with_include_children(&self, include: bool) -> FeaturePath { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/core/roll/mod.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn new(count: isize, sides: isize) -> Dice { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `name` [INFO] [stdout] --> src/core/roll/mod.rs:138:12 [INFO] [stdout] | [INFO] [stdout] 138 | pub fn name(&mut self, name: String) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `ability` [INFO] [stdout] --> src/core/roll/mod.rs:142:12 [INFO] [stdout] | [INFO] [stdout] 142 | pub fn ability(&mut self, ability: Ability) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `dice` [INFO] [stdout] --> src/core/roll/mod.rs:145:12 [INFO] [stdout] | [INFO] [stdout] 145 | pub fn dice(&mut self, dice: Vec) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `tags` [INFO] [stdout] --> src/core/roll/mod.rs:149:12 [INFO] [stdout] | [INFO] [stdout] 149 | pub fn tags(&mut self, tags: HashMap>) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `name` [INFO] [stdout] --> src/core/roll/mod.rs:220:12 [INFO] [stdout] | [INFO] [stdout] 220 | pub fn name(&mut self, name: String) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `ability` [INFO] [stdout] --> src/core/roll/mod.rs:224:12 [INFO] [stdout] | [INFO] [stdout] 224 | pub fn ability(&mut self, ability: Ability) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `path` [INFO] [stdout] --> src/core/roll/mod.rs:228:12 [INFO] [stdout] | [INFO] [stdout] 228 | pub fn path(&mut self, path: FeaturePath) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `tag` [INFO] [stdout] --> src/core/roll/mod.rs:232:12 [INFO] [stdout] | [INFO] [stdout] 232 | pub fn tag(&mut self, tag: String, value: Vec) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `tags` [INFO] [stdout] --> src/core/roll/mod.rs:247:12 [INFO] [stdout] | [INFO] [stdout] 247 | pub fn tags(&mut self, tags: HashMap>) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `persistable` [INFO] [stdout] --> src/core/roll/mod.rs:383:12 [INFO] [stdout] | [INFO] [stdout] 383 | pub fn persistable(&self) -> Roll { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/core/slot.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn new(current: isize, max: Option) -> Slot { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `from` [INFO] [stdout] --> src/resources/persistence.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn from(templates: Templates) -> ResourcePersistence { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/resources/template.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn new(features: HashMap) -> Templates { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `isNoneOr` should have a snake case name [INFO] [stdout] --> src/core/roll/mod.rs:154:4 [INFO] [stdout] | [INFO] [stdout] 154 | fn isNoneOr<'a, 'b, T>(option: &'a Option, compare_to: &'b T) -> bool [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `is_none_or` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `isNoneOrOpt` should have a snake case name [INFO] [stdout] --> src/core/roll/mod.rs:164:4 [INFO] [stdout] | [INFO] [stdout] 164 | fn isNoneOrOpt<'a, 'b, T>(option: &'a Option, compare_to: &'b Option) -> bool [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `is_none_or_opt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 118 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 30.60s [INFO] running `Command { std: "docker" "inspect" "cc0cc5dcfbca5a900af293d2b7ee8dcd958098b31a5c07207330884bb799ee2b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cc0cc5dcfbca5a900af293d2b7ee8dcd958098b31a5c07207330884bb799ee2b", kill_on_drop: false }` [INFO] [stdout] cc0cc5dcfbca5a900af293d2b7ee8dcd958098b31a5c07207330884bb799ee2b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-23/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-23/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" "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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1b74e096b9bfb06f84a3007193dcd2f059cbdf6a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 96759fe25a41df7ff500b61f5624802b151e3a137ef12166f60ffdf288ab079f [INFO] running `Command { std: "docker" "start" "-a" "96759fe25a41df7ff500b61f5624802b151e3a137ef12166f60ffdf288ab079f", kill_on_drop: false }` [INFO] [stderr] Compiling pin-project-lite v0.1.11 [INFO] [stderr] Compiling bytes v0.5.6 [INFO] [stderr] Compiling signal-hook-registry v1.3.0 [INFO] [stderr] Compiling threadpool v1.8.1 [INFO] [stderr] Compiling mio-uds v0.6.8 [INFO] [stderr] Compiling derive_more v0.99.11 [INFO] [stderr] Compiling actix-macros v0.1.3 [INFO] [stderr] Compiling tokio v0.2.24 [INFO] [stderr] Compiling actix-threadpool v0.3.3 [INFO] [stderr] Compiling actix-rt v1.1.1 [INFO] [stderr] Compiling dnd-character v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/character/class.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 24 | if (self.classes.len() > 1) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 24 - if (self.classes.len() > 1) { [INFO] [stdout] 24 + if self.classes.len() > 1 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Element`, `HorizontalAlignment`, `VerticalAlignment` [INFO] [stdout] --> src/character/description.rs:4:20 [INFO] [stdout] | [INFO] [stdout] 4 | use iced::{Column, Element, HorizontalAlignment, Length, Row, Text, VerticalAlignment}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `FeatureState` [INFO] [stdout] --> src/character/persistence.rs:8:37 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::core::feature::{Feature, FeatureState, FeaturesState}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/character/proficiencies.rs:76:23 [INFO] [stdout] | [INFO] [stdout] 76 | let text = if (proficiencies.is_empty()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 76 - let text = if (proficiencies.is_empty()) { [INFO] [stdout] 76 + let text = if proficiencies.is_empty() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Dice`, `Roll` [INFO] [stdout] --> src/core/ability_score.rs:3:25 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::core::roll::{Dice, Roll}; [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::util::format_modifier` [INFO] [stdout] --> src/core/ability_score.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::util::format_modifier; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Element` [INFO] [stdout] --> src/core/ability_score.rs:5:20 [INFO] [stdout] | [INFO] [stdout] 5 | use iced::{Column, Element, HorizontalAlignment, Length, Row, Text, VerticalAlignment}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Dice` [INFO] [stdout] --> src/core/effect.rs:2:25 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::core::roll::{Dice, RollBonus, RollScope}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HorizontalAlignment`, `Length`, `VerticalAlignment` [INFO] [stdout] --> src/core/effect.rs:4:29 [INFO] [stdout] | [INFO] [stdout] 4 | use iced::{Column, Element, HorizontalAlignment, Length, Row, Text, VerticalAlignment}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `EffectState` [INFO] [stdout] --> src/core/feature.rs:4:35 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::core::effect::{Effect, EffectState, EffectsState}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RollScope` [INFO] [stdout] --> src/core/feature.rs:6:31 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::core::roll::{Roll, RollScope, RollState}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Button`, `button` [INFO] [stdout] --> src/core/feature.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | use iced::{button, Button, Column, Element, Length, Row, Text}; [INFO] [stdout] | ^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde::export::Formatter` [INFO] [stdout] --> src/core/feature.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use serde::export::Formatter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::borrow::Borrow` [INFO] [stdout] --> src/core/feature.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::borrow::Borrow; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Display` [INFO] [stdout] --> src/core/feature.rs:14:23 [INFO] [stdout] | [INFO] [stdout] 14 | use std::fmt::{Debug, Display}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/core/feature.rs:246:20 [INFO] [stdout] | [INFO] [stdout] 246 | if (matches) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 246 - if (matches) { [INFO] [stdout] 246 + if matches { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/core/feature.rs:383:16 [INFO] [stdout] | [INFO] [stdout] 383 | if (!apply_to_children.is_empty()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 383 - if (!apply_to_children.is_empty()) { [INFO] [stdout] 383 + if !apply_to_children.is_empty() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/core/feature.rs:509:12 [INFO] [stdout] | [INFO] [stdout] 509 | if (!rolls_state.is_empty()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 509 - if (!rolls_state.is_empty()) { [INFO] [stdout] 509 + if !rolls_state.is_empty() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::core::feature_path::FeaturePath` [INFO] [stdout] --> src/core/feature.rs:570:9 [INFO] [stdout] | [INFO] [stdout] 570 | use crate::core::feature_path::FeaturePath; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/core/feature_path.rs:40:20 [INFO] [stdout] | [INFO] [stdout] 40 | if (feature == head) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 40 - if (feature == head) { [INFO] [stdout] 40 + if feature == head { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Class` [INFO] [stdout] --> src/core/roll/mod.rs:1:31 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::character::class::{Class, Classes}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ModifiedAbilityScores` [INFO] [stdout] --> src/core/roll/mod.rs:2:58 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::core::ability_score::{Ability, AbilityScores, ModifiedAbilityScores}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Element` [INFO] [stdout] --> src/core/roll/mod.rs:8:20 [INFO] [stdout] | [INFO] [stdout] 8 | use iced::{Column, Element, Length, Row, Text}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Roll` [INFO] [stdout] --> src/core/roll/rollable.rs:2:31 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::core::roll::{Dice, Roll}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/core/roll/mod.rs:212:20 [INFO] [stdout] | [INFO] [stdout] 212 | if (matches) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 212 - if (matches) { [INFO] [stdout] 212 + if matches { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/core/roll/mod.rs:273:32 [INFO] [stdout] | [INFO] [stdout] 273 | ... if (prev.is_empty()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 273 - if (prev.is_empty()) { [INFO] [stdout] 273 + if prev.is_empty() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/core/roll/mod.rs:286:16 [INFO] [stdout] | [INFO] [stdout] 286 | if (prev.is_empty()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 286 - if (prev.is_empty()) { [INFO] [stdout] 286 + if prev.is_empty() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/core/roll/mod.rs:300:16 [INFO] [stdout] | [INFO] [stdout] 300 | if (prev.is_empty()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 300 - if (prev.is_empty()) { [INFO] [stdout] 300 + if prev.is_empty() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/core/roll/mod.rs:311:20 [INFO] [stdout] | [INFO] [stdout] 311 | if (prev.is_empty()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 311 - if (prev.is_empty()) { [INFO] [stdout] 311 + if prev.is_empty() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/core/roll/mod.rs:346:8 [INFO] [stdout] | [INFO] [stdout] 346 | if (!external_bonuses.is_empty()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 346 - if (!external_bonuses.is_empty()) { [INFO] [stdout] 346 + if !external_bonuses.is_empty() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/core/roll/mod.rs:448:20 [INFO] [stdout] | [INFO] [stdout] 448 | if (is_matching) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 448 - if (is_matching) { [INFO] [stdout] 448 + if is_matching { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::core::feature_path::FeaturePath` [INFO] [stdout] --> src/core/slot.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::core::feature_path::FeaturePath; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Element`, `Length` [INFO] [stdout] --> src/core/slot.rs:2:36 [INFO] [stdout] | [INFO] [stdout] 2 | use iced::{button, Button, Column, Element, Length, Row, Text}; [INFO] [stdout] | ^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/core/slot.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 51 | if (slot.max == Some(slot.current)) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 51 - if (slot.max == Some(slot.current)) { [INFO] [stdout] 51 + if slot.max == Some(slot.current) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `FromSlotCommand` [INFO] [stdout] --> src/core/feature.rs:7:25 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::core::slot::{FromSlotCommand, Slot, SlotCommand, SlotState}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `iced::futures::StreamExt` [INFO] [stdout] --> src/core/feature.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use iced::futures::StreamExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/character/mod.rs:87:31 [INFO] [stdout] | [INFO] [stdout] 87 | Character::Loaded(state) => "Character".to_string(), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `config` [INFO] [stdout] --> src/character/mod.rs:148:17 [INFO] [stdout] | [INFO] [stdout] 148 | config, [INFO] [stdout] | ^^^^^^ help: try ignoring the field: `config: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `resources` [INFO] [stdout] --> src/character/mod.rs:149:17 [INFO] [stdout] | [INFO] [stdout] 149 | resources, [INFO] [stdout] | ^^^^^^^^^ help: try ignoring the field: `resources: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `saving` [INFO] [stdout] --> src/character/mod.rs:157:17 [INFO] [stdout] | [INFO] [stdout] 157 | saving, [INFO] [stdout] | ^^^^^^ help: try ignoring the field: `saving: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dirty` [INFO] [stdout] --> src/character/mod.rs:158:17 [INFO] [stdout] | [INFO] [stdout] 158 | dirty, [INFO] [stdout] | ^^^^^ help: try ignoring the field: `dirty: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> src/core/feature.rs:102:26 [INFO] [stdout] | [INFO] [stdout] 102 | .filter(|n| !name.is_empty()) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `effects_state` [INFO] [stdout] --> src/core/feature.rs:264:13 [INFO] [stdout] | [INFO] [stdout] 264 | effects_state, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try ignoring the field: `effects_state: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rolls_state` [INFO] [stdout] --> src/core/feature.rs:265:13 [INFO] [stdout] | [INFO] [stdout] 265 | rolls_state, [INFO] [stdout] | ^^^^^^^^^^^ help: try ignoring the field: `rolls_state: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `overlayed_feature` [INFO] [stdout] --> src/core/feature.rs:266:13 [INFO] [stdout] | [INFO] [stdout] 266 | overlayed_feature, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try ignoring the field: `overlayed_feature: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/core/feature.rs:379:33 [INFO] [stdout] | [INFO] [stdout] 379 | .filter(|(path, f)| path.include_children()) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `feature` [INFO] [stdout] --> src/core/feature.rs:385:21 [INFO] [stdout] | [INFO] [stdout] 385 | feature, [INFO] [stdout] | ^^^^^^^ help: try ignoring the field: `feature: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `overlayed_feature` [INFO] [stdout] --> src/core/feature.rs:386:21 [INFO] [stdout] | [INFO] [stdout] 386 | overlayed_feature, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try ignoring the field: `overlayed_feature: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `slot_state` [INFO] [stdout] --> src/core/feature.rs:387:21 [INFO] [stdout] | [INFO] [stdout] 387 | slot_state, [INFO] [stdout] | ^^^^^^^^^^ help: try ignoring the field: `slot_state: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `effects_state` [INFO] [stdout] --> src/core/feature.rs:389:21 [INFO] [stdout] | [INFO] [stdout] 389 | effects_state, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try ignoring the field: `effects_state: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rolls_state` [INFO] [stdout] --> src/core/feature.rs:390:21 [INFO] [stdout] | [INFO] [stdout] 390 | rolls_state, [INFO] [stdout] | ^^^^^^^^^^^ help: try ignoring the field: `rolls_state: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `overlayed_feature` [INFO] [stdout] --> src/core/feature.rs:409:13 [INFO] [stdout] | [INFO] [stdout] 409 | overlayed_feature, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try ignoring the field: `overlayed_feature: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `slot_state` [INFO] [stdout] --> src/core/feature.rs:410:13 [INFO] [stdout] | [INFO] [stdout] 410 | slot_state, [INFO] [stdout] | ^^^^^^^^^^ help: try ignoring the field: `slot_state: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `effects_state` [INFO] [stdout] --> src/core/feature.rs:412:13 [INFO] [stdout] | [INFO] [stdout] 412 | effects_state, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try ignoring the field: `effects_state: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rolls_state` [INFO] [stdout] --> src/core/feature.rs:413:13 [INFO] [stdout] | [INFO] [stdout] 413 | rolls_state, [INFO] [stdout] | ^^^^^^^^^^^ help: try ignoring the field: `rolls_state: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `remaining` [INFO] [stdout] --> src/core/feature.rs:437:21 [INFO] [stdout] | [INFO] [stdout] 437 | (false, remaining) => false, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_remaining` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `overlayed_feature` [INFO] [stdout] --> src/core/feature.rs:454:13 [INFO] [stdout] | [INFO] [stdout] 454 | overlayed_feature, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try ignoring the field: `overlayed_feature: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `slot` [INFO] [stdout] --> src/core/feature.rs:477:13 [INFO] [stdout] | [INFO] [stdout] 477 | slot, [INFO] [stdout] | ^^^^ help: try ignoring the field: `slot: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `children` [INFO] [stdout] --> src/core/feature.rs:478:13 [INFO] [stdout] | [INFO] [stdout] 478 | children, [INFO] [stdout] | ^^^^^^^^ help: try ignoring the field: `children: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `show_reset_chidren` [INFO] [stdout] --> src/core/feature.rs:479:13 [INFO] [stdout] | [INFO] [stdout] 479 | show_reset_chidren, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try ignoring the field: `show_reset_chidren: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `effects` [INFO] [stdout] --> src/core/feature.rs:481:13 [INFO] [stdout] | [INFO] [stdout] 481 | effects, [INFO] [stdout] | ^^^^^^^ help: try ignoring the field: `effects: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rolls` [INFO] [stdout] --> src/core/feature.rs:482:13 [INFO] [stdout] | [INFO] [stdout] 482 | rolls, [INFO] [stdout] | ^^^^^ help: try ignoring the field: `rolls: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `templates` [INFO] [stdout] --> src/core/feature.rs:483:13 [INFO] [stdout] | [INFO] [stdout] 483 | templates, [INFO] [stdout] | ^^^^^^^^^ help: try ignoring the field: `templates: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/core/roll/mod.rs:335:9 [INFO] [stdout] | [INFO] [stdout] 335 | name, [INFO] [stdout] | ^^^^ help: try ignoring the field: `name: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tags` [INFO] [stdout] --> src/core/roll/mod.rs:336:9 [INFO] [stdout] | [INFO] [stdout] 336 | tags, [INFO] [stdout] | ^^^^ help: try ignoring the field: `tags: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `range` [INFO] [stdout] --> src/core/roll/mod.rs:338:9 [INFO] [stdout] | [INFO] [stdout] 338 | range, [INFO] [stdout] | ^^^^^ help: try ignoring the field: `range: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/core/roll/mod.rs:85:13 [INFO] [stdout] | [INFO] [stdout] 85 | name, [INFO] [stdout] | ^^^^ help: try ignoring the field: `name: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dice` [INFO] [stdout] --> src/core/roll/mod.rs:405:21 [INFO] [stdout] | [INFO] [stdout] 405 | dice, [INFO] [stdout] | ^^^^ help: try ignoring the field: `dice: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bonuses` [INFO] [stdout] --> src/core/roll/mod.rs:406:21 [INFO] [stdout] | [INFO] [stdout] 406 | bonuses, [INFO] [stdout] | ^^^^^^^ help: try ignoring the field: `bonuses: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sub_path` [INFO] [stdout] --> src/core/roll/mod.rs:422:36 [INFO] [stdout] | [INFO] [stdout] 422 | let (path_matches, sub_path) = match path { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sub_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tags` [INFO] [stdout] --> src/core/roll/mod.rs:473:13 [INFO] [stdout] | [INFO] [stdout] 473 | tags, [INFO] [stdout] | ^^^^ help: try ignoring the field: `tags: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dice` [INFO] [stdout] --> src/core/roll/mod.rs:476:13 [INFO] [stdout] | [INFO] [stdout] 476 | dice, [INFO] [stdout] | ^^^^ help: try ignoring the field: `dice: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bonuses` [INFO] [stdout] --> src/core/roll/mod.rs:477:13 [INFO] [stdout] | [INFO] [stdout] 477 | bonuses, [INFO] [stdout] | ^^^^^^^ help: try ignoring the field: `bonuses: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `control` [INFO] [stdout] --> src/core/slot.rs:32:25 [INFO] [stdout] | [INFO] [stdout] 32 | let SlotState { control, slot } = self; [INFO] [stdout] | ^^^^^^^ help: try ignoring the field: `control: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `control` [INFO] [stdout] --> src/core/slot.rs:44:25 [INFO] [stdout] | [INFO] [stdout] 44 | let SlotState { control, slot } = self; [INFO] [stdout] | ^^^^^^^ help: try ignoring the field: `control: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `control` [INFO] [stdout] --> src/core/slot.rs:50:25 [INFO] [stdout] | [INFO] [stdout] 50 | let SlotState { control, slot } = self; [INFO] [stdout] | ^^^^^^^ help: try ignoring the field: `control: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `reset_all` [INFO] [stdout] --> src/core/slot.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | reset_all, [INFO] [stdout] | ^^^^^^^^^ help: try ignoring the field: `reset_all: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/character/description.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | let mut column_1 = Column::new() [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/character/mod.rs:115:29 [INFO] [stdout] | [INFO] [stdout] 115 | let mut active_effects = state.features.effects(); [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/core/feature.rs:416:13 [INFO] [stdout] | [INFO] [stdout] 416 | let mut path = path.clone(); [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/core/roll/mod.rs:233:13 [INFO] [stdout] | [INFO] [stdout] 233 | let mut tags = self.tags.clone(); [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/core/roll/mod.rs:343:9 [INFO] [stdout] | [INFO] [stdout] 343 | let mut dice = dice.clone(); [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/core/roll/mod.rs:512:13 [INFO] [stdout] | [INFO] [stdout] 512 | let mut column = Column::new().push(row); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/dimensions.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn new(lbs: isize, oz: isize) -> Weight { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `two_element_row` [INFO] [stdout] --> src/util.rs:32:8 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn two_element_row<'a, T: Debug + Clone + 'a>( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `three_column_row` [INFO] [stdout] --> src/util.rs:41:8 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn three_column_row<'a>(left: Text, middle: Text, right: Text) -> Row<'a, Message> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `three_element_row` [INFO] [stdout] --> src/util.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 62 | pub fn three_element_row<'a, T: Debug + Clone + 'a>( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/character/class.rs:95:12 [INFO] [stdout] | [INFO] [stdout] 95 | pub fn new(name: String, level: isize) -> Class { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `modifier_for_bonus` [INFO] [stdout] --> src/character/proficiencies.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 20 | pub fn modifier_for_bonus(&self, class_proficiency_bonus: isize) -> isize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `modifier` [INFO] [stdout] --> src/character/proficiencies.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn modifier(&self, class: Classes) -> isize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `name` [INFO] [stdout] --> src/character/proficiencies.rs:43:12 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn name(&self) -> String { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `proficiency_type` [INFO] [stdout] --> src/character/proficiencies.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn proficiency_type(&self) -> ProficiencyType { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `default` [INFO] [stdout] --> src/core/ability_score.rs:66:12 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn default() -> AbilityScores { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `with` [INFO] [stdout] --> src/core/ability_score.rs:88:12 [INFO] [stdout] | [INFO] [stdout] 88 | pub fn with(&self, ability: Ability, score: AbilityScore) -> AbilityScores { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get` [INFO] [stdout] --> src/core/ability_score.rs:103:12 [INFO] [stdout] | [INFO] [stdout] 103 | pub fn get(&self, ability: Ability) -> ModifiedAbilityScore { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `roll` [INFO] [stdout] --> src/core/ability_score.rs:283:12 [INFO] [stdout] | [INFO] [stdout] 283 | pub fn roll(&self) -> Rollable { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `score` [INFO] [stdout] --> src/core/ability_score.rs:286:12 [INFO] [stdout] | [INFO] [stdout] 286 | pub fn score(&self) -> AbilityScore { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `persistable` [INFO] [stdout] --> src/core/effect.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn persistable(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `persistable` [INFO] [stdout] --> src/core/effect.rs:64:12 [INFO] [stdout] | [INFO] [stdout] 64 | pub fn persistable(&self) -> Effect { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `is_empty` [INFO] [stdout] --> src/core/feature.rs:154:12 [INFO] [stdout] | [INFO] [stdout] 154 | pub fn is_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `apply` [INFO] [stdout] --> src/core/feature.rs:403:8 [INFO] [stdout] | [INFO] [stdout] 403 | fn apply(&mut self, path: &FeaturePath, f: &F) -> IsDirty [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `of` [INFO] [stdout] --> src/core/feature_path.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn of(path: Vec) -> FeaturePath { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `with_include_children` [INFO] [stdout] --> src/core/feature_path.rs:75:12 [INFO] [stdout] | [INFO] [stdout] 75 | pub fn with_include_children(&self, include: bool) -> FeaturePath { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `path` [INFO] [stdout] --> src/core/roll/mod.rs:228:12 [INFO] [stdout] | [INFO] [stdout] 228 | pub fn path(&mut self, path: FeaturePath) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `persistable` [INFO] [stdout] --> src/core/roll/mod.rs:383:12 [INFO] [stdout] | [INFO] [stdout] 383 | pub fn persistable(&self) -> Roll { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/core/slot.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn new(current: isize, max: Option) -> Slot { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `from` [INFO] [stdout] --> src/resources/persistence.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn from(templates: Templates) -> ResourcePersistence { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/resources/template.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn new(features: HashMap) -> Templates { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `emptyFeature` [INFO] [stdout] --> src/core/feature.rs:575:8 [INFO] [stdout] | [INFO] [stdout] 575 | fn emptyFeature() -> Feature { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `isNoneOr` should have a snake case name [INFO] [stdout] --> src/core/roll/mod.rs:154:4 [INFO] [stdout] | [INFO] [stdout] 154 | fn isNoneOr<'a, 'b, T>(option: &'a Option, compare_to: &'b T) -> bool [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `is_none_or` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `isNoneOrOpt` should have a snake case name [INFO] [stdout] --> src/core/roll/mod.rs:164:4 [INFO] [stdout] | [INFO] [stdout] 164 | fn isNoneOrOpt<'a, 'b, T>(option: &'a Option, compare_to: &'b Option) -> bool [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `is_none_or_opt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/store.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 101 | std::fs::remove_dir_all(test_directory); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `emptyFeature` should have a snake case name [INFO] [stdout] --> src/core/feature.rs:575:8 [INFO] [stdout] | [INFO] [stdout] 575 | fn emptyFeature() -> Feature { [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `empty_feature` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `skillProficiencies` should have a snake case name [INFO] [stdout] --> src/core/feature.rs:727:13 [INFO] [stdout] | [INFO] [stdout] 727 | let skillProficiencies = skills [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `skill_proficiencies` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 114 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 5.62s [INFO] [stderr] Executable unittests src/main.rs (/opt/rustwide/target/debug/deps/dnd_character-c683097004c694f7) [INFO] running `Command { std: "docker" "inspect" "96759fe25a41df7ff500b61f5624802b151e3a137ef12166f60ffdf288ab079f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "96759fe25a41df7ff500b61f5624802b151e3a137ef12166f60ffdf288ab079f", kill_on_drop: false }` [INFO] [stdout] 96759fe25a41df7ff500b61f5624802b151e3a137ef12166f60ffdf288ab079f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-23/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-23/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" "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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1b74e096b9bfb06f84a3007193dcd2f059cbdf6a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 27461d2e0988aaf43df6ed559252a1082fcf541d3ae810912b93a37f00d528da [INFO] running `Command { std: "docker" "start" "-a" "27461d2e0988aaf43df6ed559252a1082fcf541d3ae810912b93a37f00d528da", kill_on_drop: false }` [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/character/class.rs:24:12 [INFO] [stderr] | [INFO] [stderr] 24 | if (self.classes.len() > 1) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 24 - if (self.classes.len() > 1) { [INFO] [stderr] 24 + if self.classes.len() > 1 { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Element`, `HorizontalAlignment`, `VerticalAlignment` [INFO] [stderr] --> src/character/description.rs:4:20 [INFO] [stderr] | [INFO] [stderr] 4 | use iced::{Column, Element, HorizontalAlignment, Length, Row, Text, VerticalAlignment}; [INFO] [stderr] | ^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `FeatureState` [INFO] [stderr] --> src/character/persistence.rs:8:37 [INFO] [stderr] | [INFO] [stderr] 8 | use crate::core::feature::{Feature, FeatureState, FeaturesState}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/character/proficiencies.rs:76:23 [INFO] [stderr] | [INFO] [stderr] 76 | let text = if (proficiencies.is_empty()) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 76 - let text = if (proficiencies.is_empty()) { [INFO] [stderr] 76 + let text = if proficiencies.is_empty() { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Dice`, `Roll` [INFO] [stderr] --> src/core/ability_score.rs:3:25 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::core::roll::{Dice, Roll}; [INFO] [stderr] | ^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::util::format_modifier` [INFO] [stderr] --> src/core/ability_score.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use crate::util::format_modifier; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Element` [INFO] [stderr] --> src/core/ability_score.rs:5:20 [INFO] [stderr] | [INFO] [stderr] 5 | use iced::{Column, Element, HorizontalAlignment, Length, Row, Text, VerticalAlignment}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Dice` [INFO] [stderr] --> src/core/effect.rs:2:25 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::core::roll::{Dice, RollBonus, RollScope}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `HorizontalAlignment`, `Length`, `VerticalAlignment` [INFO] [stderr] --> src/core/effect.rs:4:29 [INFO] [stderr] | [INFO] [stderr] 4 | use iced::{Column, Element, HorizontalAlignment, Length, Row, Text, VerticalAlignment}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `EffectState` [INFO] [stderr] --> src/core/feature.rs:4:35 [INFO] [stderr] | [INFO] [stderr] 4 | use crate::core::effect::{Effect, EffectState, EffectsState}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `RollScope` [INFO] [stderr] --> src/core/feature.rs:6:31 [INFO] [stderr] | [INFO] [stderr] 6 | use crate::core::roll::{Roll, RollScope, RollState}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Button`, `button` [INFO] [stderr] --> src/core/feature.rs:9:12 [INFO] [stderr] | [INFO] [stderr] 9 | use iced::{button, Button, Column, Element, Length, Row, Text}; [INFO] [stderr] | ^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `serde::export::Formatter` [INFO] [stderr] --> src/core/feature.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use serde::export::Formatter; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::borrow::Borrow` [INFO] [stderr] --> src/core/feature.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use std::borrow::Borrow; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Display` [INFO] [stderr] --> src/core/feature.rs:14:23 [INFO] [stderr] | [INFO] [stderr] 14 | use std::fmt::{Debug, Display}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/core/feature.rs:246:20 [INFO] [stderr] | [INFO] [stderr] 246 | if (matches) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 246 - if (matches) { [INFO] [stderr] 246 + if matches { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/core/feature.rs:383:16 [INFO] [stderr] | [INFO] [stderr] 383 | if (!apply_to_children.is_empty()) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 383 - if (!apply_to_children.is_empty()) { [INFO] [stderr] 383 + if !apply_to_children.is_empty() { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/core/feature.rs:509:12 [INFO] [stderr] | [INFO] [stderr] 509 | if (!rolls_state.is_empty()) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 509 - if (!rolls_state.is_empty()) { [INFO] [stderr] 509 + if !rolls_state.is_empty() { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::core::feature_path::FeaturePath` [INFO] [stderr] --> src/core/feature.rs:570:9 [INFO] [stderr] | [INFO] [stderr] 570 | use crate::core::feature_path::FeaturePath; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/core/feature_path.rs:40:20 [INFO] [stderr] | [INFO] [stderr] 40 | if (feature == head) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 40 - if (feature == head) { [INFO] [stderr] 40 + if feature == head { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused import: `Class` [INFO] [stderr] --> src/core/roll/mod.rs:1:31 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::character::class::{Class, Classes}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ModifiedAbilityScores` [INFO] [stderr] --> src/core/roll/mod.rs:2:58 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::core::ability_score::{Ability, AbilityScores, ModifiedAbilityScores}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Element` [INFO] [stderr] --> src/core/roll/mod.rs:8:20 [INFO] [stderr] | [INFO] [stderr] 8 | use iced::{Column, Element, Length, Row, Text}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Roll` [INFO] [stderr] --> src/core/roll/rollable.rs:2:31 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::core::roll::{Dice, Roll}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/core/roll/mod.rs:212:20 [INFO] [stderr] | [INFO] [stderr] 212 | if (matches) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 212 - if (matches) { [INFO] [stderr] 212 + if matches { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/core/roll/mod.rs:273:32 [INFO] [stderr] | [INFO] [stderr] 273 | ... if (prev.is_empty()) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 273 - if (prev.is_empty()) { [INFO] [stderr] 273 + if prev.is_empty() { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/core/roll/mod.rs:286:16 [INFO] [stderr] | [INFO] [stderr] 286 | if (prev.is_empty()) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 286 - if (prev.is_empty()) { [INFO] [stderr] 286 + if prev.is_empty() { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/core/roll/mod.rs:300:16 [INFO] [stderr] | [INFO] [stderr] 300 | if (prev.is_empty()) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 300 - if (prev.is_empty()) { [INFO] [stderr] 300 + if prev.is_empty() { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/core/roll/mod.rs:311:20 [INFO] [stderr] | [INFO] [stderr] 311 | if (prev.is_empty()) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 311 - if (prev.is_empty()) { [INFO] [stderr] 311 + if prev.is_empty() { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/core/roll/mod.rs:346:8 [INFO] [stderr] | [INFO] [stderr] 346 | if (!external_bonuses.is_empty()) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 346 - if (!external_bonuses.is_empty()) { [INFO] [stderr] 346 + if !external_bonuses.is_empty() { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/core/roll/mod.rs:448:20 [INFO] [stderr] | [INFO] [stderr] 448 | if (is_matching) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 448 - if (is_matching) { [INFO] [stderr] 448 + if is_matching { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::core::feature_path::FeaturePath` [INFO] [stderr] --> src/core/slot.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::core::feature_path::FeaturePath; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Element`, `Length` [INFO] [stderr] --> src/core/slot.rs:2:36 [INFO] [stderr] | [INFO] [stderr] 2 | use iced::{button, Button, Column, Element, Length, Row, Text}; [INFO] [stderr] | ^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/core/slot.rs:51:12 [INFO] [stderr] | [INFO] [stderr] 51 | if (slot.max == Some(slot.current)) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 51 - if (slot.max == Some(slot.current)) { [INFO] [stderr] 51 + if slot.max == Some(slot.current) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused import: `FromSlotCommand` [INFO] [stderr] --> src/core/feature.rs:7:25 [INFO] [stderr] | [INFO] [stderr] 7 | use crate::core::slot::{FromSlotCommand, Slot, SlotCommand, SlotState}; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `iced::futures::StreamExt` [INFO] [stderr] --> src/core/feature.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use iced::futures::StreamExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `state` [INFO] [stderr] --> src/character/mod.rs:87:31 [INFO] [stderr] | [INFO] [stderr] 87 | Character::Loaded(state) => "Character".to_string(), [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `config` [INFO] [stderr] --> src/character/mod.rs:148:17 [INFO] [stderr] | [INFO] [stderr] 148 | config, [INFO] [stderr] | ^^^^^^ help: try ignoring the field: `config: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `resources` [INFO] [stderr] --> src/character/mod.rs:149:17 [INFO] [stderr] | [INFO] [stderr] 149 | resources, [INFO] [stderr] | ^^^^^^^^^ help: try ignoring the field: `resources: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `saving` [INFO] [stderr] --> src/character/mod.rs:157:17 [INFO] [stderr] | [INFO] [stderr] 157 | saving, [INFO] [stderr] | ^^^^^^ help: try ignoring the field: `saving: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dirty` [INFO] [stderr] --> src/character/mod.rs:158:17 [INFO] [stderr] | [INFO] [stderr] 158 | dirty, [INFO] [stderr] | ^^^^^ help: try ignoring the field: `dirty: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `n` [INFO] [stderr] --> src/core/feature.rs:102:26 [INFO] [stderr] | [INFO] [stderr] 102 | .filter(|n| !name.is_empty()) [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `effects_state` [INFO] [stderr] --> src/core/feature.rs:264:13 [INFO] [stderr] | [INFO] [stderr] 264 | effects_state, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try ignoring the field: `effects_state: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rolls_state` [INFO] [stderr] --> src/core/feature.rs:265:13 [INFO] [stderr] | [INFO] [stderr] 265 | rolls_state, [INFO] [stderr] | ^^^^^^^^^^^ help: try ignoring the field: `rolls_state: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `overlayed_feature` [INFO] [stderr] --> src/core/feature.rs:266:13 [INFO] [stderr] | [INFO] [stderr] 266 | overlayed_feature, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try ignoring the field: `overlayed_feature: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `f` [INFO] [stderr] --> src/core/feature.rs:379:33 [INFO] [stderr] | [INFO] [stderr] 379 | .filter(|(path, f)| path.include_children()) [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `feature` [INFO] [stderr] --> src/core/feature.rs:385:21 [INFO] [stderr] | [INFO] [stderr] 385 | feature, [INFO] [stderr] | ^^^^^^^ help: try ignoring the field: `feature: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `overlayed_feature` [INFO] [stderr] --> src/core/feature.rs:386:21 [INFO] [stderr] | [INFO] [stderr] 386 | overlayed_feature, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try ignoring the field: `overlayed_feature: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `slot_state` [INFO] [stderr] --> src/core/feature.rs:387:21 [INFO] [stderr] | [INFO] [stderr] 387 | slot_state, [INFO] [stderr] | ^^^^^^^^^^ help: try ignoring the field: `slot_state: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `effects_state` [INFO] [stderr] --> src/core/feature.rs:389:21 [INFO] [stderr] | [INFO] [stderr] 389 | effects_state, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try ignoring the field: `effects_state: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rolls_state` [INFO] [stderr] --> src/core/feature.rs:390:21 [INFO] [stderr] | [INFO] [stderr] 390 | rolls_state, [INFO] [stderr] | ^^^^^^^^^^^ help: try ignoring the field: `rolls_state: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `overlayed_feature` [INFO] [stderr] --> src/core/feature.rs:409:13 [INFO] [stderr] | [INFO] [stderr] 409 | overlayed_feature, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try ignoring the field: `overlayed_feature: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `slot_state` [INFO] [stderr] --> src/core/feature.rs:410:13 [INFO] [stderr] | [INFO] [stderr] 410 | slot_state, [INFO] [stderr] | ^^^^^^^^^^ help: try ignoring the field: `slot_state: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `effects_state` [INFO] [stderr] --> src/core/feature.rs:412:13 [INFO] [stderr] | [INFO] [stderr] 412 | effects_state, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try ignoring the field: `effects_state: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rolls_state` [INFO] [stderr] --> src/core/feature.rs:413:13 [INFO] [stderr] | [INFO] [stderr] 413 | rolls_state, [INFO] [stderr] | ^^^^^^^^^^^ help: try ignoring the field: `rolls_state: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `remaining` [INFO] [stderr] --> src/core/feature.rs:437:21 [INFO] [stderr] | [INFO] [stderr] 437 | (false, remaining) => false, [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_remaining` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `overlayed_feature` [INFO] [stderr] --> src/core/feature.rs:454:13 [INFO] [stderr] | [INFO] [stderr] 454 | overlayed_feature, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try ignoring the field: `overlayed_feature: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `slot` [INFO] [stderr] --> src/core/feature.rs:477:13 [INFO] [stderr] | [INFO] [stderr] 477 | slot, [INFO] [stderr] | ^^^^ help: try ignoring the field: `slot: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `children` [INFO] [stderr] --> src/core/feature.rs:478:13 [INFO] [stderr] | [INFO] [stderr] 478 | children, [INFO] [stderr] | ^^^^^^^^ help: try ignoring the field: `children: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `show_reset_chidren` [INFO] [stderr] --> src/core/feature.rs:479:13 [INFO] [stderr] | [INFO] [stderr] 479 | show_reset_chidren, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try ignoring the field: `show_reset_chidren: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `effects` [INFO] [stderr] --> src/core/feature.rs:481:13 [INFO] [stderr] | [INFO] [stderr] 481 | effects, [INFO] [stderr] | ^^^^^^^ help: try ignoring the field: `effects: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rolls` [INFO] [stderr] --> src/core/feature.rs:482:13 [INFO] [stderr] | [INFO] [stderr] 482 | rolls, [INFO] [stderr] | ^^^^^ help: try ignoring the field: `rolls: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `templates` [INFO] [stderr] --> src/core/feature.rs:483:13 [INFO] [stderr] | [INFO] [stderr] 483 | templates, [INFO] [stderr] | ^^^^^^^^^ help: try ignoring the field: `templates: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `name` [INFO] [stderr] --> src/core/roll/mod.rs:335:9 [INFO] [stderr] | [INFO] [stderr] 335 | name, [INFO] [stderr] | ^^^^ help: try ignoring the field: `name: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `tags` [INFO] [stderr] --> src/core/roll/mod.rs:336:9 [INFO] [stderr] | [INFO] [stderr] 336 | tags, [INFO] [stderr] | ^^^^ help: try ignoring the field: `tags: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `range` [INFO] [stderr] --> src/core/roll/mod.rs:338:9 [INFO] [stderr] | [INFO] [stderr] 338 | range, [INFO] [stderr] | ^^^^^ help: try ignoring the field: `range: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `name` [INFO] [stderr] --> src/core/roll/mod.rs:85:13 [INFO] [stderr] | [INFO] [stderr] 85 | name, [INFO] [stderr] | ^^^^ help: try ignoring the field: `name: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dice` [INFO] [stderr] --> src/core/roll/mod.rs:405:21 [INFO] [stderr] | [INFO] [stderr] 405 | dice, [INFO] [stderr] | ^^^^ help: try ignoring the field: `dice: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `bonuses` [INFO] [stderr] --> src/core/roll/mod.rs:406:21 [INFO] [stderr] | [INFO] [stderr] 406 | bonuses, [INFO] [stderr] | ^^^^^^^ help: try ignoring the field: `bonuses: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sub_path` [INFO] [stderr] --> src/core/roll/mod.rs:422:36 [INFO] [stderr] | [INFO] [stderr] 422 | let (path_matches, sub_path) = match path { [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sub_path` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `tags` [INFO] [stderr] --> src/core/roll/mod.rs:473:13 [INFO] [stderr] | [INFO] [stderr] 473 | tags, [INFO] [stderr] | ^^^^ help: try ignoring the field: `tags: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dice` [INFO] [stderr] --> src/core/roll/mod.rs:476:13 [INFO] [stderr] | [INFO] [stderr] 476 | dice, [INFO] [stderr] | ^^^^ help: try ignoring the field: `dice: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `bonuses` [INFO] [stderr] --> src/core/roll/mod.rs:477:13 [INFO] [stderr] | [INFO] [stderr] 477 | bonuses, [INFO] [stderr] | ^^^^^^^ help: try ignoring the field: `bonuses: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `control` [INFO] [stderr] --> src/core/slot.rs:32:25 [INFO] [stderr] | [INFO] [stderr] 32 | let SlotState { control, slot } = self; [INFO] [stderr] | ^^^^^^^ help: try ignoring the field: `control: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `control` [INFO] [stderr] --> src/core/slot.rs:44:25 [INFO] [stderr] | [INFO] [stderr] 44 | let SlotState { control, slot } = self; [INFO] [stderr] | ^^^^^^^ help: try ignoring the field: `control: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `control` [INFO] [stderr] --> src/core/slot.rs:50:25 [INFO] [stderr] | [INFO] [stderr] 50 | let SlotState { control, slot } = self; [INFO] [stderr] | ^^^^^^^ help: try ignoring the field: `control: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `reset_all` [INFO] [stderr] --> src/core/slot.rs:87:13 [INFO] [stderr] | [INFO] [stderr] 87 | reset_all, [INFO] [stderr] | ^^^^^^^^^ help: try ignoring the field: `reset_all: _` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/character/description.rs:86:13 [INFO] [stderr] | [INFO] [stderr] 86 | let mut column_1 = Column::new() [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/character/mod.rs:115:29 [INFO] [stderr] | [INFO] [stderr] 115 | let mut active_effects = state.features.effects(); [INFO] [stderr] | ----^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/core/feature.rs:416:13 [INFO] [stderr] | [INFO] [stderr] 416 | let mut path = path.clone(); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/core/roll/mod.rs:233:13 [INFO] [stderr] | [INFO] [stderr] 233 | let mut tags = self.tags.clone(); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/core/roll/mod.rs:343:9 [INFO] [stderr] | [INFO] [stderr] 343 | let mut dice = dice.clone(); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/core/roll/mod.rs:512:13 [INFO] [stderr] | [INFO] [stderr] 512 | let mut column = Column::new().push(row); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `new` [INFO] [stderr] --> src/dimensions.rs:13:12 [INFO] [stderr] | [INFO] [stderr] 13 | pub fn new(lbs: isize, oz: isize) -> Weight { [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `two_element_row` [INFO] [stderr] --> src/util.rs:32:8 [INFO] [stderr] | [INFO] [stderr] 32 | pub fn two_element_row<'a, T: Debug + Clone + 'a>( [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `three_column_row` [INFO] [stderr] --> src/util.rs:41:8 [INFO] [stderr] | [INFO] [stderr] 41 | pub fn three_column_row<'a>(left: Text, middle: Text, right: Text) -> Row<'a, Message> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `three_element_row` [INFO] [stderr] --> src/util.rs:62:8 [INFO] [stderr] | [INFO] [stderr] 62 | pub fn three_element_row<'a, T: Debug + Clone + 'a>( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `new` [INFO] [stderr] --> src/character/class.rs:95:12 [INFO] [stderr] | [INFO] [stderr] 95 | pub fn new(name: String, level: isize) -> Class { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `modifier_for_bonus` [INFO] [stderr] --> src/character/proficiencies.rs:20:12 [INFO] [stderr] | [INFO] [stderr] 20 | pub fn modifier_for_bonus(&self, class_proficiency_bonus: isize) -> isize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `modifier` [INFO] [stderr] --> src/character/proficiencies.rs:27:12 [INFO] [stderr] | [INFO] [stderr] 27 | pub fn modifier(&self, class: Classes) -> isize { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `name` [INFO] [stderr] --> src/character/proficiencies.rs:43:12 [INFO] [stderr] | [INFO] [stderr] 43 | pub fn name(&self) -> String { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `proficiency_type` [INFO] [stderr] --> src/character/proficiencies.rs:46:12 [INFO] [stderr] | [INFO] [stderr] 46 | pub fn proficiency_type(&self) -> ProficiencyType { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `default` [INFO] [stderr] --> src/core/ability_score.rs:66:12 [INFO] [stderr] | [INFO] [stderr] 66 | pub fn default() -> AbilityScores { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `with` [INFO] [stderr] --> src/core/ability_score.rs:88:12 [INFO] [stderr] | [INFO] [stderr] 88 | pub fn with(&self, ability: Ability, score: AbilityScore) -> AbilityScores { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `get` [INFO] [stderr] --> src/core/ability_score.rs:103:12 [INFO] [stderr] | [INFO] [stderr] 103 | pub fn get(&self, ability: Ability) -> ModifiedAbilityScore { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `roll` [INFO] [stderr] --> src/core/ability_score.rs:283:12 [INFO] [stderr] | [INFO] [stderr] 283 | pub fn roll(&self) -> Rollable { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `score` [INFO] [stderr] --> src/core/ability_score.rs:286:12 [INFO] [stderr] | [INFO] [stderr] 286 | pub fn score(&self) -> AbilityScore { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `persistable` [INFO] [stderr] --> src/core/effect.rs:29:12 [INFO] [stderr] | [INFO] [stderr] 29 | pub fn persistable(&self) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `persistable` [INFO] [stderr] --> src/core/effect.rs:64:12 [INFO] [stderr] | [INFO] [stderr] 64 | pub fn persistable(&self) -> Effect { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `is_empty` [INFO] [stderr] --> src/core/feature.rs:154:12 [INFO] [stderr] | [INFO] [stderr] 154 | pub fn is_empty(&self) -> bool { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `apply` [INFO] [stderr] --> src/core/feature.rs:403:8 [INFO] [stderr] | [INFO] [stderr] 403 | fn apply(&mut self, path: &FeaturePath, f: &F) -> IsDirty [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `of` [INFO] [stderr] --> src/core/feature_path.rs:22:12 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn of(path: Vec) -> FeaturePath { [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `with_include_children` [INFO] [stderr] --> src/core/feature_path.rs:75:12 [INFO] [stderr] | [INFO] [stderr] 75 | pub fn with_include_children(&self, include: bool) -> FeaturePath { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `path` [INFO] [stderr] --> src/core/roll/mod.rs:228:12 [INFO] [stderr] | [INFO] [stderr] 228 | pub fn path(&mut self, path: FeaturePath) { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `persistable` [INFO] [stderr] --> src/core/roll/mod.rs:383:12 [INFO] [stderr] | [INFO] [stderr] 383 | pub fn persistable(&self) -> Roll { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `new` [INFO] [stderr] --> src/core/slot.rs:13:12 [INFO] [stderr] | [INFO] [stderr] 13 | pub fn new(current: isize, max: Option) -> Slot { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `from` [INFO] [stderr] --> src/resources/persistence.rs:22:12 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn from(templates: Templates) -> ResourcePersistence { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `new` [INFO] [stderr] --> src/resources/template.rs:12:12 [INFO] [stderr] | [INFO] [stderr] 12 | pub fn new(features: HashMap) -> Templates { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `emptyFeature` [INFO] [stderr] --> src/core/feature.rs:575:8 [INFO] [stderr] | [INFO] [stderr] 575 | fn emptyFeature() -> Feature { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `isNoneOr` should have a snake case name [INFO] [stderr] --> src/core/roll/mod.rs:154:4 [INFO] [stderr] | [INFO] [stderr] 154 | fn isNoneOr<'a, 'b, T>(option: &'a Option, compare_to: &'b T) -> bool [INFO] [stderr] | ^^^^^^^^ help: convert the identifier to snake case: `is_none_or` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_snake_case)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function `isNoneOrOpt` should have a snake case name [INFO] [stderr] --> src/core/roll/mod.rs:164:4 [INFO] [stderr] | [INFO] [stderr] 164 | fn isNoneOrOpt<'a, 'b, T>(option: &'a Option, compare_to: &'b Option) -> bool [INFO] [stderr] | ^^^^^^^^^^^ help: convert the identifier to snake case: `is_none_or_opt` [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/store.rs:101:9 [INFO] [stderr] | [INFO] [stderr] 101 | std::fs::remove_dir_all(test_directory); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: function `emptyFeature` should have a snake case name [INFO] [stderr] --> src/core/feature.rs:575:8 [INFO] [stderr] | [INFO] [stderr] 575 | fn emptyFeature() -> Feature { [INFO] [stderr] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `empty_feature` [INFO] [stderr] [INFO] [stderr] warning: variable `skillProficiencies` should have a snake case name [INFO] [stderr] --> src/core/feature.rs:727:13 [INFO] [stderr] | [INFO] [stderr] 727 | let skillProficiencies = skills [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `skill_proficiencies` [INFO] [stderr] [INFO] [stderr] warning: `dnd-character` (bin "dnd-character" test) generated 114 warnings [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.14s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/dnd_character-c683097004c694f7) [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test core::effect::test::wand_of_the_war_mage ... ok [INFO] [stdout] test core::ability_score::test::test_modifier ... ok [INFO] [stdout] test core::feature::test::generate_saving_throws ... ok [INFO] [stdout] test character::class::test::test_proficiency ... FAILED [INFO] [stdout] test store::test::file_persistence ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- character::class::test::test_proficiency stdout ---- [INFO] [stdout] thread 'character::class::test::test_proficiency' panicked at 'assertion failed: `(left == right)` [INFO] [stdout] left: `4`, [INFO] [stdout] right: `3`', src/character/class.rs:118:9 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5588599d91dd - std::backtrace_rs::backtrace::libunwind::trace::hf368f6ec047d835e [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5 [INFO] [stdout] 1: 0x5588599d91dd - std::backtrace_rs::backtrace::trace_unsynchronized::h5deaa62eab82df22 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 [INFO] [stdout] 2: 0x5588599d91dd - std::sys_common::backtrace::_print_fmt::h5a1c3a24a936a045 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/sys_common/backtrace.rs:66:5 [INFO] [stdout] 3: 0x5588599d91dd - ::fmt::h0219f75f359b565d [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/sys_common/backtrace.rs:45:22 [INFO] [stdout] 4: 0x5588599fd21c - core::fmt::write::hf0ed2ae6b5ba2d7d [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/core/src/fmt/mod.rs:1194:17 [INFO] [stdout] 5: 0x5588599d5431 - std::io::Write::write_fmt::h38d43b38044a5699 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/io/mod.rs:1655:15 [INFO] [stdout] 6: 0x5588599dacf5 - std::sys_common::backtrace::_print::h733b600962ba33ce [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/sys_common/backtrace.rs:48:5 [INFO] [stdout] 7: 0x5588599dacf5 - std::sys_common::backtrace::print::h5dc0fa0616f7d4bf [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/sys_common/backtrace.rs:35:9 [INFO] [stdout] 8: 0x5588599dacf5 - std::panicking::default_hook::{{closure}}::h3151cab60fd16f06 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/panicking.rs:295:22 [INFO] [stdout] 9: 0x5588599da9a0 - std::panicking::default_hook::ha44b338b782f641e [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/panicking.rs:311:9 [INFO] [stdout] 10: 0x5588599db3d8 - std::panicking::rust_panic_with_hook::hddbb61d11ae83bc7 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/panicking.rs:698:17 [INFO] [stdout] 11: 0x5588599db287 - std::panicking::begin_panic_handler::{{closure}}::ha90ba42a51d96fb7 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/panicking.rs:588:13 [INFO] [stdout] 12: 0x5588599d9694 - std::sys_common::backtrace::__rust_end_short_backtrace::hb2f712e9f2c19288 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/sys_common/backtrace.rs:138:18 [INFO] [stdout] 13: 0x5588599dafb9 - rust_begin_unwind [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/panicking.rs:584:5 [INFO] [stdout] 14: 0x5588599fb883 - core::panicking::panic_fmt::ha7e9b4e73b08c9d5 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/core/src/panicking.rs:142:14 [INFO] [stdout] 15: 0x5588599fb9c8 - core::panicking::assert_failed_inner::hacf07049e9c7e926 [INFO] [stdout] 16: 0x55885996cb5a - core::panicking::assert_failed::h6f52c443ca919d67 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/core/src/panicking.rs:181:5 [INFO] [stdout] 17: 0x5588597c4ee8 - dnd_character::character::class::test::assert_proficiency::h543a238d2d65f151 [INFO] [stdout] at /opt/rustwide/workdir/src/character/class.rs:118:9 [INFO] [stdout] 18: 0x558859794373 - core::ops::function::FnMut::call_mut::hd3e251ff5d5ba7ab [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/core/src/ops/function.rs:164:5 [INFO] [stdout] 19: 0x5588597a73ce - core::iter::traits::iterator::Iterator::for_each::call::{{closure}}::hec50241852a977f5 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/core/src/iter/traits/iterator.rs:776:29 [INFO] [stdout] 20: 0x5588597a3754 - core::iter::traits::iterator::Iterator::fold::h934b0ab49646db61 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/core/src/iter/traits/iterator.rs:2362:21 [INFO] [stdout] 21: 0x5588597a3dbb - core::iter::traits::iterator::Iterator::for_each::h95dbb8a884e6c7e3 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/core/src/iter/traits/iterator.rs:779:9 [INFO] [stdout] 22: 0x5588597c60e3 - dnd_character::character::class::test::test_proficiency::ha932f356ddd32999 [INFO] [stdout] at /opt/rustwide/workdir/src/character/class.rs:122:9 [INFO] [stdout] 23: 0x5588597c50fa - dnd_character::character::class::test::test_proficiency::{{closure}}::hb2f744f5630d9a9a [INFO] [stdout] at /opt/rustwide/workdir/src/character/class.rs:121:5 [INFO] [stdout] 24: 0x55885979461e - core::ops::function::FnOnce::call_once::h43c4d1b3c321414a [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/core/src/ops/function.rs:248:5 [INFO] [stdout] 25: 0x5588598ae823 - core::ops::function::FnOnce::call_once::h0dfe20f12b77bab0 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/core/src/ops/function.rs:248:5 [INFO] [stdout] 26: 0x5588598ae823 - test::__rust_begin_short_backtrace::h621e75342c56b813 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/test/src/lib.rs:573:5 [INFO] [stdout] 27: 0x5588598ad5ca - as core::ops::function::FnOnce>::call_once::ha960722220d3e4e3 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/alloc/src/boxed.rs:1866:9 [INFO] [stdout] 28: 0x5588598ad5ca - as core::ops::function::FnOnce<()>>::call_once::h8d4f52e2b0282cfb [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/core/src/panic/unwind_safe.rs:271:9 [INFO] [stdout] 29: 0x5588598ad5ca - std::panicking::try::do_call::h482ae3b09291596d [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/panicking.rs:492:40 [INFO] [stdout] 30: 0x5588598ad5ca - std::panicking::try::h2ddddb26c086954d [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/panicking.rs:456:19 [INFO] [stdout] 31: 0x5588598ad5ca - std::panic::catch_unwind::h743b0e27e7a9c139 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/panic.rs:137:14 [INFO] [stdout] 32: 0x5588598ad5ca - test::run_test_in_process::ha7740d79e504cc37 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/test/src/lib.rs:596:18 [INFO] [stdout] 33: 0x5588598ad5ca - test::run_test::run_test_inner::{{closure}}::h8418baf60f7a06c4 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/test/src/lib.rs:490:39 [INFO] [stdout] 34: 0x558859877d7d - test::run_test::run_test_inner::{{closure}}::h0beb35daaa80ec66 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/test/src/lib.rs:517:37 [INFO] [stdout] 35: 0x558859877d7d - std::sys_common::backtrace::__rust_begin_short_backtrace::hb005f1ebb9b3ac0b [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/sys_common/backtrace.rs:122:18 [INFO] [stdout] 36: 0x55885987d878 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h496c50f972d6dc0f [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/thread/mod.rs:498:17 [INFO] [stdout] 37: 0x55885987d878 - as core::ops::function::FnOnce<()>>::call_once::ha5b8911111f511ea [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/core/src/panic/unwind_safe.rs:271:9 [INFO] [stdout] 38: 0x55885987d878 - std::panicking::try::do_call::h084ed94d88677037 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/panicking.rs:492:40 [INFO] [stdout] 39: 0x55885987d878 - std::panicking::try::h013a823fb6061e50 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/panicking.rs:456:19 [INFO] [stdout] 40: 0x55885987d878 - std::panic::catch_unwind::h041e5fbe96cdc85b [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/panic.rs:137:14 [INFO] [stdout] 41: 0x55885987d878 - std::thread::Builder::spawn_unchecked_::{{closure}}::h24aad6f3231b4f43 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/thread/mod.rs:497:30 [INFO] [stdout] 42: 0x55885987d878 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h88f4642fdc208aab [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/core/src/ops/function.rs:248:5 [INFO] [stdout] 43: 0x5588599e05a3 - as core::ops::function::FnOnce>::call_once::h21f4f903d484bbf8 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/alloc/src/boxed.rs:1866:9 [INFO] [stdout] 44: 0x5588599e05a3 - as core::ops::function::FnOnce>::call_once::h88143291d50223e5 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/alloc/src/boxed.rs:1866:9 [INFO] [stdout] 45: 0x5588599e05a3 - std::sys::unix::thread::Thread::new::thread_start::h21cad75f6abb068a [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/sys/unix/thread.rs:108:17 [INFO] [stdout] 46: 0x7f6771620609 - start_thread [INFO] [stdout] 47: 0x7f67713f6163 - clone [INFO] [stdout] 48: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- store::test::file_persistence stdout ---- [INFO] [stdout] thread 'store::test::file_persistence' panicked at 'called `Result::unwrap()` on an `Err` value: FileError("Read-only file system (os error 30)")', src/store.rs:92:56 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5588599d91dd - std::backtrace_rs::backtrace::libunwind::trace::hf368f6ec047d835e [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5 [INFO] [stdout] 1: 0x5588599d91dd - std::backtrace_rs::backtrace::trace_unsynchronized::h5deaa62eab82df22 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 [INFO] [stdout] 2: 0x5588599d91dd - std::sys_common::backtrace::_print_fmt::h5a1c3a24a936a045 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/sys_common/backtrace.rs:66:5 [INFO] [stdout] 3: 0x5588599d91dd - ::fmt::h0219f75f359b565d [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/sys_common/backtrace.rs:45:22 [INFO] [stdout] 4: 0x5588599fd21c - core::fmt::write::hf0ed2ae6b5ba2d7d [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/core/src/fmt/mod.rs:1194:17 [INFO] [stdout] 5: 0x5588599d5431 - std::io::Write::write_fmt::h38d43b38044a5699 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/io/mod.rs:1655:15 [INFO] [stdout] 6: 0x5588599dacf5 - std::sys_common::backtrace::_print::h733b600962ba33ce [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/sys_common/backtrace.rs:48:5 [INFO] [stdout] 7: 0x5588599dacf5 - std::sys_common::backtrace::print::h5dc0fa0616f7d4bf [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/sys_common/backtrace.rs:35:9 [INFO] [stdout] 8: 0x5588599dacf5 - std::panicking::default_hook::{{closure}}::h3151cab60fd16f06 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/panicking.rs:295:22 [INFO] [stdout] 9: 0x5588599da9a0 - std::panicking::default_hook::ha44b338b782f641e [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/panicking.rs:311:9 [INFO] [stdout] 10: 0x5588599db3d8 - std::panicking::rust_panic_with_hook::hddbb61d11ae83bc7 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/panicking.rs:698:17 [INFO] [stdout] 11: 0x5588599db287 - std::panicking::begin_panic_handler::{{closure}}::ha90ba42a51d96fb7 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/panicking.rs:588:13 [INFO] [stdout] 12: 0x5588599d9694 - std::sys_common::backtrace::__rust_end_short_backtrace::hb2f712e9f2c19288 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/sys_common/backtrace.rs:138:18 [INFO] [stdout] 13: 0x5588599dafb9 - rust_begin_unwind [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/panicking.rs:584:5 [INFO] [stdout] 14: 0x5588599fb883 - core::panicking::panic_fmt::ha7e9b4e73b08c9d5 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/core/src/panicking.rs:142:14 [INFO] [stdout] 15: 0x5588599fbb33 - core::result::unwrap_failed::hddfa661a0339e8e8 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/core/src/result.rs:1785:5 [INFO] [stdout] 16: 0x55885978f95c - core::result::Result::unwrap::h7e0c21410b6dceb8 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/core/src/result.rs:1078:23 [INFO] [stdout] 17: 0x5588597e628e - dnd_character::store::test::file_persistence::{{closure}}::h815da76b399e172c [INFO] [stdout] at /opt/rustwide/workdir/src/store.rs:92:21 [INFO] [stdout] 18: 0x5588597ef61b - as core::future::future::Future>::poll::h94302858fe6353c5 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/core/src/future/mod.rs:91:19 [INFO] [stdout] 19: 0x5588597c1c76 - as core::future::future::Future>::poll::{{closure}}::{{closure}}::h964249509d9bfbc2 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.24/src/task/local.rs:528:65 [INFO] [stdout] 20: 0x5588597ba110 - tokio::coop::with_budget::{{closure}}::h52b43ea6a72463ef [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.24/src/coop.rs:127:9 [INFO] [stdout] 21: 0x5588597e0f96 - std::thread::local::LocalKey::try_with::h245e0c951c09dce0 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/thread/local.rs:443:16 [INFO] [stdout] 22: 0x5588597e0b0d - std::thread::local::LocalKey::with::hdd005d18f49d99aa [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/thread/local.rs:419:9 [INFO] [stdout] 23: 0x5588597c1b49 - tokio::coop::with_budget::hf849a84c9e7b3ba8 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.24/src/coop.rs:120:5 [INFO] [stdout] 24: 0x5588597c1b49 - tokio::coop::budget::h397a00598cecfb38 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.24/src/coop.rs:96:5 [INFO] [stdout] 25: 0x5588597c1b49 - as core::future::future::Future>::poll::{{closure}}::hfc6e4e64f3e75b55 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.24/src/task/local.rs:528:42 [INFO] [stdout] 26: 0x5588597e3ad7 - tokio::macros::scoped_tls::ScopedKey::set::h3fef1d48121170ea [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.24/src/macros/scoped_tls.rs:63:9 [INFO] [stdout] 27: 0x5588597bf92a - tokio::task::local::LocalSet::with::he4739f905a64b1d2 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.24/src/task/local.rs:442:9 [INFO] [stdout] 28: 0x5588597c19d2 - as core::future::future::Future>::poll::h1e115218b7b663dd [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.24/src/task/local.rs:518:9 [INFO] [stdout] 29: 0x5588597bfc3e - tokio::task::local::LocalSet::run_until::{{closure}}::haf959acd2c5f91c4 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.24/src/task/local.rs:392:18 [INFO] [stdout] 30: 0x5588597efbcb - as core::future::future::Future>::poll::he40b6270f3790858 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/core/src/future/mod.rs:91:19 [INFO] [stdout] 31: 0x55885979e120 - tokio::runtime::basic_scheduler::BasicScheduler

::block_on::{{closure}}::{{closure}}::h0bf30658beb698c7 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.24/src/runtime/basic_scheduler.rs:131:58 [INFO] [stdout] 32: 0x5588597ba240 - tokio::coop::with_budget::{{closure}}::h78be51e4f82608a1 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.24/src/coop.rs:127:9 [INFO] [stdout] 33: 0x5588597e1a36 - std::thread::local::LocalKey::try_with::he13c8909df694ddb [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/thread/local.rs:443:16 [INFO] [stdout] 34: 0x5588597e08ad - std::thread::local::LocalKey::with::h65bbd428e03f31fe [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/thread/local.rs:419:9 [INFO] [stdout] 35: 0x55885979db70 - tokio::coop::with_budget::h9f24a3ff1d84bbbf [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.24/src/coop.rs:120:5 [INFO] [stdout] 36: 0x55885979db70 - tokio::coop::budget::hc8c3bc1d23d40ce5 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.24/src/coop.rs:96:5 [INFO] [stdout] 37: 0x55885979db70 - tokio::runtime::basic_scheduler::BasicScheduler

::block_on::{{closure}}::h3e1631d109d1650b [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.24/src/runtime/basic_scheduler.rs:131:35 [INFO] [stdout] 38: 0x55885979e621 - tokio::runtime::basic_scheduler::enter::{{closure}}::h83d131d2d8234983 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.24/src/runtime/basic_scheduler.rs:213:29 [INFO] [stdout] 39: 0x5588597e3c03 - tokio::macros::scoped_tls::ScopedKey::set::hbc3685962fff92b5 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.24/src/macros/scoped_tls.rs:63:9 [INFO] [stdout] 40: 0x55885979e565 - tokio::runtime::basic_scheduler::enter::h4dd7c3340afc2e28 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.24/src/runtime/basic_scheduler.rs:213:5 [INFO] [stdout] 41: 0x55885979d880 - tokio::runtime::basic_scheduler::BasicScheduler

::block_on::hd2f0e184d00f8ab6 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.24/src/runtime/basic_scheduler.rs:123:9 [INFO] [stdout] 42: 0x55885979e732 - tokio::runtime::Runtime::block_on::{{closure}}::hd6a53ffa93b9d72a [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.24/src/runtime/mod.rs:444:34 [INFO] [stdout] 43: 0x5588597bfd6b - tokio::runtime::context::enter::hf1b80a7a1b3541c3 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.24/src/runtime/context.rs:72:5 [INFO] [stdout] 44: 0x5588597ba45a - tokio::runtime::handle::Handle::enter::h67816ff4f01f4f08 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.24/src/runtime/handle.rs:76:9 [INFO] [stdout] 45: 0x55885979e67d - tokio::runtime::Runtime::block_on::hc99426f351cefb73 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.24/src/runtime/mod.rs:441:9 [INFO] [stdout] 46: 0x5588597bf9a4 - tokio::task::local::LocalSet::block_on::h5d867cf70d9bbbda [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.24/src/task/local.rs:353:9 [INFO] [stdout] 47: 0x55885979eee3 - actix_rt::runtime::Runtime::block_on::hbb106b365150fdce [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/actix-rt-1.1.1/src/runtime.rs:89:9 [INFO] [stdout] 48: 0x5588597e3fa8 - actix_rt::builder::SystemRunner::block_on::h29a18b30917dfee5 [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/actix-rt-1.1.1/src/builder.rs:187:19 [INFO] [stdout] 49: 0x5588597e5f40 - dnd_character::store::test::file_persistence::h8b3e4b2d135845c2 [INFO] [stdout] at /opt/rustwide/workdir/src/store.rs:87:5 [INFO] [stdout] 50: 0x5588597e5eba - dnd_character::store::test::file_persistence::{{closure}}::h71136b51119ff01d [INFO] [stdout] at /opt/rustwide/workdir/src/store.rs:87:5 [INFO] [stdout] 51: 0x55885979488e - core::ops::function::FnOnce::call_once::ha6734823e99d0873 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/core/src/ops/function.rs:248:5 [INFO] [stdout] 52: 0x5588598ae823 - core::ops::function::FnOnce::call_once::h0dfe20f12b77bab0 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/core/src/ops/function.rs:248:5 [INFO] [stdout] 53: 0x5588598ae823 - test::__rust_begin_short_backtrace::h621e75342c56b813 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/test/src/lib.rs:573:5 [INFO] [stdout] 54: 0x5588598ad5ca - as core::ops::function::FnOnce>::call_once::ha960722220d3e4e3 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/alloc/src/boxed.rs:1866:9 [INFO] [stdout] 55: 0x5588598ad5ca - as core::ops::function::FnOnce<()>>::call_once::h8d4f52e2b0282cfb [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/core/src/panic/unwind_safe.rs:271:9 [INFO] [stdout] 56: 0x5588598ad5ca - std::panicking::try::do_call::h482ae3b09291596d [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/panicking.rs:492:40 [INFO] [stdout] 57: 0x5588598ad5ca - std::panicking::try::h2ddddb26c086954d [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/panicking.rs:456:19 [INFO] [stdout] 58: 0x5588598ad5ca - std::panic::catch_unwind::h743b0e27e7a9c139 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/panic.rs:137:14 [INFO] [stdout] 59: 0x5588598ad5ca - test::run_test_in_process::ha7740d79e504cc37 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/test/src/lib.rs:596:18 [INFO] [stdout] 60: 0x5588598ad5ca - test::run_test::run_test_inner::{{closure}}::h8418baf60f7a06c4 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/test/src/lib.rs:490:39 [INFO] [stdout] 61: 0x558859877d7d - test::run_test::run_test_inner::{{closure}}::h0beb35daaa80ec66 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/test/src/lib.rs:517:37 [INFO] [stdout] 62: 0x558859877d7d - std::sys_common::backtrace::__rust_begin_short_backtrace::hb005f1ebb9b3ac0b [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/sys_common/backtrace.rs:122:18 [INFO] [stdout] 63: 0x55885987d878 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h496c50f972d6dc0f [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/thread/mod.rs:498:17 [INFO] [stdout] 64: 0x55885987d878 - as core::ops::function::FnOnce<()>>::call_once::ha5b8911111f511ea [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/core/src/panic/unwind_safe.rs:271:9 [INFO] [stdout] 65: 0x55885987d878 - std::panicking::try::do_call::h084ed94d88677037 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/panicking.rs:492:40 [INFO] [stdout] 66: 0x55885987d878 - std::panicking::try::h013a823fb6061e50 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/panicking.rs:456:19 [INFO] [stdout] 67: 0x55885987d878 - std::panic::catch_unwind::h041e5fbe96cdc85b [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/panic.rs:137:14 [INFO] [stdout] 68: 0x55885987d878 - std::thread::Builder::spawn_unchecked_::{{closure}}::h24aad6f3231b4f43 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/thread/mod.rs:497:30 [INFO] [stdout] 69: 0x55885987d878 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h88f4642fdc208aab [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/core/src/ops/function.rs:248:5 [INFO] [stdout] 70: 0x5588599e05a3 - as core::ops::function::FnOnce>::call_once::h21f4f903d484bbf8 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/alloc/src/boxed.rs:1866:9 [INFO] [stdout] 71: 0x5588599e05a3 - as core::ops::function::FnOnce>::call_once::h88143291d50223e5 [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/alloc/src/boxed.rs:1866:9 [INFO] [stdout] 72: 0x5588599e05a3 - std::sys::unix::thread::Thread::new::thread_start::h21cad75f6abb068a [INFO] [stdout] at /rustc/1b74e096b9bfb06f84a3007193dcd2f059cbdf6a/library/std/src/sys/unix/thread.rs:108:17 [INFO] [stdout] 73: 0x7f6771620609 - start_thread [INFO] [stdout] 74: 0x7f67713f6163 - clone [INFO] [stdout] 75: 0x0 - [INFO] [stdout] Panic in Arbiter thread. [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] character::class::test::test_proficiency [INFO] [stdout] store::test::file_persistence [INFO] [stdout] [INFO] [stdout] test result: FAILED. 3 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass '--bin dnd-character' [INFO] running `Command { std: "docker" "inspect" "27461d2e0988aaf43df6ed559252a1082fcf541d3ae810912b93a37f00d528da", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "27461d2e0988aaf43df6ed559252a1082fcf541d3ae810912b93a37f00d528da", kill_on_drop: false }` [INFO] [stdout] 27461d2e0988aaf43df6ed559252a1082fcf541d3ae810912b93a37f00d528da