[INFO] fetching crate otter 1.2.1...
[INFO] checking otter-1.2.1 against 1.95.0 for pr-155915
[INFO] extracting crate otter 1.2.1 into /workspace/builds/worker-5-tc1/source
[INFO] started tweaking crates.io crate otter 1.2.1
[INFO] finished tweaking crates.io crate otter 1.2.1
[INFO] tweaked toml for crates.io crate otter 1.2.1 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate otter 1.2.1 on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate otter 1.2.1 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" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded num_threads v0.1.6
[INFO] [stderr]   Downloaded zstd v0.10.2+zstd.1.5.2
[INFO] [stderr]   Downloaded jobserver v0.1.24
[INFO] [stderr]   Downloaded time-macros v0.2.4
[INFO] [stderr]   Downloaded zstd-safe v4.1.6+zstd.1.5.2
[INFO] [stderr]   Downloaded phf_codegen v0.10.0
[INFO] [stderr]   Downloaded maplit v1.0.2
[INFO] [stderr]   Downloaded thread_local v1.1.4
[INFO] [stderr]   Downloaded chrono-tz-build v0.0.2
[INFO] [stderr]   Downloaded uncased v0.9.7
[INFO] [stderr]   Downloaded unicode-ccc v0.1.2
[INFO] [stderr]   Downloaded globset v0.4.9
[INFO] [stderr]   Downloaded sha-1 v0.8.2
[INFO] [stderr]   Downloaded slug v0.1.4
[INFO] [stderr]   Downloaded zip v0.6.2
[INFO] [stderr]   Downloaded unic-char-range v0.9.0
[INFO] [stderr]   Downloaded ignore v0.4.18
[INFO] [stderr]   Downloaded pico-args v0.5.0
[INFO] [stderr]   Downloaded unic-ucd-version v0.9.0
[INFO] [stderr]   Downloaded unic-common v0.9.0
[INFO] [stderr]   Downloaded sha1 v0.10.1
[INFO] [stderr]   Downloaded percent-encoding v2.1.0
[INFO] [stderr]   Downloaded humansize v1.1.1
[INFO] [stderr]   Downloaded mio-extras v2.0.6
[INFO] [stderr]   Downloaded fehler-macros v1.0.0
[INFO] [stderr]   Downloaded otter-base v1.2.1
[INFO] [stderr]   Downloaded boolinator v2.4.0
[INFO] [stderr]   Downloaded fastrand v1.7.0
[INFO] [stderr]   Downloaded scopeguard v1.1.0
[INFO] [stderr]   Downloaded either v1.6.1
[INFO] [stderr]   Downloaded semver v0.10.0
[INFO] [stderr]   Downloaded delegate v0.7.0
[INFO] [stderr]   Downloaded enum-map-derive v0.9.0
[INFO] [stderr]   Downloaded fsevent v0.4.0
[INFO] [stderr]   Downloaded serde v1.0.137
[INFO] [stderr]   Downloaded proc-macro-crate v0.1.5
[INFO] [stderr]   Downloaded cast_trait_object_macros v0.1.3
[INFO] [stderr]   Downloaded dlv-list v0.3.0
[INFO] [stderr]   Downloaded usvg v0.23.0
[INFO] [stderr]   Downloaded downcast-rs v1.2.0
[INFO] [stderr]   Downloaded deunicode v0.4.3
[INFO] [stderr]   Downloaded ttf-parser v0.15.2
[INFO] [stderr]   Downloaded lazy-init v0.5.0
[INFO] [stderr]   Downloaded ordered-float v3.0.0
[INFO] [stderr]   Downloaded regex v1.5.6
[INFO] [stderr]   Downloaded enum-map v2.4.0
[INFO] [stderr]   Downloaded console v0.15.0
[INFO] [stderr]   Downloaded inotify v0.7.1
[INFO] [stderr]   Downloaded regex-syntax v0.6.26
[INFO] [stderr]   Downloaded async-condvar-fair v0.2.2
[INFO] [stderr]   Downloaded enum_dispatch v0.3.8
[INFO] [stderr]   Downloaded index_vec v0.1.3
[INFO] [stderr]   Downloaded ambassador v0.3.1
[INFO] [stderr]   Downloaded semver v1.0.10
[INFO] [stderr]   Downloaded anyhow v1.0.58
[INFO] [stderr]   Downloaded deflate v1.0.0
[INFO] [stderr]   Downloaded backtrace v0.3.65
[INFO] [stderr]   Downloaded num-bigint v0.4.3
[INFO] [stderr]   Downloaded png v0.17.5
[INFO] [stderr]   Downloaded mio v0.6.23
[INFO] [stderr]   Downloaded itertools v0.10.3
[INFO] [stderr]   Downloaded serde_with v1.14.0
[INFO] [stderr]   Downloaded chrono v0.4.19
[INFO] [stderr]   Downloaded mio v0.8.4
[INFO] [stderr]   Downloaded unicode-segmentation v1.9.0
[INFO] [stderr]   Downloaded slotmap-fork-otter v1.0.2
[INFO] [stderr]   Downloaded flexi_logger v0.22.5
[INFO] [stderr]   Downloaded object v0.28.4
[INFO] [stderr]   Downloaded image v0.24.2
[INFO] [stderr]   Downloaded nix v0.24.1
[INFO] [stderr]   Downloaded bzip2-sys v0.1.11+1.0.8
[INFO] [stderr]   Downloaded bstr v0.2.17
[INFO] [stderr]   Downloaded zstd-sys v1.6.3+zstd.1.5.2
[INFO] [stderr]   Downloaded parse-zoneinfo v0.3.0
[INFO] [stderr]   Downloaded toml v0.5.9
[INFO] [stderr]   Downloaded notify v4.0.17
[INFO] [stderr]   Downloaded cargo_metadata v0.11.4
[INFO] [stderr]   Downloaded bundle-sources v0.0.1
[INFO] [stderr]   Downloaded winapi v0.2.8
[INFO] [stderr]   Downloaded cast_trait_object v0.1.3
[INFO] [stderr]   Downloaded chrono-tz v0.6.1
[INFO] [stderr]   Downloaded env_logger v0.9.0
[INFO] [stderr]   Downloaded openssh-keys v0.5.0
[INFO] [stderr]   Downloaded educe v0.4.19
[INFO] [stderr]   Downloaded kernel32-sys v0.2.2
[INFO] [stderr]   Downloaded htmlescape v0.3.1
[INFO] [stderr]   Downloaded rustversion v1.0.7
[INFO] [stderr]   Downloaded tempfile v3.3.0
[INFO] [stderr]   Downloaded wasi v0.10.0+wasi-snapshot-preview1
[INFO] [stderr]   Downloaded glob v0.3.0
[INFO] [stderr]   Downloaded net2 v0.2.37
[INFO] [stderr]   Downloaded slab v0.4.6
[INFO] [stderr]   Downloaded lock_api v0.4.7
[INFO] [stderr]   Downloaded jpeg-decoder v0.2.6
[INFO] [stderr]   Downloaded rustybuzz v0.5.1
[INFO] [stderr]   Downloaded gimli v0.26.1
[INFO] [stderr]   Downloaded parking_lot_core v0.9.3
[INFO] [stderr]   Downloaded rustc-demangle v0.1.21
[INFO] [stderr]   Downloaded time v0.1.44
[INFO] [stderr]   Downloaded idna v0.2.3
[INFO] [stderr]   Downloaded num-complex v0.4.2
[INFO] [stderr]   Downloaded filetime v0.2.16
[INFO] [stderr]   Downloaded fuchsia-zircon v0.3.3
[INFO] [stderr]   Downloaded miow v0.2.2
[INFO] [stderr]   Downloaded if_chain v1.0.2
[INFO] [stderr]   Downloaded rmp v0.8.11
[INFO] [stderr]   Downloaded rmp-serde v1.1.0
[INFO] [stderr]   Downloaded otter-support v1.2.1
[INFO] [stderr]   Downloaded unicode-width v0.1.9
[INFO] [stderr]   Downloaded strum_macros v0.24.2
[INFO] [stderr]   Downloaded redox_syscall v0.2.13
[INFO] [stderr]   Downloaded winapi-build v0.1.1
[INFO] [stderr]   Downloaded terminal_size v0.1.17
[INFO] [stderr]   Downloaded paste v1.0.7
[INFO] [stderr]   Downloaded serde_with_macros v1.5.2
[INFO] [stderr]   Downloaded serde_json v1.0.81
[INFO] [stderr]   Downloaded unicode-normalization v0.1.20
[INFO] [stderr]   Downloaded aes v0.7.5
[INFO] [stderr]   Downloaded const-default-derive v0.2.0
[INFO] [stderr]   Downloaded enum-ordinalize v3.1.11
[INFO] [stderr]   Downloaded aho-corasick v0.7.18
[INFO] [stderr]   Downloaded tera v1.16.0
[INFO] [stderr]   Downloaded ws2_32-sys v0.2.1
[INFO] [stderr]   Downloaded pest v2.1.3
[INFO] [stderr]   Downloaded serde_derive v1.0.137
[INFO] [stderr]   Downloaded url v2.2.2
[INFO] [stderr]   Downloaded const-default v1.0.0
[INFO] [stderr]   Downloaded lazy-regex-proc_macros v2.3.0
[INFO] [stderr]   Downloaded derive-into-owned v0.2.0
[INFO] [stderr]   Downloaded fsevent-sys v2.0.1
[INFO] [stderr]   Downloaded remove_dir_all v0.5.3
[INFO] [stderr]   Downloaded base64 v0.13.0
[INFO] [stderr]   Downloaded kurbo v0.8.3
[INFO] [stderr]   Downloaded miniz_oxide v0.5.3
[INFO] [stderr]   Downloaded flate2 v1.0.24
[INFO] [stderr]   Downloaded unic-ucd-segment v0.9.0
[INFO] [stderr]   Downloaded proc-macro2 v1.0.40
[INFO] [stderr]   Downloaded once_cell v1.12.0
[INFO] [stderr]   Downloaded typenum v1.15.0
[INFO] [stderr]   Downloaded lazy-regex v2.3.0
[INFO] [stderr]   Downloaded md-5 v0.9.1
[INFO] [stderr]   Downloaded fuchsia-zircon-sys v0.3.3
[INFO] [stderr]   Downloaded fehler v1.0.0
[INFO] [stderr]   Downloaded roxmltree v0.14.1
[INFO] [stderr]   Downloaded unicode-script v0.5.4
[INFO] [stderr]   Downloaded bzip2 v0.4.3
[INFO] [stderr]   Downloaded password-hash v0.3.2
[INFO] [stderr]   Downloaded num v0.4.0
[INFO] [stderr]   Downloaded extend v1.1.2
[INFO] [stderr]   Downloaded ucd-trie v0.1.3
[INFO] [stderr]   Downloaded pest_meta v2.1.3
[INFO] [stderr]   Downloaded ryu v1.0.10
[INFO] [stderr]   Downloaded unic-segment v0.9.0
[INFO] [stderr]   Downloaded quote v1.0.20
[INFO] [stderr]   Downloaded uds v0.2.6
[INFO] [stderr]   Downloaded unicase v2.6.0
[INFO] [stderr]   Downloaded fontconfig-parser v0.5.0
[INFO] [stderr]   Downloaded bytemuck v1.9.1
[INFO] [stderr]   Downloaded unicode-general-category v0.4.0
[INFO] [stderr]   Downloaded crossbeam-utils v0.8.10
[INFO] [stderr]   Downloaded time v0.3.11
[INFO] [stderr]   Downloaded cc v1.0.73
[INFO] [stderr]   Downloaded term_size v0.3.2
[INFO] [stderr]   Downloaded walkdir v2.3.2
[INFO] [stderr]   Downloaded svgtypes v0.8.1
[INFO] [stderr]   Downloaded unicode-bidi v0.3.8
[INFO] [stderr]   Downloaded vecdeque-stableix v1.0.0
[INFO] [stderr]   Downloaded generic-array v0.14.5
[INFO] [stderr]   Downloaded memmap2 v0.5.4
[INFO] [stderr]   Downloaded arrayvec v0.7.2
[INFO] [stderr]   Downloaded xmlparser v0.13.3
[INFO] [stderr]   Downloaded pkg-config v0.3.25
[INFO] [stderr]   Downloaded getrandom v0.2.7
[INFO] [stderr]   Downloaded digest v0.10.3
[INFO] [stderr]   Downloaded ppv-lite86 v0.2.16
[INFO] [stderr]   Downloaded erased-serde v0.3.21
[INFO] [stderr]   Downloaded typetag v0.1.8
[INFO] [stderr]   Downloaded smallvec v1.8.1
[INFO] [stderr]   Downloaded rand_core v0.6.3
[INFO] [stderr]   Downloaded sha2 v0.10.2
[INFO] [stderr]   Downloaded pwd v1.3.1
[INFO] [stderr]   Downloaded globwalk v0.8.1
[INFO] [stderr]   Downloaded pest_generator v2.1.3
[INFO] [stderr]   Downloaded thiserror v1.0.31
[INFO] [stderr]   Downloaded simplecss v0.2.1
[INFO] [stderr]   Downloaded block-buffer v0.10.2
[INFO] [stderr]   Downloaded pest_derive v2.1.0
[INFO] [stderr]   Downloaded crypto-common v0.1.3
[INFO] [stderr]   Downloaded rctree v0.4.0
[INFO] [stderr]   Downloaded unicode-bidi-mirroring v0.1.0
[INFO] [stderr]   Downloaded form_urlencoded v1.0.1
[INFO] [stderr]   Downloaded matches v0.1.9
[INFO] [stderr]   Downloaded siphasher v0.3.10
[INFO] [stderr]   Downloaded cpufeatures v0.2.2
[INFO] [stderr]   Downloaded ctor v0.1.22
[INFO] [stderr]   Downloaded ghost v0.1.4
[INFO] [stderr]   Downloaded inventory v0.2.3
[INFO] [stderr]   Downloaded typetag-impl v0.1.8
[INFO] [stderr]   Downloaded fontdb v0.9.1
[INFO] [stderr]   Downloaded base64ct v1.0.1
[INFO] [stderr]   Downloaded pbkdf2 v0.10.1
[INFO] [stderr]   Downloaded xmlwriter v0.1.0
[INFO] [stderr]   Downloaded itoa v1.0.2
[INFO] [stderr]   Downloaded unic-char-property v0.9.0
[INFO] [stderr]   Downloaded thiserror-impl v1.0.31
[INFO] [stderr]   Downloaded tinyvec_macros v0.1.0
[INFO] [stderr]   Downloaded cipher v0.3.0
[INFO] [stderr]   Downloaded unicode-vo v0.1.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5ef0e1d6321bd8f0479a260b33e3d8af99fab1ab148466c9d292d332c4029a83
[INFO] running `Command { std: "docker" "start" "-a" "5ef0e1d6321bd8f0479a260b33e3d8af99fab1ab148466c9d292d332c4029a83", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5ef0e1d6321bd8f0479a260b33e3d8af99fab1ab148466c9d292d332c4029a83", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5ef0e1d6321bd8f0479a260b33e3d8af99fab1ab148466c9d292d332c4029a83", kill_on_drop: false }`
[INFO] [stdout] 5ef0e1d6321bd8f0479a260b33e3d8af99fab1ab148466c9d292d332c4029a83
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8edf31314ea1098c59ba143c913436b9b64b470d31f8833c56b0d688e6870465
[INFO] running `Command { std: "docker" "start" "-a" "8edf31314ea1098c59ba143c913436b9b64b470d31f8833c56b0d688e6870465", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.40
[INFO] [stderr]    Compiling unicode-ident v1.0.1
[INFO] [stderr]    Compiling quote v1.0.20
[INFO] [stderr]    Compiling syn v1.0.98
[INFO] [stderr]    Compiling libc v0.2.126
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]    Compiling serde_derive v1.0.137
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling typenum v1.15.0
[INFO] [stderr]    Compiling generic-array v0.14.5
[INFO] [stderr]    Compiling serde v1.0.137
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]    Compiling uncased v0.9.7
[INFO] [stderr]    Compiling jobserver v0.1.24
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]    Compiling getrandom v0.2.7
[INFO] [stderr]    Compiling cc v1.0.73
[INFO] [stderr]    Compiling rand_core v0.6.3
[INFO] [stderr]     Checking aho-corasick v0.7.18
[INFO] [stderr]    Compiling siphasher v0.3.10
[INFO] [stderr]    Compiling regex-syntax v0.6.26
[INFO] [stderr]    Compiling ppv-lite86 v0.2.16
[INFO] [stderr]    Compiling phf_shared v0.10.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]     Checking once_cell v1.12.0
[INFO] [stderr]     Checking miniz_oxide v0.5.3
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking cpufeatures v0.2.2
[INFO] [stderr]     Checking subtle v2.4.1
[INFO] [stderr]     Checking block-buffer v0.10.2
[INFO] [stderr]     Checking crypto-common v0.1.3
[INFO] [stderr]    Compiling strsim v0.10.0
[INFO] [stderr]     Checking itoa v1.0.2
[INFO] [stderr]     Checking digest v0.10.3
[INFO] [stderr]     Checking walkdir v2.3.2
[INFO] [stderr]    Compiling phf v0.10.1
[INFO] [stderr]    Compiling zstd-sys v1.6.3+zstd.1.5.2
[INFO] [stderr]    Compiling crc32fast v1.3.2
[INFO] [stderr]     Checking byteorder v1.4.3
[INFO] [stderr]    Compiling rustversion v1.0.7
[INFO] [stderr]     Checking net2 v0.2.37
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]    Compiling phf_generator v0.10.0
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]    Compiling backtrace v0.3.65
[INFO] [stderr]    Compiling phf_codegen v0.10.0
[INFO] [stderr]    Compiling num-bigint v0.4.3
[INFO] [stderr]    Compiling lock_api v0.4.7
[INFO] [stderr]    Compiling parking_lot_core v0.9.3
[INFO] [stderr]    Compiling serde_json v1.0.81
[INFO] [stderr]     Checking gimli v0.26.1
[INFO] [stderr]     Checking regex v1.5.6
[INFO] [stderr]    Compiling pkg-config v0.3.25
[INFO] [stderr]    Compiling crossbeam-utils v0.8.10
[INFO] [stderr]    Compiling failure_derive v0.1.8
[INFO] [stderr]    Compiling unicode-xid v0.2.3
[INFO] [stderr]    Compiling ucd-trie v0.1.3
[INFO] [stderr]     Checking unicode-width v0.1.9
[INFO] [stderr]     Checking slab v0.4.6
[INFO] [stderr]    Compiling bzip2-sys v0.1.11+1.0.8
[INFO] [stderr]     Checking mio v0.6.23
[INFO] [stderr]    Compiling pest v2.1.3
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]     Checking time v0.1.44
[INFO] [stderr]     Checking object v0.28.4
[INFO] [stderr]     Checking bstr v0.2.17
[INFO] [stderr]    Compiling num-iter v0.1.43
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]    Compiling num-rational v0.4.1
[INFO] [stderr]     Checking scopeguard v1.1.0
[INFO] [stderr]     Checking ryu v1.0.10
[INFO] [stderr]     Checking unic-common v0.9.0
[INFO] [stderr]    Compiling parse-zoneinfo v0.3.0
[INFO] [stderr]    Compiling zstd-safe v4.1.6+zstd.1.5.2
[INFO] [stderr]     Checking addr2line v0.17.0
[INFO] [stderr]    Compiling time-macros v0.2.4
[INFO] [stderr]     Checking rustc-demangle v0.1.21
[INFO] [stderr]     Checking ansi_term v0.12.1
[INFO] [stderr]     Checking lazycell v1.3.0
[INFO] [stderr]     Checking tinyvec_macros v0.1.0
[INFO] [stderr]     Checking unic-char-range v0.9.0
[INFO] [stderr]    Compiling either v1.6.1
[INFO] [stderr]    Compiling chrono-tz-build v0.0.2
[INFO] [stderr]     Checking smallvec v1.8.1
[INFO] [stderr]    Compiling maplit v1.0.2
[INFO] [stderr]     Checking num_threads v0.1.6
[INFO] [stderr]    Compiling pest_meta v2.1.3
[INFO] [stderr]     Checking unic-char-property v0.9.0
[INFO] [stderr]     Checking tinyvec v1.6.0
[INFO] [stderr]     Checking globset v0.4.9
[INFO] [stderr]     Checking mio-extras v2.0.6
[INFO] [stderr]     Checking unic-ucd-version v0.9.0
[INFO] [stderr]    Compiling chrono-tz v0.6.1
[INFO] [stderr]     Checking chrono v0.4.19
[INFO] [stderr]     Checking time v0.3.11
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling darling_core v0.13.4
[INFO] [stderr]    Compiling synstructure v0.12.6
[INFO] [stderr]     Checking inotify v0.7.1
[INFO] [stderr]     Checking sha2 v0.10.2
[INFO] [stderr]     Checking digest v0.9.0
[INFO] [stderr]     Checking block-buffer v0.9.0
[INFO] [stderr]     Checking thread_local v1.1.4
[INFO] [stderr]     Checking filetime v0.2.16
[INFO] [stderr]    Compiling slotmap-fork-otter v1.0.2
[INFO] [stderr]    Compiling erased-serde v0.3.21
[INFO] [stderr]    Compiling unicode-segmentation v1.9.0
[INFO] [stderr]     Checking matches v0.1.9
[INFO] [stderr]     Checking adler32 v1.2.0
[INFO] [stderr]    Compiling paste v1.0.7
[INFO] [stderr]     Checking percent-encoding v2.1.0
[INFO] [stderr]     Checking base64ct v1.0.1
[INFO] [stderr]    Compiling anyhow v1.0.58
[INFO] [stderr]     Checking password-hash v0.3.2
[INFO] [stderr]    Compiling heck v0.3.3
[INFO] [stderr]     Checking itertools v0.10.3
[INFO] [stderr]     Checking deflate v1.0.0
[INFO] [stderr]     Checking rmp v0.8.11
[INFO] [stderr]     Checking ignore v0.4.18
[INFO] [stderr]    Compiling thiserror-impl v1.0.31
[INFO] [stderr]    Compiling fehler-macros v1.0.0
[INFO] [stderr]     Checking failure v0.1.8
[INFO] [stderr]    Compiling darling_macro v0.13.4
[INFO] [stderr]    Compiling strum_macros v0.24.2
[INFO] [stderr]    Compiling enum-ordinalize v3.1.11
[INFO] [stderr]    Compiling num-derive v0.3.3
[INFO] [stderr]    Compiling darling v0.13.4
[INFO] [stderr]    Compiling serde_with_macros v1.5.2
[INFO] [stderr]    Compiling extend v1.1.2
[INFO] [stderr]    Compiling derive_more v0.99.17
[INFO] [stderr]     Checking thiserror v1.0.31
[INFO] [stderr]    Compiling ctor v0.1.22
[INFO] [stderr]    Compiling ghost v0.1.4
[INFO] [stderr]     Checking notify v4.0.17
[INFO] [stderr]     Checking fehler v1.0.0
[INFO] [stderr]     Checking unicode-normalization v0.1.20
[INFO] [stderr]    Compiling pest_generator v2.1.3
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]     Checking unic-ucd-segment v0.9.0
[INFO] [stderr]     Checking textwrap v0.11.0
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking cipher v0.3.0
[INFO] [stderr]     Checking terminal_size v0.1.17
[INFO] [stderr]    Compiling unicase v2.6.0
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]     Checking glob v0.3.0
[INFO] [stderr]     Checking unicode-bidi v0.3.8
[INFO] [stderr]     Checking deunicode v0.4.3
[INFO] [stderr]     Checking htmlescape v0.3.1
[INFO] [stderr]     Checking arrayvec v0.7.2
[INFO] [stderr]     Checking vec_map v0.8.2
[INFO] [stderr]     Checking if_chain v1.0.2
[INFO] [stderr]    Compiling pest_derive v2.1.0
[INFO] [stderr]     Checking clap v2.34.0
[INFO] [stderr]     Checking idna v0.2.3
[INFO] [stderr]     Checking slug v0.1.4
[INFO] [stderr]     Checking unic-segment v0.9.0
[INFO] [stderr]     Checking console v0.15.0
[INFO] [stderr]     Checking aes v0.7.5
[INFO] [stderr]     Checking pbkdf2 v0.10.1
[INFO] [stderr]     Checking inventory v0.2.3
[INFO] [stderr]     Checking nix v0.24.1
[INFO] [stderr]     Checking strum v0.24.1
[INFO] [stderr]    Compiling educe v0.4.19
[INFO] [stderr]     Checking pwd v1.3.1
[INFO] [stderr]     Checking globwalk v0.8.1
[INFO] [stderr]     Checking png v0.17.5
[INFO] [stderr]    Compiling typetag-impl v0.1.8
[INFO] [stderr]    Compiling derive-into-owned v0.2.0
[INFO] [stderr]    Compiling enum-map-derive v0.9.0
[INFO] [stderr]    Compiling lazy-regex-proc_macros v2.3.0
[INFO] [stderr]    Compiling structopt-derive v0.4.18
[INFO] [stderr]     Checking form_urlencoded v1.0.1
[INFO] [stderr]     Checking md-5 v0.9.1
[INFO] [stderr]     Checking sha2 v0.9.9
[INFO] [stderr]     Checking flate2 v1.0.24
[INFO] [stderr]     Checking sha1 v0.10.1
[INFO] [stderr]     Checking fs2 v0.4.3
[INFO] [stderr]     Checking mio v0.8.4
[INFO] [stderr]     Checking num-complex v0.4.2
[INFO] [stderr]     Checking jpeg-decoder v0.2.6
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]     Checking pin-project-lite v0.2.9
[INFO] [stderr]     Checking constant_time_eq v0.1.5
[INFO] [stderr]     Checking dlv-list v0.3.0
[INFO] [stderr]     Checking bytemuck v1.9.1
[INFO] [stderr]     Checking fastrand v1.7.0
[INFO] [stderr]     Checking humansize v1.1.1
[INFO] [stderr]     Checking remove_dir_all v0.5.3
[INFO] [stderr]     Checking base64 v0.13.0
[INFO] [stderr]     Checking tempfile v3.3.0
[INFO] [stderr]     Checking image v0.24.2
[INFO] [stderr]    Compiling enum_dispatch v0.3.8
[INFO] [stderr]     Checking async-condvar-fair v0.2.2
[INFO] [stderr]     Checking openssh-keys v0.5.0
[INFO] [stderr]     Checking num v0.4.0
[INFO] [stderr]     Checking structopt v0.3.26
[INFO] [stderr]     Checking env_logger v0.9.0
[INFO] [stderr]     Checking url v2.2.2
[INFO] [stderr]    Compiling ambassador v0.3.1
[INFO] [stderr]     Checking lazy-regex v2.3.0
[INFO] [stderr]    Compiling delegate v0.7.0
[INFO] [stderr]     Checking uds v0.2.6
[INFO] [stderr]     Checking vecdeque-stableix v1.0.0
[INFO] [stderr]     Checking ordered-float v3.0.0
[INFO] [stderr]     Checking xmlparser v0.13.3
[INFO] [stderr]     Checking downcast-rs v1.2.0
[INFO] [stderr]     Checking boolinator v2.4.0
[INFO] [stderr]     Checking lazy-init v0.5.0
[INFO] [stderr]     Checking toml v0.5.9
[INFO] [stderr]     Checking serde_with v1.14.0
[INFO] [stderr]     Checking rmp-serde v1.1.0
[INFO] [stderr]     Checking humantime-serde v1.1.1
[INFO] [stderr]     Checking enum-map v2.4.0
[INFO] [stderr]     Checking index_vec v0.1.3
[INFO] [stderr]     Checking typetag v0.1.8
[INFO] [stderr]     Checking flexi_logger v0.22.5
[INFO] [stderr]     Checking tera v1.16.0
[INFO] [stderr]    Compiling proc-macro-crate v0.1.5
[INFO] [stderr]    Compiling proc-macro-crate v1.1.3
[INFO] [stderr]     Checking otter-base v1.2.1
[INFO] [stderr]     Checking bzip2 v0.4.3
[INFO] [stderr]    Compiling const-default-derive v0.2.0
[INFO] [stderr]    Compiling cast_trait_object_macros v0.1.3
[INFO] [stderr]     Checking const-default v1.0.0
[INFO] [stderr]     Checking otter-support v1.2.1
[INFO] [stderr]     Checking cast_trait_object v0.1.3
[INFO] [stderr]     Checking zstd v0.10.2+zstd.1.5.2
[INFO] [stderr]     Checking zip v0.6.2
[INFO] [stderr]     Checking otter v1.2.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> src/imports.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub use crate::fastsplit::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^ the name `RefTraitObjectPieceTraitExt` in the type namespace is first re-exported here
[INFO] [stdout] 91 | pub use crate::gamestate::*;
[INFO] [stdout]    |         ------------------- but the name `RefTraitObjectPieceTraitExt` in the type namespace is also re-exported here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> src/prelude.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub use crate::imports::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ the name `Error` in the type namespace is first re-exported here
[INFO] [stdout] ...
[INFO] [stdout] 37 | pub use otter_support::imports::*;
[INFO] [stdout]    |         ------------------------- but the name `Error` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `Error` is ambiguous
[INFO] [stdout]     --> src/global.rs:1490:8
[INFO] [stdout]      |
[INFO] [stdout] 1490 |     E: Error,
[INFO] [stdout]      |        ^^^^^ ambiguous name
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #114095 <https://github.com/rust-lang/rust/issues/114095>
[INFO] [stdout]      = note: ambiguous because of multiple glob imports of a name in the same module
[INFO] [stdout] note: `Error` could refer to the trait imported here
[INFO] [stdout]     --> src/prelude.rs:31:9
[INFO] [stdout]      |
[INFO] [stdout]   31 | pub use crate::imports::*;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = help: consider adding an explicit import of `Error` to disambiguate
[INFO] [stdout] note: `Error` could also refer to the enum imported here
[INFO] [stdout]     --> src/prelude.rs:37:9
[INFO] [stdout]      |
[INFO] [stdout]   37 | pub use otter_support::imports::*;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = help: consider adding an explicit import of `Error` to disambiguate
[INFO] [stdout]      = note: `#[warn(ambiguous_glob_imports)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `Error` is ambiguous
[INFO] [stdout]    --> src/updates.rs:476:30
[INFO] [stdout]     |
[INFO] [stdout] 476 |   pub fn try_map<NS2, ZC2, E:Error,
[INFO] [stdout]     |                              ^^^^^ ambiguous name
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #114095 <https://github.com/rust-lang/rust/issues/114095>
[INFO] [stdout]     = note: ambiguous because of multiple glob imports of a name in the same module
[INFO] [stdout] note: `Error` could refer to the trait imported here
[INFO] [stdout]    --> src/prelude.rs:31:9
[INFO] [stdout]     |
[INFO] [stdout]  31 | pub use crate::imports::*;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: consider adding an explicit import of `Error` to disambiguate
[INFO] [stdout] note: `Error` could also refer to the enum imported here
[INFO] [stdout]    --> src/prelude.rs:37:9
[INFO] [stdout]     |
[INFO] [stdout]  37 | pub use otter_support::imports::*;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: consider adding an explicit import of `Error` to disambiguate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]    --> src/gamestate.rs:133:43
[INFO] [stdout]     |
[INFO] [stdout] 133 |         if s.as_bytes().iter().all(|&c:&u8| (
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 134 | |         c.is_ascii_alphanumeric() ||
[INFO] [stdout]     | |________^
[INFO] [stdout] 135 |           b"-_. ()".contains(&c)
[INFO] [stdout]     |  _______________________________^
[INFO] [stdout] 136 | |       )) {
[INFO] [stdout]     | |_______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 133 ~       if s.as_bytes().iter().all(|&c:&u8| c.is_ascii_alphanumeric() ||
[INFO] [stdout] 134 ~         b"-_. ()".contains(&c)) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> src/imports.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub use crate::fastsplit::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^ the name `RefTraitObjectPieceTraitExt` in the type namespace is first re-exported here
[INFO] [stdout] 91 | pub use crate::gamestate::*;
[INFO] [stdout]    |         ------------------- but the name `RefTraitObjectPieceTraitExt` in the type namespace is also re-exported here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> src/prelude.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub use crate::imports::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ the name `Error` in the type namespace is first re-exported here
[INFO] [stdout] ...
[INFO] [stdout] 37 | pub use otter_support::imports::*;
[INFO] [stdout]    |         ------------------------- but the name `Error` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `Error` is ambiguous
[INFO] [stdout]     --> src/global.rs:1490:8
[INFO] [stdout]      |
[INFO] [stdout] 1490 |     E: Error,
[INFO] [stdout]      |        ^^^^^ ambiguous name
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #114095 <https://github.com/rust-lang/rust/issues/114095>
[INFO] [stdout]      = note: ambiguous because of multiple glob imports of a name in the same module
[INFO] [stdout] note: `Error` could refer to the trait imported here
[INFO] [stdout]     --> src/prelude.rs:31:9
[INFO] [stdout]      |
[INFO] [stdout]   31 | pub use crate::imports::*;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = help: consider adding an explicit import of `Error` to disambiguate
[INFO] [stdout] note: `Error` could also refer to the enum imported here
[INFO] [stdout]     --> src/prelude.rs:37:9
[INFO] [stdout]      |
[INFO] [stdout]   37 | pub use otter_support::imports::*;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = help: consider adding an explicit import of `Error` to disambiguate
[INFO] [stdout]      = note: `#[warn(ambiguous_glob_imports)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `Error` is ambiguous
[INFO] [stdout]    --> src/updates.rs:476:30
[INFO] [stdout]     |
[INFO] [stdout] 476 |   pub fn try_map<NS2, ZC2, E:Error,
[INFO] [stdout]     |                              ^^^^^ ambiguous name
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #114095 <https://github.com/rust-lang/rust/issues/114095>
[INFO] [stdout]     = note: ambiguous because of multiple glob imports of a name in the same module
[INFO] [stdout] note: `Error` could refer to the trait imported here
[INFO] [stdout]    --> src/prelude.rs:31:9
[INFO] [stdout]     |
[INFO] [stdout]  31 | pub use crate::imports::*;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: consider adding an explicit import of `Error` to disambiguate
[INFO] [stdout] note: `Error` could also refer to the enum imported here
[INFO] [stdout]    --> src/prelude.rs:37:9
[INFO] [stdout]     |
[INFO] [stdout]  37 | pub use otter_support::imports::*;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: consider adding an explicit import of `Error` to disambiguate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]     --> src/hidden.rs:1004:7
[INFO] [stdout]      |
[INFO] [stdout] 1004 |     (|| (
[INFO] [stdout]      |  _______^
[INFO] [stdout] 1005 | |     (||{
[INFO] [stdout]      | |____^
[INFO] [stdout] ...
[INFO] [stdout] 1029 |       })
[INFO] [stdout]      |  _______^
[INFO] [stdout] 1030 | |   ))()?;
[INFO] [stdout]      | |___^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1004 ~   (|| (||{
[INFO] [stdout] 1005 |       let ogpc = gpieces.get_mut(occulter).ok_or_else(
[INFO] [stdout]  ...
[INFO] [stdout] 1027 |       e
[INFO] [stdout] 1028 ~     }))()?;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]    --> src/gamestate.rs:133:43
[INFO] [stdout]     |
[INFO] [stdout] 133 |         if s.as_bytes().iter().all(|&c:&u8| (
[INFO] [stdout]     |  ___________________________________________^
[INFO] [stdout] 134 | |         c.is_ascii_alphanumeric() ||
[INFO] [stdout]     | |________^
[INFO] [stdout] 135 |           b"-_. ()".contains(&c)
[INFO] [stdout]     |  _______________________________^
[INFO] [stdout] 136 | |       )) {
[INFO] [stdout]     | |_______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 133 ~       if s.as_bytes().iter().all(|&c:&u8| c.is_ascii_alphanumeric() ||
[INFO] [stdout] 134 ~         b"-_. ()".contains(&c)) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]     --> src/hidden.rs:1004:7
[INFO] [stdout]      |
[INFO] [stdout] 1004 |     (|| (
[INFO] [stdout]      |  _______^
[INFO] [stdout] 1005 | |     (||{
[INFO] [stdout]      | |____^
[INFO] [stdout] ...
[INFO] [stdout] 1029 |       })
[INFO] [stdout]      |  _______^
[INFO] [stdout] 1030 | |   ))()?;
[INFO] [stdout]      | |___^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1004 ~   (|| (||{
[INFO] [stdout] 1005 |       let ogpc = gpieces.get_mut(occulter).ok_or_else(
[INFO] [stdout]  ...
[INFO] [stdout] 1027 |       e
[INFO] [stdout] 1028 ~     }))()?;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: Use of ambiguously glob imported trait `RefTraitObjectPieceTraitExt`
[INFO] [stdout]    --> src/currency.rs:159:8
[INFO] [stdout]     |
[INFO] [stdout]  16 | use crate::prelude::*;
[INFO] [stdout]     |     -------------- `RefTraitObjectPieceTraitExt` imported ambiguously here
[INFO] [stdout] ...
[INFO] [stdout] 159 |       .downcast_piece_fastsplit()?;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #147992 <https://github.com/rust-lang/rust/issues/147992>
[INFO] [stdout]     = help: Import `RefTraitObjectPieceTraitExt` explicitly
[INFO] [stdout]     = note: `#[warn(ambiguous_glob_imported_traits)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: Use of ambiguously glob imported trait `RefTraitObjectPieceTraitExt`
[INFO] [stdout]    --> src/currency.rs:225:10
[INFO] [stdout]     |
[INFO] [stdout]  16 | use crate::prelude::*;
[INFO] [stdout]     |     -------------- `RefTraitObjectPieceTraitExt` imported ambiguously here
[INFO] [stdout] ...
[INFO] [stdout] 225 |         .downcast_piece_fastsplit().ok()?;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #147992 <https://github.com/rust-lang/rust/issues/147992>
[INFO] [stdout]     = help: Import `RefTraitObjectPieceTraitExt` explicitly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: Use of ambiguously glob imported trait `RefTraitObjectPieceTraitExt`
[INFO] [stdout]    --> src/currency.rs:159:8
[INFO] [stdout]     |
[INFO] [stdout]  16 | use crate::prelude::*;
[INFO] [stdout]     |     -------------- `RefTraitObjectPieceTraitExt` imported ambiguously here
[INFO] [stdout] ...
[INFO] [stdout] 159 |       .downcast_piece_fastsplit()?;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #147992 <https://github.com/rust-lang/rust/issues/147992>
[INFO] [stdout]     = help: Import `RefTraitObjectPieceTraitExt` explicitly
[INFO] [stdout]     = note: `#[warn(ambiguous_glob_imported_traits)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: Use of ambiguously glob imported trait `RefTraitObjectPieceTraitExt`
[INFO] [stdout]    --> src/currency.rs:225:10
[INFO] [stdout]     |
[INFO] [stdout]  16 | use crate::prelude::*;
[INFO] [stdout]     |     -------------- `RefTraitObjectPieceTraitExt` imported ambiguously here
[INFO] [stdout] ...
[INFO] [stdout] 225 |         .downcast_piece_fastsplit().ok()?;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #147992 <https://github.com/rust-lang/rust/issues/147992>
[INFO] [stdout]     = help: Import `RefTraitObjectPieceTraitExt` explicitly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/global.rs:1290:9
[INFO] [stdout]      |
[INFO] [stdout] 1290 |     for mut p in gs.pieces.values_mut() {
[INFO] [stdout]      |         ----^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/global.rs:1290:9
[INFO] [stdout]      |
[INFO] [stdout] 1290 |     for mut p in gs.pieces.values_mut() {
[INFO] [stdout]      |         ----^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ReadSeek` is never used
[INFO] [stdout]    --> src/bundles.rs:355:7
[INFO] [stdout]     |
[INFO] [stdout] 355 | trait ReadSeek: Read + io::Seek { }
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/bundles.rs:447:6
[INFO] [stdout]     |
[INFO] [stdout] 447 |   IE(IE),
[INFO] [stdout]     |   -- ^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ReloadError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 447 -   IE(IE),
[INFO] [stdout] 447 +   IE(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/bundles.rs:448:14
[INFO] [stdout]     |
[INFO] [stdout] 448 |   Unloadable(BadBundle),
[INFO] [stdout]     |   ---------- ^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ReloadError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 448 -   Unloadable(BadBundle),
[INFO] [stdout] 448 +   Unloadable(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/hidden.rs:891:31
[INFO] [stdout]     |
[INFO] [stdout] 891 | pub struct NascentOccultation(Occultation);
[INFO] [stdout]     |            ------------------ ^^^^^^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/occultilks.rs:55:16
[INFO] [stdout]    |
[INFO] [stdout] 55 |       Distinct(OccultIlkData),
[INFO] [stdout]    |       -------- ^^^^^^^^^^^^^
[INFO] [stdout]    |       |
[INFO] [stdout]    |       field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IOccultIlk_New` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 55 -       Distinct(OccultIlkData),
[INFO] [stdout] 55 +       Distinct(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/occultilks.rs:56:11
[INFO] [stdout]    |
[INFO] [stdout] 56 |       Mix(OccultIlkOwningId),
[INFO] [stdout]    |       --- ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |       |
[INFO] [stdout]    |       field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IOccultIlk_New` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 56 -       Mix(OccultIlkOwningId),
[INFO] [stdout] 56 +       Mix(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/bundles.rs:516:49
[INFO] [stdout]     |
[INFO] [stdout] 516 | #[derive(Copy,Clone,Debug,EnumCount,EnumMessage,ToPrimitive)]
[INFO] [stdout]     |                                                 ^----------
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 `ToPrimitive` is not local
[INFO] [stdout]     |                                                 move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_Phase`
[INFO] [stdout] 517 | enum Phase {
[INFO] [stdout]     |      ----- `Phase` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]     = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/bundles.rs:525:49
[INFO] [stdout]     |
[INFO] [stdout] 525 | #[derive(Copy,Clone,Debug,EnumCount,EnumMessage,ToPrimitive)]
[INFO] [stdout]     |                                                 ^----------
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 `ToPrimitive` is not local
[INFO] [stdout]     |                                                 move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_FinishProgress`
[INFO] [stdout] 526 | enum FinishProgress {
[INFO] [stdout]     |      -------------- `FinishProgress` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/bundles.rs:542:51
[INFO] [stdout]     |
[INFO] [stdout] 542 |   #[derive(Copy,Clone,Debug,EnumCount,EnumMessage,ToPrimitive)]
[INFO] [stdout]     |                                                   ^----------
[INFO] [stdout]     |                                                   |
[INFO] [stdout]     |                                                   `ToPrimitive` is not local
[INFO] [stdout]     |                                                   move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_ToScan` and up 2 bodies
[INFO] [stdout] 543 |   enum ToScan {
[INFO] [stdout]     |        ------ `ToScan` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/clock.rs:423:1
[INFO] [stdout]     |
[INFO] [stdout] 423 | #[dyn_upcast]
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `__SelfType` is not local
[INFO] [stdout]     | `DynCast` is not local
[INFO] [stdout]     | `__ConfigType` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/clock.rs:435:1
[INFO] [stdout]     |
[INFO] [stdout] 435 | #[dyn_upcast]
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `__SelfType` is not local
[INFO] [stdout]     | `DynCast` is not local
[INFO] [stdout]     | `__ConfigType` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/clock.rs:461:5
[INFO] [stdout]     |
[INFO] [stdout] 444 |   #[throws(IE)]
[INFO] [stdout]     |   ------------- move the `impl` block outside of this method `svg_piece`
[INFO] [stdout] ...
[INFO] [stdout] 461 |     impl URenderState {
[INFO] [stdout]     |     ^^^^^------------
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `URenderState` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/utils.rs:669:8
[INFO] [stdout]     |
[INFO] [stdout] 669 |       $( #[ $attr ] )*
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `__SelfType` is not local
[INFO] [stdout]     |          `DynCast` is not local
[INFO] [stdout]     |          `__ConfigType` is not local
[INFO] [stdout]     |          move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/currency.rs:117:1
[INFO] [stdout]     |
[INFO] [stdout] 117 | / impl_via_ambassador!{
[INFO] [stdout] 118 | |   #[dyn_upcast]
[INFO] [stdout] 119 | |   impl OutlineTrait for Banknote { image }
[INFO] [stdout] 120 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the macro `impl_via_ambassador` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/currency.rs:122:1
[INFO] [stdout]     |
[INFO] [stdout] 122 | #[dyn_upcast]
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `__SelfType` is not local
[INFO] [stdout]     | `DynCast` is not local
[INFO] [stdout]     | `__ConfigType` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/utils.rs:669:8
[INFO] [stdout]     |
[INFO] [stdout] 669 |       $( #[ $attr ] )*
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `__SelfType` is not local
[INFO] [stdout]     |          `DynCast` is not local
[INFO] [stdout]     |          `__ConfigType` is not local
[INFO] [stdout]     |          move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deck.rs:29:1
[INFO] [stdout]     |
[INFO] [stdout]  29 | / impl_via_ambassador!{
[INFO] [stdout]  30 | |   #[dyn_upcast]
[INFO] [stdout]  31 | |   impl OutlineTrait for Deck { shape }
[INFO] [stdout]  32 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the macro `impl_via_ambassador` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/deck.rs:97:1
[INFO] [stdout]    |
[INFO] [stdout] 97 | #[dyn_upcast]
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout]    | |
[INFO] [stdout]    | `__SelfType` is not local
[INFO] [stdout]    | `DynCast` is not local
[INFO] [stdout]    | `__ConfigType` is not local
[INFO] [stdout]    | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]    |
[INFO] [stdout]    = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dice.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | #[dyn_upcast]
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `__SelfType` is not local
[INFO] [stdout]     | `DynCast` is not local
[INFO] [stdout]     | `__ConfigType` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dice.rs:342:1
[INFO] [stdout]     |
[INFO] [stdout] 342 | #[dyn_upcast]
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `__SelfType` is not local
[INFO] [stdout]     | `DynCast` is not local
[INFO] [stdout]     | `__ConfigType` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/utils.rs:669:8
[INFO] [stdout]     |
[INFO] [stdout] 669 |       $( #[ $attr ] )*
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `__SelfType` is not local
[INFO] [stdout]     |          `DynCast` is not local
[INFO] [stdout]     |          `__ConfigType` is not local
[INFO] [stdout]     |          move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/fastsplit.rs:59:1
[INFO] [stdout]     |
[INFO] [stdout]  59 | / impl_via_ambassador!{
[INFO] [stdout]  60 | |   #[dyn_upcast]
[INFO] [stdout]  61 | |   impl OutlineTrait for Piece { inner() } 
[INFO] [stdout] ...   |
[INFO] [stdout]  67 | |   impl PieceTrait for Piece { inner() }
[INFO] [stdout]  68 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the macro `impl_via_ambassador` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/utils.rs:669:8
[INFO] [stdout]     |
[INFO] [stdout] 669 |       $( #[ $attr ] )*
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `__SelfType` is not local
[INFO] [stdout]     |          `DynCast` is not local
[INFO] [stdout]     |          `__ConfigType` is not local
[INFO] [stdout]     |          move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/fastsplit.rs:59:1
[INFO] [stdout]     |
[INFO] [stdout]  59 | / impl_via_ambassador!{
[INFO] [stdout]  60 | |   #[dyn_upcast]
[INFO] [stdout]  61 | |   impl OutlineTrait for Piece { inner() } 
[INFO] [stdout] ...   |
[INFO] [stdout]  67 | |   impl PieceTrait for Piece { inner() }
[INFO] [stdout]  68 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the macro `impl_via_ambassador` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:148:1
[INFO] [stdout]     |
[INFO] [stdout] 148 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceXData_registry`
[INFO] [stdout] 149 | pub trait PieceXData: Downcast + Debug + Send + 'static {
[INFO] [stdout]     |           ---------- `PieceXData` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:148:1
[INFO] [stdout]     |
[INFO] [stdout] 148 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Send` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceXData_registry`
[INFO] [stdout] 149 | pub trait PieceXData: Downcast + Debug + Send + 'static {
[INFO] [stdout]     |           ---------- `PieceXData` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:148:1
[INFO] [stdout]     |
[INFO] [stdout] 148 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Sync` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceXData_registry`
[INFO] [stdout] 149 | pub trait PieceXData: Downcast + Debug + Send + 'static {
[INFO] [stdout]     |           ---------- `PieceXData` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:148:1
[INFO] [stdout]     |
[INFO] [stdout] 148 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Send` is not local
[INFO] [stdout]     | `Sync` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceXData_registry`
[INFO] [stdout] 149 | pub trait PieceXData: Downcast + Debug + Send + 'static {
[INFO] [stdout]     |           ---------- `PieceXData` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:148:1
[INFO] [stdout]     |
[INFO] [stdout] 148 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move the `impl` block outside of this constant `_PieceXData_registry`
[INFO] [stdout] 149 | pub trait PieceXData: Downcast + Debug + Send + 'static {
[INFO] [stdout]     |           ---------- `PieceXData` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:148:1
[INFO] [stdout]     |
[INFO] [stdout] 148 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Strictest` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceXData_registry`
[INFO] [stdout] 149 | pub trait PieceXData: Downcast + Debug + Send + 'static {
[INFO] [stdout]     |           ---------- `PieceXData` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:148:1
[INFO] [stdout]     |
[INFO] [stdout] 148 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Box` is not local
[INFO] [stdout]     | `Send` is not local
[INFO] [stdout]     | `Deserialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceXData_registry`
[INFO] [stdout] 149 | pub trait PieceXData: Downcast + Debug + Send + 'static {
[INFO] [stdout]     |           ---------- `PieceXData` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:148:1
[INFO] [stdout]     |
[INFO] [stdout] 148 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Box` is not local
[INFO] [stdout]     | `Deserialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceXData_registry`
[INFO] [stdout] 149 | pub trait PieceXData: Downcast + Debug + Send + 'static {
[INFO] [stdout]     |           ---------- `PieceXData` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:156:1
[INFO] [stdout]     |
[INFO] [stdout] 156 | #[dyn_upcast]
[INFO] [stdout]     | -^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Config` is not local
[INFO] [stdout]     | `DynCastConfig` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 2 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `::cast_trait_object::impl_dyn_cast_config` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:156:1
[INFO] [stdout]     |
[INFO] [stdout] 156 | #[dyn_upcast]
[INFO] [stdout]     | -^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Config` is not local
[INFO] [stdout]     | `DynCastConfigTargetTest` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 2 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `::cast_trait_object::impl_dyn_cast_config` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:156:1
[INFO] [stdout]     |
[INFO] [stdout] 156 | #[dyn_upcast]
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `OutlineTrait` is not local
[INFO] [stdout]     | `GetDynCastConfig` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 2 bodies
[INFO] [stdout] 157 | pub trait OutlineTrait: Debug + Sync + Send + 'static {
[INFO] [stdout]     |           ------------ `OutlineTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `::cast_trait_object::impl_dyn_cast_config` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:187:1
[INFO] [stdout]     |
[INFO] [stdout] 187 | #[dyn_upcast]
[INFO] [stdout]     | -^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Config` is not local
[INFO] [stdout]     | `DynCastConfig` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 2 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `::cast_trait_object::impl_dyn_cast_config` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:187:1
[INFO] [stdout]     |
[INFO] [stdout] 187 | #[dyn_upcast]
[INFO] [stdout]     | -^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Config` is not local
[INFO] [stdout]     | `DynCastConfigTargetTest` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 2 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `::cast_trait_object::impl_dyn_cast_config` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:187:1
[INFO] [stdout]     |
[INFO] [stdout] 187 | #[dyn_upcast]
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `PieceBaseTrait` is not local
[INFO] [stdout]     | `GetDynCastConfig` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 2 bodies
[INFO] [stdout] 188 | pub trait PieceBaseTrait: OutlineTrait + Send + Debug + 'static {
[INFO] [stdout]     |           -------------- `PieceBaseTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `::cast_trait_object::impl_dyn_cast_config` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:196:1
[INFO] [stdout]     |
[INFO] [stdout] 196 | #[typetag::serde] // usual variable: p
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceTrait_registry`
[INFO] [stdout] 197 | pub trait PieceTrait: PieceBaseTrait + Downcast + Send + Debug + 'static {
[INFO] [stdout]     |           ---------- `PieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:196:1
[INFO] [stdout]     |
[INFO] [stdout] 196 | #[typetag::serde] // usual variable: p
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Send` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceTrait_registry`
[INFO] [stdout] 197 | pub trait PieceTrait: PieceBaseTrait + Downcast + Send + Debug + 'static {
[INFO] [stdout]     |           ---------- `PieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:196:1
[INFO] [stdout]     |
[INFO] [stdout] 196 | #[typetag::serde] // usual variable: p
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Sync` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceTrait_registry`
[INFO] [stdout] 197 | pub trait PieceTrait: PieceBaseTrait + Downcast + Send + Debug + 'static {
[INFO] [stdout]     |           ---------- `PieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:196:1
[INFO] [stdout]     |
[INFO] [stdout] 196 | #[typetag::serde] // usual variable: p
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Send` is not local
[INFO] [stdout]     | `Sync` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceTrait_registry`
[INFO] [stdout] 197 | pub trait PieceTrait: PieceBaseTrait + Downcast + Send + Debug + 'static {
[INFO] [stdout]     |           ---------- `PieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:196:1
[INFO] [stdout]     |
[INFO] [stdout] 196 | #[typetag::serde] // usual variable: p
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^ move the `impl` block outside of this constant `_PieceTrait_registry`
[INFO] [stdout] 197 | pub trait PieceTrait: PieceBaseTrait + Downcast + Send + Debug + 'static {
[INFO] [stdout]     |           ---------- `PieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:196:1
[INFO] [stdout]     |
[INFO] [stdout] 196 | #[typetag::serde] // usual variable: p
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Strictest` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceTrait_registry`
[INFO] [stdout] 197 | pub trait PieceTrait: PieceBaseTrait + Downcast + Send + Debug + 'static {
[INFO] [stdout]     |           ---------- `PieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:196:1
[INFO] [stdout]     |
[INFO] [stdout] 196 | #[typetag::serde] // usual variable: p
[INFO] [stdout]     | -^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Box` is not local
[INFO] [stdout]     | `Send` is not local
[INFO] [stdout]     | `Deserialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceTrait_registry`
[INFO] [stdout] 197 | pub trait PieceTrait: PieceBaseTrait + Downcast + Send + Debug + 'static {
[INFO] [stdout]     |           ---------- `PieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:196:1
[INFO] [stdout]     |
[INFO] [stdout] 196 | #[typetag::serde] // usual variable: p
[INFO] [stdout]     | -^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Box` is not local
[INFO] [stdout]     | `Deserialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceTrait_registry`
[INFO] [stdout] 197 | pub trait PieceTrait: PieceBaseTrait + Downcast + Send + Debug + 'static {
[INFO] [stdout]     |           ---------- `PieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:301:1
[INFO] [stdout]     |
[INFO] [stdout] 301 | #[typetag::serde]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_InertPieceTrait_registry`
[INFO] [stdout] 302 | pub trait InertPieceTrait: PieceBaseTrait {
[INFO] [stdout]     |           --------------- `InertPieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:301:1
[INFO] [stdout]     |
[INFO] [stdout] 301 | #[typetag::serde]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Send` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_InertPieceTrait_registry`
[INFO] [stdout] 302 | pub trait InertPieceTrait: PieceBaseTrait {
[INFO] [stdout]     |           --------------- `InertPieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:301:1
[INFO] [stdout]     |
[INFO] [stdout] 301 | #[typetag::serde]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Sync` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_InertPieceTrait_registry`
[INFO] [stdout] 302 | pub trait InertPieceTrait: PieceBaseTrait {
[INFO] [stdout]     |           --------------- `InertPieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:301:1
[INFO] [stdout]     |
[INFO] [stdout] 301 | #[typetag::serde]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Send` is not local
[INFO] [stdout]     | `Sync` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_InertPieceTrait_registry`
[INFO] [stdout] 302 | pub trait InertPieceTrait: PieceBaseTrait {
[INFO] [stdout]     |           --------------- `InertPieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:301:1
[INFO] [stdout]     |
[INFO] [stdout] 301 | #[typetag::serde]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^ move the `impl` block outside of this constant `_InertPieceTrait_registry`
[INFO] [stdout] 302 | pub trait InertPieceTrait: PieceBaseTrait {
[INFO] [stdout]     |           --------------- `InertPieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:301:1
[INFO] [stdout]     |
[INFO] [stdout] 301 | #[typetag::serde]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Strictest` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_InertPieceTrait_registry`
[INFO] [stdout] 302 | pub trait InertPieceTrait: PieceBaseTrait {
[INFO] [stdout]     |           --------------- `InertPieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:301:1
[INFO] [stdout]     |
[INFO] [stdout] 301 | #[typetag::serde]
[INFO] [stdout]     | -^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Box` is not local
[INFO] [stdout]     | `Deserialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_InertPieceTrait_registry`
[INFO] [stdout] 302 | pub trait InertPieceTrait: PieceBaseTrait {
[INFO] [stdout]     |           --------------- `InertPieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:362:1
[INFO] [stdout]     |
[INFO] [stdout] 362 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stdout] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stdout]     |           --------- `PieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:362:1
[INFO] [stdout]     |
[INFO] [stdout] 362 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Send` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stdout] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stdout]     |           --------- `PieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:362:1
[INFO] [stdout]     |
[INFO] [stdout] 362 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Sync` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stdout] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stdout]     |           --------- `PieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:362:1
[INFO] [stdout]     |
[INFO] [stdout] 362 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Send` is not local
[INFO] [stdout]     | `Sync` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stdout] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stdout]     |           --------- `PieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:362:1
[INFO] [stdout]     |
[INFO] [stdout] 362 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stdout] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stdout]     |           --------- `PieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:362:1
[INFO] [stdout]     |
[INFO] [stdout] 362 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Strictest` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stdout] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stdout]     |           --------- `PieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:362:1
[INFO] [stdout]     |
[INFO] [stdout] 362 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Box` is not local
[INFO] [stdout]     | `Send` is not local
[INFO] [stdout]     | `Sync` is not local
[INFO] [stdout]     | `Deserialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stdout] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stdout]     |           --------- `PieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:362:1
[INFO] [stdout]     |
[INFO] [stdout] 362 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Box` is not local
[INFO] [stdout]     | `Deserialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stdout] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stdout]     |           --------- `PieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:362:1
[INFO] [stdout]     |
[INFO] [stdout] 362 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Box` is not local
[INFO] [stdout]     | `Send` is not local
[INFO] [stdout]     | `Deserialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stdout] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stdout]     |           --------- `PieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:362:1
[INFO] [stdout]     |
[INFO] [stdout] 362 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Box` is not local
[INFO] [stdout]     | `Sync` is not local
[INFO] [stdout]     | `Deserialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stdout] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stdout]     |           --------- `PieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/global.rs:305:31
[INFO] [stdout]     |
[INFO] [stdout] 305 |   pub fn lock_even_destroying(&self) -> MutexGuard<InstanceContainer> {
[INFO] [stdout]     |                               ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 305 |   pub fn lock_even_destroying(&self) -> MutexGuard<'_, InstanceContainer> {
[INFO] [stdout]     |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/global.rs:340:62
[INFO] [stdout]     |
[INFO] [stdout] 340 |   fn lock_bundles<'r>(&'r self) -> Unauthorised<BundlesGuard<'_>, A> {
[INFO] [stdout]     |                        -- the lifetime is named here         ^^ the same lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'r`
[INFO] [stdout]     |
[INFO] [stdout] 340 -   fn lock_bundles<'r>(&'r self) -> Unauthorised<BundlesGuard<'_>, A> {
[INFO] [stdout] 340 +   fn lock_bundles<'r>(&'r self) -> Unauthorised<BundlesGuard<'r>, A> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/global.rs:1530:21
[INFO] [stdout]      |
[INFO] [stdout] 1530 |   pub fn values_mut(&mut self) -> sm::ValuesMut<PieceId, GPiece> {
[INFO] [stdout]      |                     ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1530 |   pub fn values_mut(&mut self) -> sm::ValuesMut<'_, PieceId, GPiece> {
[INFO] [stdout]      |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/utils.rs:669:8
[INFO] [stdout]     |
[INFO] [stdout] 669 |       $( #[ $attr ] )*
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `__SelfType` is not local
[INFO] [stdout]     |          `DynCast` is not local
[INFO] [stdout]     |          `__ConfigType` is not local
[INFO] [stdout]     |          move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/hand.rs:79:1
[INFO] [stdout]     |
[INFO] [stdout]  79 | / impl_via_ambassador!{
[INFO] [stdout]  80 | |   #[dyn_upcast]
[INFO] [stdout]  81 | |   impl OutlineTrait for Hand { shape }
[INFO] [stdout]  82 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the macro `impl_via_ambassador` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/hand.rs:143:1
[INFO] [stdout]     |
[INFO] [stdout] 143 | #[dyn_upcast]
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `__SelfType` is not local
[INFO] [stdout]     | `DynCast` is not local
[INFO] [stdout]     | `__ConfigType` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/outline.rs:18:3
[INFO] [stdout]    |
[INFO] [stdout] 18 |     #[dyn_upcast(OutlineTrait)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     `__SelfType` is not local
[INFO] [stdout]    |     `DynCast` is not local
[INFO] [stdout]    |     `__ConfigType` is not local
[INFO] [stdout]    |     move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout] ...
[INFO] [stdout] 51 | / shape_defns! {
[INFO] [stdout] 52 | |   Circle "Circle";
[INFO] [stdout] 53 | |   Rect   "Rect"  ;
[INFO] [stdout] 54 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the macro `shape_defns` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/outline.rs:62:1
[INFO] [stdout]    |
[INFO] [stdout] 62 | #[dyn_upcast]
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout]    | |
[INFO] [stdout]    | `__SelfType` is not local
[INFO] [stdout]    | `DynCast` is not local
[INFO] [stdout]    | `__ConfigType` is not local
[INFO] [stdout]    | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]    |
[INFO] [stdout]    = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/outline.rs:109:1
[INFO] [stdout]     |
[INFO] [stdout] 109 | #[dyn_upcast]
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `__SelfType` is not local
[INFO] [stdout]     | `DynCast` is not local
[INFO] [stdout]     | `__ConfigType` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/utils.rs:669:8
[INFO] [stdout]     |
[INFO] [stdout] 669 |       $( #[ $attr ] )*
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `DerivedDynCast` is not local
[INFO] [stdout]     |          `ConcreteDynCastConfig` is not local
[INFO] [stdout]     |          `Config` is not local
[INFO] [stdout]     |          move the `impl` block outside of this closure `<unnameable>` and up 2 bodies
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pieces.rs:108:1
[INFO] [stdout]     |
[INFO] [stdout] 108 | / impl_via_ambassador! {
[INFO] [stdout] 109 | |   #[dyn_upcast]
[INFO] [stdout] 110 | |   impl [ Desc, Outl:'static ]
[INFO] [stdout] 111 | |     OutlineTrait for GenericSimpleShape<Desc, Outl>
[INFO] [stdout]     | |     ------------     ------------------ `GenericSimpleShape` is not local
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |     `OutlineTrait` is not local
[INFO] [stdout]     | |     `OutlineTrait` is not local
[INFO] [stdout]     | |     `OutlineTrait` is not local
[INFO] [stdout]     | |     `OutlineTrait` is not local
[INFO] [stdout] ...   |
[INFO] [stdout] 117 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `::cast_trait_object::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `::cast_trait_object::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `::cast_trait_object::impl_dyn_cast` which comes from the expansion of the macro `impl_via_ambassador` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/pieces.rs:120:1
[INFO] [stdout]     |
[INFO] [stdout] 120 | #[dyn_upcast]
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `__SelfType` is not local
[INFO] [stdout]     | `DynCast` is not local
[INFO] [stdout]     | `__ConfigType` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/pieces.rs:302:1
[INFO] [stdout]     |
[INFO] [stdout] 302 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_SimplePieceSpec_registry`
[INFO] [stdout] 303 | pub trait SimplePieceSpec: Debug {
[INFO] [stdout]     |           --------------- `SimplePieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/pieces.rs:302:1
[INFO] [stdout]     |
[INFO] [stdout] 302 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Send` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_SimplePieceSpec_registry`
[INFO] [stdout] 303 | pub trait SimplePieceSpec: Debug {
[INFO] [stdout]     |           --------------- `SimplePieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/pieces.rs:302:1
[INFO] [stdout]     |
[INFO] [stdout] 302 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Sync` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_SimplePieceSpec_registry`
[INFO] [stdout] 303 | pub trait SimplePieceSpec: Debug {
[INFO] [stdout]     |           --------------- `SimplePieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/pieces.rs:302:1
[INFO] [stdout]     |
[INFO] [stdout] 302 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Send` is not local
[INFO] [stdout]     | `Sync` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_SimplePieceSpec_registry`
[INFO] [stdout] 303 | pub trait SimplePieceSpec: Debug {
[INFO] [stdout]     |           --------------- `SimplePieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/pieces.rs:302:1
[INFO] [stdout]     |
[INFO] [stdout] 302 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move the `impl` block outside of this constant `_SimplePieceSpec_registry`
[INFO] [stdout] 303 | pub trait SimplePieceSpec: Debug {
[INFO] [stdout]     |           --------------- `SimplePieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/pieces.rs:302:1
[INFO] [stdout]     |
[INFO] [stdout] 302 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Strictest` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_SimplePieceSpec_registry`
[INFO] [stdout] 303 | pub trait SimplePieceSpec: Debug {
[INFO] [stdout]     |           --------------- `SimplePieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/pieces.rs:302:1
[INFO] [stdout]     |
[INFO] [stdout] 302 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Box` is not local
[INFO] [stdout]     | `Deserialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_SimplePieceSpec_registry`
[INFO] [stdout] 303 | pub trait SimplePieceSpec: Debug {
[INFO] [stdout]     |           --------------- `SimplePieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/shapelib.rs:246:32
[INFO] [stdout]     |
[INFO] [stdout] 246 |   fn unnest<'l,U>(&'l self) -> &SvgBaseName<U> where U: ?Sized, T: Borrow<U> {
[INFO] [stdout]     |                    --          ^^^^^^^^^^^^^^^ the same lifetime is elided here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is named here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'l`
[INFO] [stdout]     |
[INFO] [stdout] 246 |   fn unnest<'l,U>(&'l self) -> &'l SvgBaseName<U> where U: ?Sized, T: Borrow<U> {
[INFO] [stdout]     |                                 ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/utils.rs:669:8
[INFO] [stdout]     |
[INFO] [stdout] 669 |       $( #[ $attr ] )*
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `__SelfType` is not local
[INFO] [stdout]     |          `DynCast` is not local
[INFO] [stdout]     |          `__ConfigType` is not local
[INFO] [stdout]     |          move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/shapelib.rs:263:1
[INFO] [stdout]     |
[INFO] [stdout] 263 | / impl_via_ambassador!{
[INFO] [stdout] 264 | |   #[dyn_upcast]
[INFO] [stdout] 265 | |   impl OutlineTrait for ItemInertForOcculted { outline }
[INFO] [stdout] 266 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the macro `impl_via_ambassador` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/shapelib.rs:267:1
[INFO] [stdout]     |
[INFO] [stdout] 267 | #[dyn_upcast]
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `__SelfType` is not local
[INFO] [stdout]     | `DynCast` is not local
[INFO] [stdout]     | `__ConfigType` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/utils.rs:669:8
[INFO] [stdout]     |
[INFO] [stdout] 669 |       $( #[ $attr ] )*
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `__SelfType` is not local
[INFO] [stdout]     |          `DynCast` is not local
[INFO] [stdout]     |          `__ConfigType` is not local
[INFO] [stdout]     |          move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/shapelib.rs:346:1
[INFO] [stdout]     |
[INFO] [stdout] 346 | / impl_via_ambassador!{
[INFO] [stdout] 347 | |   #[dyn_upcast]
[INFO] [stdout] 348 | |   impl OutlineTrait for Item { outline }
[INFO] [stdout] 349 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the macro `impl_via_ambassador` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/shapelib.rs:379:1
[INFO] [stdout]     |
[INFO] [stdout] 379 | #[dyn_upcast]
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `__SelfType` is not local
[INFO] [stdout]     | `DynCast` is not local
[INFO] [stdout]     | `__ConfigType` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/spec.rs:168:10
[INFO] [stdout]     |
[INFO] [stdout] 168 | #[derive(FromPrimitive,ToPrimitive,EnumIter)]
[INFO] [stdout]     |          ^------------
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `FromPrimitive` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_TablePermission`
[INFO] [stdout] 169 | pub enum TablePermission {
[INFO] [stdout]     |          --------------- `TablePermission` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/spec.rs:168:24
[INFO] [stdout]     |
[INFO] [stdout] 168 | #[derive(FromPrimitive,ToPrimitive,EnumIter)]
[INFO] [stdout]     |                        ^----------
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        `ToPrimitive` is not local
[INFO] [stdout]     |                        move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_TablePermission`
[INFO] [stdout] 169 | pub enum TablePermission {
[INFO] [stdout]     |          --------------- `TablePermission` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/spec.rs:456:3
[INFO] [stdout]     |
[INFO] [stdout] 456 |   #[typetag::serde(tag="access")]
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   `Serialize` is not local
[INFO] [stdout]     |   move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stdout] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stdout]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/spec.rs:456:3
[INFO] [stdout]     |
[INFO] [stdout] 456 |   #[typetag::serde(tag="access")]
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   `Send` is not local
[INFO] [stdout]     |   `Serialize` is not local
[INFO] [stdout]     |   move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stdout] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stdout]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/spec.rs:456:3
[INFO] [stdout]     |
[INFO] [stdout] 456 |   #[typetag::serde(tag="access")]
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   `Sync` is not local
[INFO] [stdout]     |   `Serialize` is not local
[INFO] [stdout]     |   move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stdout] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stdout]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/spec.rs:456:3
[INFO] [stdout]     |
[INFO] [stdout] 456 |   #[typetag::serde(tag="access")]
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   `Send` is not local
[INFO] [stdout]     |   `Sync` is not local
[INFO] [stdout]     |   `Serialize` is not local
[INFO] [stdout]     |   move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stdout] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stdout]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/spec.rs:456:3
[INFO] [stdout]     |
[INFO] [stdout] 456 |   #[typetag::serde(tag="access")]
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stdout] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stdout]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/spec.rs:456:3
[INFO] [stdout]     |
[INFO] [stdout] 456 |   #[typetag::serde(tag="access")]
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   `Strictest` is not local
[INFO] [stdout]     |   move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stdout] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stdout]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/spec.rs:456:3
[INFO] [stdout]     |
[INFO] [stdout] 456 |   #[typetag::serde(tag="access")]
[INFO] [stdout]     |   -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   `Box` is not local
[INFO] [stdout]     |   `Send` is not local
[INFO] [stdout]     |   `Sync` is not local
[INFO] [stdout]     |   `Deserialize` is not local
[INFO] [stdout]     |   move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stdout] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stdout]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/spec.rs:456:3
[INFO] [stdout]     |
[INFO] [stdout] 456 |   #[typetag::serde(tag="access")]
[INFO] [stdout]     |   -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   `Box` is not local
[INFO] [stdout]     |   `Deserialize` is not local
[INFO] [stdout]     |   move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stdout] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stdout]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/spec.rs:456:3
[INFO] [stdout]     |
[INFO] [stdout] 456 |   #[typetag::serde(tag="access")]
[INFO] [stdout]     |   -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   `Box` is not local
[INFO] [stdout]     |   `Send` is not local
[INFO] [stdout]     |   `Deserialize` is not local
[INFO] [stdout]     |   move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stdout] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stdout]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/spec.rs:456:3
[INFO] [stdout]     |
[INFO] [stdout] 456 |   #[typetag::serde(tag="access")]
[INFO] [stdout]     |   -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   `Box` is not local
[INFO] [stdout]     |   `Sync` is not local
[INFO] [stdout]     |   `Deserialize` is not local
[INFO] [stdout]     |   move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stdout] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stdout]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/updates.rs:877:34
[INFO] [stdout]     |
[INFO] [stdout] 877 |     fn pue_piece_to_tue_p(pue_p: &PUE_P, player: PlayerId)
[INFO] [stdout]     |                                  ^^^^^^ the lifetime is elided here
[INFO] [stdout] 878 |                           -> Option<TUE_P> {
[INFO] [stdout]     |                                     ^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 878 |                           -> Option<TUE_P<'_>> {
[INFO] [stdout]     |                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/updates.rs:884:34
[INFO] [stdout]     |
[INFO] [stdout] 884 |     fn pue_image_to_tue_i(pue_i: &PUE_I, player: PlayerId) -> Option<TUE_I> {
[INFO] [stdout]     |                                  ^^^^^^ the lifetime is elided here  ^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 884 |     fn pue_image_to_tue_i(pue_i: &PUE_I, player: PlayerId) -> Option<TUE_I<'_>> {
[INFO] [stdout]     |                                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/updates.rs:890:32
[INFO] [stdout]     |
[INFO] [stdout] 890 |     fn pue_piece_to_tue(pue_p: &PUE_P, player: PlayerId, dest: ClientId)
[INFO] [stdout]     |                                ^^^^^^ the lifetime is elided here
[INFO] [stdout] 891 |                         -> Option<TUE> {
[INFO] [stdout]     |                                   ^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 891 |                         -> Option<TUE<'_>> {
[INFO] [stdout]     |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ReadSeek` is never used
[INFO] [stdout]    --> src/bundles.rs:355:7
[INFO] [stdout]     |
[INFO] [stdout] 355 | trait ReadSeek: Read + io::Seek { }
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/bundles.rs:447:6
[INFO] [stdout]     |
[INFO] [stdout] 447 |   IE(IE),
[INFO] [stdout]     |   -- ^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ReloadError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 447 -   IE(IE),
[INFO] [stdout] 447 +   IE(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/bundles.rs:448:14
[INFO] [stdout]     |
[INFO] [stdout] 448 |   Unloadable(BadBundle),
[INFO] [stdout]     |   ---------- ^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ReloadError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 448 -   Unloadable(BadBundle),
[INFO] [stdout] 448 +   Unloadable(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/hidden.rs:891:31
[INFO] [stdout]     |
[INFO] [stdout] 891 | pub struct NascentOccultation(Occultation);
[INFO] [stdout]     |            ------------------ ^^^^^^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/occultilks.rs:55:16
[INFO] [stdout]    |
[INFO] [stdout] 55 |       Distinct(OccultIlkData),
[INFO] [stdout]    |       -------- ^^^^^^^^^^^^^
[INFO] [stdout]    |       |
[INFO] [stdout]    |       field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IOccultIlk_New` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 55 -       Distinct(OccultIlkData),
[INFO] [stdout] 55 +       Distinct(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/occultilks.rs:56:11
[INFO] [stdout]    |
[INFO] [stdout] 56 |       Mix(OccultIlkOwningId),
[INFO] [stdout]    |       --- ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |       |
[INFO] [stdout]    |       field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IOccultIlk_New` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 56 -       Mix(OccultIlkOwningId),
[INFO] [stdout] 56 +       Mix(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/bundles.rs:516:49
[INFO] [stdout]     |
[INFO] [stdout] 516 | #[derive(Copy,Clone,Debug,EnumCount,EnumMessage,ToPrimitive)]
[INFO] [stdout]     |                                                 ^----------
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 `ToPrimitive` is not local
[INFO] [stdout]     |                                                 move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_Phase`
[INFO] [stdout] 517 | enum Phase {
[INFO] [stdout]     |      ----- `Phase` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]     = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/bundles.rs:525:49
[INFO] [stdout]     |
[INFO] [stdout] 525 | #[derive(Copy,Clone,Debug,EnumCount,EnumMessage,ToPrimitive)]
[INFO] [stdout]     |                                                 ^----------
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 `ToPrimitive` is not local
[INFO] [stdout]     |                                                 move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_FinishProgress`
[INFO] [stdout] 526 | enum FinishProgress {
[INFO] [stdout]     |      -------------- `FinishProgress` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/bundles.rs:542:51
[INFO] [stdout]     |
[INFO] [stdout] 542 |   #[derive(Copy,Clone,Debug,EnumCount,EnumMessage,ToPrimitive)]
[INFO] [stdout]     |                                                   ^----------
[INFO] [stdout]     |                                                   |
[INFO] [stdout]     |                                                   `ToPrimitive` is not local
[INFO] [stdout]     |                                                   move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_ToScan` and up 2 bodies
[INFO] [stdout] 543 |   enum ToScan {
[INFO] [stdout]     |        ------ `ToScan` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/clock.rs:423:1
[INFO] [stdout]     |
[INFO] [stdout] 423 | #[dyn_upcast]
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `__SelfType` is not local
[INFO] [stdout]     | `DynCast` is not local
[INFO] [stdout]     | `__ConfigType` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/clock.rs:435:1
[INFO] [stdout]     |
[INFO] [stdout] 435 | #[dyn_upcast]
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `__SelfType` is not local
[INFO] [stdout]     | `DynCast` is not local
[INFO] [stdout]     | `__ConfigType` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/clock.rs:461:5
[INFO] [stdout]     |
[INFO] [stdout] 444 |   #[throws(IE)]
[INFO] [stdout]     |   ------------- move the `impl` block outside of this method `svg_piece`
[INFO] [stdout] ...
[INFO] [stdout] 461 |     impl URenderState {
[INFO] [stdout]     |     ^^^^^------------
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `URenderState` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/utils.rs:669:8
[INFO] [stdout]     |
[INFO] [stdout] 669 |       $( #[ $attr ] )*
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `__SelfType` is not local
[INFO] [stdout]     |          `DynCast` is not local
[INFO] [stdout]     |          `__ConfigType` is not local
[INFO] [stdout]     |          move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/currency.rs:117:1
[INFO] [stdout]     |
[INFO] [stdout] 117 | / impl_via_ambassador!{
[INFO] [stdout] 118 | |   #[dyn_upcast]
[INFO] [stdout] 119 | |   impl OutlineTrait for Banknote { image }
[INFO] [stdout] 120 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the macro `impl_via_ambassador` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/currency.rs:122:1
[INFO] [stdout]     |
[INFO] [stdout] 122 | #[dyn_upcast]
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `__SelfType` is not local
[INFO] [stdout]     | `DynCast` is not local
[INFO] [stdout]     | `__ConfigType` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/utils.rs:669:8
[INFO] [stdout]     |
[INFO] [stdout] 669 |       $( #[ $attr ] )*
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `__SelfType` is not local
[INFO] [stdout]     |          `DynCast` is not local
[INFO] [stdout]     |          `__ConfigType` is not local
[INFO] [stdout]     |          move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/deck.rs:29:1
[INFO] [stdout]     |
[INFO] [stdout]  29 | / impl_via_ambassador!{
[INFO] [stdout]  30 | |   #[dyn_upcast]
[INFO] [stdout]  31 | |   impl OutlineTrait for Deck { shape }
[INFO] [stdout]  32 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the macro `impl_via_ambassador` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/deck.rs:97:1
[INFO] [stdout]    |
[INFO] [stdout] 97 | #[dyn_upcast]
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout]    | |
[INFO] [stdout]    | `__SelfType` is not local
[INFO] [stdout]    | `DynCast` is not local
[INFO] [stdout]    | `__ConfigType` is not local
[INFO] [stdout]    | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]    |
[INFO] [stdout]    = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dice.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | #[dyn_upcast]
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `__SelfType` is not local
[INFO] [stdout]     | `DynCast` is not local
[INFO] [stdout]     | `__ConfigType` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dice.rs:342:1
[INFO] [stdout]     |
[INFO] [stdout] 342 | #[dyn_upcast]
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `__SelfType` is not local
[INFO] [stdout]     | `DynCast` is not local
[INFO] [stdout]     | `__ConfigType` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/utils.rs:669:8
[INFO] [stdout]     |
[INFO] [stdout] 669 |       $( #[ $attr ] )*
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `__SelfType` is not local
[INFO] [stdout]     |          `DynCast` is not local
[INFO] [stdout]     |          `__ConfigType` is not local
[INFO] [stdout]     |          move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/fastsplit.rs:59:1
[INFO] [stdout]     |
[INFO] [stdout]  59 | / impl_via_ambassador!{
[INFO] [stdout]  60 | |   #[dyn_upcast]
[INFO] [stdout]  61 | |   impl OutlineTrait for Piece { inner() } 
[INFO] [stdout] ...   |
[INFO] [stdout]  67 | |   impl PieceTrait for Piece { inner() }
[INFO] [stdout]  68 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the macro `impl_via_ambassador` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/utils.rs:669:8
[INFO] [stdout]     |
[INFO] [stdout] 669 |       $( #[ $attr ] )*
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `__SelfType` is not local
[INFO] [stdout]     |          `DynCast` is not local
[INFO] [stdout]     |          `__ConfigType` is not local
[INFO] [stdout]     |          move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/fastsplit.rs:59:1
[INFO] [stdout]     |
[INFO] [stdout]  59 | / impl_via_ambassador!{
[INFO] [stdout]  60 | |   #[dyn_upcast]
[INFO] [stdout]  61 | |   impl OutlineTrait for Piece { inner() } 
[INFO] [stdout] ...   |
[INFO] [stdout]  67 | |   impl PieceTrait for Piece { inner() }
[INFO] [stdout]  68 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the macro `impl_via_ambassador` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:148:1
[INFO] [stdout]     |
[INFO] [stdout] 148 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceXData_registry`
[INFO] [stdout] 149 | pub trait PieceXData: Downcast + Debug + Send + 'static {
[INFO] [stdout]     |           ---------- `PieceXData` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:148:1
[INFO] [stdout]     |
[INFO] [stdout] 148 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Send` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceXData_registry`
[INFO] [stdout] 149 | pub trait PieceXData: Downcast + Debug + Send + 'static {
[INFO] [stdout]     |           ---------- `PieceXData` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:148:1
[INFO] [stdout]     |
[INFO] [stdout] 148 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Sync` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceXData_registry`
[INFO] [stdout] 149 | pub trait PieceXData: Downcast + Debug + Send + 'static {
[INFO] [stdout]     |           ---------- `PieceXData` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:148:1
[INFO] [stdout]     |
[INFO] [stdout] 148 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Send` is not local
[INFO] [stdout]     | `Sync` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceXData_registry`
[INFO] [stdout] 149 | pub trait PieceXData: Downcast + Debug + Send + 'static {
[INFO] [stdout]     |           ---------- `PieceXData` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:148:1
[INFO] [stdout]     |
[INFO] [stdout] 148 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move the `impl` block outside of this constant `_PieceXData_registry`
[INFO] [stdout] 149 | pub trait PieceXData: Downcast + Debug + Send + 'static {
[INFO] [stdout]     |           ---------- `PieceXData` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:148:1
[INFO] [stdout]     |
[INFO] [stdout] 148 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Strictest` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceXData_registry`
[INFO] [stdout] 149 | pub trait PieceXData: Downcast + Debug + Send + 'static {
[INFO] [stdout]     |           ---------- `PieceXData` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:148:1
[INFO] [stdout]     |
[INFO] [stdout] 148 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Box` is not local
[INFO] [stdout]     | `Send` is not local
[INFO] [stdout]     | `Deserialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceXData_registry`
[INFO] [stdout] 149 | pub trait PieceXData: Downcast + Debug + Send + 'static {
[INFO] [stdout]     |           ---------- `PieceXData` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:148:1
[INFO] [stdout]     |
[INFO] [stdout] 148 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Box` is not local
[INFO] [stdout]     | `Deserialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceXData_registry`
[INFO] [stdout] 149 | pub trait PieceXData: Downcast + Debug + Send + 'static {
[INFO] [stdout]     |           ---------- `PieceXData` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:156:1
[INFO] [stdout]     |
[INFO] [stdout] 156 | #[dyn_upcast]
[INFO] [stdout]     | -^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Config` is not local
[INFO] [stdout]     | `DynCastConfig` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 2 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `::cast_trait_object::impl_dyn_cast_config` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:156:1
[INFO] [stdout]     |
[INFO] [stdout] 156 | #[dyn_upcast]
[INFO] [stdout]     | -^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Config` is not local
[INFO] [stdout]     | `DynCastConfigTargetTest` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 2 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `::cast_trait_object::impl_dyn_cast_config` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:156:1
[INFO] [stdout]     |
[INFO] [stdout] 156 | #[dyn_upcast]
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `OutlineTrait` is not local
[INFO] [stdout]     | `GetDynCastConfig` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 2 bodies
[INFO] [stdout] 157 | pub trait OutlineTrait: Debug + Sync + Send + 'static {
[INFO] [stdout]     |           ------------ `OutlineTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `::cast_trait_object::impl_dyn_cast_config` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:187:1
[INFO] [stdout]     |
[INFO] [stdout] 187 | #[dyn_upcast]
[INFO] [stdout]     | -^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Config` is not local
[INFO] [stdout]     | `DynCastConfig` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 2 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `::cast_trait_object::impl_dyn_cast_config` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:187:1
[INFO] [stdout]     |
[INFO] [stdout] 187 | #[dyn_upcast]
[INFO] [stdout]     | -^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Config` is not local
[INFO] [stdout]     | `DynCastConfigTargetTest` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 2 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `::cast_trait_object::impl_dyn_cast_config` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:187:1
[INFO] [stdout]     |
[INFO] [stdout] 187 | #[dyn_upcast]
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `PieceBaseTrait` is not local
[INFO] [stdout]     | `GetDynCastConfig` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 2 bodies
[INFO] [stdout] 188 | pub trait PieceBaseTrait: OutlineTrait + Send + Debug + 'static {
[INFO] [stdout]     |           -------------- `PieceBaseTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `::cast_trait_object::impl_dyn_cast_config` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:196:1
[INFO] [stdout]     |
[INFO] [stdout] 196 | #[typetag::serde] // usual variable: p
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceTrait_registry`
[INFO] [stdout] 197 | pub trait PieceTrait: PieceBaseTrait + Downcast + Send + Debug + 'static {
[INFO] [stdout]     |           ---------- `PieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:196:1
[INFO] [stdout]     |
[INFO] [stdout] 196 | #[typetag::serde] // usual variable: p
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Send` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceTrait_registry`
[INFO] [stdout] 197 | pub trait PieceTrait: PieceBaseTrait + Downcast + Send + Debug + 'static {
[INFO] [stdout]     |           ---------- `PieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:196:1
[INFO] [stdout]     |
[INFO] [stdout] 196 | #[typetag::serde] // usual variable: p
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Sync` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceTrait_registry`
[INFO] [stdout] 197 | pub trait PieceTrait: PieceBaseTrait + Downcast + Send + Debug + 'static {
[INFO] [stdout]     |           ---------- `PieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:196:1
[INFO] [stdout]     |
[INFO] [stdout] 196 | #[typetag::serde] // usual variable: p
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Send` is not local
[INFO] [stdout]     | `Sync` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceTrait_registry`
[INFO] [stdout] 197 | pub trait PieceTrait: PieceBaseTrait + Downcast + Send + Debug + 'static {
[INFO] [stdout]     |           ---------- `PieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:196:1
[INFO] [stdout]     |
[INFO] [stdout] 196 | #[typetag::serde] // usual variable: p
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^ move the `impl` block outside of this constant `_PieceTrait_registry`
[INFO] [stdout] 197 | pub trait PieceTrait: PieceBaseTrait + Downcast + Send + Debug + 'static {
[INFO] [stdout]     |           ---------- `PieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:196:1
[INFO] [stdout]     |
[INFO] [stdout] 196 | #[typetag::serde] // usual variable: p
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Strictest` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceTrait_registry`
[INFO] [stdout] 197 | pub trait PieceTrait: PieceBaseTrait + Downcast + Send + Debug + 'static {
[INFO] [stdout]     |           ---------- `PieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:196:1
[INFO] [stdout]     |
[INFO] [stdout] 196 | #[typetag::serde] // usual variable: p
[INFO] [stdout]     | -^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Box` is not local
[INFO] [stdout]     | `Send` is not local
[INFO] [stdout]     | `Deserialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceTrait_registry`
[INFO] [stdout] 197 | pub trait PieceTrait: PieceBaseTrait + Downcast + Send + Debug + 'static {
[INFO] [stdout]     |           ---------- `PieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:196:1
[INFO] [stdout]     |
[INFO] [stdout] 196 | #[typetag::serde] // usual variable: p
[INFO] [stdout]     | -^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Box` is not local
[INFO] [stdout]     | `Deserialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceTrait_registry`
[INFO] [stdout] 197 | pub trait PieceTrait: PieceBaseTrait + Downcast + Send + Debug + 'static {
[INFO] [stdout]     |           ---------- `PieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:301:1
[INFO] [stdout]     |
[INFO] [stdout] 301 | #[typetag::serde]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_InertPieceTrait_registry`
[INFO] [stdout] 302 | pub trait InertPieceTrait: PieceBaseTrait {
[INFO] [stdout]     |           --------------- `InertPieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:301:1
[INFO] [stdout]     |
[INFO] [stdout] 301 | #[typetag::serde]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Send` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_InertPieceTrait_registry`
[INFO] [stdout] 302 | pub trait InertPieceTrait: PieceBaseTrait {
[INFO] [stdout]     |           --------------- `InertPieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:301:1
[INFO] [stdout]     |
[INFO] [stdout] 301 | #[typetag::serde]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Sync` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_InertPieceTrait_registry`
[INFO] [stdout] 302 | pub trait InertPieceTrait: PieceBaseTrait {
[INFO] [stdout]     |           --------------- `InertPieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:301:1
[INFO] [stdout]     |
[INFO] [stdout] 301 | #[typetag::serde]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Send` is not local
[INFO] [stdout]     | `Sync` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_InertPieceTrait_registry`
[INFO] [stdout] 302 | pub trait InertPieceTrait: PieceBaseTrait {
[INFO] [stdout]     |           --------------- `InertPieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:301:1
[INFO] [stdout]     |
[INFO] [stdout] 301 | #[typetag::serde]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^ move the `impl` block outside of this constant `_InertPieceTrait_registry`
[INFO] [stdout] 302 | pub trait InertPieceTrait: PieceBaseTrait {
[INFO] [stdout]     |           --------------- `InertPieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:301:1
[INFO] [stdout]     |
[INFO] [stdout] 301 | #[typetag::serde]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Strictest` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_InertPieceTrait_registry`
[INFO] [stdout] 302 | pub trait InertPieceTrait: PieceBaseTrait {
[INFO] [stdout]     |           --------------- `InertPieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:301:1
[INFO] [stdout]     |
[INFO] [stdout] 301 | #[typetag::serde]
[INFO] [stdout]     | -^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Box` is not local
[INFO] [stdout]     | `Deserialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_InertPieceTrait_registry`
[INFO] [stdout] 302 | pub trait InertPieceTrait: PieceBaseTrait {
[INFO] [stdout]     |           --------------- `InertPieceTrait` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:362:1
[INFO] [stdout]     |
[INFO] [stdout] 362 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stdout] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stdout]     |           --------- `PieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:362:1
[INFO] [stdout]     |
[INFO] [stdout] 362 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Send` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stdout] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stdout]     |           --------- `PieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:362:1
[INFO] [stdout]     |
[INFO] [stdout] 362 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Sync` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stdout] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stdout]     |           --------- `PieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:362:1
[INFO] [stdout]     |
[INFO] [stdout] 362 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Send` is not local
[INFO] [stdout]     | `Sync` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stdout] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stdout]     |           --------- `PieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:362:1
[INFO] [stdout]     |
[INFO] [stdout] 362 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stdout] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stdout]     |           --------- `PieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:362:1
[INFO] [stdout]     |
[INFO] [stdout] 362 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Strictest` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stdout] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stdout]     |           --------- `PieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:362:1
[INFO] [stdout]     |
[INFO] [stdout] 362 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Box` is not local
[INFO] [stdout]     | `Send` is not local
[INFO] [stdout]     | `Sync` is not local
[INFO] [stdout]     | `Deserialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stdout] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stdout]     |           --------- `PieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:362:1
[INFO] [stdout]     |
[INFO] [stdout] 362 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Box` is not local
[INFO] [stdout]     | `Deserialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stdout] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stdout]     |           --------- `PieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:362:1
[INFO] [stdout]     |
[INFO] [stdout] 362 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Box` is not local
[INFO] [stdout]     | `Send` is not local
[INFO] [stdout]     | `Deserialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stdout] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stdout]     |           --------- `PieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/gamestate.rs:362:1
[INFO] [stdout]     |
[INFO] [stdout] 362 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Box` is not local
[INFO] [stdout]     | `Sync` is not local
[INFO] [stdout]     | `Deserialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stdout] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stdout]     |           --------- `PieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/global.rs:305:31
[INFO] [stdout]     |
[INFO] [stdout] 305 |   pub fn lock_even_destroying(&self) -> MutexGuard<InstanceContainer> {
[INFO] [stdout]     |                               ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 305 |   pub fn lock_even_destroying(&self) -> MutexGuard<'_, InstanceContainer> {
[INFO] [stdout]     |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/global.rs:340:62
[INFO] [stdout]     |
[INFO] [stdout] 340 |   fn lock_bundles<'r>(&'r self) -> Unauthorised<BundlesGuard<'_>, A> {
[INFO] [stdout]     |                        -- the lifetime is named here         ^^ the same lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'r`
[INFO] [stdout]     |
[INFO] [stdout] 340 -   fn lock_bundles<'r>(&'r self) -> Unauthorised<BundlesGuard<'_>, A> {
[INFO] [stdout] 340 +   fn lock_bundles<'r>(&'r self) -> Unauthorised<BundlesGuard<'r>, A> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/global.rs:1530:21
[INFO] [stdout]      |
[INFO] [stdout] 1530 |   pub fn values_mut(&mut self) -> sm::ValuesMut<PieceId, GPiece> {
[INFO] [stdout]      |                     ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1530 |   pub fn values_mut(&mut self) -> sm::ValuesMut<'_, PieceId, GPiece> {
[INFO] [stdout]      |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/utils.rs:669:8
[INFO] [stdout]     |
[INFO] [stdout] 669 |       $( #[ $attr ] )*
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `__SelfType` is not local
[INFO] [stdout]     |          `DynCast` is not local
[INFO] [stdout]     |          `__ConfigType` is not local
[INFO] [stdout]     |          move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/hand.rs:79:1
[INFO] [stdout]     |
[INFO] [stdout]  79 | / impl_via_ambassador!{
[INFO] [stdout]  80 | |   #[dyn_upcast]
[INFO] [stdout]  81 | |   impl OutlineTrait for Hand { shape }
[INFO] [stdout]  82 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the macro `impl_via_ambassador` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/hand.rs:143:1
[INFO] [stdout]     |
[INFO] [stdout] 143 | #[dyn_upcast]
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `__SelfType` is not local
[INFO] [stdout]     | `DynCast` is not local
[INFO] [stdout]     | `__ConfigType` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/outline.rs:18:3
[INFO] [stdout]    |
[INFO] [stdout] 18 |     #[dyn_upcast(OutlineTrait)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     `__SelfType` is not local
[INFO] [stdout]    |     `DynCast` is not local
[INFO] [stdout]    |     `__ConfigType` is not local
[INFO] [stdout]    |     move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout] ...
[INFO] [stdout] 51 | / shape_defns! {
[INFO] [stdout] 52 | |   Circle "Circle";
[INFO] [stdout] 53 | |   Rect   "Rect"  ;
[INFO] [stdout] 54 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the macro `shape_defns` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/outline.rs:62:1
[INFO] [stdout]    |
[INFO] [stdout] 62 | #[dyn_upcast]
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout]    | |
[INFO] [stdout]    | `__SelfType` is not local
[INFO] [stdout]    | `DynCast` is not local
[INFO] [stdout]    | `__ConfigType` is not local
[INFO] [stdout]    | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]    |
[INFO] [stdout]    = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/outline.rs:109:1
[INFO] [stdout]     |
[INFO] [stdout] 109 | #[dyn_upcast]
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `__SelfType` is not local
[INFO] [stdout]     | `DynCast` is not local
[INFO] [stdout]     | `__ConfigType` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/utils.rs:669:8
[INFO] [stdout]     |
[INFO] [stdout] 669 |       $( #[ $attr ] )*
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `DerivedDynCast` is not local
[INFO] [stdout]     |          `ConcreteDynCastConfig` is not local
[INFO] [stdout]     |          `Config` is not local
[INFO] [stdout]     |          move the `impl` block outside of this closure `<unnameable>` and up 2 bodies
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pieces.rs:108:1
[INFO] [stdout]     |
[INFO] [stdout] 108 | / impl_via_ambassador! {
[INFO] [stdout] 109 | |   #[dyn_upcast]
[INFO] [stdout] 110 | |   impl [ Desc, Outl:'static ]
[INFO] [stdout] 111 | |     OutlineTrait for GenericSimpleShape<Desc, Outl>
[INFO] [stdout]     | |     ------------     ------------------ `GenericSimpleShape` is not local
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |     `OutlineTrait` is not local
[INFO] [stdout]     | |     `OutlineTrait` is not local
[INFO] [stdout]     | |     `OutlineTrait` is not local
[INFO] [stdout]     | |     `OutlineTrait` is not local
[INFO] [stdout] ...   |
[INFO] [stdout] 117 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `::cast_trait_object::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `::cast_trait_object::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `::cast_trait_object::impl_dyn_cast` which comes from the expansion of the macro `impl_via_ambassador` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/pieces.rs:120:1
[INFO] [stdout]     |
[INFO] [stdout] 120 | #[dyn_upcast]
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `__SelfType` is not local
[INFO] [stdout]     | `DynCast` is not local
[INFO] [stdout]     | `__ConfigType` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/pieces.rs:302:1
[INFO] [stdout]     |
[INFO] [stdout] 302 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_SimplePieceSpec_registry`
[INFO] [stdout] 303 | pub trait SimplePieceSpec: Debug {
[INFO] [stdout]     |           --------------- `SimplePieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/pieces.rs:302:1
[INFO] [stdout]     |
[INFO] [stdout] 302 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Send` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_SimplePieceSpec_registry`
[INFO] [stdout] 303 | pub trait SimplePieceSpec: Debug {
[INFO] [stdout]     |           --------------- `SimplePieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/pieces.rs:302:1
[INFO] [stdout]     |
[INFO] [stdout] 302 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Sync` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_SimplePieceSpec_registry`
[INFO] [stdout] 303 | pub trait SimplePieceSpec: Debug {
[INFO] [stdout]     |           --------------- `SimplePieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/pieces.rs:302:1
[INFO] [stdout]     |
[INFO] [stdout] 302 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Send` is not local
[INFO] [stdout]     | `Sync` is not local
[INFO] [stdout]     | `Serialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_SimplePieceSpec_registry`
[INFO] [stdout] 303 | pub trait SimplePieceSpec: Debug {
[INFO] [stdout]     |           --------------- `SimplePieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/pieces.rs:302:1
[INFO] [stdout]     |
[INFO] [stdout] 302 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move the `impl` block outside of this constant `_SimplePieceSpec_registry`
[INFO] [stdout] 303 | pub trait SimplePieceSpec: Debug {
[INFO] [stdout]     |           --------------- `SimplePieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/pieces.rs:302:1
[INFO] [stdout]     |
[INFO] [stdout] 302 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Strictest` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_SimplePieceSpec_registry`
[INFO] [stdout] 303 | pub trait SimplePieceSpec: Debug {
[INFO] [stdout]     |           --------------- `SimplePieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/pieces.rs:302:1
[INFO] [stdout]     |
[INFO] [stdout] 302 | #[typetag::serde(tag="type")]
[INFO] [stdout]     | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `Box` is not local
[INFO] [stdout]     | `Deserialize` is not local
[INFO] [stdout]     | move the `impl` block outside of this constant `_SimplePieceSpec_registry`
[INFO] [stdout] 303 | pub trait SimplePieceSpec: Debug {
[INFO] [stdout]     |           --------------- `SimplePieceSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/shapelib.rs:246:32
[INFO] [stdout]     |
[INFO] [stdout] 246 |   fn unnest<'l,U>(&'l self) -> &SvgBaseName<U> where U: ?Sized, T: Borrow<U> {
[INFO] [stdout]     |                    --          ^^^^^^^^^^^^^^^ the same lifetime is elided here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is named here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'l`
[INFO] [stdout]     |
[INFO] [stdout] 246 |   fn unnest<'l,U>(&'l self) -> &'l SvgBaseName<U> where U: ?Sized, T: Borrow<U> {
[INFO] [stdout]     |                                 ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/utils.rs:669:8
[INFO] [stdout]     |
[INFO] [stdout] 669 |       $( #[ $attr ] )*
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `__SelfType` is not local
[INFO] [stdout]     |          `DynCast` is not local
[INFO] [stdout]     |          `__ConfigType` is not local
[INFO] [stdout]     |          move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/shapelib.rs:263:1
[INFO] [stdout]     |
[INFO] [stdout] 263 | / impl_via_ambassador!{
[INFO] [stdout] 264 | |   #[dyn_upcast]
[INFO] [stdout] 265 | |   impl OutlineTrait for ItemInertForOcculted { outline }
[INFO] [stdout] 266 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the macro `impl_via_ambassador` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/shapelib.rs:267:1
[INFO] [stdout]     |
[INFO] [stdout] 267 | #[dyn_upcast]
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `__SelfType` is not local
[INFO] [stdout]     | `DynCast` is not local
[INFO] [stdout]     | `__ConfigType` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/utils.rs:669:8
[INFO] [stdout]     |
[INFO] [stdout] 669 |       $( #[ $attr ] )*
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `__SelfType` is not local
[INFO] [stdout]     |          `DynCast` is not local
[INFO] [stdout]     |          `__ConfigType` is not local
[INFO] [stdout]     |          move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/shapelib.rs:346:1
[INFO] [stdout]     |
[INFO] [stdout] 346 | / impl_via_ambassador!{
[INFO] [stdout] 347 | |   #[dyn_upcast]
[INFO] [stdout] 348 | |   impl OutlineTrait for Item { outline }
[INFO] [stdout] 349 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the macro `impl_via_ambassador` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/shapelib.rs:379:1
[INFO] [stdout]     |
[INFO] [stdout] 379 | #[dyn_upcast]
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `__SelfType` is not local
[INFO] [stdout]     | `DynCast` is not local
[INFO] [stdout]     | `__ConfigType` is not local
[INFO] [stdout]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stdout]     |
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the macro `$crate::impl_dyn_cast` may come from an old version of the `cast_trait_object` crate, try updating your dependency with `cargo update -p cast_trait_object`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the macro `$crate::impl_dyn_cast` which comes from the expansion of the attribute macro `dyn_upcast` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/spec.rs:168:10
[INFO] [stdout]     |
[INFO] [stdout] 168 | #[derive(FromPrimitive,ToPrimitive,EnumIter)]
[INFO] [stdout]     |          ^------------
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `FromPrimitive` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_TablePermission`
[INFO] [stdout] 169 | pub enum TablePermission {
[INFO] [stdout]     |          --------------- `TablePermission` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/spec.rs:168:24
[INFO] [stdout]     |
[INFO] [stdout] 168 | #[derive(FromPrimitive,ToPrimitive,EnumIter)]
[INFO] [stdout]     |                        ^----------
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        `ToPrimitive` is not local
[INFO] [stdout]     |                        move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_TablePermission`
[INFO] [stdout] 169 | pub enum TablePermission {
[INFO] [stdout]     |          --------------- `TablePermission` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/spec.rs:456:3
[INFO] [stdout]     |
[INFO] [stdout] 456 |   #[typetag::serde(tag="access")]
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   `Serialize` is not local
[INFO] [stdout]     |   move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stdout] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stdout]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/spec.rs:456:3
[INFO] [stdout]     |
[INFO] [stdout] 456 |   #[typetag::serde(tag="access")]
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   `Send` is not local
[INFO] [stdout]     |   `Serialize` is not local
[INFO] [stdout]     |   move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stdout] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stdout]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/spec.rs:456:3
[INFO] [stdout]     |
[INFO] [stdout] 456 |   #[typetag::serde(tag="access")]
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   `Sync` is not local
[INFO] [stdout]     |   `Serialize` is not local
[INFO] [stdout]     |   move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stdout] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stdout]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/spec.rs:456:3
[INFO] [stdout]     |
[INFO] [stdout] 456 |   #[typetag::serde(tag="access")]
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   `Send` is not local
[INFO] [stdout]     |   `Sync` is not local
[INFO] [stdout]     |   `Serialize` is not local
[INFO] [stdout]     |   move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stdout] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stdout]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/spec.rs:456:3
[INFO] [stdout]     |
[INFO] [stdout] 456 |   #[typetag::serde(tag="access")]
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stdout] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stdout]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/spec.rs:456:3
[INFO] [stdout]     |
[INFO] [stdout] 456 |   #[typetag::serde(tag="access")]
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   `Strictest` is not local
[INFO] [stdout]     |   move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stdout] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stdout]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/spec.rs:456:3
[INFO] [stdout]     |
[INFO] [stdout] 456 |   #[typetag::serde(tag="access")]
[INFO] [stdout]     |   -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   `Box` is not local
[INFO] [stdout]     |   `Send` is not local
[INFO] [stdout]     |   `Sync` is not local
[INFO] [stdout]     |   `Deserialize` is not local
[INFO] [stdout]     |   move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stdout] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stdout]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/spec.rs:456:3
[INFO] [stdout]     |
[INFO] [stdout] 456 |   #[typetag::serde(tag="access")]
[INFO] [stdout]     |   -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   `Box` is not local
[INFO] [stdout]     |   `Deserialize` is not local
[INFO] [stdout]     |   move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stdout] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stdout]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/spec.rs:456:3
[INFO] [stdout]     |
[INFO] [stdout] 456 |   #[typetag::serde(tag="access")]
[INFO] [stdout]     |   -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   `Box` is not local
[INFO] [stdout]     |   `Send` is not local
[INFO] [stdout]     |   `Deserialize` is not local
[INFO] [stdout]     |   move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stdout] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stdout]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/spec.rs:456:3
[INFO] [stdout]     |
[INFO] [stdout] 456 |   #[typetag::serde(tag="access")]
[INFO] [stdout]     |   -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   `Box` is not local
[INFO] [stdout]     |   `Sync` is not local
[INFO] [stdout]     |   `Deserialize` is not local
[INFO] [stdout]     |   move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stdout] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stdout]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `typetag::serde` may come from an old version of the `typetag_impl` crate, try updating your dependency with `cargo update -p typetag_impl`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/updates.rs:877:34
[INFO] [stdout]     |
[INFO] [stdout] 877 |     fn pue_piece_to_tue_p(pue_p: &PUE_P, player: PlayerId)
[INFO] [stdout]     |                                  ^^^^^^ the lifetime is elided here
[INFO] [stdout] 878 |                           -> Option<TUE_P> {
[INFO] [stdout]     |                                     ^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 878 |                           -> Option<TUE_P<'_>> {
[INFO] [stdout]     |                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/updates.rs:884:34
[INFO] [stdout]     |
[INFO] [stdout] 884 |     fn pue_image_to_tue_i(pue_i: &PUE_I, player: PlayerId) -> Option<TUE_I> {
[INFO] [stdout]     |                                  ^^^^^^ the lifetime is elided here  ^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 884 |     fn pue_image_to_tue_i(pue_i: &PUE_I, player: PlayerId) -> Option<TUE_I<'_>> {
[INFO] [stdout]     |                                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/updates.rs:890:32
[INFO] [stdout]     |
[INFO] [stdout] 890 |     fn pue_piece_to_tue(pue_p: &PUE_P, player: PlayerId, dest: ClientId)
[INFO] [stdout]     |                                ^^^^^^ the lifetime is elided here
[INFO] [stdout] 891 |                         -> Option<TUE> {
[INFO] [stdout]     |                                   ^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 891 |                         -> Option<TUE<'_>> {
[INFO] [stdout]     |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 30s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: otter v1.2.1 (/opt/rustwide/workdir)
[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" "8edf31314ea1098c59ba143c913436b9b64b470d31f8833c56b0d688e6870465", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8edf31314ea1098c59ba143c913436b9b64b470d31f8833c56b0d688e6870465", kill_on_drop: false }`
[INFO] [stdout] 8edf31314ea1098c59ba143c913436b9b64b470d31f8833c56b0d688e6870465
