[INFO] cloning repository https://github.com/liudesheng9/node_group
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/liudesheng9/node_group" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fliudesheng9%2Fnode_group", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fliudesheng9%2Fnode_group'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9b026c23c6b78cc6a0367bb8a5f73c5b568c2ef1
[INFO] checking liudesheng9/node_group/9b026c23c6b78cc6a0367bb8a5f73c5b568c2ef1 against c999cef531ea9059e189e82fe0e82c5daf249bc9 for pr-152972
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fliudesheng9%2Fnode_group" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/liudesheng9/node_group
[INFO] finished tweaking git repo https://github.com/liudesheng9/node_group
[INFO] tweaked toml for git repo https://github.com/liudesheng9/node_group written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/liudesheng9/node_group on toolchain c999cef531ea9059e189e82fe0e82c5daf249bc9
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c999cef531ea9059e189e82fe0e82c5daf249bc9" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/liudesheng9/node_group 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" "+c999cef531ea9059e189e82fe0e82c5daf249bc9" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded pyo3-macros v0.20.3
[INFO] [stderr]   Downloaded pyo3-macros-backend v0.20.3
[INFO] [stderr]   Downloaded pyo3-build-config v0.20.3
[INFO] [stderr]   Downloaded pyo3-ffi v0.20.3
[INFO] [stderr]   Downloaded pyo3 v0.20.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 5c176baf9a26bdb40091e3b095feb55fee9e6a650c26441fed14af2c96db028d
[INFO] running `Command { std: "docker" "start" "5c176baf9a26bdb40091e3b095feb55fee9e6a650c26441fed14af2c96db028d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5c176baf9a26bdb40091e3b095feb55fee9e6a650c26441fed14af2c96db028d", 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" "5c176baf9a26bdb40091e3b095feb55fee9e6a650c26441fed14af2c96db028d" "/opt/rustwide/cargo-home/bin/cargo" "+c999cef531ea9059e189e82fe0e82c5daf249bc9" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5c176baf9a26bdb40091e3b095feb55fee9e6a650c26441fed14af2c96db028d", 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" "5c176baf9a26bdb40091e3b095feb55fee9e6a650c26441fed14af2c96db028d" "/opt/rustwide/cargo-home/bin/cargo" "+c999cef531ea9059e189e82fe0e82c5daf249bc9" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling libc v0.2.174
[INFO] [stderr]     Checking unindent v0.2.4
[INFO] [stderr]    Compiling pyo3-build-config v0.20.3
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]     Checking parking_lot_core v0.9.11
[INFO] [stderr]     Checking parking_lot v0.12.4
[INFO] [stderr]    Compiling pyo3-ffi v0.20.3
[INFO] [stderr]    Compiling pyo3 v0.20.3
[INFO] [stderr]    Compiling pyo3-macros-backend v0.20.3
[INFO] [stderr]    Compiling pyo3-macros v0.20.3
[INFO] [stderr]     Checking node_group v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:179:25
[INFO] [stdout]     |
[INFO] [stdout] 179 |     pub fn new(id_type: String, id_name: String) -> Self {
[INFO] [stdout]     |                         ^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:179:42
[INFO] [stdout]     |
[INFO] [stdout] 179 |     pub fn new(id_type: String, id_name: String) -> Self {
[INFO] [stdout]     |                                          ^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:186:32
[INFO] [stdout]     |
[INFO] [stdout] 186 |     pub fn from_string(id_str: &str) -> Self {
[INFO] [stdout]     |                                ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:179:25
[INFO] [stdout]     |
[INFO] [stdout] 179 |     pub fn new(id_type: String, id_name: String) -> Self {
[INFO] [stdout]     |                         ^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:179:42
[INFO] [stdout]     |
[INFO] [stdout] 179 |     pub fn new(id_type: String, id_name: String) -> Self {
[INFO] [stdout]     |                                          ^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:186:32
[INFO] [stdout]     |
[INFO] [stdout] 186 |     pub fn from_string(id_str: &str) -> Self {
[INFO] [stdout]     |                                ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:233:26
[INFO] [stdout]     |
[INFO] [stdout] 233 |     pub fn new(id_node1: PyRef<PyIdNode>, id_node2: PyRef<PyIdNode>) -> Self {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:233:53
[INFO] [stdout]     |
[INFO] [stdout] 233 |     pub fn new(id_node1: PyRef<PyIdNode>, id_node2: PyRef<PyIdNode>) -> Self {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:240:37
[INFO] [stdout]     |
[INFO] [stdout] 240 |     pub fn from_string(id_pair_str: &str) -> Self {
[INFO] [stdout]     |                                     ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:263:33
[INFO] [stdout]     |
[INFO] [stdout] 263 | pub fn group_id_pairs(id_pairs: Vec<PyIdPair>) -> Vec<Vec<PyIdNode>> {
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:233:26
[INFO] [stdout]     |
[INFO] [stdout] 233 |     pub fn new(id_node1: PyRef<PyIdNode>, id_node2: PyRef<PyIdNode>) -> Self {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:233:53
[INFO] [stdout]     |
[INFO] [stdout] 233 |     pub fn new(id_node1: PyRef<PyIdNode>, id_node2: PyRef<PyIdNode>) -> Self {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `check_node_in_pair` and `get_next_node` are never used
[INFO] [stdout]   --> src/lib.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | impl IdPair {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 66 |     fn check_node_in_pair(&self, id_in: &IdNode) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     fn get_next_node(&self, id_in: &IdNode) -> &IdNode {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id_pair_list` is never read
[INFO] [stdout]    --> src/lib.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 101 | struct IdPairGraph {
[INFO] [stdout]     |        ----------- field in this struct
[INFO] [stdout] 102 |     id_pair_list: Vec<IdPair>,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IdPairGraph` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:240:37
[INFO] [stdout]     |
[INFO] [stdout] 240 |     pub fn from_string(id_pair_str: &str) -> Self {
[INFO] [stdout]     |                                     ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/lib.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | #[pymethods]
[INFO] [stdout]     | -^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `PyClassImplCollector` is not local
[INFO] [stdout]     | `PyClassNewTextSignature` is not local
[INFO] [stdout]     | move the `impl` block outside of this function `trampoline` and up 4 bodies
[INFO] [stdout] 177 | impl PyIdNode {
[INFO] [stdout]     |      --------
[INFO] [stdout]     |      |
[INFO] [stdout]     |      `PyIdNode` is not local
[INFO] [stdout]     |      `PyIdNode` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/lib.rs:230:1
[INFO] [stdout]     |
[INFO] [stdout] 230 | #[pymethods]
[INFO] [stdout]     | -^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `PyClassImplCollector` is not local
[INFO] [stdout]     | `PyClassNewTextSignature` is not local
[INFO] [stdout]     | move the `impl` block outside of this function `trampoline` and up 4 bodies
[INFO] [stdout] 231 | impl PyIdPair {
[INFO] [stdout]     |      --------
[INFO] [stdout]     |      |
[INFO] [stdout]     |      `PyIdPair` is not local
[INFO] [stdout]     |      `PyIdPair` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:263:33
[INFO] [stdout]     |
[INFO] [stdout] 263 | pub fn group_id_pairs(id_pairs: Vec<PyIdPair>) -> Vec<Vec<PyIdNode>> {
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `check_node_in_pair` and `get_next_node` are never used
[INFO] [stdout]   --> src/lib.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | impl IdPair {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 66 |     fn check_node_in_pair(&self, id_in: &IdNode) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     fn get_next_node(&self, id_in: &IdNode) -> &IdNode {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id_pair_list` is never read
[INFO] [stdout]    --> src/lib.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 101 | struct IdPairGraph {
[INFO] [stdout]     |        ----------- field in this struct
[INFO] [stdout] 102 |     id_pair_list: Vec<IdPair>,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IdPairGraph` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/lib.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | #[pymethods]
[INFO] [stdout]     | -^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `PyClassImplCollector` is not local
[INFO] [stdout]     | `PyClassNewTextSignature` is not local
[INFO] [stdout]     | move the `impl` block outside of this function `trampoline` and up 4 bodies
[INFO] [stdout] 177 | impl PyIdNode {
[INFO] [stdout]     |      --------
[INFO] [stdout]     |      |
[INFO] [stdout]     |      `PyIdNode` is not local
[INFO] [stdout]     |      `PyIdNode` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/lib.rs:230:1
[INFO] [stdout]     |
[INFO] [stdout] 230 | #[pymethods]
[INFO] [stdout]     | -^^^^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | `PyClassImplCollector` is not local
[INFO] [stdout]     | `PyClassNewTextSignature` is not local
[INFO] [stdout]     | move the `impl` block outside of this function `trampoline` and up 4 bodies
[INFO] [stdout] 231 | impl PyIdPair {
[INFO] [stdout]     |      --------
[INFO] [stdout]     |      |
[INFO] [stdout]     |      `PyIdPair` is not local
[INFO] [stdout]     |      `PyIdPair` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.15s
[INFO] running `Command { std: "docker" "inspect" "5c176baf9a26bdb40091e3b095feb55fee9e6a650c26441fed14af2c96db028d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5c176baf9a26bdb40091e3b095feb55fee9e6a650c26441fed14af2c96db028d", kill_on_drop: false }`
[INFO] [stdout] 5c176baf9a26bdb40091e3b095feb55fee9e6a650c26441fed14af2c96db028d
