[INFO] cloning repository https://github.com/ProgramCrafter/salsa-iwj-otter
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ProgramCrafter/salsa-iwj-otter" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FProgramCrafter%2Fsalsa-iwj-otter", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FProgramCrafter%2Fsalsa-iwj-otter'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a5b9c677f29675d2395c9d1d66763a2ce64f6ffc
[INFO] testing ProgramCrafter/salsa-iwj-otter against 1.97.0-beta.6 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FProgramCrafter%2Fsalsa-iwj-otter" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ProgramCrafter/salsa-iwj-otter
[INFO] finished tweaking git repo https://github.com/ProgramCrafter/salsa-iwj-otter
[INFO] tweaked toml for git repo https://github.com/ProgramCrafter/salsa-iwj-otter written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ProgramCrafter/salsa-iwj-otter on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ProgramCrafter/salsa-iwj-otter already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Updating git repository `https://github.com/ijackson/slotmap`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded structopt-derive v0.4.18
[INFO] [stderr]   Downloaded unicode-ident v1.0.1
[INFO] [stderr]   Downloaded quote v1.0.20
[INFO] [stderr]   Downloaded structopt v0.3.26
[INFO] [stderr]   Downloaded new_debug_unreachable v1.0.4
[INFO] [stderr]   Downloaded siphasher v0.3.10
[INFO] [stderr]   Downloaded matches v0.1.9
[INFO] [stderr]   Downloaded cpufeatures v0.2.2
[INFO] [stderr]   Downloaded password-hash v0.3.2
[INFO] [stderr]   Downloaded form_urlencoded v1.0.1
[INFO] [stderr]   Downloaded dtoa-short v0.3.3
[INFO] [stderr]   Downloaded cssparser-macros v0.6.0
[INFO] [stderr]   Downloaded percent-encoding v2.1.0
[INFO] [stderr]   Downloaded zstd v0.10.2+zstd.1.5.2
[INFO] [stderr]   Downloaded uncased v0.9.7
[INFO] [stderr]   Downloaded itoa v1.0.2
[INFO] [stderr]   Downloaded want v0.3.0
[INFO] [stderr]   Downloaded openssl-macros v0.1.0
[INFO] [stderr]   Downloaded pbkdf2 v0.10.1
[INFO] [stderr]   Downloaded sha2 v0.10.2
[INFO] [stderr]   Downloaded bzip2 v0.4.3
[INFO] [stderr]   Downloaded slab v0.4.6
[INFO] [stderr]   Downloaded base64ct v1.0.1
[INFO] [stderr]   Downloaded opaque-debug v0.3.0
[INFO] [stderr]   Downloaded strum v0.24.1
[INFO] [stderr]   Downloaded proc-macro-hack v0.5.19
[INFO] [stderr]   Downloaded string_cache v0.8.4
[INFO] [stderr]   Downloaded crossbeam-utils v0.8.10
[INFO] [stderr]   Downloaded rctree v0.4.0
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.81
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.31
[INFO] [stderr]   Downloaded tinyvec_macros v0.1.0
[INFO] [stderr]   Downloaded svgtypes v0.8.1
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.81
[INFO] [stderr]   Downloaded term_size v0.3.2
[INFO] [stderr]   Downloaded tokio-macros v1.8.0
[INFO] [stderr]   Downloaded futures-sink v0.3.21
[INFO] [stderr]   Downloaded mime v0.3.16
[INFO] [stderr]   Downloaded try-lock v0.2.3
[INFO] [stderr]   Downloaded httpdate v1.0.2
[INFO] [stderr]   Downloaded http-body v0.4.5
[INFO] [stderr]   Downloaded futures-task v0.3.21
[INFO] [stderr]   Downloaded futures-io v0.3.21
[INFO] [stderr]   Downloaded constant_time_eq v0.1.5
[INFO] [stderr]   Downloaded cipher v0.3.0
[INFO] [stderr]   Downloaded xmlparser v0.13.3
[INFO] [stderr]   Downloaded unicode-ccc v0.1.2
[INFO] [stderr]   Downloaded unicode-bidi-mirroring v0.1.0
[INFO] [stderr]   Downloaded ghost v0.1.4
[INFO] [stderr]   Downloaded opaque-debug v0.2.3
[INFO] [stderr]   Downloaded block-padding v0.1.5
[INFO] [stderr]   Downloaded directories v4.0.1
[INFO] [stderr]   Downloaded humansize v1.1.1
[INFO] [stderr]   Downloaded globwalk v0.8.1
[INFO] [stderr]   Downloaded mio-extras v2.0.6
[INFO] [stderr]   Downloaded ctor v0.1.22
[INFO] [stderr]   Downloaded unic-ucd-version v0.9.0
[INFO] [stderr]   Downloaded unic-common v0.9.0
[INFO] [stderr]   Downloaded unic-char-property v0.9.0
[INFO] [stderr]   Downloaded slug v0.1.4
[INFO] [stderr]   Downloaded pest_generator v2.1.3
[INFO] [stderr]   Downloaded fake-simd v0.1.2
[INFO] [stderr]   Downloaded block-buffer v0.7.3
[INFO] [stderr]   Downloaded darling_macro v0.13.4
[INFO] [stderr]   Downloaded pwd v1.3.1
[INFO] [stderr]   Downloaded unicode-xid v0.2.3
[INFO] [stderr]   Downloaded unicode-width v0.1.9
[INFO] [stderr]   Downloaded strum_macros v0.24.2
[INFO] [stderr]   Downloaded rustversion v1.0.7
[INFO] [stderr]   Downloaded scraper v0.13.0
[INFO] [stderr]   Downloaded smallvec v1.8.1
[INFO] [stderr]   Downloaded semver v1.0.10
[INFO] [stderr]   Downloaded getrandom v0.2.7
[INFO] [stderr]   Downloaded parking_lot_core v0.9.3
[INFO] [stderr]   Downloaded once_cell v1.12.0
[INFO] [stderr]   Downloaded winreg v0.10.1
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.81
[INFO] [stderr]   Downloaded wasm-bindgen-backend v0.2.81
[INFO] [stderr]   Downloaded pin-project-lite v0.2.9
[INFO] [stderr]   Downloaded tokio-native-tls v0.3.0
[INFO] [stderr]   Downloaded native-tls v0.2.10
[INFO] [stderr]   Downloaded security-framework-sys v2.6.1
[INFO] [stderr]   Downloaded core-foundation v0.9.3
[INFO] [stderr]   Downloaded jobserver v0.1.24
[INFO] [stderr]   Downloaded ipnet v2.5.0
[INFO] [stderr]   Downloaded httparse v1.7.1
[INFO] [stderr]   Downloaded futures-channel v0.3.21
[INFO] [stderr]   Downloaded unic-char-range v0.9.0
[INFO] [stderr]   Downloaded digest v0.8.1
[INFO] [stderr]   Downloaded chrono-tz-build v0.0.2
[INFO] [stderr]   Downloaded failure_derive v0.1.8
[INFO] [stderr]   Downloaded wit-text v0.8.0
[INFO] [stderr]   Downloaded proc-macro2 v1.0.40
[INFO] [stderr]   Downloaded dtoa v0.4.8
[INFO] [stderr]   Downloaded redox_syscall v0.2.13
[INFO] [stderr]   Downloaded ryu v1.0.10
[INFO] [stderr]   Downloaded unicode-bidi v0.3.8
[INFO] [stderr]   Downloaded socket2 v0.4.4
[INFO] [stderr]   Downloaded signal-hook-registry v1.4.0
[INFO] [stderr]   Downloaded schannel v0.1.20
[INFO] [stderr]   Downloaded futures-macro v0.3.21
[INFO] [stderr]   Downloaded zstd-safe v4.1.6+zstd.1.5.2
[INFO] [stderr]   Downloaded typetag-impl v0.1.8
[INFO] [stderr]   Downloaded pest_derive v2.1.0
[INFO] [stderr]   Downloaded if_chain v1.0.2
[INFO] [stderr]   Downloaded proc-macro-crate v1.1.3
[INFO] [stderr]   Downloaded cast_trait_object v0.1.3
[INFO] [stderr]   Downloaded cast_trait_object_macros v0.1.3
[INFO] [stderr]   Downloaded async-trait v0.1.56
[INFO] [stderr]   Downloaded actix-web-codegen v4.0.1
[INFO] [stderr]   Downloaded crossbeam-epoch v0.9.9
[INFO] [stderr]   Downloaded env_logger v0.8.4
[INFO] [stderr]   Downloaded serde_derive v1.0.137
[INFO] [stderr]   Downloaded lock_api v0.4.7
[INFO] [stderr]   Downloaded indexmap v1.9.1
[INFO] [stderr]   Downloaded openssl-sys v0.9.74
[INFO] [stderr]   Downloaded base64 v0.13.0
[INFO] [stderr]   Downloaded inventory v0.2.3
[INFO] [stderr]   Downloaded thiserror-impl v1.0.31
[INFO] [stderr]   Downloaded byte-tools v0.3.1
[INFO] [stderr]   Downloaded maplit v1.0.2
[INFO] [stderr]   Downloaded thread_local v1.1.4
[INFO] [stderr]   Downloaded either v1.6.1
[INFO] [stderr]   Downloaded notify v4.0.17
[INFO] [stderr]   Downloaded educe v0.4.19
[INFO] [stderr]   Downloaded derive-into-owned v0.2.0
[INFO] [stderr]   Downloaded lazy-init v0.5.0
[INFO] [stderr]   Downloaded alloc-stdlib v0.2.1
[INFO] [stderr]   Downloaded alloc-no-stdlib v2.0.3
[INFO] [stderr]   Downloaded actix-codec v0.5.0
[INFO] [stderr]   Downloaded mime_guess v2.0.4
[INFO] [stderr]   Downloaded askama_escape v0.10.3
[INFO] [stderr]   Downloaded wasmparser v0.59.0
[INFO] [stderr]   Downloaded chunked_transfer v1.4.0
[INFO] [stderr]   Downloaded ron v0.7.1
[INFO] [stderr]   Downloaded serde v1.0.137
[INFO] [stderr]   Downloaded bumpalo v3.10.0
[INFO] [stderr]   Downloaded hashbrown v0.12.1
[INFO] [stderr]   Downloaded js-sys v0.3.58
[INFO] [stderr]   Downloaded url v2.2.2
[INFO] [stderr]   Downloaded tokio-util v0.7.3
[INFO] [stderr]   Downloaded tracing v0.1.35
[INFO] [stderr]   Downloaded tracing-core v0.1.28
[INFO] [stderr]   Downloaded mio v0.8.4
[INFO] [stderr]   Downloaded security-framework v2.6.1
[INFO] [stderr]   Downloaded zip v0.6.2
[INFO] [stderr]   Downloaded time-macros v0.2.4
[INFO] [stderr]   Downloaded vecdeque-stableix v1.0.0
[INFO] [stderr]   Downloaded arrayvec v0.7.2
[INFO] [stderr]   Downloaded fontdb v0.9.1
[INFO] [stderr]   Downloaded unicase v2.6.0
[INFO] [stderr]   Downloaded walkdir v2.3.2
[INFO] [stderr]   Downloaded darling v0.13.4
[INFO] [stderr]   Downloaded rmp-serde v1.1.0
[INFO] [stderr]   Downloaded paste v1.0.7
[INFO] [stderr]   Downloaded rustc-demangle v0.1.21
[INFO] [stderr]   Downloaded net2 v0.2.37
[INFO] [stderr]   Downloaded enum-ordinalize v3.1.11
[INFO] [stderr]   Downloaded png v0.17.5
[INFO] [stderr]   Downloaded actix-files v0.6.1
[INFO] [stderr]   Downloaded actix-cors v0.6.1
[INFO] [stderr]   Downloaded wasm-bindgen-cli v0.2.81
[INFO] [stderr]   Downloaded wast v21.0.0
[INFO] [stderr]   Downloaded syn v1.0.98
[INFO] [stderr]   Downloaded unicode-segmentation v1.9.0
[INFO] [stderr]   Downloaded unicode-normalization v0.1.20
[INFO] [stderr]   Downloaded http v0.2.8
[INFO] [stderr]   Downloaded time v0.3.11
[INFO] [stderr]   Downloaded num_threads v0.1.6
[INFO] [stderr]   Downloaded sha1 v0.10.1
[INFO] [stderr]   Downloaded digest v0.10.3
[INFO] [stderr]   Downloaded subtle v2.4.1
[INFO] [stderr]   Downloaded crypto-common v0.1.3
[INFO] [stderr]   Downloaded generic-array v0.14.5
[INFO] [stderr]   Downloaded block-buffer v0.10.2
[INFO] [stderr]   Downloaded miniz_oxide v0.5.3
[INFO] [stderr]   Downloaded unicode-general-category v0.4.0
[INFO] [stderr]   Downloaded memmap2 v0.5.4
[INFO] [stderr]   Downloaded typetag v0.1.8
[INFO] [stderr]   Downloaded thiserror v1.0.31
[INFO] [stderr]   Downloaded rmp v0.8.11
[INFO] [stderr]   Downloaded extend v1.1.2
[INFO] [stderr]   Downloaded inotify v0.7.1
[INFO] [stderr]   Downloaded inotify-sys v0.1.5
[INFO] [stderr]   Downloaded fsevent-sys v2.0.1
[INFO] [stderr]   Downloaded fsevent v0.4.0
[INFO] [stderr]   Downloaded filetime v0.2.16
[INFO] [stderr]   Downloaded console v0.15.0
[INFO] [stderr]   Downloaded terminal_size v0.1.17
[INFO] [stderr]   Downloaded ordered-float v3.0.0
[INFO] [stderr]   Downloaded sha2 v0.9.9
[INFO] [stderr]   Downloaded wasm-bindgen-cli-support v0.2.81
[INFO] [stderr]   Downloaded wasm-bindgen-wasm-interpreter v0.2.81
[INFO] [stderr]   Downloaded reqwest v0.11.11
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.81
[INFO] [stderr]   Downloaded serde_json v1.0.81
[INFO] [stderr]   Downloaded hyper v0.14.19
[INFO] [stderr]   Downloaded h2 v0.3.13
[INFO] [stderr]   Downloaded futures-util v0.3.21
[INFO] [stderr]   Downloaded typenum v1.15.0
[INFO] [stderr]   Downloaded bytemuck v1.9.1
[INFO] [stderr]   Downloaded uds v0.2.6
[INFO] [stderr]   Downloaded erased-serde v0.3.21
[INFO] [stderr]   Downloaded sha-1 v0.8.2
[INFO] [stderr]   Downloaded generic-array v0.12.4
[INFO] [stderr]   Downloaded globset v0.4.9
[INFO] [stderr]   Downloaded serde_with_macros v1.5.2
[INFO] [stderr]   Downloaded addr2line v0.17.0
[INFO] [stderr]   Downloaded flexi_logger v0.22.5
[INFO] [stderr]   Downloaded encode_unicode v0.3.6
[INFO] [stderr]   Downloaded anyhow v1.0.58
[INFO] [stderr]   Downloaded openssh-keys v0.5.0
[INFO] [stderr]   Downloaded actix-http v3.0.4
[INFO] [stderr]   Downloaded argparse v0.2.2
[INFO] [stderr]   Downloaded idna v0.2.3
[INFO] [stderr]   Downloaded openssl v0.10.40
[INFO] [stderr]   Downloaded data-url v0.1.1
[INFO] [stderr]   Downloaded failure v0.1.8
[INFO] [stderr]   Downloaded fehler-macros v1.0.0
[INFO] [stderr]   Downloaded enum-map v2.4.0
[INFO] [stderr]   Downloaded bundle-sources v0.0.1
[INFO] [stderr]   Downloaded cargo_metadata v0.11.4
[INFO] [stderr]   Downloaded boolinator v2.4.0
[INFO] [stderr]   Downloaded dlv-list v0.3.0
[INFO] [stderr]   Downloaded gethostname v0.2.3
[INFO] [stderr]   Downloaded urlparse v0.7.3
[INFO] [stderr]   Downloaded ndarray v0.15.4
[INFO] [stderr]   Downloaded wit-walrus v0.6.0
[INFO] [stderr]   Downloaded wit-writer v0.2.0
[INFO] [stderr]   Downloaded wit-schema-version v0.1.0
[INFO] [stderr]   Downloaded leb128 v0.2.5
[INFO] [stderr]   Downloaded wit-parser v0.2.0
[INFO] [stderr]   Downloaded walrus-macro v0.19.0
[INFO] [stderr]   Downloaded unicode-script v0.5.4
[INFO] [stderr]   Downloaded roxmltree v0.14.1
[INFO] [stderr]   Downloaded unic-segment v0.9.0
[INFO] [stderr]   Downloaded pest_meta v2.1.3
[INFO] [stderr]   Downloaded synstructure v0.12.6
[INFO] [stderr]   Downloaded lazy-regex-proc_macros v2.3.0
[INFO] [stderr]   Downloaded adler32 v1.2.0
[INFO] [stderr]   Downloaded humantime-serde v1.1.1
[INFO] [stderr]   Downloaded enum_dispatch v0.3.8
[INFO] [stderr]   Downloaded enum-map-derive v0.9.0
[INFO] [stderr]   Downloaded delegate v0.7.0
[INFO] [stderr]   Downloaded stringmatch v0.3.3
[INFO] [stderr]   Downloaded serde_repr v0.1.8
[INFO] [stderr]   Downloaded firestorm v0.5.1
[INFO] [stderr]   Downloaded fontconfig-parser v0.5.0
[INFO] [stderr]   Downloaded ucd-trie v0.1.3
[INFO] [stderr]   Downloaded index_vec v0.1.3
[INFO] [stderr]   Downloaded env_logger v0.9.0
[INFO] [stderr]   Downloaded futures v0.3.21
[INFO] [stderr]   Downloaded docopt v1.1.1
[INFO] [stderr]   Downloaded darling_core v0.13.4
[INFO] [stderr]   Downloaded htmlescape v0.3.1
[INFO] [stderr]   Downloaded block-buffer v0.9.0
[INFO] [stderr]   Downloaded md-5 v0.9.1
[INFO] [stderr]   Downloaded lazy-regex v2.3.0
[INFO] [stderr]   Downloaded crossbeam-channel v0.5.5
[INFO] [stderr]   Downloaded flate2 v1.0.24
[INFO] [stderr]   Downloaded fehler v1.0.0
[INFO] [stderr]   Downloaded digest v0.9.0
[INFO] [stderr]   Downloaded const-default v1.0.0
[INFO] [stderr]   Downloaded const-default-derive v0.2.0
[INFO] [stderr]   Downloaded semver v0.10.0
[INFO] [stderr]   Downloaded async-condvar-fair v0.2.2
[INFO] [stderr]   Downloaded ambassador v0.3.1
[INFO] [stderr]   Downloaded actix-router v0.5.0
[INFO] [stderr]   Downloaded actix-macros v0.2.3
[INFO] [stderr]   Downloaded local-channel v0.1.3
[INFO] [stderr]   Downloaded wasm-bindgen-multi-value-xform v0.2.81
[INFO] [stderr]   Downloaded console_error_panic_hook v0.1.7
[INFO] [stderr]   Downloaded ignore v0.4.18
[INFO] [stderr]   Downloaded futures-executor v0.3.21
[INFO] [stderr]   Downloaded actix-rt v2.7.0
[INFO] [stderr]   Downloaded sha-1 v0.10.0
[INFO] [stderr]   Downloaded wasm-bindgen-threads-xform v0.2.81
[INFO] [stderr]   Downloaded ascii v1.0.0
[INFO] [stderr]   Downloaded libc v0.2.126
[INFO] [stderr]   Downloaded tokio v1.19.2
[INFO] [stderr]   Downloaded kurbo v0.8.3
[INFO] [stderr]   Downloaded unic-ucd-segment v0.9.0
[INFO] [stderr]   Downloaded pest v2.1.3
[INFO] [stderr]   Downloaded parse-zoneinfo v0.3.0
[INFO] [stderr]   Downloaded backtrace v0.3.65
[INFO] [stderr]   Downloaded deflate v1.0.0
[INFO] [stderr]   Downloaded thirtyfour_sync v0.27.1
[INFO] [stderr]   Downloaded displaydoc v0.1.7
[INFO] [stderr]   Downloaded actix-web v4.1.0
[INFO] [stderr]   Downloaded bytestring v1.1.0
[INFO] [stderr]   Downloaded local-waker v0.1.3
[INFO] [stderr]   Downloaded multipart v0.18.0
[INFO] [stderr]   Downloaded image v0.24.2
[INFO] [stderr]   Downloaded thirtyfour v0.27.3
[INFO] [stderr]   Downloaded cookie v0.16.0
[INFO] [stderr]   Downloaded ahash v0.7.6
[INFO] [stderr]   Downloaded actix-utils v3.0.0
[INFO] [stderr]   Downloaded actix-server v2.1.1
[INFO] [stderr]   Downloaded wasmparser v0.77.0
[INFO] [stderr]   Downloaded crossbeam-deque v0.8.1
[INFO] [stderr]   Downloaded id-arena v2.2.1
[INFO] [stderr]   Downloaded wit-validator v0.2.1
[INFO] [stderr]   Downloaded wasm-bindgen-wasm-conventions v0.2.81
[INFO] [stderr]   Downloaded windows_x86_64_msvc v0.36.1
[INFO] [stderr]   Downloaded windows_aarch64_msvc v0.36.1
[INFO] [stderr]   Downloaded serde_with v1.14.0
[INFO] [stderr]   Downloaded web-sys v0.3.58
[INFO] [stderr]   Downloaded usvg v0.23.0
[INFO] [stderr]   Downloaded rayon-core v1.9.3
[INFO] [stderr]   Downloaded wasm-bindgen-externref-xform v0.2.81
[INFO] [stderr]   Downloaded windows_i686_msvc v0.36.1
[INFO] [stderr]   Downloaded zstd-sys v1.6.3+zstd.1.5.2
[INFO] [stderr]   Downloaded tera v1.16.0
[INFO] [stderr]   Downloaded sha1 v0.6.1
[INFO] [stderr]   Downloaded sha1_smol v1.0.0
[INFO] [stderr]   Downloaded windows_x86_64_gnu v0.36.1
[INFO] [stderr]   Downloaded deunicode v0.4.3
[INFO] [stderr]   Downloaded rayon v1.5.3
[INFO] [stderr]   Downloaded base64 v0.9.3
[INFO] [stderr]   Downloaded safemem v0.3.3
[INFO] [stderr]   Downloaded twoway v0.1.8
[INFO] [stderr]   Downloaded windows_i686_gnu v0.36.1
[INFO] [stderr]   Downloaded aes v0.7.5
[INFO] [stderr]   Downloaded tiny_http v0.8.2
[INFO] [stderr]   Downloaded rouille v3.5.0
[INFO] [stderr]   Downloaded buf_redux v0.8.4
[INFO] [stderr]   Downloaded curl v0.4.43
[INFO] [stderr]   Downloaded chrono v0.4.19
[INFO] [stderr]   Downloaded walrus v0.19.0
[INFO] [stderr]   Downloaded brotli-decompressor v2.3.2
[INFO] [stderr]   Downloaded object v0.28.4
[INFO] [stderr]   Downloaded jpeg-decoder v0.2.6
[INFO] [stderr]   Downloaded regex v1.5.6
[INFO] [stderr]   Downloaded x11rb v0.10.1
[INFO] [stderr]   Downloaded regex-syntax v0.6.26
[INFO] [stderr]   Downloaded bstr v0.2.17
[INFO] [stderr]   Downloaded x11rb-protocol v0.10.0
[INFO] [stderr]   Downloaded encoding_rs v0.8.31
[INFO] [stderr]   Downloaded bzip2-sys v0.1.11+1.0.8
[INFO] [stderr]   Downloaded chrono-tz v0.6.1
[INFO] [stderr]   Downloaded gimli v0.26.1
[INFO] [stderr]   Downloaded rustybuzz v0.5.1
[INFO] [stderr]   Downloaded brotli v3.3.4
[INFO] [stderr]   Downloaded windows-sys v0.36.1
[INFO] [stderr]   Downloaded libz-sys v1.1.8
[INFO] [stderr]   Downloaded curl-sys v0.4.55+curl-7.83.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] ae4d32eceb04cb784fd25b05c8eb6c4d3d495e528b3a7b4ee5997cdc9cb6496a
[INFO] running `Command { std: "docker" "start" "ae4d32eceb04cb784fd25b05c8eb6c4d3d495e528b3a7b4ee5997cdc9cb6496a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ae4d32eceb04cb784fd25b05c8eb6c4d3d495e528b3a7b4ee5997cdc9cb6496a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ae4d32eceb04cb784fd25b05c8eb6c4d3d495e528b3a7b4ee5997cdc9cb6496a" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ae4d32eceb04cb784fd25b05c8eb6c4d3d495e528b3a7b4ee5997cdc9cb6496a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ae4d32eceb04cb784fd25b05c8eb6c4d3d495e528b3a7b4ee5997cdc9cb6496a" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", 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 libc v0.2.126
[INFO] [stderr]    Compiling syn v1.0.98
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]    Compiling serde_derive v1.0.137
[INFO] [stderr]    Compiling serde 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 regex-syntax v0.6.26
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]    Compiling uncased v0.9.7
[INFO] [stderr]    Compiling once_cell v1.12.0
[INFO] [stderr]    Compiling aho-corasick v0.7.18
[INFO] [stderr]    Compiling ppv-lite86 v0.2.16
[INFO] [stderr]    Compiling siphasher v0.3.10
[INFO] [stderr]    Compiling miniz_oxide v0.5.3
[INFO] [stderr]    Compiling phf_shared v0.10.0
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling num-bigint v0.4.3
[INFO] [stderr]    Compiling jobserver v0.1.24
[INFO] [stderr]    Compiling cc v1.0.73
[INFO] [stderr]    Compiling getrandom v0.2.7
[INFO] [stderr]    Compiling cpufeatures v0.2.2
[INFO] [stderr]    Compiling subtle v2.4.1
[INFO] [stderr]    Compiling rand_core v0.6.3
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling itoa v1.0.2
[INFO] [stderr]    Compiling strsim v0.10.0
[INFO] [stderr]    Compiling walkdir v2.3.2
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling phf v0.10.1
[INFO] [stderr]    Compiling block-buffer v0.10.2
[INFO] [stderr]    Compiling crypto-common v0.1.3
[INFO] [stderr]    Compiling rustversion v1.0.7
[INFO] [stderr]    Compiling digest v0.10.3
[INFO] [stderr]    Compiling byteorder v1.4.3
[INFO] [stderr]    Compiling regex v1.5.6
[INFO] [stderr]    Compiling phf_generator v0.10.0
[INFO] [stderr]    Compiling either v1.6.1
[INFO] [stderr]    Compiling cfg-if v0.1.10
[INFO] [stderr]    Compiling net2 v0.2.37
[INFO] [stderr]    Compiling phf_codegen v0.10.0
[INFO] [stderr]    Compiling iovec v0.1.4
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling zstd-sys v1.6.3+zstd.1.5.2
[INFO] [stderr]    Compiling backtrace v0.3.65
[INFO] [stderr]    Compiling lock_api v0.4.7
[INFO] [stderr]    Compiling crossbeam-utils v0.8.10
[INFO] [stderr]    Compiling unicode-xid v0.2.3
[INFO] [stderr]    Compiling slab v0.4.6
[INFO] [stderr]    Compiling failure_derive v0.1.8
[INFO] [stderr]    Compiling serde_json v1.0.81
[INFO] [stderr]    Compiling opaque-debug v0.3.0
[INFO] [stderr]    Compiling gimli v0.26.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.3
[INFO] [stderr]    Compiling unicode-width v0.1.9
[INFO] [stderr]    Compiling ucd-trie v0.1.3
[INFO] [stderr]    Compiling mio v0.6.23
[INFO] [stderr]    Compiling bzip2-sys v0.1.11+1.0.8
[INFO] [stderr]    Compiling pest v2.1.3
[INFO] [stderr]    Compiling parse-zoneinfo v0.3.0
[INFO] [stderr]    Compiling time v0.1.44
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling object v0.28.4
[INFO] [stderr]    Compiling bstr v0.2.17
[INFO] [stderr]    Compiling chrono-tz-build v0.0.2
[INFO] [stderr]    Compiling num-iter v0.1.43
[INFO] [stderr]    Compiling num-rational v0.4.1
[INFO] [stderr]    Compiling unic-char-range v0.9.0
[INFO] [stderr]    Compiling ansi_term v0.12.1
[INFO] [stderr]    Compiling ryu v1.0.10
[INFO] [stderr]    Compiling rustc-demangle v0.1.21
[INFO] [stderr]    Compiling tinyvec_macros v0.1.0
[INFO] [stderr]    Compiling num_threads v0.1.6
[INFO] [stderr]    Compiling time-macros v0.2.4
[INFO] [stderr]    Compiling lazycell v1.3.0
[INFO] [stderr]    Compiling unic-common v0.9.0
[INFO] [stderr]    Compiling maplit v1.0.2
[INFO] [stderr]    Compiling smallvec v1.8.1
[INFO] [stderr]    Compiling scopeguard v1.1.0
[INFO] [stderr]    Compiling zstd-safe v4.1.6+zstd.1.5.2
[INFO] [stderr]    Compiling pest_meta v2.1.3
[INFO] [stderr]    Compiling mio-extras v2.0.6
[INFO] [stderr]    Compiling addr2line v0.17.0
[INFO] [stderr]    Compiling unic-ucd-version v0.9.0
[INFO] [stderr]    Compiling tinyvec v1.6.0
[INFO] [stderr]    Compiling globset v0.4.9
[INFO] [stderr]    Compiling unic-char-property v0.9.0
[INFO] [stderr]    Compiling chrono-tz v0.6.1
[INFO] [stderr]    Compiling chrono v0.4.19
[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 time v0.3.11
[INFO] [stderr]    Compiling inotify v0.7.1
[INFO] [stderr]    Compiling itertools v0.10.3
[INFO] [stderr]    Compiling sha2 v0.10.2
[INFO] [stderr]    Compiling digest v0.9.0
[INFO] [stderr]    Compiling block-buffer v0.9.0
[INFO] [stderr]    Compiling term_size v0.3.2
[INFO] [stderr]    Compiling filetime v0.2.16
[INFO] [stderr]    Compiling thread_local v1.1.4
[INFO] [stderr]    Compiling slotmap-fork-otter v1.0.2 (https://github.com/ijackson/slotmap?branch=slotmap-fork-otter#d107a9b6)
[INFO] [stderr]    Compiling anyhow v1.0.58
[INFO] [stderr]    Compiling matches v0.1.9
[INFO] [stderr]    Compiling paste v1.0.7
[INFO] [stderr]    Compiling unicode-segmentation v1.9.0
[INFO] [stderr]    Compiling adler32 v1.2.0
[INFO] [stderr]    Compiling base64ct v1.0.1
[INFO] [stderr]    Compiling percent-encoding v2.1.0
[INFO] [stderr]    Compiling erased-serde v0.3.21
[INFO] [stderr]    Compiling password-hash v0.3.2
[INFO] [stderr]    Compiling thiserror-impl v1.0.31
[INFO] [stderr]    Compiling fehler-macros v1.0.0
[INFO] [stderr]    Compiling extend v1.1.2
[INFO] [stderr]    Compiling num-derive v0.3.3
[INFO] [stderr]    Compiling strum_macros v0.24.2
[INFO] [stderr]    Compiling failure v0.1.8
[INFO] [stderr]    Compiling ctor v0.1.22
[INFO] [stderr]    Compiling darling_macro v0.13.4
[INFO] [stderr]    Compiling derive_more v0.99.17
[INFO] [stderr]    Compiling darling v0.13.4
[INFO] [stderr]    Compiling serde_with_macros v1.5.2
[INFO] [stderr]    Compiling thiserror v1.0.31
[INFO] [stderr]    Compiling fehler v1.0.0
[INFO] [stderr]    Compiling enum-ordinalize v3.1.11
[INFO] [stderr]    Compiling ghost v0.1.4
[INFO] [stderr]    Compiling rmp v0.8.11
[INFO] [stderr]    Compiling heck v0.3.3
[INFO] [stderr]    Compiling deflate v1.0.0
[INFO] [stderr]    Compiling ignore v0.4.18
[INFO] [stderr]    Compiling notify v4.0.17
[INFO] [stderr]    Compiling textwrap v0.11.0
[INFO] [stderr]    Compiling unicode-normalization v0.1.20
[INFO] [stderr]    Compiling pest_generator v2.1.3
[INFO] [stderr]    Compiling unic-ucd-segment v0.9.0
[INFO] [stderr]    Compiling parking_lot v0.12.1
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling cipher v0.3.0
[INFO] [stderr]    Compiling terminal_size v0.1.17
[INFO] [stderr]    Compiling unicase v2.6.0
[INFO] [stderr]    Compiling glob v0.3.0
[INFO] [stderr]    Compiling strsim v0.8.0
[INFO] [stderr]    Compiling vec_map v0.8.2
[INFO] [stderr]    Compiling humantime v2.1.0
[INFO] [stderr]    Compiling unicode-bidi v0.3.8
[INFO] [stderr]    Compiling deunicode v0.4.3
[INFO] [stderr]    Compiling void v1.0.2
[INFO] [stderr]    Compiling if_chain v1.0.2
[INFO] [stderr]    Compiling htmlescape v0.3.1
[INFO] [stderr]    Compiling arrayvec v0.7.2
[INFO] [stderr]    Compiling slug v0.1.4
[INFO] [stderr]    Compiling idna v0.2.3
[INFO] [stderr]    Compiling clap v2.34.0
[INFO] [stderr]    Compiling aes v0.7.5
[INFO] [stderr]    Compiling console v0.15.0
[INFO] [stderr]    Compiling pbkdf2 v0.10.1
[INFO] [stderr]    Compiling pest_derive v2.1.0
[INFO] [stderr]    Compiling unic-segment v0.9.0
[INFO] [stderr]    Compiling nix v0.24.1
[INFO] [stderr]    Compiling strum v0.24.1
[INFO] [stderr]    Compiling globwalk v0.8.1
[INFO] [stderr]    Compiling png v0.17.5
[INFO] [stderr]    Compiling inventory v0.2.3
[INFO] [stderr]    Compiling structopt-derive v0.4.18
[INFO] [stderr]    Compiling educe v0.4.19
[INFO] [stderr]    Compiling pwd v1.3.1
[INFO] [stderr]    Compiling derive-into-owned v0.2.0
[INFO] [stderr]    Compiling typetag-impl v0.1.8
[INFO] [stderr]    Compiling lazy-regex-proc_macros v2.3.0
[INFO] [stderr]    Compiling enum-map-derive v0.9.0
[INFO] [stderr]    Compiling form_urlencoded v1.0.1
[INFO] [stderr]    Compiling sha2 v0.9.9
[INFO] [stderr]    Compiling md-5 v0.9.1
[INFO] [stderr]    Compiling flate2 v1.0.24
[INFO] [stderr]    Compiling sha1 v0.10.1
[INFO] [stderr]    Compiling fs2 v0.4.3
[INFO] [stderr]    Compiling mio v0.8.4
[INFO] [stderr]    Compiling num-complex v0.4.2
[INFO] [stderr]    Compiling jpeg-decoder v0.2.6
[INFO] [stderr]    Compiling pin-project-lite v0.2.9
[INFO] [stderr]    Compiling constant_time_eq v0.1.5
[INFO] [stderr]    Compiling color_quant v1.1.0
[INFO] [stderr]    Compiling base64 v0.13.0
[INFO] [stderr]    Compiling dlv-list v0.3.0
[INFO] [stderr]    Compiling bytemuck v1.9.1
[INFO] [stderr]    Compiling fastrand v1.7.0
[INFO] [stderr]    Compiling remove_dir_all v0.5.3
[INFO] [stderr]    Compiling humansize v1.1.1
[INFO] [stderr]    Compiling async-condvar-fair v0.2.2
[INFO] [stderr]    Compiling num v0.4.0
[INFO] [stderr]    Compiling openssh-keys v0.5.0
[INFO] [stderr]    Compiling image v0.24.2
[INFO] [stderr]    Compiling tempfile v3.3.0
[INFO] [stderr]    Compiling env_logger v0.9.0
[INFO] [stderr]    Compiling toml v0.5.9
[INFO] [stderr]    Compiling serde_with v1.14.0
[INFO] [stderr]    Compiling rmp-serde v1.1.0
[INFO] [stderr]    Compiling tera v1.16.0
[INFO] [stderr]    Compiling proc-macro-crate v0.1.5
[INFO] [stderr]    Compiling proc-macro-crate v1.1.3
[INFO] [stderr]    Compiling flexi_logger v0.22.5
[INFO] [stderr]    Compiling typetag v0.1.8
[INFO] [stderr]    Compiling enum-map v2.4.0
[INFO] [stderr]    Compiling otter-base v1.2.1 (/opt/rustwide/workdir/base)
[INFO] [stderr]    Compiling index_vec v0.1.3
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]    --> base/geometry.rs:272:22
[INFO] [stdout]     |
[INFO] [stdout] 272 |       ! (0..2).any(|i| (
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 273 | |       other.br().coords[i] < self .tl().coords[i] ||
[INFO] [stdout]     | |______^
[INFO] [stdout] 274 |         self .br().coords[i] < other.tl().coords[i]
[INFO] [stdout]     |  __________________________________________________^
[INFO] [stdout] 275 | |     ))
[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] 272 ~     ! (0..2).any(|i| other.br().coords[i] < self .tl().coords[i] ||
[INFO] [stdout] 273 ~       self .br().coords[i] < other.tl().coords[i])
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling humantime-serde v1.1.1
[INFO] [stderr]    Compiling structopt v0.3.26
[INFO] [stderr]    Compiling url v2.2.2
[INFO] [stderr]    Compiling lazy-regex v2.3.0
[INFO] [stderr]    Compiling cast_trait_object_macros v0.1.3
[INFO] [stderr]    Compiling const-default-derive v0.2.0
[INFO] [stderr]    Compiling ambassador v0.3.1
[INFO] [stderr]    Compiling const-default v1.0.0
[INFO] [stderr]    Compiling otter-support v1.2.1 (/opt/rustwide/workdir/support)
[INFO] [stderr]    Compiling enum_dispatch v0.3.8
[INFO] [stderr]    Compiling cast_trait_object v0.1.3
[INFO] [stderr]    Compiling delegate v0.7.0
[INFO] [stderr]    Compiling uds v0.2.6
[INFO] [stderr]    Compiling ordered-float v3.0.0
[INFO] [stderr]    Compiling vecdeque-stableix v1.0.0
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> support/debugmutex.rs:15:15
[INFO] [stdout]    |
[INFO] [stdout] 15 |   pub fn lock(&self) -> MutexGuard<T> {
[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] 15 |   pub fn lock(&self) -> MutexGuard<'_, T> {
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling boolinator v2.4.0
[INFO] [stderr]    Compiling downcast-rs v1.2.0
[INFO] [stderr]    Compiling xmlparser v0.13.3
[INFO] [stderr]    Compiling lazy-init v0.5.0
[INFO] [stderr]    Compiling bzip2 v0.4.3
[INFO] [stderr]    Compiling zstd v0.10.2+zstd.1.5.2
[INFO] [stderr]    Compiling zip v0.6.2
[INFO] [stderr]    Compiling otter v1.2.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> src/imports.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub use crate::fastsplit::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^ the name `RefTraitObjectPieceTraitExt` in the type namespace is first re-exported here
[INFO] [stdout] 91 | pub use crate::gamestate::*;
[INFO] [stdout]    |         ------------------- but the name `RefTraitObjectPieceTraitExt` in the type namespace is also re-exported here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> src/prelude.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub use crate::imports::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ the name `Error` in the type namespace is first re-exported here
[INFO] [stdout] ...
[INFO] [stdout] 37 | pub use otter_support::imports::*;
[INFO] [stdout]    |         ------------------------- but the name `Error` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `Error` is ambiguous
[INFO] [stdout]     --> src/global.rs:1490:8
[INFO] [stdout]      |
[INFO] [stdout] 1490 |     E: Error,
[INFO] [stdout]      |        ^^^^^ ambiguous name
[INFO] [stdout]      |
[INFO] [stdout]      = 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: `#[warn(ambiguous_glob_imports)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `Error` is ambiguous
[INFO] [stdout]    --> src/updates.rs:476:30
[INFO] [stdout]     |
[INFO] [stdout] 476 |   pub fn try_map<NS2, ZC2, E:Error,
[INFO] [stdout]     |                              ^^^^^ ambiguous name
[INFO] [stdout]     |
[INFO] [stdout]     = 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: 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]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4m 12s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: otter v1.2.1 (/opt/rustwide/workdir)
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "ae4d32eceb04cb784fd25b05c8eb6c4d3d495e528b3a7b4ee5997cdc9cb6496a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ae4d32eceb04cb784fd25b05c8eb6c4d3d495e528b3a7b4ee5997cdc9cb6496a" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]    --> base/geometry.rs:272:22
[INFO] [stdout]     |
[INFO] [stdout] 272 |       ! (0..2).any(|i| (
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 273 | |       other.br().coords[i] < self .tl().coords[i] ||
[INFO] [stdout]     | |______^
[INFO] [stdout] 274 |         self .br().coords[i] < other.tl().coords[i]
[INFO] [stdout]     |  __________________________________________________^
[INFO] [stdout] 275 | |     ))
[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] 272 ~     ! (0..2).any(|i| other.br().coords[i] < self .tl().coords[i] ||
[INFO] [stdout] 273 ~       self .br().coords[i] < other.tl().coords[i])
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> support/debugmutex.rs:15:15
[INFO] [stdout]    |
[INFO] [stdout] 15 |   pub fn lock(&self) -> MutexGuard<T> {
[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] 15 |   pub fn lock(&self) -> MutexGuard<'_, T> {
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> src/imports.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub use crate::fastsplit::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^ the name `RefTraitObjectPieceTraitExt` in the type namespace is first re-exported here
[INFO] [stdout] 91 | pub use crate::gamestate::*;
[INFO] [stdout]    |         ------------------- but the name `RefTraitObjectPieceTraitExt` in the type namespace is also re-exported here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> src/prelude.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub use crate::imports::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ the name `Error` in the type namespace is first re-exported here
[INFO] [stdout] ...
[INFO] [stdout] 37 | pub use otter_support::imports::*;
[INFO] [stdout]    |         ------------------------- but the name `Error` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `Error` is ambiguous
[INFO] [stdout]     --> src/global.rs:1490:8
[INFO] [stdout]      |
[INFO] [stdout] 1490 |     E: Error,
[INFO] [stdout]      |        ^^^^^ ambiguous name
[INFO] [stdout]      |
[INFO] [stdout]      = 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: `#[warn(ambiguous_glob_imports)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `Error` is ambiguous
[INFO] [stdout]    --> src/updates.rs:476:30
[INFO] [stdout]     |
[INFO] [stdout] 476 |   pub fn try_map<NS2, ZC2, E:Error,
[INFO] [stdout]     |                              ^^^^^ ambiguous name
[INFO] [stdout]     |
[INFO] [stdout]     = 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: 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]    Compiling otter v1.2.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> src/imports.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub use crate::fastsplit::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^ the name `RefTraitObjectPieceTraitExt` in the type namespace is first re-exported here
[INFO] [stdout] 91 | pub use crate::gamestate::*;
[INFO] [stdout]    |         ------------------- but the name `RefTraitObjectPieceTraitExt` in the type namespace is also re-exported here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> src/prelude.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub use crate::imports::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ the name `Error` in the type namespace is first re-exported here
[INFO] [stdout] ...
[INFO] [stdout] 37 | pub use otter_support::imports::*;
[INFO] [stdout]    |         ------------------------- but the name `Error` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `Error` is ambiguous
[INFO] [stdout]     --> src/global.rs:1490:8
[INFO] [stdout]      |
[INFO] [stdout] 1490 |     E: Error,
[INFO] [stdout]      |        ^^^^^ ambiguous name
[INFO] [stdout]      |
[INFO] [stdout]      = 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: `#[warn(ambiguous_glob_imports)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `Error` is ambiguous
[INFO] [stdout]    --> src/updates.rs:476:30
[INFO] [stdout]     |
[INFO] [stdout] 476 |   pub fn try_map<NS2, ZC2, E:Error,
[INFO] [stdout]     |                              ^^^^^ ambiguous name
[INFO] [stdout]     |
[INFO] [stdout]     = 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: 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]     Finished `test` profile [unoptimized + debuginfo] target(s) in 22.51s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: otter v1.2.1 (/opt/rustwide/workdir)
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "ae4d32eceb04cb784fd25b05c8eb6c4d3d495e528b3a7b4ee5997cdc9cb6496a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ae4d32eceb04cb784fd25b05c8eb6c4d3d495e528b3a7b4ee5997cdc9cb6496a" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unnecessary parentheses around closure body
[INFO] [stderr]    --> base/geometry.rs:272:22
[INFO] [stderr]     |
[INFO] [stderr] 272 |       ! (0..2).any(|i| (
[INFO] [stderr]     |  ______________________^
[INFO] [stderr] 273 | |       other.br().coords[i] < self .tl().coords[i] ||
[INFO] [stderr]     | |______^
[INFO] [stderr] 274 |         self .br().coords[i] < other.tl().coords[i]
[INFO] [stderr]     |  __________________________________________________^
[INFO] [stderr] 275 | |     ))
[INFO] [stderr]     | |_____^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 272 ~     ! (0..2).any(|i| other.br().coords[i] < self .tl().coords[i] ||
[INFO] [stderr] 273 ~       self .br().coords[i] < other.tl().coords[i])
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: `otter-base` (lib) generated 1 warning (run `cargo fix --lib -p otter-base` to apply 1 suggestion)
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> support/debugmutex.rs:15:15
[INFO] [stderr]    |
[INFO] [stderr] 15 |   pub fn lock(&self) -> MutexGuard<T> {
[INFO] [stderr]    |               ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |               |
[INFO] [stderr]    |               the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 15 |   pub fn lock(&self) -> MutexGuard<'_, T> {
[INFO] [stderr]    |                                    +++
[INFO] [stderr] 
[INFO] [stderr] warning: `otter-support` (lib) generated 1 warning (run `cargo fix --lib -p otter-support` to apply 1 suggestion)
[INFO] [stderr] warning: ambiguous glob re-exports
[INFO] [stderr]   --> src/imports.rs:90:9
[INFO] [stderr]    |
[INFO] [stderr] 90 | pub use crate::fastsplit::*;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^ the name `RefTraitObjectPieceTraitExt` in the type namespace is first re-exported here
[INFO] [stderr] 91 | pub use crate::gamestate::*;
[INFO] [stderr]    |         ------------------- but the name `RefTraitObjectPieceTraitExt` in the type namespace is also re-exported here
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous glob re-exports
[INFO] [stderr]   --> src/prelude.rs:31:9
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub use crate::imports::*;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^ the name `Error` in the type namespace is first re-exported here
[INFO] [stderr] ...
[INFO] [stderr] 37 | pub use otter_support::imports::*;
[INFO] [stderr]    |         ------------------------- but the name `Error` in the type namespace is also re-exported here
[INFO] [stderr] 
[INFO] [stderr] warning: `Error` is ambiguous
[INFO] [stderr]     --> src/global.rs:1490:8
[INFO] [stderr]      |
[INFO] [stderr] 1490 |     E: Error,
[INFO] [stderr]      |        ^^^^^ ambiguous name
[INFO] [stderr]      |
[INFO] [stderr]      = note: ambiguous because of multiple glob imports of a name in the same module
[INFO] [stderr] note: `Error` could refer to the trait imported here
[INFO] [stderr]     --> src/prelude.rs:31:9
[INFO] [stderr]      |
[INFO] [stderr]   31 | pub use crate::imports::*;
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr]      = help: consider adding an explicit import of `Error` to disambiguate
[INFO] [stderr] note: `Error` could also refer to the enum imported here
[INFO] [stderr]     --> src/prelude.rs:37:9
[INFO] [stderr]      |
[INFO] [stderr]   37 | pub use otter_support::imports::*;
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      = help: consider adding an explicit import of `Error` to disambiguate
[INFO] [stderr]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]      = note: for more information, see issue #114095 <https://github.com/rust-lang/rust/issues/114095>
[INFO] [stderr]      = note: `#[warn(ambiguous_glob_imports)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `Error` is ambiguous
[INFO] [stderr]    --> src/updates.rs:476:30
[INFO] [stderr]     |
[INFO] [stderr] 476 |   pub fn try_map<NS2, ZC2, E:Error,
[INFO] [stderr]     |                              ^^^^^ ambiguous name
[INFO] [stderr]     |
[INFO] [stderr]     = note: ambiguous because of multiple glob imports of a name in the same module
[INFO] [stderr] note: `Error` could refer to the trait imported here
[INFO] [stderr]    --> src/prelude.rs:31:9
[INFO] [stderr]     |
[INFO] [stderr]  31 | pub use crate::imports::*;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     = help: consider adding an explicit import of `Error` to disambiguate
[INFO] [stderr] note: `Error` could also refer to the enum imported here
[INFO] [stderr]    --> src/prelude.rs:37:9
[INFO] [stderr]     |
[INFO] [stderr]  37 | pub use otter_support::imports::*;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     = help: consider adding an explicit import of `Error` to disambiguate
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #114095 <https://github.com/rust-lang/rust/issues/114095>
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around closure body
[INFO] [stderr]    --> src/gamestate.rs:133:43
[INFO] [stderr]     |
[INFO] [stderr] 133 |         if s.as_bytes().iter().all(|&c:&u8| (
[INFO] [stderr]     |  ___________________________________________^
[INFO] [stderr] 134 | |         c.is_ascii_alphanumeric() ||
[INFO] [stderr]     | |________^
[INFO] [stderr] 135 |           b"-_. ()".contains(&c)
[INFO] [stderr]     |  _______________________________^
[INFO] [stderr] 136 | |       )) {
[INFO] [stderr]     | |_______^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 133 ~       if s.as_bytes().iter().all(|&c:&u8| c.is_ascii_alphanumeric() ||
[INFO] [stderr] 134 ~         b"-_. ()".contains(&c)) {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around closure body
[INFO] [stderr]     --> src/hidden.rs:1004:7
[INFO] [stderr]      |
[INFO] [stderr] 1004 |     (|| (
[INFO] [stderr]      |  _______^
[INFO] [stderr] 1005 | |     (||{
[INFO] [stderr]      | |____^
[INFO] [stderr] ...
[INFO] [stderr] 1029 |       })
[INFO] [stderr]      |  _______^
[INFO] [stderr] 1030 | |   ))()?;
[INFO] [stderr]      | |___^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 1004 ~   (|| (||{
[INFO] [stderr] 1005 |       let ogpc = gpieces.get_mut(occulter).ok_or_else(
[INFO] [stderr]  ...
[INFO] [stderr] 1027 |       e
[INFO] [stderr] 1028 ~     }))()?;
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: Use of ambiguously glob imported trait `RefTraitObjectPieceTraitExt`
[INFO] [stderr]    --> src/currency.rs:159:8
[INFO] [stderr]     |
[INFO] [stderr]  16 | use crate::prelude::*;
[INFO] [stderr]     |     -------------- `RefTraitObjectPieceTraitExt` imported ambiguously here
[INFO] [stderr] ...
[INFO] [stderr] 159 |       .downcast_piece_fastsplit()?;
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: Import `RefTraitObjectPieceTraitExt` explicitly
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #147992 <https://github.com/rust-lang/rust/issues/147992>
[INFO] [stderr]     = note: `#[warn(ambiguous_glob_imported_traits)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: Use of ambiguously glob imported trait `RefTraitObjectPieceTraitExt`
[INFO] [stderr]    --> src/currency.rs:225:10
[INFO] [stderr]     |
[INFO] [stderr]  16 | use crate::prelude::*;
[INFO] [stderr]     |     -------------- `RefTraitObjectPieceTraitExt` imported ambiguously here
[INFO] [stderr] ...
[INFO] [stderr] 225 |         .downcast_piece_fastsplit().ok()?;
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: Import `RefTraitObjectPieceTraitExt` explicitly
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #147992 <https://github.com/rust-lang/rust/issues/147992>
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/global.rs:1290:9
[INFO] [stderr]      |
[INFO] [stderr] 1290 |     for mut p in gs.pieces.values_mut() {
[INFO] [stderr]      |         ----^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait `ReadSeek` is never used
[INFO] [stderr]    --> src/bundles.rs:355:7
[INFO] [stderr]     |
[INFO] [stderr] 355 | trait ReadSeek: Read + io::Seek { }
[INFO] [stderr]     |       ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> src/bundles.rs:447:6
[INFO] [stderr]     |
[INFO] [stderr] 447 |   IE(IE),
[INFO] [stderr]     |   -- ^^
[INFO] [stderr]     |   |
[INFO] [stderr]     |   field in this variant
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ReloadError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]     |
[INFO] [stderr] 447 -   IE(IE),
[INFO] [stderr] 447 +   IE(()),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> src/bundles.rs:448:14
[INFO] [stderr]     |
[INFO] [stderr] 448 |   Unloadable(BadBundle),
[INFO] [stderr]     |   ---------- ^^^^^^^^^
[INFO] [stderr]     |   |
[INFO] [stderr]     |   field in this variant
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ReloadError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]     |
[INFO] [stderr] 448 -   Unloadable(BadBundle),
[INFO] [stderr] 448 +   Unloadable(()),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> src/hidden.rs:891:31
[INFO] [stderr]     |
[INFO] [stderr] 891 | pub struct NascentOccultation(Occultation);
[INFO] [stderr]     |            ------------------ ^^^^^^^^^^^
[INFO] [stderr]     |            |
[INFO] [stderr]     |            field in this struct
[INFO] [stderr]     |
[INFO] [stderr]     = help: consider removing this field
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/occultilks.rs:55:16
[INFO] [stderr]    |
[INFO] [stderr] 55 |       Distinct(OccultIlkData),
[INFO] [stderr]    |       -------- ^^^^^^^^^^^^^
[INFO] [stderr]    |       |
[INFO] [stderr]    |       field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `IOccultIlk_New` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 55 -       Distinct(OccultIlkData),
[INFO] [stderr] 55 +       Distinct(()),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/occultilks.rs:56:11
[INFO] [stderr]    |
[INFO] [stderr] 56 |       Mix(OccultIlkOwningId),
[INFO] [stderr]    |       --- ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |       |
[INFO] [stderr]    |       field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `IOccultIlk_New` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 56 -       Mix(OccultIlkOwningId),
[INFO] [stderr] 56 +       Mix(()),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/bundles.rs:516:49
[INFO] [stderr]     |
[INFO] [stderr] 516 | #[derive(Copy,Clone,Debug,EnumCount,EnumMessage,ToPrimitive)]
[INFO] [stderr]     |                                                 ^----------
[INFO] [stderr]     |                                                 |
[INFO] [stderr]     |                                                 `ToPrimitive` is not local
[INFO] [stderr]     |                                                 move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_Phase`
[INFO] [stderr] 517 | enum Phase {
[INFO] [stderr]     |      ----- `Phase` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stderr]     = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/bundles.rs:525:49
[INFO] [stderr]     |
[INFO] [stderr] 525 | #[derive(Copy,Clone,Debug,EnumCount,EnumMessage,ToPrimitive)]
[INFO] [stderr]     |                                                 ^----------
[INFO] [stderr]     |                                                 |
[INFO] [stderr]     |                                                 `ToPrimitive` is not local
[INFO] [stderr]     |                                                 move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_FinishProgress`
[INFO] [stderr] 526 | enum FinishProgress {
[INFO] [stderr]     |      -------------- `FinishProgress` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/bundles.rs:542:51
[INFO] [stderr]     |
[INFO] [stderr] 542 |   #[derive(Copy,Clone,Debug,EnumCount,EnumMessage,ToPrimitive)]
[INFO] [stderr]     |                                                   ^----------
[INFO] [stderr]     |                                                   |
[INFO] [stderr]     |                                                   `ToPrimitive` is not local
[INFO] [stderr]     |                                                   move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_ToScan` and up 2 bodies
[INFO] [stderr] 543 |   enum ToScan {
[INFO] [stderr]     |        ------ `ToScan` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/clock.rs:423:1
[INFO] [stderr]     |
[INFO] [stderr] 423 | #[dyn_upcast]
[INFO] [stderr]     | ^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `__SelfType` is not local
[INFO] [stderr]     | `DynCast` is not local
[INFO] [stderr]     | `__ConfigType` is not local
[INFO] [stderr]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stderr]     |
[INFO] [stderr]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/clock.rs:435:1
[INFO] [stderr]     |
[INFO] [stderr] 435 | #[dyn_upcast]
[INFO] [stderr]     | ^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `__SelfType` is not local
[INFO] [stderr]     | `DynCast` is not local
[INFO] [stderr]     | `__ConfigType` is not local
[INFO] [stderr]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stderr]     |
[INFO] [stderr]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/clock.rs:461:5
[INFO] [stderr]     |
[INFO] [stderr] 444 |   #[throws(IE)]
[INFO] [stderr]     |   ------------- move the `impl` block outside of this method `svg_piece`
[INFO] [stderr] ...
[INFO] [stderr] 461 |     impl URenderState {
[INFO] [stderr]     |     ^^^^^------------
[INFO] [stderr]     |          |
[INFO] [stderr]     |          `URenderState` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/utils.rs:669:8
[INFO] [stderr]     |
[INFO] [stderr] 669 |       $( #[ $attr ] )*
[INFO] [stderr]     |          ^^^^^^^^^^
[INFO] [stderr]     |          |
[INFO] [stderr]     |          `__SelfType` is not local
[INFO] [stderr]     |          `DynCast` is not local
[INFO] [stderr]     |          `__ConfigType` is not local
[INFO] [stderr]     |          move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/currency.rs:117:1
[INFO] [stderr]     |
[INFO] [stderr] 117 | / impl_via_ambassador!{
[INFO] [stderr] 118 | |   #[dyn_upcast]
[INFO] [stderr] 119 | |   impl OutlineTrait for Banknote { image }
[INFO] [stderr] 120 | | }
[INFO] [stderr]     | |_- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/currency.rs:122:1
[INFO] [stderr]     |
[INFO] [stderr] 122 | #[dyn_upcast]
[INFO] [stderr]     | ^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `__SelfType` is not local
[INFO] [stderr]     | `DynCast` is not local
[INFO] [stderr]     | `__ConfigType` is not local
[INFO] [stderr]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stderr]     |
[INFO] [stderr]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/utils.rs:669:8
[INFO] [stderr]     |
[INFO] [stderr] 669 |       $( #[ $attr ] )*
[INFO] [stderr]     |          ^^^^^^^^^^
[INFO] [stderr]     |          |
[INFO] [stderr]     |          `__SelfType` is not local
[INFO] [stderr]     |          `DynCast` is not local
[INFO] [stderr]     |          `__ConfigType` is not local
[INFO] [stderr]     |          move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/deck.rs:29:1
[INFO] [stderr]     |
[INFO] [stderr]  29 | / impl_via_ambassador!{
[INFO] [stderr]  30 | |   #[dyn_upcast]
[INFO] [stderr]  31 | |   impl OutlineTrait for Deck { shape }
[INFO] [stderr]  32 | | }
[INFO] [stderr]     | |_- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]   --> src/deck.rs:97:1
[INFO] [stderr]    |
[INFO] [stderr] 97 | #[dyn_upcast]
[INFO] [stderr]    | ^^^^^^^^^^^^^
[INFO] [stderr]    | |
[INFO] [stderr]    | `__SelfType` is not local
[INFO] [stderr]    | `DynCast` is not local
[INFO] [stderr]    | `__ConfigType` is not local
[INFO] [stderr]    | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stderr]    |
[INFO] [stderr]    = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]    = 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] [stderr]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]    = 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] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/dice.rs:313:1
[INFO] [stderr]     |
[INFO] [stderr] 313 | #[dyn_upcast]
[INFO] [stderr]     | ^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `__SelfType` is not local
[INFO] [stderr]     | `DynCast` is not local
[INFO] [stderr]     | `__ConfigType` is not local
[INFO] [stderr]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stderr]     |
[INFO] [stderr]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/dice.rs:342:1
[INFO] [stderr]     |
[INFO] [stderr] 342 | #[dyn_upcast]
[INFO] [stderr]     | ^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `__SelfType` is not local
[INFO] [stderr]     | `DynCast` is not local
[INFO] [stderr]     | `__ConfigType` is not local
[INFO] [stderr]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stderr]     |
[INFO] [stderr]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/utils.rs:669:8
[INFO] [stderr]     |
[INFO] [stderr] 669 |       $( #[ $attr ] )*
[INFO] [stderr]     |          ^^^^^^^^^^
[INFO] [stderr]     |          |
[INFO] [stderr]     |          `__SelfType` is not local
[INFO] [stderr]     |          `DynCast` is not local
[INFO] [stderr]     |          `__ConfigType` is not local
[INFO] [stderr]     |          move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/fastsplit.rs:59:1
[INFO] [stderr]     |
[INFO] [stderr]  59 | / impl_via_ambassador!{
[INFO] [stderr]  60 | |   #[dyn_upcast]
[INFO] [stderr]  61 | |   impl OutlineTrait for Piece { inner() } 
[INFO] [stderr] ...   |
[INFO] [stderr]  67 | |   impl PieceTrait for Piece { inner() }
[INFO] [stderr]  68 | | }
[INFO] [stderr]     | |_- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:148:1
[INFO] [stderr]     |
[INFO] [stderr] 148 | #[typetag::serde(tag="type")]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Serialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_PieceXData_registry`
[INFO] [stderr] 149 | pub trait PieceXData: Downcast + Debug + Send + 'static {
[INFO] [stderr]     |           ---------- `PieceXData` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:148:1
[INFO] [stderr]     |
[INFO] [stderr] 148 | #[typetag::serde(tag="type")]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Send` is not local
[INFO] [stderr]     | `Serialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_PieceXData_registry`
[INFO] [stderr] 149 | pub trait PieceXData: Downcast + Debug + Send + 'static {
[INFO] [stderr]     |           ---------- `PieceXData` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:148:1
[INFO] [stderr]     |
[INFO] [stderr] 148 | #[typetag::serde(tag="type")]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Sync` is not local
[INFO] [stderr]     | `Serialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_PieceXData_registry`
[INFO] [stderr] 149 | pub trait PieceXData: Downcast + Debug + Send + 'static {
[INFO] [stderr]     |           ---------- `PieceXData` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:148:1
[INFO] [stderr]     |
[INFO] [stderr] 148 | #[typetag::serde(tag="type")]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Send` is not local
[INFO] [stderr]     | `Sync` is not local
[INFO] [stderr]     | `Serialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_PieceXData_registry`
[INFO] [stderr] 149 | pub trait PieceXData: Downcast + Debug + Send + 'static {
[INFO] [stderr]     |           ---------- `PieceXData` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:148:1
[INFO] [stderr]     |
[INFO] [stderr] 148 | #[typetag::serde(tag="type")]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move the `impl` block outside of this constant `_PieceXData_registry`
[INFO] [stderr] 149 | pub trait PieceXData: Downcast + Debug + Send + 'static {
[INFO] [stderr]     |           ---------- `PieceXData` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:148:1
[INFO] [stderr]     |
[INFO] [stderr] 148 | #[typetag::serde(tag="type")]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Strictest` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_PieceXData_registry`
[INFO] [stderr] 149 | pub trait PieceXData: Downcast + Debug + Send + 'static {
[INFO] [stderr]     |           ---------- `PieceXData` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:148:1
[INFO] [stderr]     |
[INFO] [stderr] 148 | #[typetag::serde(tag="type")]
[INFO] [stderr]     | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Box` is not local
[INFO] [stderr]     | `Send` is not local
[INFO] [stderr]     | `Deserialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_PieceXData_registry`
[INFO] [stderr] 149 | pub trait PieceXData: Downcast + Debug + Send + 'static {
[INFO] [stderr]     |           ---------- `PieceXData` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:148:1
[INFO] [stderr]     |
[INFO] [stderr] 148 | #[typetag::serde(tag="type")]
[INFO] [stderr]     | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Box` is not local
[INFO] [stderr]     | `Deserialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_PieceXData_registry`
[INFO] [stderr] 149 | pub trait PieceXData: Downcast + Debug + Send + 'static {
[INFO] [stderr]     |           ---------- `PieceXData` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:156:1
[INFO] [stderr]     |
[INFO] [stderr] 156 | #[dyn_upcast]
[INFO] [stderr]     | -^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Config` is not local
[INFO] [stderr]     | `DynCastConfig` is not local
[INFO] [stderr]     | move the `impl` block outside of this closure `<unnameable>` and up 2 bodies
[INFO] [stderr]     |
[INFO] [stderr]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:156:1
[INFO] [stderr]     |
[INFO] [stderr] 156 | #[dyn_upcast]
[INFO] [stderr]     | -^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Config` is not local
[INFO] [stderr]     | `DynCastConfigTargetTest` is not local
[INFO] [stderr]     | move the `impl` block outside of this closure `<unnameable>` and up 2 bodies
[INFO] [stderr]     |
[INFO] [stderr]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:156:1
[INFO] [stderr]     |
[INFO] [stderr] 156 | #[dyn_upcast]
[INFO] [stderr]     | ^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `OutlineTrait` is not local
[INFO] [stderr]     | `GetDynCastConfig` is not local
[INFO] [stderr]     | move the `impl` block outside of this closure `<unnameable>` and up 2 bodies
[INFO] [stderr] 157 | pub trait OutlineTrait: Debug + Sync + Send + 'static {
[INFO] [stderr]     |           ------------ `OutlineTrait` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:187:1
[INFO] [stderr]     |
[INFO] [stderr] 187 | #[dyn_upcast]
[INFO] [stderr]     | -^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Config` is not local
[INFO] [stderr]     | `DynCastConfig` is not local
[INFO] [stderr]     | move the `impl` block outside of this closure `<unnameable>` and up 2 bodies
[INFO] [stderr]     |
[INFO] [stderr]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:187:1
[INFO] [stderr]     |
[INFO] [stderr] 187 | #[dyn_upcast]
[INFO] [stderr]     | -^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Config` is not local
[INFO] [stderr]     | `DynCastConfigTargetTest` is not local
[INFO] [stderr]     | move the `impl` block outside of this closure `<unnameable>` and up 2 bodies
[INFO] [stderr]     |
[INFO] [stderr]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:187:1
[INFO] [stderr]     |
[INFO] [stderr] 187 | #[dyn_upcast]
[INFO] [stderr]     | ^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `PieceBaseTrait` is not local
[INFO] [stderr]     | `GetDynCastConfig` is not local
[INFO] [stderr]     | move the `impl` block outside of this closure `<unnameable>` and up 2 bodies
[INFO] [stderr] 188 | pub trait PieceBaseTrait: OutlineTrait + Send + Debug + 'static {
[INFO] [stderr]     |           -------------- `PieceBaseTrait` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the macro `::cast_trait_object::impl_dyn_cast_config` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:196:1
[INFO] [stderr]     |
[INFO] [stderr] 196 | #[typetag::serde] // usual variable: p
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Serialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_PieceTrait_registry`
[INFO] [stderr] 197 | pub trait PieceTrait: PieceBaseTrait + Downcast + Send + Debug + 'static {
[INFO] [stderr]     |           ---------- `PieceTrait` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:196:1
[INFO] [stderr]     |
[INFO] [stderr] 196 | #[typetag::serde] // usual variable: p
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Send` is not local
[INFO] [stderr]     | `Serialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_PieceTrait_registry`
[INFO] [stderr] 197 | pub trait PieceTrait: PieceBaseTrait + Downcast + Send + Debug + 'static {
[INFO] [stderr]     |           ---------- `PieceTrait` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:196:1
[INFO] [stderr]     |
[INFO] [stderr] 196 | #[typetag::serde] // usual variable: p
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Sync` is not local
[INFO] [stderr]     | `Serialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_PieceTrait_registry`
[INFO] [stderr] 197 | pub trait PieceTrait: PieceBaseTrait + Downcast + Send + Debug + 'static {
[INFO] [stderr]     |           ---------- `PieceTrait` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:196:1
[INFO] [stderr]     |
[INFO] [stderr] 196 | #[typetag::serde] // usual variable: p
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Send` is not local
[INFO] [stderr]     | `Sync` is not local
[INFO] [stderr]     | `Serialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_PieceTrait_registry`
[INFO] [stderr] 197 | pub trait PieceTrait: PieceBaseTrait + Downcast + Send + Debug + 'static {
[INFO] [stderr]     |           ---------- `PieceTrait` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:196:1
[INFO] [stderr]     |
[INFO] [stderr] 196 | #[typetag::serde] // usual variable: p
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^ move the `impl` block outside of this constant `_PieceTrait_registry`
[INFO] [stderr] 197 | pub trait PieceTrait: PieceBaseTrait + Downcast + Send + Debug + 'static {
[INFO] [stderr]     |           ---------- `PieceTrait` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:196:1
[INFO] [stderr]     |
[INFO] [stderr] 196 | #[typetag::serde] // usual variable: p
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Strictest` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_PieceTrait_registry`
[INFO] [stderr] 197 | pub trait PieceTrait: PieceBaseTrait + Downcast + Send + Debug + 'static {
[INFO] [stderr]     |           ---------- `PieceTrait` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:196:1
[INFO] [stderr]     |
[INFO] [stderr] 196 | #[typetag::serde] // usual variable: p
[INFO] [stderr]     | -^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Box` is not local
[INFO] [stderr]     | `Send` is not local
[INFO] [stderr]     | `Deserialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_PieceTrait_registry`
[INFO] [stderr] 197 | pub trait PieceTrait: PieceBaseTrait + Downcast + Send + Debug + 'static {
[INFO] [stderr]     |           ---------- `PieceTrait` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:196:1
[INFO] [stderr]     |
[INFO] [stderr] 196 | #[typetag::serde] // usual variable: p
[INFO] [stderr]     | -^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Box` is not local
[INFO] [stderr]     | `Deserialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_PieceTrait_registry`
[INFO] [stderr] 197 | pub trait PieceTrait: PieceBaseTrait + Downcast + Send + Debug + 'static {
[INFO] [stderr]     |           ---------- `PieceTrait` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:301:1
[INFO] [stderr]     |
[INFO] [stderr] 301 | #[typetag::serde]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Serialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_InertPieceTrait_registry`
[INFO] [stderr] 302 | pub trait InertPieceTrait: PieceBaseTrait {
[INFO] [stderr]     |           --------------- `InertPieceTrait` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:301:1
[INFO] [stderr]     |
[INFO] [stderr] 301 | #[typetag::serde]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Send` is not local
[INFO] [stderr]     | `Serialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_InertPieceTrait_registry`
[INFO] [stderr] 302 | pub trait InertPieceTrait: PieceBaseTrait {
[INFO] [stderr]     |           --------------- `InertPieceTrait` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:301:1
[INFO] [stderr]     |
[INFO] [stderr] 301 | #[typetag::serde]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Sync` is not local
[INFO] [stderr]     | `Serialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_InertPieceTrait_registry`
[INFO] [stderr] 302 | pub trait InertPieceTrait: PieceBaseTrait {
[INFO] [stderr]     |           --------------- `InertPieceTrait` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:301:1
[INFO] [stderr]     |
[INFO] [stderr] 301 | #[typetag::serde]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Send` is not local
[INFO] [stderr]     | `Sync` is not local
[INFO] [stderr]     | `Serialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_InertPieceTrait_registry`
[INFO] [stderr] 302 | pub trait InertPieceTrait: PieceBaseTrait {
[INFO] [stderr]     |           --------------- `InertPieceTrait` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:301:1
[INFO] [stderr]     |
[INFO] [stderr] 301 | #[typetag::serde]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^ move the `impl` block outside of this constant `_InertPieceTrait_registry`
[INFO] [stderr] 302 | pub trait InertPieceTrait: PieceBaseTrait {
[INFO] [stderr]     |           --------------- `InertPieceTrait` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:301:1
[INFO] [stderr]     |
[INFO] [stderr] 301 | #[typetag::serde]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Strictest` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_InertPieceTrait_registry`
[INFO] [stderr] 302 | pub trait InertPieceTrait: PieceBaseTrait {
[INFO] [stderr]     |           --------------- `InertPieceTrait` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:301:1
[INFO] [stderr]     |
[INFO] [stderr] 301 | #[typetag::serde]
[INFO] [stderr]     | -^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Box` is not local
[INFO] [stderr]     | `Deserialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_InertPieceTrait_registry`
[INFO] [stderr] 302 | pub trait InertPieceTrait: PieceBaseTrait {
[INFO] [stderr]     |           --------------- `InertPieceTrait` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:362:1
[INFO] [stderr]     |
[INFO] [stderr] 362 | #[typetag::serde(tag="type")]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Serialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stderr] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stderr]     |           --------- `PieceSpec` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:362:1
[INFO] [stderr]     |
[INFO] [stderr] 362 | #[typetag::serde(tag="type")]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Send` is not local
[INFO] [stderr]     | `Serialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stderr] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stderr]     |           --------- `PieceSpec` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:362:1
[INFO] [stderr]     |
[INFO] [stderr] 362 | #[typetag::serde(tag="type")]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Sync` is not local
[INFO] [stderr]     | `Serialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stderr] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stderr]     |           --------- `PieceSpec` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:362:1
[INFO] [stderr]     |
[INFO] [stderr] 362 | #[typetag::serde(tag="type")]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Send` is not local
[INFO] [stderr]     | `Sync` is not local
[INFO] [stderr]     | `Serialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stderr] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stderr]     |           --------- `PieceSpec` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:362:1
[INFO] [stderr]     |
[INFO] [stderr] 362 | #[typetag::serde(tag="type")]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stderr] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stderr]     |           --------- `PieceSpec` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:362:1
[INFO] [stderr]     |
[INFO] [stderr] 362 | #[typetag::serde(tag="type")]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Strictest` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stderr] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stderr]     |           --------- `PieceSpec` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:362:1
[INFO] [stderr]     |
[INFO] [stderr] 362 | #[typetag::serde(tag="type")]
[INFO] [stderr]     | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Box` is not local
[INFO] [stderr]     | `Send` is not local
[INFO] [stderr]     | `Sync` is not local
[INFO] [stderr]     | `Deserialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stderr] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stderr]     |           --------- `PieceSpec` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:362:1
[INFO] [stderr]     |
[INFO] [stderr] 362 | #[typetag::serde(tag="type")]
[INFO] [stderr]     | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Box` is not local
[INFO] [stderr]     | `Deserialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stderr] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stderr]     |           --------- `PieceSpec` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:362:1
[INFO] [stderr]     |
[INFO] [stderr] 362 | #[typetag::serde(tag="type")]
[INFO] [stderr]     | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Box` is not local
[INFO] [stderr]     | `Send` is not local
[INFO] [stderr]     | `Deserialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stderr] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stderr]     |           --------- `PieceSpec` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/gamestate.rs:362:1
[INFO] [stderr]     |
[INFO] [stderr] 362 | #[typetag::serde(tag="type")]
[INFO] [stderr]     | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Box` is not local
[INFO] [stderr]     | `Sync` is not local
[INFO] [stderr]     | `Deserialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_PieceSpec_registry`
[INFO] [stderr] 363 | pub trait PieceSpec: Debug + Sync + Send + 'static {
[INFO] [stderr]     |           --------- `PieceSpec` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/global.rs:305:31
[INFO] [stderr]     |
[INFO] [stderr] 305 |   pub fn lock_even_destroying(&self) -> MutexGuard<InstanceContainer> {
[INFO] [stderr]     |                               ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 305 |   pub fn lock_even_destroying(&self) -> MutexGuard<'_, InstanceContainer> {
[INFO] [stderr]     |                                                    +++
[INFO] [stderr] 
[INFO] [stderr] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stderr]    --> src/global.rs:340:62
[INFO] [stderr]     |
[INFO] [stderr] 340 |   fn lock_bundles<'r>(&'r self) -> Unauthorised<BundlesGuard<'_>, A> {
[INFO] [stderr]     |                        -- the lifetime is named here         ^^ the same lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: consistently use `'r`
[INFO] [stderr]     |
[INFO] [stderr] 340 -   fn lock_bundles<'r>(&'r self) -> Unauthorised<BundlesGuard<'_>, A> {
[INFO] [stderr] 340 +   fn lock_bundles<'r>(&'r self) -> Unauthorised<BundlesGuard<'r>, A> {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]     --> src/global.rs:1530:21
[INFO] [stderr]      |
[INFO] [stderr] 1530 |   pub fn values_mut(&mut self) -> sm::ValuesMut<PieceId, GPiece> {
[INFO] [stderr]      |                     ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]      |                     |
[INFO] [stderr]      |                     the lifetime is elided here
[INFO] [stderr]      |
[INFO] [stderr]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]      |
[INFO] [stderr] 1530 |   pub fn values_mut(&mut self) -> sm::ValuesMut<'_, PieceId, GPiece> {
[INFO] [stderr]      |                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/utils.rs:669:8
[INFO] [stderr]     |
[INFO] [stderr] 669 |       $( #[ $attr ] )*
[INFO] [stderr]     |          ^^^^^^^^^^
[INFO] [stderr]     |          |
[INFO] [stderr]     |          `__SelfType` is not local
[INFO] [stderr]     |          `DynCast` is not local
[INFO] [stderr]     |          `__ConfigType` is not local
[INFO] [stderr]     |          move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/hand.rs:79:1
[INFO] [stderr]     |
[INFO] [stderr]  79 | / impl_via_ambassador!{
[INFO] [stderr]  80 | |   #[dyn_upcast]
[INFO] [stderr]  81 | |   impl OutlineTrait for Hand { shape }
[INFO] [stderr]  82 | | }
[INFO] [stderr]     | |_- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/hand.rs:143:1
[INFO] [stderr]     |
[INFO] [stderr] 143 | #[dyn_upcast]
[INFO] [stderr]     | ^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `__SelfType` is not local
[INFO] [stderr]     | `DynCast` is not local
[INFO] [stderr]     | `__ConfigType` is not local
[INFO] [stderr]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stderr]     |
[INFO] [stderr]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]   --> src/outline.rs:18:3
[INFO] [stderr]    |
[INFO] [stderr] 18 |     #[dyn_upcast(OutlineTrait)]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     `__SelfType` is not local
[INFO] [stderr]    |     `DynCast` is not local
[INFO] [stderr]    |     `__ConfigType` is not local
[INFO] [stderr]    |     move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stderr] ...
[INFO] [stderr] 51 | / shape_defns! {
[INFO] [stderr] 52 | |   Circle "Circle";
[INFO] [stderr] 53 | |   Rect   "Rect"  ;
[INFO] [stderr] 54 | | }
[INFO] [stderr]    | |_- in this macro invocation
[INFO] [stderr]    |
[INFO] [stderr]    = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]    = 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] [stderr]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]    = 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] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]   --> src/outline.rs:62:1
[INFO] [stderr]    |
[INFO] [stderr] 62 | #[dyn_upcast]
[INFO] [stderr]    | ^^^^^^^^^^^^^
[INFO] [stderr]    | |
[INFO] [stderr]    | `__SelfType` is not local
[INFO] [stderr]    | `DynCast` is not local
[INFO] [stderr]    | `__ConfigType` is not local
[INFO] [stderr]    | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stderr]    |
[INFO] [stderr]    = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]    = 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] [stderr]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]    = 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] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/outline.rs:109:1
[INFO] [stderr]     |
[INFO] [stderr] 109 | #[dyn_upcast]
[INFO] [stderr]     | ^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `__SelfType` is not local
[INFO] [stderr]     | `DynCast` is not local
[INFO] [stderr]     | `__ConfigType` is not local
[INFO] [stderr]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stderr]     |
[INFO] [stderr]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/utils.rs:669:8
[INFO] [stderr]     |
[INFO] [stderr] 669 |       $( #[ $attr ] )*
[INFO] [stderr]     |          ^^^^^^^^^^
[INFO] [stderr]     |          |
[INFO] [stderr]     |          `DerivedDynCast` is not local
[INFO] [stderr]     |          `ConcreteDynCastConfig` is not local
[INFO] [stderr]     |          `Config` is not local
[INFO] [stderr]     |          move the `impl` block outside of this closure `<unnameable>` and up 2 bodies
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/pieces.rs:108:1
[INFO] [stderr]     |
[INFO] [stderr] 108 | / impl_via_ambassador! {
[INFO] [stderr] 109 | |   #[dyn_upcast]
[INFO] [stderr] 110 | |   impl [ Desc, Outl:'static ]
[INFO] [stderr] 111 | |     OutlineTrait for GenericSimpleShape<Desc, Outl>
[INFO] [stderr]     | |     ------------     ------------------ `GenericSimpleShape` is not local
[INFO] [stderr]     | |     |
[INFO] [stderr]     | |     `OutlineTrait` is not local
[INFO] [stderr]     | |     `OutlineTrait` is not local
[INFO] [stderr]     | |     `OutlineTrait` is not local
[INFO] [stderr]     | |     `OutlineTrait` is not local
[INFO] [stderr] ...   |
[INFO] [stderr] 117 | | }
[INFO] [stderr]     | |_- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: the macro `::cast_trait_object::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/pieces.rs:120:1
[INFO] [stderr]     |
[INFO] [stderr] 120 | #[dyn_upcast]
[INFO] [stderr]     | ^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `__SelfType` is not local
[INFO] [stderr]     | `DynCast` is not local
[INFO] [stderr]     | `__ConfigType` is not local
[INFO] [stderr]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stderr]     |
[INFO] [stderr]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/pieces.rs:302:1
[INFO] [stderr]     |
[INFO] [stderr] 302 | #[typetag::serde(tag="type")]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Serialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_SimplePieceSpec_registry`
[INFO] [stderr] 303 | pub trait SimplePieceSpec: Debug {
[INFO] [stderr]     |           --------------- `SimplePieceSpec` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/pieces.rs:302:1
[INFO] [stderr]     |
[INFO] [stderr] 302 | #[typetag::serde(tag="type")]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Send` is not local
[INFO] [stderr]     | `Serialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_SimplePieceSpec_registry`
[INFO] [stderr] 303 | pub trait SimplePieceSpec: Debug {
[INFO] [stderr]     |           --------------- `SimplePieceSpec` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/pieces.rs:302:1
[INFO] [stderr]     |
[INFO] [stderr] 302 | #[typetag::serde(tag="type")]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Sync` is not local
[INFO] [stderr]     | `Serialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_SimplePieceSpec_registry`
[INFO] [stderr] 303 | pub trait SimplePieceSpec: Debug {
[INFO] [stderr]     |           --------------- `SimplePieceSpec` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/pieces.rs:302:1
[INFO] [stderr]     |
[INFO] [stderr] 302 | #[typetag::serde(tag="type")]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Send` is not local
[INFO] [stderr]     | `Sync` is not local
[INFO] [stderr]     | `Serialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_SimplePieceSpec_registry`
[INFO] [stderr] 303 | pub trait SimplePieceSpec: Debug {
[INFO] [stderr]     |           --------------- `SimplePieceSpec` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/pieces.rs:302:1
[INFO] [stderr]     |
[INFO] [stderr] 302 | #[typetag::serde(tag="type")]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move the `impl` block outside of this constant `_SimplePieceSpec_registry`
[INFO] [stderr] 303 | pub trait SimplePieceSpec: Debug {
[INFO] [stderr]     |           --------------- `SimplePieceSpec` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/pieces.rs:302:1
[INFO] [stderr]     |
[INFO] [stderr] 302 | #[typetag::serde(tag="type")]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Strictest` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_SimplePieceSpec_registry`
[INFO] [stderr] 303 | pub trait SimplePieceSpec: Debug {
[INFO] [stderr]     |           --------------- `SimplePieceSpec` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/pieces.rs:302:1
[INFO] [stderr]     |
[INFO] [stderr] 302 | #[typetag::serde(tag="type")]
[INFO] [stderr]     | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `Box` is not local
[INFO] [stderr]     | `Deserialize` is not local
[INFO] [stderr]     | move the `impl` block outside of this constant `_SimplePieceSpec_registry`
[INFO] [stderr] 303 | pub trait SimplePieceSpec: Debug {
[INFO] [stderr]     |           --------------- `SimplePieceSpec` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stderr]    --> src/shapelib.rs:246:32
[INFO] [stderr]     |
[INFO] [stderr] 246 |   fn unnest<'l,U>(&'l self) -> &SvgBaseName<U> where U: ?Sized, T: Borrow<U> {
[INFO] [stderr]     |                    --          ^^^^^^^^^^^^^^^ the same lifetime is elided here
[INFO] [stderr]     |                    |
[INFO] [stderr]     |                    the lifetime is named here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: consistently use `'l`
[INFO] [stderr]     |
[INFO] [stderr] 246 |   fn unnest<'l,U>(&'l self) -> &'l SvgBaseName<U> where U: ?Sized, T: Borrow<U> {
[INFO] [stderr]     |                                 ++
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/utils.rs:669:8
[INFO] [stderr]     |
[INFO] [stderr] 669 |       $( #[ $attr ] )*
[INFO] [stderr]     |          ^^^^^^^^^^
[INFO] [stderr]     |          |
[INFO] [stderr]     |          `__SelfType` is not local
[INFO] [stderr]     |          `DynCast` is not local
[INFO] [stderr]     |          `__ConfigType` is not local
[INFO] [stderr]     |          move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/shapelib.rs:263:1
[INFO] [stderr]     |
[INFO] [stderr] 263 | / impl_via_ambassador!{
[INFO] [stderr] 264 | |   #[dyn_upcast]
[INFO] [stderr] 265 | |   impl OutlineTrait for ItemInertForOcculted { outline }
[INFO] [stderr] 266 | | }
[INFO] [stderr]     | |_- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/shapelib.rs:267:1
[INFO] [stderr]     |
[INFO] [stderr] 267 | #[dyn_upcast]
[INFO] [stderr]     | ^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `__SelfType` is not local
[INFO] [stderr]     | `DynCast` is not local
[INFO] [stderr]     | `__ConfigType` is not local
[INFO] [stderr]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stderr]     |
[INFO] [stderr]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/utils.rs:669:8
[INFO] [stderr]     |
[INFO] [stderr] 669 |       $( #[ $attr ] )*
[INFO] [stderr]     |          ^^^^^^^^^^
[INFO] [stderr]     |          |
[INFO] [stderr]     |          `__SelfType` is not local
[INFO] [stderr]     |          `DynCast` is not local
[INFO] [stderr]     |          `__ConfigType` is not local
[INFO] [stderr]     |          move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/shapelib.rs:346:1
[INFO] [stderr]     |
[INFO] [stderr] 346 | / impl_via_ambassador!{
[INFO] [stderr] 347 | |   #[dyn_upcast]
[INFO] [stderr] 348 | |   impl OutlineTrait for Item { outline }
[INFO] [stderr] 349 | | }
[INFO] [stderr]     | |_- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/shapelib.rs:379:1
[INFO] [stderr]     |
[INFO] [stderr] 379 | #[dyn_upcast]
[INFO] [stderr]     | ^^^^^^^^^^^^^
[INFO] [stderr]     | |
[INFO] [stderr]     | `__SelfType` is not local
[INFO] [stderr]     | `DynCast` is not local
[INFO] [stderr]     | `__ConfigType` is not local
[INFO] [stderr]     | move the `impl` block outside of this closure `<unnameable>` and up 4 bodies
[INFO] [stderr]     |
[INFO] [stderr]     = note: the macro `$crate::impl_dyn_cast` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/spec.rs:168:10
[INFO] [stderr]     |
[INFO] [stderr] 168 | #[derive(FromPrimitive,ToPrimitive,EnumIter)]
[INFO] [stderr]     |          ^------------
[INFO] [stderr]     |          |
[INFO] [stderr]     |          `FromPrimitive` is not local
[INFO] [stderr]     |          move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_TablePermission`
[INFO] [stderr] 169 | pub enum TablePermission {
[INFO] [stderr]     |          --------------- `TablePermission` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/spec.rs:168:24
[INFO] [stderr]     |
[INFO] [stderr] 168 | #[derive(FromPrimitive,ToPrimitive,EnumIter)]
[INFO] [stderr]     |                        ^----------
[INFO] [stderr]     |                        |
[INFO] [stderr]     |                        `ToPrimitive` is not local
[INFO] [stderr]     |                        move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_TablePermission`
[INFO] [stderr] 169 | pub enum TablePermission {
[INFO] [stderr]     |          --------------- `TablePermission` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/spec.rs:456:3
[INFO] [stderr]     |
[INFO] [stderr] 456 |   #[typetag::serde(tag="access")]
[INFO] [stderr]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |   |
[INFO] [stderr]     |   `Serialize` is not local
[INFO] [stderr]     |   move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stderr] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stderr]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/spec.rs:456:3
[INFO] [stderr]     |
[INFO] [stderr] 456 |   #[typetag::serde(tag="access")]
[INFO] [stderr]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |   |
[INFO] [stderr]     |   `Send` is not local
[INFO] [stderr]     |   `Serialize` is not local
[INFO] [stderr]     |   move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stderr] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stderr]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/spec.rs:456:3
[INFO] [stderr]     |
[INFO] [stderr] 456 |   #[typetag::serde(tag="access")]
[INFO] [stderr]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |   |
[INFO] [stderr]     |   `Sync` is not local
[INFO] [stderr]     |   `Serialize` is not local
[INFO] [stderr]     |   move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stderr] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stderr]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/spec.rs:456:3
[INFO] [stderr]     |
[INFO] [stderr] 456 |   #[typetag::serde(tag="access")]
[INFO] [stderr]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |   |
[INFO] [stderr]     |   `Send` is not local
[INFO] [stderr]     |   `Sync` is not local
[INFO] [stderr]     |   `Serialize` is not local
[INFO] [stderr]     |   move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stderr] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stderr]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/spec.rs:456:3
[INFO] [stderr]     |
[INFO] [stderr] 456 |   #[typetag::serde(tag="access")]
[INFO] [stderr]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stderr] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stderr]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/spec.rs:456:3
[INFO] [stderr]     |
[INFO] [stderr] 456 |   #[typetag::serde(tag="access")]
[INFO] [stderr]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |   |
[INFO] [stderr]     |   `Strictest` is not local
[INFO] [stderr]     |   move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stderr] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stderr]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/spec.rs:456:3
[INFO] [stderr]     |
[INFO] [stderr] 456 |   #[typetag::serde(tag="access")]
[INFO] [stderr]     |   -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |   |
[INFO] [stderr]     |   `Box` is not local
[INFO] [stderr]     |   `Send` is not local
[INFO] [stderr]     |   `Sync` is not local
[INFO] [stderr]     |   `Deserialize` is not local
[INFO] [stderr]     |   move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stderr] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stderr]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/spec.rs:456:3
[INFO] [stderr]     |
[INFO] [stderr] 456 |   #[typetag::serde(tag="access")]
[INFO] [stderr]     |   -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |   |
[INFO] [stderr]     |   `Box` is not local
[INFO] [stderr]     |   `Deserialize` is not local
[INFO] [stderr]     |   move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stderr] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stderr]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/spec.rs:456:3
[INFO] [stderr]     |
[INFO] [stderr] 456 |   #[typetag::serde(tag="access")]
[INFO] [stderr]     |   -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |   |
[INFO] [stderr]     |   `Box` is not local
[INFO] [stderr]     |   `Send` is not local
[INFO] [stderr]     |   `Deserialize` is not local
[INFO] [stderr]     |   move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stderr] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stderr]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]    --> src/spec.rs:456:3
[INFO] [stderr]     |
[INFO] [stderr] 456 |   #[typetag::serde(tag="access")]
[INFO] [stderr]     |   -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |   |
[INFO] [stderr]     |   `Box` is not local
[INFO] [stderr]     |   `Sync` is not local
[INFO] [stderr]     |   `Deserialize` is not local
[INFO] [stderr]     |   move the `impl` block outside of this constant `_PlayerAccessSpec_registry`
[INFO] [stderr] 457 |   pub trait PlayerAccessSpec: Debug + Sync + Send {
[INFO] [stderr]     |             ---------------- `PlayerAccessSpec` is not local
[INFO] [stderr]     |
[INFO] [stderr]     = note: the attribute macro `typetag::serde` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]     = 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] [stderr]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]     = 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] [stderr]     = note: this warning originates in the attribute macro `typetag::serde` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/updates.rs:877:34
[INFO] [stderr]     |
[INFO] [stderr] 877 |     fn pue_piece_to_tue_p(pue_p: &PUE_P, player: PlayerId)
[INFO] [stderr]     |                                  ^^^^^^ the lifetime is elided here
[INFO] [stderr] 878 |                           -> Option<TUE_P> {
[INFO] [stderr]     |                                     ^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 878 |                           -> Option<TUE_P<'_>> {
[INFO] [stderr]     |                                          ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/updates.rs:884:34
[INFO] [stderr]     |
[INFO] [stderr] 884 |     fn pue_image_to_tue_i(pue_i: &PUE_I, player: PlayerId) -> Option<TUE_I> {
[INFO] [stderr]     |                                  ^^^^^^ the lifetime is elided here  ^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 884 |     fn pue_image_to_tue_i(pue_i: &PUE_I, player: PlayerId) -> Option<TUE_I<'_>> {
[INFO] [stderr]     |                                                                           ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/updates.rs:890:32
[INFO] [stderr]     |
[INFO] [stderr] 890 |     fn pue_piece_to_tue(pue_p: &PUE_P, player: PlayerId, dest: ClientId)
[INFO] [stderr]     |                                ^^^^^^ the lifetime is elided here
[INFO] [stderr] 891 |                         -> Option<TUE> {
[INFO] [stderr]     |                                   ^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 891 |                         -> Option<TUE<'_>> {
[INFO] [stderr]     |                                      ++++
[INFO] [stderr] 
[INFO] [stderr] warning: `otter` (lib) generated 105 warnings (1 duplicate) (run `cargo fix --lib -p otter` to apply 10 suggestions)
[INFO] [stderr] warning: `otter` (lib test) generated 105 warnings (105 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.87s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: otter v1.2.1 (/opt/rustwide/workdir)
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/otter-c427ab92cdacb6bf)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test bundles::id_file_parse ... ok
[INFO] [stdout] test accounts::loaded_acl::perm_set ... ok
[INFO] [stdout] test bundles::test_digest_write ... ok
[INFO] [stdout] test materials_format::test::ser_deser ... ok
[INFO] [stdout] test shapelib::test_dummy_item_name ... ok
[INFO] [stdout] test materials_format::test::compar ... ok
[INFO] [stdout] test shapelib::test_subst_mf1 ... ok
[INFO] [stdout] test updates::movehist::movehist_lens ... ok
[INFO] [stdout] test utils::test_parse_hex ... ok
[INFO] [stdout] test hidden::vpid::exhaustive ... ok
[INFO] [stdout] test gamestate::test::make_heavy ... ok
[INFO] [stdout] test shapelib::test_subst_mf2 ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.72s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/otterlib.rs (/opt/rustwide/target/debug/deps/otterlib-a87e5aa8207d4698)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/slotmap-slot-idx-test.rs (/opt/rustwide/target/debug/deps/slotmap_slot_idx_test-2eda72e509fb0254)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests otter
[INFO] [stderr] warning: unnecessary parentheses around closure body
[INFO] [stderr]    --> src/gamestate.rs:133:43
[INFO] [stderr]     |
[INFO] [stderr] 133 |         if s.as_bytes().iter().all(|&c:&u8| (
[INFO] [stderr]     |  ___________________________________________^
[INFO] [stderr] 134 | |         c.is_ascii_alphanumeric() ||
[INFO] [stderr]     | |________^
[INFO] [stderr] 135 |           b"-_. ()".contains(&c)
[INFO] [stderr]     |  _______________________________^
[INFO] [stderr] 136 | |       )) {
[INFO] [stderr]     | |_______^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 133 ~       if s.as_bytes().iter().all(|&c:&u8| c.is_ascii_alphanumeric() ||
[INFO] [stderr] 134 ~         b"-_. ()".contains(&c)) {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around closure body
[INFO] [stderr]     --> src/hidden.rs:1004:7
[INFO] [stderr]      |
[INFO] [stderr] 1004 |     (|| (
[INFO] [stderr]      |  _______^
[INFO] [stderr] 1005 | |     (||{
[INFO] [stderr]      | |____^
[INFO] [stderr] ...
[INFO] [stderr] 1029 |       })
[INFO] [stderr]      |  _______^
[INFO] [stderr] 1030 | |   ))()?;
[INFO] [stderr]      | |___^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 1004 ~   (|| (||{
[INFO] [stderr] 1005 |       let ogpc = gpieces.get_mut(occulter).ok_or_else(
[INFO] [stderr]  ...
[INFO] [stderr] 1027 |       e
[INFO] [stderr] 1028 ~     }))()?;
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: 2 warnings emitted
[INFO] [stderr] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/utils.rs - utils::serde_with_compat (line 69) ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "ae4d32eceb04cb784fd25b05c8eb6c4d3d495e528b3a7b4ee5997cdc9cb6496a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ae4d32eceb04cb784fd25b05c8eb6c4d3d495e528b3a7b4ee5997cdc9cb6496a", kill_on_drop: false }`
[INFO] [stdout] ae4d32eceb04cb784fd25b05c8eb6c4d3d495e528b3a7b4ee5997cdc9cb6496a
