[INFO] cloning repository https://github.com/rkday/photo-management
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rkday/photo-management" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frkday%2Fphoto-management", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frkday%2Fphoto-management'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 41bc922426ff0ffddf5ccaf976dfe1ebc1295919
[INFO] checking rkday/photo-management against master#5518eaa946291f00471af8b254b2a1715f234882 for pr-120393
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frkday%2Fphoto-management" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/rkday/photo-management on toolchain 5518eaa946291f00471af8b254b2a1715f234882
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/rkday/photo-management
[INFO] finished tweaking git repo https://github.com/rkday/photo-management
[INFO] tweaked toml for git repo https://github.com/rkday/photo-management written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/rkday/photo-management already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded serde_json v1.0.36
[INFO] [stderr]   Downloaded proc-macro2 v0.4.25
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 921e54112a25f80f1bf33d49440615a026bbfabc525cb3afe499aee458d27ebe
[INFO] running `Command { std: "docker" "start" "-a" "921e54112a25f80f1bf33d49440615a026bbfabc525cb3afe499aee458d27ebe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "921e54112a25f80f1bf33d49440615a026bbfabc525cb3afe499aee458d27ebe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "921e54112a25f80f1bf33d49440615a026bbfabc525cb3afe499aee458d27ebe", kill_on_drop: false }`
[INFO] [stdout] 921e54112a25f80f1bf33d49440615a026bbfabc525cb3afe499aee458d27ebe
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1dd794110f298ec9812847714ba88c040d7408e6940c13978fb3ed9b20c48ad6
[INFO] running `Command { std: "docker" "start" "-a" "1dd794110f298ec9812847714ba88c040d7408e6940c13978fb3ed9b20c48ad6", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.47
[INFO] [stderr]    Compiling version_check v0.1.5
[INFO] [stderr]     Checking cfg-if v0.1.6
[INFO] [stderr]    Compiling serde v1.0.85
[INFO] [stderr]    Compiling proc-macro2 v0.4.25
[INFO] [stderr]     Checking traitobject v0.1.0
[INFO] [stderr]     Checking matches v0.1.8
[INFO] [stderr]    Compiling ryu v0.2.7
[INFO] [stderr]     Checking log v0.4.6
[INFO] [stderr]    Compiling unicode-xid v0.1.0
[INFO] [stderr]     Checking unicode-bidi v0.3.4
[INFO] [stderr]    Compiling num-traits v0.2.6
[INFO] [stderr]     Checking log v0.3.9
[INFO] [stderr]    Compiling memchr v2.1.2
[INFO] [stderr]    Compiling unicase v1.4.2
[INFO] [stderr]     Checking ucd-util v0.1.3
[INFO] [stderr]     Checking unicode-normalization v0.1.7
[INFO] [stderr]     Checking lazy_static v1.2.0
[INFO] [stderr]    Compiling httparse v1.3.3
[INFO] [stderr]    Compiling regex v1.1.0
[INFO] [stderr]     Checking thread_local v0.3.6
[INFO] [stderr]     Checking regex-syntax v0.6.4
[INFO] [stderr]     Checking unsafe-any v0.4.2
[INFO] [stderr]     Checking byteorder v1.2.7
[INFO] [stderr]    Compiling num-integer v0.1.39
[INFO] [stderr]     Checking time v0.1.42
[INFO] [stderr]     Checking safemem v0.3.0
[INFO] [stderr]     Checking percent-encoding v1.0.1
[INFO] [stderr]     Checking utf8-ranges v1.0.2
[INFO] [stderr]     Checking aho-corasick v0.6.9
[INFO] [stderr]     Checking base64 v0.9.3
[INFO] [stderr]    Compiling quote v0.6.10
[INFO] [stderr]     Checking atty v0.2.11
[INFO] [stderr]     Checking num_cpus v1.9.0
[INFO] [stderr]     Checking typemap v0.3.3
[INFO] [stderr]     Checking mime v0.2.6
[INFO] [stderr]     Checking itoa v0.4.3
[INFO] [stderr]     Checking quick-error v1.2.2
[INFO] [stderr]     Checking language-tags v0.2.2
[INFO] [stderr]     Checking typeable v0.1.2
[INFO] [stderr]     Checking unicode-width v0.1.5
[INFO] [stderr]     Checking humantime v1.2.0
[INFO] [stderr]     Checking plugin v0.2.6
[INFO] [stderr]     Checking idna v0.1.5
[INFO] [stderr]    Compiling syn v0.15.26
[INFO] [stderr]     Checking textwrap v0.10.0
[INFO] [stderr]     Checking strsim v0.7.0
[INFO] [stderr]     Checking termcolor v1.0.4
[INFO] [stderr]     Checking ansi_term v0.11.0
[INFO] [stderr]     Checking vec_map v0.8.1
[INFO] [stderr]     Checking bitflags v1.0.4
[INFO] [stderr]     Checking same-file v1.0.4
[INFO] [stderr]     Checking modifier v0.1.0
[INFO] [stderr]     Checking groupable v0.2.0
[INFO] [stderr]     Checking clap v2.32.0
[INFO] [stderr]     Checking walkdir v2.2.7
[INFO] [stderr]     Checking url v1.7.2
[INFO] [stderr]     Checking chrono v0.4.6
[INFO] [stderr]     Checking hyper v0.10.15
[INFO] [stderr]     Checking env_logger v0.6.0
[INFO] [stderr]     Checking mustache v0.9.0
[INFO] [stderr]     Checking serde_json v1.0.36
[INFO] [stderr]    Compiling serde_derive v1.0.85
[INFO] [stderr]     Checking nickel v0.11.0
[INFO] [stderr]     Checking pviewer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/bin/pviewer.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/bin/pviewer.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/bin/pviewer.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 |         if (p.is_dir()) {
[INFO] [stdout]    |            ^          ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 40 -         if (p.is_dir()) {
[INFO] [stdout] 40 +         if p.is_dir() {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/bin/pviewer.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 |         if (p.is_dir()) {
[INFO] [stdout]    |            ^          ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 40 -         if (p.is_dir()) {
[INFO] [stdout] 40 +         if p.is_dir() {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/bin/pviewer.rs:45:16
[INFO] [stdout]    |
[INFO] [stdout] 45 |             if ((ext == "jpg") || (ext == "JPG")) {
[INFO] [stdout]    |                ^                                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 45 -             if ((ext == "jpg") || (ext == "JPG")) {
[INFO] [stdout] 45 +             if (ext == "jpg") || (ext == "JPG") {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/bin/pviewer.rs:45:16
[INFO] [stdout]    |
[INFO] [stdout] 45 |             if ((ext == "jpg") || (ext == "JPG")) {
[INFO] [stdout]    |                ^                                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 45 -             if ((ext == "jpg") || (ext == "JPG")) {
[INFO] [stdout] 45 +             if (ext == "jpg") || (ext == "JPG") {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/bin/pviewer.rs:73:34
[INFO] [stdout]    |
[INFO] [stdout] 73 |                 Some(idx2) => if (idx2 == 0) { &picture } else { folder_contents.images.get(idx2 - 1).unwrap() }
[INFO] [stdout]    |                                  ^         ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 73 -                 Some(idx2) => if (idx2 == 0) { &picture } else { folder_contents.images.get(idx2 - 1).unwrap() }
[INFO] [stdout] 73 +                 Some(idx2) => if idx2 == 0 { &picture } else { folder_contents.images.get(idx2 - 1).unwrap() }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/bin/pviewer.rs:73:34
[INFO] [stdout]    |
[INFO] [stdout] 73 |                 Some(idx2) => if (idx2 == 0) { &picture } else { folder_contents.images.get(idx2 - 1).unwrap() }
[INFO] [stdout]    |                                  ^         ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 73 -                 Some(idx2) => if (idx2 == 0) { &picture } else { folder_contents.images.get(idx2 - 1).unwrap() }
[INFO] [stdout] 73 +                 Some(idx2) => if idx2 == 0 { &picture } else { folder_contents.images.get(idx2 - 1).unwrap() }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/bin/pviewer.rs:78:34
[INFO] [stdout]    |
[INFO] [stdout] 78 |                 Some(idx2) => if (idx2 == maxidx) { &picture } else { folder_contents.images.get(idx2 + 1).unwrap() }
[INFO] [stdout]    |                                  ^              ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 78 -                 Some(idx2) => if (idx2 == maxidx) { &picture } else { folder_contents.images.get(idx2 + 1).unwrap() }
[INFO] [stdout] 78 +                 Some(idx2) => if idx2 == maxidx { &picture } else { folder_contents.images.get(idx2 + 1).unwrap() }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/bin/pviewer.rs:78:34
[INFO] [stdout]    |
[INFO] [stdout] 78 |                 Some(idx2) => if (idx2 == maxidx) { &picture } else { folder_contents.images.get(idx2 + 1).unwrap() }
[INFO] [stdout]    |                                  ^              ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 78 -                 Some(idx2) => if (idx2 == maxidx) { &picture } else { folder_contents.images.get(idx2 + 1).unwrap() }
[INFO] [stdout] 78 +                 Some(idx2) => if idx2 == maxidx { &picture } else { folder_contents.images.get(idx2 + 1).unwrap() }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/bin/pviewer.rs:60:20
[INFO] [stdout]    |
[INFO] [stdout] 60 |       server.utilize(router! {
[INFO] [stdout]    |  ____________________^
[INFO] [stdout] 61 | |         get "/picture" => |req, res| {
[INFO] [stdout] 62 | |             let picture = req.query().get("pic").unwrap().to_owned();
[INFO] [stdout] 63 | |             let pic_path = Path::new(&picture).parent().unwrap().to_str().unwrap();
[INFO] [stdout] ...  |
[INFO] [stdout] 83 | |         }
[INFO] [stdout] 84 | |     });
[INFO] [stdout]    | |     ^
[INFO] [stdout]    | |     |
[INFO] [stdout]    | |_____unreachable expression
[INFO] [stdout]    |       any code following this expression is unreachable
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `_middleware_inner` which comes from the expansion of the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/bin/pviewer.rs:60:20
[INFO] [stdout]    |
[INFO] [stdout] 60 |       server.utilize(router! {
[INFO] [stdout]    |  ____________________^
[INFO] [stdout] 61 | |         get "/picture" => |req, res| {
[INFO] [stdout] 62 | |             let picture = req.query().get("pic").unwrap().to_owned();
[INFO] [stdout] 63 | |             let pic_path = Path::new(&picture).parent().unwrap().to_str().unwrap();
[INFO] [stdout] ...  |
[INFO] [stdout] 83 | |         }
[INFO] [stdout] 84 | |     });
[INFO] [stdout]    | |     ^
[INFO] [stdout]    | |     |
[INFO] [stdout]    | |_____unreachable expression
[INFO] [stdout]    |       any code following this expression is unreachable
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `_middleware_inner` which comes from the expansion of the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/bin/pviewer.rs:85:20
[INFO] [stdout]    |
[INFO] [stdout] 85 |       server.utilize(router! {
[INFO] [stdout]    |  ____________________^
[INFO] [stdout] 86 | |         get "/listdir" => |req, res| {
[INFO] [stdout] 87 | |             let subdir = req.query().get("dir").unwrap_or("./");
[INFO] [stdout] 88 | |             let pd = get_dir_contents(subdir);
[INFO] [stdout] 89 | |             return res.render("assets/list.tpl", &pd);
[INFO] [stdout] 90 | |         }
[INFO] [stdout] 91 | |     });
[INFO] [stdout]    | |     ^
[INFO] [stdout]    | |     |
[INFO] [stdout]    | |_____unreachable expression
[INFO] [stdout]    |       any code following this expression is unreachable
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `_middleware_inner` which comes from the expansion of the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/bin/pviewer.rs:85:20
[INFO] [stdout]    |
[INFO] [stdout] 85 |       server.utilize(router! {
[INFO] [stdout]    |  ____________________^
[INFO] [stdout] 86 | |         get "/listdir" => |req, res| {
[INFO] [stdout] 87 | |             let subdir = req.query().get("dir").unwrap_or("./");
[INFO] [stdout] 88 | |             let pd = get_dir_contents(subdir);
[INFO] [stdout] 89 | |             return res.render("assets/list.tpl", &pd);
[INFO] [stdout] 90 | |         }
[INFO] [stdout] 91 | |     });
[INFO] [stdout]    | |     ^
[INFO] [stdout]    | |     |
[INFO] [stdout]    | |_____unreachable expression
[INFO] [stdout]    |       any code following this expression is unreachable
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `_middleware_inner` which comes from the expansion of the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `dir_s` should have an upper case name
[INFO] [stdout]   --> src/bin/pviewer.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | static dir_s: &'static str = "/Volumes/Seagate Backup Plus Drive/Media/Pictures";
[INFO] [stdout]    |        ^^^^^ help: convert the identifier to upper case: `DIR_S`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `dir_s` should have an upper case name
[INFO] [stdout]   --> src/bin/pviewer.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | static dir_s: &'static str = "/Volumes/Seagate Backup Plus Drive/Media/Pictures";
[INFO] [stdout]    |        ^^^^^ help: convert the identifier to upper case: `DIR_S`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/bin/pviewer.rs:95:5
[INFO] [stdout]    |
[INFO] [stdout] 95 |     server.listen("127.0.0.1:4080");
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 95 |     let _ = server.listen("127.0.0.1:4080");
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/bin/pviewer.rs:95:5
[INFO] [stdout]    |
[INFO] [stdout] 95 |     server.listen("127.0.0.1:4080");
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 95 |     let _ = server.listen("127.0.0.1:4080");
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 9 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 9 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 4.51s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: traitobject v0.1.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "1dd794110f298ec9812847714ba88c040d7408e6940c13978fb3ed9b20c48ad6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1dd794110f298ec9812847714ba88c040d7408e6940c13978fb3ed9b20c48ad6", kill_on_drop: false }`
[INFO] [stdout] 1dd794110f298ec9812847714ba88c040d7408e6940c13978fb3ed9b20c48ad6
[INFO] checking rkday/photo-management against try#7622c0f807a4e13c4db886a1681bf343795692df+rustflags=-Dnon_local_definitions for pr-120393
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frkday%2Fphoto-management" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/rkday/photo-management on toolchain 7622c0f807a4e13c4db886a1681bf343795692df
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+7622c0f807a4e13c4db886a1681bf343795692df" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/rkday/photo-management
[INFO] finished tweaking git repo https://github.com/rkday/photo-management
[INFO] tweaked toml for git repo https://github.com/rkday/photo-management written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/rkday/photo-management already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+7622c0f807a4e13c4db886a1681bf343795692df" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+7622c0f807a4e13c4db886a1681bf343795692df" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9dfb5ed56b7f693278cf5fea509cd34a5dbf37e8f12739c3b2397494aa1bf32c
[INFO] running `Command { std: "docker" "start" "-a" "9dfb5ed56b7f693278cf5fea509cd34a5dbf37e8f12739c3b2397494aa1bf32c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9dfb5ed56b7f693278cf5fea509cd34a5dbf37e8f12739c3b2397494aa1bf32c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9dfb5ed56b7f693278cf5fea509cd34a5dbf37e8f12739c3b2397494aa1bf32c", kill_on_drop: false }`
[INFO] [stdout] 9dfb5ed56b7f693278cf5fea509cd34a5dbf37e8f12739c3b2397494aa1bf32c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dnon_local_definitions" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+7622c0f807a4e13c4db886a1681bf343795692df" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 71412ae686ec8b0f6d09db404f1e2600792776814c38cd1f798e980e93c27914
[INFO] running `Command { std: "docker" "start" "-a" "71412ae686ec8b0f6d09db404f1e2600792776814c38cd1f798e980e93c27914", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.47
[INFO] [stderr]    Compiling version_check v0.1.5
[INFO] [stderr]     Checking cfg-if v0.1.6
[INFO] [stderr]     Checking traitobject v0.1.0
[INFO] [stderr]    Compiling serde v1.0.85
[INFO] [stderr]     Checking matches v0.1.8
[INFO] [stderr]    Compiling proc-macro2 v0.4.25
[INFO] [stderr]     Checking lazy_static v1.2.0
[INFO] [stderr]     Checking log v0.4.6
[INFO] [stderr]    Compiling ryu v0.2.7
[INFO] [stderr]     Checking unicode-bidi v0.3.4
[INFO] [stderr]    Compiling num-traits v0.2.6
[INFO] [stderr]     Checking log v0.3.9
[INFO] [stderr]    Compiling httparse v1.3.3
[INFO] [stderr]    Compiling regex v1.1.0
[INFO] [stderr]    Compiling memchr v2.1.2
[INFO] [stderr]    Compiling unicase v1.4.2
[INFO] [stderr]     Checking ucd-util v0.1.3
[INFO] [stderr]     Checking unicode-normalization v0.1.7
[INFO] [stderr]    Compiling unicode-xid v0.1.0
[INFO] [stderr]     Checking regex-syntax v0.6.4
[INFO] [stderr]     Checking unsafe-any v0.4.2
[INFO] [stderr]     Checking thread_local v0.3.6
[INFO] [stderr]    Compiling num-integer v0.1.39
[INFO] [stderr]     Checking byteorder v1.2.7
[INFO] [stderr]     Checking time v0.1.42
[INFO] [stderr]     Checking percent-encoding v1.0.1
[INFO] [stderr]     Checking aho-corasick v0.6.9
[INFO] [stderr]     Checking safemem v0.3.0
[INFO] [stderr]     Checking utf8-ranges v1.0.2
[INFO] [stderr]    Compiling quote v0.6.10
[INFO] [stderr]     Checking base64 v0.9.3
[INFO] [stderr]     Checking num_cpus v1.9.0
[INFO] [stderr]     Checking atty v0.2.11
[INFO] [stderr]     Checking typemap v0.3.3
[INFO] [stderr]     Checking mime v0.2.6
[INFO] [stderr]     Checking typeable v0.1.2
[INFO] [stderr]     Checking itoa v0.4.3
[INFO] [stderr]     Checking unicode-width v0.1.5
[INFO] [stderr]     Checking language-tags v0.2.2
[INFO] [stderr]     Checking quick-error v1.2.2
[INFO] [stderr]     Checking textwrap v0.10.0
[INFO] [stderr]     Checking plugin v0.2.6
[INFO] [stderr]     Checking humantime v1.2.0
[INFO] [stderr]    Compiling syn v0.15.26
[INFO] [stderr]     Checking bitflags v1.0.4
[INFO] [stderr]     Checking termcolor v1.0.4
[INFO] [stderr]     Checking vec_map v0.8.1
[INFO] [stderr]     Checking idna v0.1.5
[INFO] [stderr]     Checking strsim v0.7.0
[INFO] [stderr]     Checking same-file v1.0.4
[INFO] [stderr]     Checking ansi_term v0.11.0
[INFO] [stderr]     Checking groupable v0.2.0
[INFO] [stderr]     Checking modifier v0.1.0
[INFO] [stderr]     Checking walkdir v2.2.7
[INFO] [stderr]     Checking clap v2.32.0
[INFO] [stderr]     Checking url v1.7.2
[INFO] [stderr]     Checking chrono v0.4.6
[INFO] [stderr]     Checking hyper v0.10.15
[INFO] [stderr]     Checking env_logger v0.6.0
[INFO] [stderr]    Compiling serde_derive v1.0.85
[INFO] [stderr]     Checking mustache v0.9.0
[INFO] [stderr]     Checking serde_json v1.0.36
[INFO] [stderr]     Checking nickel v0.11.0
[INFO] [stderr]     Checking pviewer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/bin/pviewer.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/bin/pviewer.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/bin/pviewer.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 |         if (p.is_dir()) {
[INFO] [stdout]    |            ^          ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 40 -         if (p.is_dir()) {
[INFO] [stdout] 40 +         if p.is_dir() {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/bin/pviewer.rs:45:16
[INFO] [stdout]    |
[INFO] [stdout] 45 |             if ((ext == "jpg") || (ext == "JPG")) {
[INFO] [stdout]    |                ^                                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 45 -             if ((ext == "jpg") || (ext == "JPG")) {
[INFO] [stdout] 45 +             if (ext == "jpg") || (ext == "JPG") {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/bin/pviewer.rs:73:34
[INFO] [stdout]    |
[INFO] [stdout] 73 |                 Some(idx2) => if (idx2 == 0) { &picture } else { folder_contents.images.get(idx2 - 1).unwrap() }
[INFO] [stdout]    |                                  ^         ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 73 -                 Some(idx2) => if (idx2 == 0) { &picture } else { folder_contents.images.get(idx2 - 1).unwrap() }
[INFO] [stdout] 73 +                 Some(idx2) => if idx2 == 0 { &picture } else { folder_contents.images.get(idx2 - 1).unwrap() }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/bin/pviewer.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 |         if (p.is_dir()) {
[INFO] [stdout]    |            ^          ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 40 -         if (p.is_dir()) {
[INFO] [stdout] 40 +         if p.is_dir() {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/bin/pviewer.rs:78:34
[INFO] [stdout]    |
[INFO] [stdout] 78 |                 Some(idx2) => if (idx2 == maxidx) { &picture } else { folder_contents.images.get(idx2 + 1).unwrap() }
[INFO] [stdout]    |                                  ^              ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 78 -                 Some(idx2) => if (idx2 == maxidx) { &picture } else { folder_contents.images.get(idx2 + 1).unwrap() }
[INFO] [stdout] 78 +                 Some(idx2) => if idx2 == maxidx { &picture } else { folder_contents.images.get(idx2 + 1).unwrap() }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/bin/pviewer.rs:45:16
[INFO] [stdout]    |
[INFO] [stdout] 45 |             if ((ext == "jpg") || (ext == "JPG")) {
[INFO] [stdout]    |                ^                                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 45 -             if ((ext == "jpg") || (ext == "JPG")) {
[INFO] [stdout] 45 +             if (ext == "jpg") || (ext == "JPG") {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/bin/pviewer.rs:73:34
[INFO] [stdout]    |
[INFO] [stdout] 73 |                 Some(idx2) => if (idx2 == 0) { &picture } else { folder_contents.images.get(idx2 - 1).unwrap() }
[INFO] [stdout]    |                                  ^         ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 73 -                 Some(idx2) => if (idx2 == 0) { &picture } else { folder_contents.images.get(idx2 - 1).unwrap() }
[INFO] [stdout] 73 +                 Some(idx2) => if idx2 == 0 { &picture } else { folder_contents.images.get(idx2 - 1).unwrap() }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/bin/pviewer.rs:78:34
[INFO] [stdout]    |
[INFO] [stdout] 78 |                 Some(idx2) => if (idx2 == maxidx) { &picture } else { folder_contents.images.get(idx2 + 1).unwrap() }
[INFO] [stdout]    |                                  ^              ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 78 -                 Some(idx2) => if (idx2 == maxidx) { &picture } else { folder_contents.images.get(idx2 + 1).unwrap() }
[INFO] [stdout] 78 +                 Some(idx2) => if idx2 == maxidx { &picture } else { folder_contents.images.get(idx2 + 1).unwrap() }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/bin/pviewer.rs:60:20
[INFO] [stdout]    |
[INFO] [stdout] 60 |       server.utilize(router! {
[INFO] [stdout]    |  ____________________^
[INFO] [stdout] 61 | |         get "/picture" => |req, res| {
[INFO] [stdout] 62 | |             let picture = req.query().get("pic").unwrap().to_owned();
[INFO] [stdout] 63 | |             let pic_path = Path::new(&picture).parent().unwrap().to_str().unwrap();
[INFO] [stdout] ...  |
[INFO] [stdout] 83 | |         }
[INFO] [stdout] 84 | |     });
[INFO] [stdout]    | |     ^
[INFO] [stdout]    | |     |
[INFO] [stdout]    | |_____unreachable expression
[INFO] [stdout]    |       any code following this expression is unreachable
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `_middleware_inner` which comes from the expansion of the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/bin/pviewer.rs:60:20
[INFO] [stdout]    |
[INFO] [stdout] 60 |       server.utilize(router! {
[INFO] [stdout]    |  ____________________^
[INFO] [stdout] 61 | |         get "/picture" => |req, res| {
[INFO] [stdout] 62 | |             let picture = req.query().get("pic").unwrap().to_owned();
[INFO] [stdout] 63 | |             let pic_path = Path::new(&picture).parent().unwrap().to_str().unwrap();
[INFO] [stdout] ...  |
[INFO] [stdout] 83 | |         }
[INFO] [stdout] 84 | |     });
[INFO] [stdout]    | |     ^
[INFO] [stdout]    | |     |
[INFO] [stdout]    | |_____unreachable expression
[INFO] [stdout]    |       any code following this expression is unreachable
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `_middleware_inner` which comes from the expansion of the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/bin/pviewer.rs:85:20
[INFO] [stdout]    |
[INFO] [stdout] 85 |       server.utilize(router! {
[INFO] [stdout]    |  ____________________^
[INFO] [stdout] 86 | |         get "/listdir" => |req, res| {
[INFO] [stdout] 87 | |             let subdir = req.query().get("dir").unwrap_or("./");
[INFO] [stdout] 88 | |             let pd = get_dir_contents(subdir);
[INFO] [stdout] 89 | |             return res.render("assets/list.tpl", &pd);
[INFO] [stdout] 90 | |         }
[INFO] [stdout] 91 | |     });
[INFO] [stdout]    | |     ^
[INFO] [stdout]    | |     |
[INFO] [stdout]    | |_____unreachable expression
[INFO] [stdout]    |       any code following this expression is unreachable
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `_middleware_inner` which comes from the expansion of the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/bin/pviewer.rs:85:20
[INFO] [stdout]    |
[INFO] [stdout] 85 |       server.utilize(router! {
[INFO] [stdout]    |  ____________________^
[INFO] [stdout] 86 | |         get "/listdir" => |req, res| {
[INFO] [stdout] 87 | |             let subdir = req.query().get("dir").unwrap_or("./");
[INFO] [stdout] 88 | |             let pd = get_dir_contents(subdir);
[INFO] [stdout] 89 | |             return res.render("assets/list.tpl", &pd);
[INFO] [stdout] 90 | |         }
[INFO] [stdout] 91 | |     });
[INFO] [stdout]    | |     ^
[INFO] [stdout]    | |     |
[INFO] [stdout]    | |_____unreachable expression
[INFO] [stdout]    |       any code following this expression is unreachable
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `_middleware_inner` which comes from the expansion of the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/bin/pviewer.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 | #[derive(Serialize)]
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_PageData`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: requested on the command line with `-D non-local-definitions`
[INFO] [stdout]    = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/bin/pviewer.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 | #[derive(Serialize)]
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_PageData`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: requested on the command line with `-D non-local-definitions`
[INFO] [stdout]    = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/bin/pviewer.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Serialize)]
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_DirContents`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `dir_s` should have an upper case name
[INFO] [stdout]   --> src/bin/pviewer.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | static dir_s: &'static str = "/Volumes/Seagate Backup Plus Drive/Media/Pictures";
[INFO] [stdout]    |        ^^^^^ help: convert the identifier to upper case: `DIR_S`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/bin/pviewer.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Serialize)]
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_DirContents`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `dir_s` should have an upper case name
[INFO] [stdout]   --> src/bin/pviewer.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | static dir_s: &'static str = "/Volumes/Seagate Backup Plus Drive/Media/Pictures";
[INFO] [stdout]    |        ^^^^^ help: convert the identifier to upper case: `DIR_S`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/bin/pviewer.rs:95:5
[INFO] [stdout]    |
[INFO] [stdout] 95 |     server.listen("127.0.0.1:4080");
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 95 |     let _ = server.listen("127.0.0.1:4080");
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/bin/pviewer.rs:95:5
[INFO] [stdout]    |
[INFO] [stdout] 95 |     server.listen("127.0.0.1:4080");
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 95 |     let _ = server.listen("127.0.0.1:4080");
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors; 9 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors; 9 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `pviewer` (bin "pviewer") due to 3 previous errors; 9 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `pviewer` (bin "pviewer" test) due to 3 previous errors; 9 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "71412ae686ec8b0f6d09db404f1e2600792776814c38cd1f798e980e93c27914", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "71412ae686ec8b0f6d09db404f1e2600792776814c38cd1f798e980e93c27914", kill_on_drop: false }`
[INFO] [stdout] 71412ae686ec8b0f6d09db404f1e2600792776814c38cd1f798e980e93c27914
