[INFO] fetching crate otter 1.2.1...
[INFO] checking otter-1.2.1 against try#012cd62c9add58ab3910e44c137d87db3ab70f61 for pr-155915
[INFO] extracting crate otter 1.2.1 into /workspace/builds/worker-5-tc2/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-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate otter 1.2.1 on toolchain 012cd62c9add58ab3910e44c137d87db3ab70f61
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "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" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9e59f0de968bf120260cbbdb95780f36d66ae8fbbea09e0869d919ee716c022a
[INFO] running `Command { std: "docker" "start" "-a" "9e59f0de968bf120260cbbdb95780f36d66ae8fbbea09e0869d919ee716c022a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9e59f0de968bf120260cbbdb95780f36d66ae8fbbea09e0869d919ee716c022a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9e59f0de968bf120260cbbdb95780f36d66ae8fbbea09e0869d919ee716c022a", kill_on_drop: false }`
[INFO] [stdout] 9e59f0de968bf120260cbbdb95780f36d66ae8fbbea09e0869d919ee716c022a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-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" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c0c17cf0bfb61caf38b5ace483f2fe70e02867b96d3d414597b178c777d16b94
[INFO] running `Command { std: "docker" "start" "-a" "c0c17cf0bfb61caf38b5ace483f2fe70e02867b96d3d414597b178c777d16b94", 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 log v0.4.17
[INFO] [stderr]    Compiling jobserver v0.1.24
[INFO] [stderr]    Compiling getrandom v0.2.7
[INFO] [stderr]     Checking aho-corasick v0.7.18
[INFO] [stderr]    Compiling rand_core v0.6.3
[INFO] [stderr]    Compiling cc v1.0.73
[INFO] [stderr]    Compiling ppv-lite86 v0.2.16
[INFO] [stderr]    Compiling regex-syntax v0.6.26
[INFO] [stderr]    Compiling siphasher v0.3.10
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling phf_shared v0.10.0
[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 subtle v2.4.1
[INFO] [stderr]     Checking cpufeatures v0.2.2
[INFO] [stderr]     Checking crypto-common v0.1.3
[INFO] [stderr]     Checking block-buffer v0.10.2
[INFO] [stderr]     Checking itoa v1.0.2
[INFO] [stderr]    Compiling strsim v0.10.0
[INFO] [stderr]     Checking walkdir v2.3.2
[INFO] [stderr]     Checking digest v0.10.3
[INFO] [stderr]    Compiling zstd-sys v1.6.3+zstd.1.5.2
[INFO] [stderr]    Compiling phf v0.10.1
[INFO] [stderr]    Compiling rustversion v1.0.7
[INFO] [stderr]     Checking byteorder v1.4.3
[INFO] [stderr]    Compiling crc32fast v1.3.2
[INFO] [stderr]    Compiling phf_generator v0.10.0
[INFO] [stderr]    Compiling phf_codegen v0.10.0
[INFO] [stderr]     Checking net2 v0.2.37
[INFO] [stderr]    Compiling backtrace v0.3.65
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]    Compiling num-bigint v0.4.3
[INFO] [stderr]    Compiling lock_api v0.4.7
[INFO] [stderr]    Compiling failure_derive v0.1.8
[INFO] [stderr]     Checking regex v1.5.6
[INFO] [stderr]    Compiling unicode-xid v0.2.3
[INFO] [stderr]    Compiling ucd-trie v0.1.3
[INFO] [stderr]    Compiling pkg-config v0.3.25
[INFO] [stderr]     Checking unicode-width v0.1.9
[INFO] [stderr]     Checking gimli v0.26.1
[INFO] [stderr]     Checking slab v0.4.6
[INFO] [stderr]    Compiling crossbeam-utils v0.8.10
[INFO] [stderr]    Compiling parking_lot_core v0.9.3
[INFO] [stderr]    Compiling serde_json v1.0.81
[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 time v0.1.44
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]     Checking bstr v0.2.17
[INFO] [stderr]     Checking object v0.28.4
[INFO] [stderr]    Compiling num-rational v0.4.1
[INFO] [stderr]    Compiling parse-zoneinfo v0.3.0
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]    Compiling num-iter v0.1.43
[INFO] [stderr]     Checking smallvec v1.8.1
[INFO] [stderr]     Checking tinyvec_macros v0.1.0
[INFO] [stderr]     Checking unic-char-range v0.9.0
[INFO] [stderr]     Checking scopeguard v1.1.0
[INFO] [stderr]    Compiling maplit v1.0.2
[INFO] [stderr]     Checking ansi_term v0.12.1
[INFO] [stderr]     Checking num_threads v0.1.6
[INFO] [stderr]    Compiling zstd-safe v4.1.6+zstd.1.5.2
[INFO] [stderr]     Checking rustc-demangle v0.1.21
[INFO] [stderr]    Compiling chrono-tz-build v0.0.2
[INFO] [stderr]     Checking unic-common v0.9.0
[INFO] [stderr]     Checking addr2line v0.17.0
[INFO] [stderr]    Compiling either v1.6.1
[INFO] [stderr]    Compiling time-macros v0.2.4
[INFO] [stderr]     Checking ryu v1.0.10
[INFO] [stderr]     Checking lazycell v1.3.0
[INFO] [stderr]     Checking mio-extras v2.0.6
[INFO] [stderr]     Checking globset v0.4.9
[INFO] [stderr]     Checking unic-ucd-version v0.9.0
[INFO] [stderr]    Compiling pest_meta v2.1.3
[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]    Compiling chrono-tz v0.6.1
[INFO] [stderr]     Checking unic-char-property v0.9.0
[INFO] [stderr]     Checking tinyvec v1.6.0
[INFO] [stderr]     Checking time v0.3.11
[INFO] [stderr]     Checking chrono v0.4.19
[INFO] [stderr]     Checking inotify v0.7.1
[INFO] [stderr]     Checking sha2 v0.10.2
[INFO] [stderr]     Checking block-buffer v0.9.0
[INFO] [stderr]     Checking digest v0.9.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.31
[INFO] [stderr]    Compiling fehler-macros v1.0.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]     Checking matches v0.1.9
[INFO] [stderr]    Compiling darling_macro v0.13.4
[INFO] [stderr]    Compiling unicode-segmentation v1.9.0
[INFO] [stderr]    Compiling erased-serde v0.3.21
[INFO] [stderr]    Compiling paste v1.0.7
[INFO] [stderr]    Compiling anyhow v1.0.58
[INFO] [stderr]    Compiling darling v0.13.4
[INFO] [stderr]    Compiling serde_with_macros v1.5.2
[INFO] [stderr]     Checking base64ct v1.0.1
[INFO] [stderr]     Checking adler32 v1.2.0
[INFO] [stderr]     Checking percent-encoding v2.1.0
[INFO] [stderr]     Checking itertools v0.10.3
[INFO] [stderr]     Checking rmp v0.8.11
[INFO] [stderr]    Compiling enum-ordinalize v3.1.11
[INFO] [stderr]     Checking deflate v1.0.0
[INFO] [stderr]     Checking thiserror v1.0.31
[INFO] [stderr]     Checking password-hash v0.3.2
[INFO] [stderr]    Compiling heck v0.3.3
[INFO] [stderr]     Checking failure v0.1.8
[INFO] [stderr]    Compiling strum_macros v0.24.2
[INFO] [stderr]    Compiling derive_more v0.99.17
[INFO] [stderr]     Checking notify v4.0.17
[INFO] [stderr]     Checking fehler v1.0.0
[INFO] [stderr]     Checking ignore v0.4.18
[INFO] [stderr]    Compiling extend v1.1.2
[INFO] [stderr]    Compiling ghost v0.1.4
[INFO] [stderr]    Compiling ctor v0.1.22
[INFO] [stderr]    Compiling num-derive v0.3.3
[INFO] [stderr]     Checking unicode-normalization v0.1.20
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]    Compiling pest_generator v2.1.3
[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 unicode-bidi v0.3.8
[INFO] [stderr]     Checking arrayvec v0.7.2
[INFO] [stderr]     Checking vec_map v0.8.2
[INFO] [stderr]     Checking glob v0.3.0
[INFO] [stderr]     Checking htmlescape v0.3.1
[INFO] [stderr]     Checking if_chain v1.0.2
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]     Checking deunicode v0.4.3
[INFO] [stderr]     Checking clap v2.34.0
[INFO] [stderr]     Checking idna v0.2.3
[INFO] [stderr]     Checking slug v0.1.4
[INFO] [stderr]    Compiling pest_derive v2.1.0
[INFO] [stderr]     Checking console v0.15.0
[INFO] [stderr]     Checking strum v0.24.1
[INFO] [stderr]     Checking aes v0.7.5
[INFO] [stderr]     Checking pbkdf2 v0.10.1
[INFO] [stderr]     Checking unic-segment v0.9.0
[INFO] [stderr]     Checking nix v0.24.1
[INFO] [stderr]     Checking inventory v0.2.3
[INFO] [stderr]     Checking globwalk v0.8.1
[INFO] [stderr]     Checking pwd v1.3.1
[INFO] [stderr]    Compiling structopt-derive v0.4.18
[INFO] [stderr]    Compiling educe v0.4.19
[INFO] [stderr]     Checking png v0.17.5
[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]    Compiling derive-into-owned v0.2.0
[INFO] [stderr]    Compiling lazy-regex-proc_macros v2.3.0
[INFO] [stderr]    Compiling typetag-impl v0.1.8
[INFO] [stderr]    Compiling enum-map-derive v0.9.0
[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 bytemuck v1.9.1
[INFO] [stderr]     Checking fastrand v1.7.0
[INFO] [stderr]     Checking dlv-list v0.3.0
[INFO] [stderr]     Checking constant_time_eq v0.1.5
[INFO] [stderr]     Checking color_quant v1.1.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 base64 v0.13.0
[INFO] [stderr]     Checking pin-project-lite v0.2.9
[INFO] [stderr]     Checking flexi_logger v0.22.5
[INFO] [stderr]     Checking jpeg-decoder v0.2.6
[INFO] [stderr]     Checking humansize v1.1.1
[INFO] [stderr]     Checking remove_dir_all v0.5.3
[INFO] [stderr]     Checking openssh-keys v0.5.0
[INFO] [stderr]     Checking tempfile v3.3.0
[INFO] [stderr]     Checking tera v1.16.0
[INFO] [stderr]     Checking async-condvar-fair v0.2.2
[INFO] [stderr]    Compiling enum_dispatch v0.3.8
[INFO] [stderr]     Checking typetag v0.1.8
[INFO] [stderr]    Compiling ambassador v0.3.1
[INFO] [stderr]     Checking image v0.24.2
[INFO] [stderr]     Checking num v0.4.0
[INFO] [stderr]     Checking index_vec v0.1.3
[INFO] [stderr]     Checking humantime-serde v1.1.1
[INFO] [stderr]     Checking enum-map v2.4.0
[INFO] [stderr]     Checking otter-base v1.2.1
[INFO] [stderr]     Checking env_logger v0.9.0
[INFO] [stderr]     Checking lazy-regex v2.3.0
[INFO] [stderr]     Checking structopt v0.3.26
[INFO] [stderr]     Checking url v2.2.2
[INFO] [stderr]    Compiling proc-macro-crate v1.1.3
[INFO] [stderr]    Compiling proc-macro-crate v0.1.5
[INFO] [stderr]    Compiling delegate v0.7.0
[INFO] [stderr]     Checking otter-support v1.2.1
[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 lazy-init v0.5.0
[INFO] [stderr]     Checking xmlparser v0.13.3
[INFO] [stderr]    Compiling const-default-derive v0.2.0
[INFO] [stderr]    Compiling cast_trait_object_macros v0.1.3
[INFO] [stderr]     Checking downcast-rs v1.2.0
[INFO] [stderr]     Checking boolinator v2.4.0
[INFO] [stderr]     Checking const-default v1.0.0
[INFO] [stderr]     Checking cast_trait_object v0.1.3
[INFO] [stderr]     Checking bzip2 v0.4.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] error: `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]      = 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]      = 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: `#[deny(ambiguous_glob_imports)]` (part of `#[deny(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `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]     = 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]     = 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] 
[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: 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] error: `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]      = 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]      = 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: `#[deny(ambiguous_glob_imports)]` (part of `#[deny(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `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]     = 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]     = 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] 
[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]     = help: Import `RefTraitObjectPieceTraitExt` explicitly
[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]     = 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]     = help: Import `RefTraitObjectPieceTraitExt` explicitly
[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] 
[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]     = help: Import `RefTraitObjectPieceTraitExt` explicitly
[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]     = 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]     = help: Import `RefTraitObjectPieceTraitExt` explicitly
[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] 
[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] [stderr] error: could not compile `otter` (lib) due to 4 previous errors; 103 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[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] error: could not compile `otter` (lib test) due to 4 previous errors; 103 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "c0c17cf0bfb61caf38b5ace483f2fe70e02867b96d3d414597b178c777d16b94", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c0c17cf0bfb61caf38b5ace483f2fe70e02867b96d3d414597b178c777d16b94", kill_on_drop: false }`
[INFO] [stdout] c0c17cf0bfb61caf38b5ace483f2fe70e02867b96d3d414597b178c777d16b94
