[INFO] cloning repository https://github.com/jD91mZM2/nix-lsp
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jD91mZM2/nix-lsp" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FjD91mZM2%2Fnix-lsp", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FjD91mZM2%2Fnix-lsp'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 95d40673fe43642e2e1144341e86d0036abd95d9
[INFO] checking jD91mZM2/nix-lsp/95d40673fe43642e2e1144341e86d0036abd95d9 against c9ff496891c278ad660bc0ab85c1f0b72059464a for pr-160491
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FjD91mZM2%2Fnix-lsp" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/jD91mZM2/nix-lsp
[INFO] finished tweaking git repo https://github.com/jD91mZM2/nix-lsp
[INFO] tweaked toml for git repo https://github.com/jD91mZM2/nix-lsp written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jD91mZM2/nix-lsp on toolchain c9ff496891c278ad660bc0ab85c1f0b72059464a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c9ff496891c278ad660bc0ab85c1f0b72059464a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jD91mZM2/nix-lsp 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" "+c9ff496891c278ad660bc0ab85c1f0b72059464a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded serde_derive v1.0.138
[INFO] [stderr]   Downloaded stoppable_thread v0.2.1
[INFO] [stderr]   Downloaded ryu v1.0.10
[INFO] [stderr]   Downloaded gc v0.4.1
[INFO] [stderr]   Downloaded gc_derive v0.4.1
[INFO] [stderr]   Downloaded text-size v1.1.0
[INFO] [stderr]   Downloaded serde v1.0.138
[INFO] [stderr]   Downloaded maplit v1.0.2
[INFO] [stderr]   Downloaded lsp-server v0.6.0
[INFO] [stderr]   Downloaded unicode-xid v0.2.3
[INFO] [stderr]   Downloaded countme v2.0.4
[INFO] [stderr]   Downloaded cbitset v0.2.0
[INFO] [stderr]   Downloaded serde_repr v0.1.8
[INFO] [stderr]   Downloaded thiserror v1.0.31
[INFO] [stderr]   Downloaded redox_syscall v0.2.13
[INFO] [stderr]   Downloaded smol_str v0.1.23
[INFO] [stderr]   Downloaded walkdir v2.3.2
[INFO] [stderr]   Downloaded globset v0.4.9
[INFO] [stderr]   Downloaded itoa v1.0.2
[INFO] [stderr]   Downloaded once_cell v1.12.1
[INFO] [stderr]   Downloaded ansi_term v0.12.1
[INFO] [stderr]   Downloaded rowan v0.12.6
[INFO] [stderr]   Downloaded crossbeam-utils v0.6.6
[INFO] [stderr]   Downloaded thiserror-impl v1.0.31
[INFO] [stderr]   Downloaded crossbeam-utils v0.8.10
[INFO] [stderr]   Downloaded env_logger v0.9.0
[INFO] [stderr]   Downloaded nixpkgs-fmt-rnix v1.2.0
[INFO] [stderr]   Downloaded ignore v0.4.18
[INFO] [stderr]   Downloaded lsp-types v0.93.0
[INFO] [stderr]   Downloaded serde_json v1.0.82
[INFO] [stderr]   Downloaded crossbeam-channel v0.5.5
[INFO] [stderr]   Downloaded crossbeam-channel v0.3.9
[INFO] [stderr]   Downloaded rnix v0.10.2
[INFO] [stderr]   Downloaded regex v1.5.6
[INFO] [stderr]   Downloaded regex-syntax v0.6.26
[INFO] [stderr]   Downloaded bstr v0.2.17
[INFO] [stderr]   Downloaded libc v0.2.126
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:00c5645b54fe3ce5dae1417175e3c7fb6a6646c021d554ecd63a097b8b9f3602" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b16457884bcde2959b4c65832c4de24821b8116ec111c123e3e93328a4ae4e01
[INFO] running `Command { std: "docker" "start" "b16457884bcde2959b4c65832c4de24821b8116ec111c123e3e93328a4ae4e01", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b16457884bcde2959b4c65832c4de24821b8116ec111c123e3e93328a4ae4e01", 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" "b16457884bcde2959b4c65832c4de24821b8116ec111c123e3e93328a4ae4e01" "/opt/rustwide/cargo-home/bin/cargo" "+c9ff496891c278ad660bc0ab85c1f0b72059464a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b16457884bcde2959b4c65832c4de24821b8116ec111c123e3e93328a4ae4e01", 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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b16457884bcde2959b4c65832c4de24821b8116ec111c123e3e93328a4ae4e01" "/opt/rustwide/cargo-home/bin/cargo" "+c9ff496891c278ad660bc0ab85c1f0b72059464a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.40
[INFO] [stderr]    Compiling quote v1.0.20
[INFO] [stderr]    Compiling unicode-ident v1.0.1
[INFO] [stderr]    Compiling syn v1.0.98
[INFO] [stderr]    Compiling serde_derive v1.0.138
[INFO] [stderr]    Compiling serde v1.0.138
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]    Compiling libc v0.2.126
[INFO] [stderr]     Checking once_cell v1.12.1
[INFO] [stderr]    Compiling crossbeam-utils v0.8.10
[INFO] [stderr]    Compiling serde_json v1.0.82
[INFO] [stderr]     Checking regex-syntax v0.6.26
[INFO] [stderr]     Checking tinyvec_macros v0.1.0
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]     Checking matches v0.1.9
[INFO] [stderr]     Checking ryu v1.0.10
[INFO] [stderr]     Checking tinyvec v1.6.0
[INFO] [stderr]     Checking itoa v1.0.2
[INFO] [stderr]     Checking unicode-bidi v0.3.8
[INFO] [stderr]    Compiling unicode-xid v0.2.3
[INFO] [stderr]     Checking fnv v1.0.7
[INFO] [stderr]     Checking countme v2.0.4
[INFO] [stderr]     Checking percent-encoding v2.1.0
[INFO] [stderr]     Checking cfg-if v0.1.10
[INFO] [stderr]     Checking rustc-hash v1.1.0
[INFO] [stderr]     Checking same-file v1.0.6
[INFO] [stderr]     Checking hashbrown v0.9.1
[INFO] [stderr]     Checking form_urlencoded v1.0.1
[INFO] [stderr]     Checking crossbeam-utils v0.6.6
[INFO] [stderr]     Checking vec_map v0.8.2
[INFO] [stderr]     Checking ansi_term v0.12.1
[INFO] [stderr]     Checking humantime v2.1.0
[INFO] [stderr]     Checking termcolor v1.1.3
[INFO] [stderr]     Checking aho-corasick v0.7.18
[INFO] [stderr]     Checking bstr v0.2.17
[INFO] [stderr]     Checking stoppable_thread v0.2.1
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking thread_local v1.1.4
[INFO] [stderr]     Checking dirs-sys v0.3.7
[INFO] [stderr]     Checking maplit v1.0.2
[INFO] [stderr]     Checking walkdir v2.3.2
[INFO] [stderr]     Checking dirs v4.0.0
[INFO] [stderr]     Checking clap v2.34.0
[INFO] [stderr]     Checking crossbeam-channel v0.3.9
[INFO] [stderr]     Checking crossbeam-channel v0.5.5
[INFO] [stderr]     Checking unicode-normalization v0.1.21
[INFO] [stderr]     Checking cbitset v0.2.0
[INFO] [stderr]     Checking idna v0.2.3
[INFO] [stderr]     Checking regex v1.5.6
[INFO] [stderr]    Compiling synstructure v0.12.6
[INFO] [stderr]     Checking globset v0.4.9
[INFO] [stderr]     Checking env_logger v0.9.0
[INFO] [stderr]    Compiling gc_derive v0.4.1
[INFO] [stderr]    Compiling serde_repr v0.1.8
[INFO] [stderr]     Checking ignore v0.4.18
[INFO] [stderr]     Checking gc v0.4.1
[INFO] [stderr]     Checking text-size v1.1.0
[INFO] [stderr]     Checking smol_str v0.1.23
[INFO] [stderr]     Checking url v2.2.2
[INFO] [stderr]     Checking rowan v0.12.6
[INFO] [stderr]     Checking rnix v0.10.2
[INFO] [stderr]     Checking lsp-types v0.93.0
[INFO] [stderr]     Checking lsp-server v0.6.0
[INFO] [stderr]     Checking nixpkgs-fmt-rnix v1.2.0
[INFO] [stderr]     Checking rnix-lsp v0.3.0-dev (/opt/rustwide/workdir)
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/main.rs:406:50
[INFO] [stdout]     |
[INFO] [stdout] 406 |         let child_expr = climb_expr(expr, offset).clone();
[INFO] [stdout]     |                                                  ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Expr` does not implement `Clone`, so calling `clone` on `&Expr` copies the reference, which does not do anything and can be removed
[INFO] [stdout]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 406 -         let child_expr = climb_expr(expr, offset).clone();
[INFO] [stdout] 406 +         let child_expr = climb_expr(expr, offset);
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to clone `Expr`, implement `Clone` for it
[INFO] [stdout]    --> src/eval.rs:93:1
[INFO] [stdout]     |
[INFO] [stdout]  93 + #[derive(Clone)]
[INFO] [stdout]  94 | pub struct Expr {
[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/error.rs:9:24
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Debug, Clone, Trace, Finalize)]
[INFO] [stdout]    |                        ^----
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Trace` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_DERIVE_gc_Trace_FOR_AppError`
[INFO] [stdout] 10 | pub enum AppError {
[INFO] [stdout]    |          -------- `AppError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/error.rs:9:24
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Debug, Clone, Trace, Finalize)]
[INFO] [stdout]    |                        ^----
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Drop` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_DERIVE_std_ops_Drop_FOR_AppError`
[INFO] [stdout] 10 | pub enum AppError {
[INFO] [stdout]    |          -------- `AppError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/error.rs:9:31
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Debug, Clone, Trace, Finalize)]
[INFO] [stdout]    |                               ^-------
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               `Finalize` is not local
[INFO] [stdout]    |                               move the `impl` block outside of this constant `_DERIVE_gc_Finalize_FOR_AppError`
[INFO] [stdout] 10 | pub enum AppError {
[INFO] [stdout]    |          -------- `AppError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Finalize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Finalize` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Finalize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/error.rs:26:24
[INFO] [stdout]    |
[INFO] [stdout] 26 | #[derive(Debug, Clone, Trace, Finalize)]
[INFO] [stdout]    |                        ^----
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Trace` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_DERIVE_gc_Trace_FOR_EvalError`
[INFO] [stdout] 27 | pub enum EvalError {
[INFO] [stdout]    |          --------- `EvalError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/error.rs:26:24
[INFO] [stdout]    |
[INFO] [stdout] 26 | #[derive(Debug, Clone, Trace, Finalize)]
[INFO] [stdout]    |                        ^----
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Drop` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_DERIVE_std_ops_Drop_FOR_EvalError`
[INFO] [stdout] 27 | pub enum EvalError {
[INFO] [stdout]    |          --------- `EvalError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/error.rs:26:31
[INFO] [stdout]    |
[INFO] [stdout] 26 | #[derive(Debug, Clone, Trace, Finalize)]
[INFO] [stdout]    |                               ^-------
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               `Finalize` is not local
[INFO] [stdout]    |                               move the `impl` block outside of this constant `_DERIVE_gc_Finalize_FOR_EvalError`
[INFO] [stdout] 27 | pub enum EvalError {
[INFO] [stdout]    |          --------- `EvalError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Finalize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Finalize` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Finalize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/error.rs:47:24
[INFO] [stdout]    |
[INFO] [stdout] 47 | #[derive(Debug, Clone, Trace, Finalize)]
[INFO] [stdout]    |                        ^----
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Trace` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_DERIVE_gc_Trace_FOR_InternalError`
[INFO] [stdout] 48 | pub enum InternalError {
[INFO] [stdout]    |          ------------- `InternalError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/error.rs:47:24
[INFO] [stdout]    |
[INFO] [stdout] 47 | #[derive(Debug, Clone, Trace, Finalize)]
[INFO] [stdout]    |                        ^----
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Drop` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_DERIVE_std_ops_Drop_FOR_InternalError`
[INFO] [stdout] 48 | pub enum InternalError {
[INFO] [stdout]    |          ------------- `InternalError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/error.rs:47:31
[INFO] [stdout]    |
[INFO] [stdout] 47 | #[derive(Debug, Clone, Trace, Finalize)]
[INFO] [stdout]    |                               ^-------
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               `Finalize` is not local
[INFO] [stdout]    |                               move the `impl` block outside of this constant `_DERIVE_gc_Finalize_FOR_InternalError`
[INFO] [stdout] 48 | pub enum InternalError {
[INFO] [stdout]    |          ------------- `InternalError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Finalize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Finalize` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Finalize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/error.rs:56:24
[INFO] [stdout]    |
[INFO] [stdout] 56 | #[derive(Debug, Clone, Trace, Finalize, PartialEq, Eq)]
[INFO] [stdout]    |                        ^----
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Trace` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_DERIVE_gc_Trace_FOR_ValueError`
[INFO] [stdout] ...
[INFO] [stdout] 61 | pub enum ValueError {
[INFO] [stdout]    |          ---------- `ValueError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/error.rs:56:24
[INFO] [stdout]    |
[INFO] [stdout] 56 | #[derive(Debug, Clone, Trace, Finalize, PartialEq, Eq)]
[INFO] [stdout]    |                        ^----
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Drop` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_DERIVE_std_ops_Drop_FOR_ValueError`
[INFO] [stdout] ...
[INFO] [stdout] 61 | pub enum ValueError {
[INFO] [stdout]    |          ---------- `ValueError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/error.rs:56:31
[INFO] [stdout]    |
[INFO] [stdout] 56 | #[derive(Debug, Clone, Trace, Finalize, PartialEq, Eq)]
[INFO] [stdout]    |                               ^-------
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               `Finalize` is not local
[INFO] [stdout]    |                               move the `impl` block outside of this constant `_DERIVE_gc_Finalize_FOR_ValueError`
[INFO] [stdout] ...
[INFO] [stdout] 61 | pub enum ValueError {
[INFO] [stdout]    |          ---------- `ValueError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Finalize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Finalize` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Finalize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/error.rs:75:24
[INFO] [stdout]    |
[INFO] [stdout] 75 | #[derive(Debug, Clone, Trace, Finalize, PartialEq, Eq)]
[INFO] [stdout]    |                        ^----
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Trace` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_DERIVE_gc_Trace_FOR_Located`
[INFO] [stdout] 76 | /// An error augmented with a location
[INFO] [stdout] 77 | pub struct Located<T: Error + Clone + Trace + Finalize> {
[INFO] [stdout]    |            ------- `Located` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/error.rs:75:24
[INFO] [stdout]    |
[INFO] [stdout] 75 | #[derive(Debug, Clone, Trace, Finalize, PartialEq, Eq)]
[INFO] [stdout]    |                        ^----
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Drop` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_DERIVE_std_ops_Drop_FOR_Located`
[INFO] [stdout] 76 | /// An error augmented with a location
[INFO] [stdout] 77 | pub struct Located<T: Error + Clone + Trace + Finalize> {
[INFO] [stdout]    |            ------- `Located` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/error.rs:75:31
[INFO] [stdout]    |
[INFO] [stdout] 75 | #[derive(Debug, Clone, Trace, Finalize, PartialEq, Eq)]
[INFO] [stdout]    |                               ^-------
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               `Finalize` is not local
[INFO] [stdout]    |                               move the `impl` block outside of this constant `_DERIVE_gc_Finalize_FOR_Located`
[INFO] [stdout] 76 | /// An error augmented with a location
[INFO] [stdout] 77 | pub struct Located<T: Error + Clone + Trace + Finalize> {
[INFO] [stdout]    |            ------- `Located` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Finalize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Finalize` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Finalize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/eval.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[derive(Debug, Trace, Finalize)]
[INFO] [stdout]    |                 ^----
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Trace` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_gc_Trace_FOR_ExprSource`
[INFO] [stdout] 25 | pub enum ExprSource {
[INFO] [stdout]    |          ---------- `ExprSource` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/eval.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[derive(Debug, Trace, Finalize)]
[INFO] [stdout]    |                 ^----
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Drop` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_std_ops_Drop_FOR_ExprSource`
[INFO] [stdout] 25 | pub enum ExprSource {
[INFO] [stdout]    |          ---------- `ExprSource` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/eval.rs:24:24
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[derive(Debug, Trace, Finalize)]
[INFO] [stdout]    |                        ^-------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Finalize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_DERIVE_gc_Finalize_FOR_ExprSource`
[INFO] [stdout] 25 | pub enum ExprSource {
[INFO] [stdout]    |          ---------- `ExprSource` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Finalize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Finalize` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Finalize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/eval.rs:92:10
[INFO] [stdout]    |
[INFO] [stdout] 92 | #[derive(Trace, Finalize)]
[INFO] [stdout]    |          ^----
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Trace` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_DERIVE_gc_Trace_FOR_Expr`
[INFO] [stdout] 93 | pub struct Expr {
[INFO] [stdout]    |            ---- `Expr` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/eval.rs:92:10
[INFO] [stdout]    |
[INFO] [stdout] 92 | #[derive(Trace, Finalize)]
[INFO] [stdout]    |          ^----
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Drop` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_DERIVE_std_ops_Drop_FOR_Expr`
[INFO] [stdout] 93 | pub struct Expr {
[INFO] [stdout]    |            ---- `Expr` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/eval.rs:92:17
[INFO] [stdout]    |
[INFO] [stdout] 92 | #[derive(Trace, Finalize)]
[INFO] [stdout]    |                 ^-------
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Finalize` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_gc_Finalize_FOR_Expr`
[INFO] [stdout] 93 | pub struct Expr {
[INFO] [stdout]    |            ---- `Expr` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Finalize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Finalize` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Finalize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/parse.rs:23:24
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Debug, Clone, Trace, Finalize)]
[INFO] [stdout]    |                        ^----
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Trace` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_DERIVE_gc_Trace_FOR_BinOpKind`
[INFO] [stdout] 24 | pub enum BinOpKind {
[INFO] [stdout]    |          --------- `BinOpKind` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/parse.rs:23:24
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Debug, Clone, Trace, Finalize)]
[INFO] [stdout]    |                        ^----
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Drop` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_DERIVE_std_ops_Drop_FOR_BinOpKind`
[INFO] [stdout] 24 | pub enum BinOpKind {
[INFO] [stdout]    |          --------- `BinOpKind` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/parse.rs:23:31
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Debug, Clone, Trace, Finalize)]
[INFO] [stdout]    |                               ^-------
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               `Finalize` is not local
[INFO] [stdout]    |                               move the `impl` block outside of this constant `_DERIVE_gc_Finalize_FOR_BinOpKind`
[INFO] [stdout] 24 | pub enum BinOpKind {
[INFO] [stdout]    |          --------- `BinOpKind` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Finalize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Finalize` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Finalize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/scope.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 | #[derive(Trace, Finalize)]
[INFO] [stdout]    |          ^----
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Trace` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_DERIVE_gc_Trace_FOR_Scope`
[INFO] [stdout] 22 | pub enum Scope {
[INFO] [stdout]    |          ----- `Scope` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/scope.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 | #[derive(Trace, Finalize)]
[INFO] [stdout]    |          ^----
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Drop` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_DERIVE_std_ops_Drop_FOR_Scope`
[INFO] [stdout] 22 | pub enum Scope {
[INFO] [stdout]    |          ----- `Scope` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/scope.rs:21:17
[INFO] [stdout]    |
[INFO] [stdout] 21 | #[derive(Trace, Finalize)]
[INFO] [stdout]    |                 ^-------
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Finalize` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_gc_Finalize_FOR_Scope`
[INFO] [stdout] 22 | pub enum Scope {
[INFO] [stdout]    |          ----- `Scope` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Finalize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Finalize` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Finalize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/value.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Clone, Trace, Finalize)]
[INFO] [stdout]   |                 ^----
[INFO] [stdout]   |                 |
[INFO] [stdout]   |                 `Trace` is not local
[INFO] [stdout]   |                 move the `impl` block outside of this constant `_DERIVE_gc_Trace_FOR_NixValue`
[INFO] [stdout] 9 | pub enum NixValue {
[INFO] [stdout]   |          -------- `NixValue` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/value.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Clone, Trace, Finalize)]
[INFO] [stdout]   |                 ^----
[INFO] [stdout]   |                 |
[INFO] [stdout]   |                 `Drop` is not local
[INFO] [stdout]   |                 move the `impl` block outside of this constant `_DERIVE_std_ops_Drop_FOR_NixValue`
[INFO] [stdout] 9 | pub enum NixValue {
[INFO] [stdout]   |          -------- `NixValue` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/value.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Clone, Trace, Finalize)]
[INFO] [stdout]   |                        ^-------
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        `Finalize` is not local
[INFO] [stdout]   |                        move the `impl` block outside of this constant `_DERIVE_gc_Finalize_FOR_NixValue`
[INFO] [stdout] 9 | pub enum NixValue {
[INFO] [stdout]   |          -------- `NixValue` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Finalize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Finalize` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Finalize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/main.rs:406:50
[INFO] [stdout]     |
[INFO] [stdout] 406 |         let child_expr = climb_expr(expr, offset).clone();
[INFO] [stdout]     |                                                  ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `Expr` does not implement `Clone`, so calling `clone` on `&Expr` copies the reference, which does not do anything and can be removed
[INFO] [stdout]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout] 406 -         let child_expr = climb_expr(expr, offset).clone();
[INFO] [stdout] 406 +         let child_expr = climb_expr(expr, offset);
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to clone `Expr`, implement `Clone` for it
[INFO] [stdout]    --> src/eval.rs:93:1
[INFO] [stdout]     |
[INFO] [stdout]  93 + #[derive(Clone)]
[INFO] [stdout]  94 | pub struct Expr {
[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/error.rs:9:24
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Debug, Clone, Trace, Finalize)]
[INFO] [stdout]    |                        ^----
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Trace` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_DERIVE_gc_Trace_FOR_AppError`
[INFO] [stdout] 10 | pub enum AppError {
[INFO] [stdout]    |          -------- `AppError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/error.rs:9:24
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Debug, Clone, Trace, Finalize)]
[INFO] [stdout]    |                        ^----
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Drop` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_DERIVE_std_ops_Drop_FOR_AppError`
[INFO] [stdout] 10 | pub enum AppError {
[INFO] [stdout]    |          -------- `AppError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/error.rs:9:31
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Debug, Clone, Trace, Finalize)]
[INFO] [stdout]    |                               ^-------
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               `Finalize` is not local
[INFO] [stdout]    |                               move the `impl` block outside of this constant `_DERIVE_gc_Finalize_FOR_AppError`
[INFO] [stdout] 10 | pub enum AppError {
[INFO] [stdout]    |          -------- `AppError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Finalize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Finalize` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Finalize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/error.rs:26:24
[INFO] [stdout]    |
[INFO] [stdout] 26 | #[derive(Debug, Clone, Trace, Finalize)]
[INFO] [stdout]    |                        ^----
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Trace` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_DERIVE_gc_Trace_FOR_EvalError`
[INFO] [stdout] 27 | pub enum EvalError {
[INFO] [stdout]    |          --------- `EvalError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/error.rs:26:24
[INFO] [stdout]    |
[INFO] [stdout] 26 | #[derive(Debug, Clone, Trace, Finalize)]
[INFO] [stdout]    |                        ^----
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Drop` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_DERIVE_std_ops_Drop_FOR_EvalError`
[INFO] [stdout] 27 | pub enum EvalError {
[INFO] [stdout]    |          --------- `EvalError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/error.rs:26:31
[INFO] [stdout]    |
[INFO] [stdout] 26 | #[derive(Debug, Clone, Trace, Finalize)]
[INFO] [stdout]    |                               ^-------
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               `Finalize` is not local
[INFO] [stdout]    |                               move the `impl` block outside of this constant `_DERIVE_gc_Finalize_FOR_EvalError`
[INFO] [stdout] 27 | pub enum EvalError {
[INFO] [stdout]    |          --------- `EvalError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Finalize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Finalize` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Finalize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/error.rs:47:24
[INFO] [stdout]    |
[INFO] [stdout] 47 | #[derive(Debug, Clone, Trace, Finalize)]
[INFO] [stdout]    |                        ^----
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Trace` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_DERIVE_gc_Trace_FOR_InternalError`
[INFO] [stdout] 48 | pub enum InternalError {
[INFO] [stdout]    |          ------------- `InternalError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/error.rs:47:24
[INFO] [stdout]    |
[INFO] [stdout] 47 | #[derive(Debug, Clone, Trace, Finalize)]
[INFO] [stdout]    |                        ^----
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Drop` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_DERIVE_std_ops_Drop_FOR_InternalError`
[INFO] [stdout] 48 | pub enum InternalError {
[INFO] [stdout]    |          ------------- `InternalError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/error.rs:47:31
[INFO] [stdout]    |
[INFO] [stdout] 47 | #[derive(Debug, Clone, Trace, Finalize)]
[INFO] [stdout]    |                               ^-------
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               `Finalize` is not local
[INFO] [stdout]    |                               move the `impl` block outside of this constant `_DERIVE_gc_Finalize_FOR_InternalError`
[INFO] [stdout] 48 | pub enum InternalError {
[INFO] [stdout]    |          ------------- `InternalError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Finalize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Finalize` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Finalize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/error.rs:56:24
[INFO] [stdout]    |
[INFO] [stdout] 56 | #[derive(Debug, Clone, Trace, Finalize, PartialEq, Eq)]
[INFO] [stdout]    |                        ^----
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Trace` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_DERIVE_gc_Trace_FOR_ValueError`
[INFO] [stdout] ...
[INFO] [stdout] 61 | pub enum ValueError {
[INFO] [stdout]    |          ---------- `ValueError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/error.rs:56:24
[INFO] [stdout]    |
[INFO] [stdout] 56 | #[derive(Debug, Clone, Trace, Finalize, PartialEq, Eq)]
[INFO] [stdout]    |                        ^----
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Drop` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_DERIVE_std_ops_Drop_FOR_ValueError`
[INFO] [stdout] ...
[INFO] [stdout] 61 | pub enum ValueError {
[INFO] [stdout]    |          ---------- `ValueError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/error.rs:56:31
[INFO] [stdout]    |
[INFO] [stdout] 56 | #[derive(Debug, Clone, Trace, Finalize, PartialEq, Eq)]
[INFO] [stdout]    |                               ^-------
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               `Finalize` is not local
[INFO] [stdout]    |                               move the `impl` block outside of this constant `_DERIVE_gc_Finalize_FOR_ValueError`
[INFO] [stdout] ...
[INFO] [stdout] 61 | pub enum ValueError {
[INFO] [stdout]    |          ---------- `ValueError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Finalize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Finalize` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Finalize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/error.rs:75:24
[INFO] [stdout]    |
[INFO] [stdout] 75 | #[derive(Debug, Clone, Trace, Finalize, PartialEq, Eq)]
[INFO] [stdout]    |                        ^----
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Trace` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_DERIVE_gc_Trace_FOR_Located`
[INFO] [stdout] 76 | /// An error augmented with a location
[INFO] [stdout] 77 | pub struct Located<T: Error + Clone + Trace + Finalize> {
[INFO] [stdout]    |            ------- `Located` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/error.rs:75:24
[INFO] [stdout]    |
[INFO] [stdout] 75 | #[derive(Debug, Clone, Trace, Finalize, PartialEq, Eq)]
[INFO] [stdout]    |                        ^----
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Drop` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_DERIVE_std_ops_Drop_FOR_Located`
[INFO] [stdout] 76 | /// An error augmented with a location
[INFO] [stdout] 77 | pub struct Located<T: Error + Clone + Trace + Finalize> {
[INFO] [stdout]    |            ------- `Located` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/error.rs:75:31
[INFO] [stdout]    |
[INFO] [stdout] 75 | #[derive(Debug, Clone, Trace, Finalize, PartialEq, Eq)]
[INFO] [stdout]    |                               ^-------
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               `Finalize` is not local
[INFO] [stdout]    |                               move the `impl` block outside of this constant `_DERIVE_gc_Finalize_FOR_Located`
[INFO] [stdout] 76 | /// An error augmented with a location
[INFO] [stdout] 77 | pub struct Located<T: Error + Clone + Trace + Finalize> {
[INFO] [stdout]    |            ------- `Located` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Finalize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Finalize` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Finalize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/eval.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[derive(Debug, Trace, Finalize)]
[INFO] [stdout]    |                 ^----
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Trace` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_gc_Trace_FOR_ExprSource`
[INFO] [stdout] 25 | pub enum ExprSource {
[INFO] [stdout]    |          ---------- `ExprSource` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/eval.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[derive(Debug, Trace, Finalize)]
[INFO] [stdout]    |                 ^----
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Drop` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_std_ops_Drop_FOR_ExprSource`
[INFO] [stdout] 25 | pub enum ExprSource {
[INFO] [stdout]    |          ---------- `ExprSource` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/eval.rs:24:24
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[derive(Debug, Trace, Finalize)]
[INFO] [stdout]    |                        ^-------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Finalize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_DERIVE_gc_Finalize_FOR_ExprSource`
[INFO] [stdout] 25 | pub enum ExprSource {
[INFO] [stdout]    |          ---------- `ExprSource` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Finalize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Finalize` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Finalize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/eval.rs:92:10
[INFO] [stdout]    |
[INFO] [stdout] 92 | #[derive(Trace, Finalize)]
[INFO] [stdout]    |          ^----
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Trace` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_DERIVE_gc_Trace_FOR_Expr`
[INFO] [stdout] 93 | pub struct Expr {
[INFO] [stdout]    |            ---- `Expr` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/eval.rs:92:10
[INFO] [stdout]    |
[INFO] [stdout] 92 | #[derive(Trace, Finalize)]
[INFO] [stdout]    |          ^----
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Drop` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_DERIVE_std_ops_Drop_FOR_Expr`
[INFO] [stdout] 93 | pub struct Expr {
[INFO] [stdout]    |            ---- `Expr` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/eval.rs:92:17
[INFO] [stdout]    |
[INFO] [stdout] 92 | #[derive(Trace, Finalize)]
[INFO] [stdout]    |                 ^-------
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Finalize` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_gc_Finalize_FOR_Expr`
[INFO] [stdout] 93 | pub struct Expr {
[INFO] [stdout]    |            ---- `Expr` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Finalize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Finalize` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Finalize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/parse.rs:23:24
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Debug, Clone, Trace, Finalize)]
[INFO] [stdout]    |                        ^----
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Trace` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_DERIVE_gc_Trace_FOR_BinOpKind`
[INFO] [stdout] 24 | pub enum BinOpKind {
[INFO] [stdout]    |          --------- `BinOpKind` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/parse.rs:23:24
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Debug, Clone, Trace, Finalize)]
[INFO] [stdout]    |                        ^----
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Drop` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_DERIVE_std_ops_Drop_FOR_BinOpKind`
[INFO] [stdout] 24 | pub enum BinOpKind {
[INFO] [stdout]    |          --------- `BinOpKind` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/parse.rs:23:31
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Debug, Clone, Trace, Finalize)]
[INFO] [stdout]    |                               ^-------
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               `Finalize` is not local
[INFO] [stdout]    |                               move the `impl` block outside of this constant `_DERIVE_gc_Finalize_FOR_BinOpKind`
[INFO] [stdout] 24 | pub enum BinOpKind {
[INFO] [stdout]    |          --------- `BinOpKind` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Finalize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Finalize` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Finalize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/scope.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 | #[derive(Trace, Finalize)]
[INFO] [stdout]    |          ^----
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Trace` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_DERIVE_gc_Trace_FOR_Scope`
[INFO] [stdout] 22 | pub enum Scope {
[INFO] [stdout]    |          ----- `Scope` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/scope.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 | #[derive(Trace, Finalize)]
[INFO] [stdout]    |          ^----
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Drop` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_DERIVE_std_ops_Drop_FOR_Scope`
[INFO] [stdout] 22 | pub enum Scope {
[INFO] [stdout]    |          ----- `Scope` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/scope.rs:21:17
[INFO] [stdout]    |
[INFO] [stdout] 21 | #[derive(Trace, Finalize)]
[INFO] [stdout]    |                 ^-------
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Finalize` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_DERIVE_gc_Finalize_FOR_Scope`
[INFO] [stdout] 22 | pub enum Scope {
[INFO] [stdout]    |          ----- `Scope` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Finalize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Finalize` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Finalize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/value.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Clone, Trace, Finalize)]
[INFO] [stdout]   |                 ^----
[INFO] [stdout]   |                 |
[INFO] [stdout]   |                 `Trace` is not local
[INFO] [stdout]   |                 move the `impl` block outside of this constant `_DERIVE_gc_Trace_FOR_NixValue`
[INFO] [stdout] 9 | pub enum NixValue {
[INFO] [stdout]   |          -------- `NixValue` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/value.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Clone, Trace, Finalize)]
[INFO] [stdout]   |                 ^----
[INFO] [stdout]   |                 |
[INFO] [stdout]   |                 `Drop` is not local
[INFO] [stdout]   |                 move the `impl` block outside of this constant `_DERIVE_std_ops_Drop_FOR_NixValue`
[INFO] [stdout] 9 | pub enum NixValue {
[INFO] [stdout]   |          -------- `NixValue` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Trace` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Trace` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Trace` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/value.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Clone, Trace, Finalize)]
[INFO] [stdout]   |                        ^-------
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        `Finalize` is not local
[INFO] [stdout]   |                        move the `impl` block outside of this constant `_DERIVE_gc_Finalize_FOR_NixValue`
[INFO] [stdout] 9 | pub enum NixValue {
[INFO] [stdout]   |          -------- `NixValue` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Finalize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Finalize` may come from an old version of the `gc_derive` crate, try updating your dependency with `cargo update -p gc_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 `Finalize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 26.57s
[INFO] running `Command { std: "docker" "inspect" "b16457884bcde2959b4c65832c4de24821b8116ec111c123e3e93328a4ae4e01", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b16457884bcde2959b4c65832c4de24821b8116ec111c123e3e93328a4ae4e01", kill_on_drop: false }`
[INFO] [stdout] b16457884bcde2959b4c65832c4de24821b8116ec111c123e3e93328a4ae4e01
