[INFO] fetching crate grafen 0.9.1...
[INFO] checking grafen-0.9.1 against 895980e0290783bb09b1ccf1b11f14eb09b10430 for pr-160186
[INFO] extracting crate grafen 0.9.1 into /workspace/builds/worker-0-tc2/source
[INFO] started tweaking crates.io crate grafen 0.9.1
[INFO] finished tweaking crates.io crate grafen 0.9.1
[INFO] tweaked toml for crates.io crate grafen 0.9.1 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate grafen 0.9.1 on toolchain 895980e0290783bb09b1ccf1b11f14eb09b10430
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 46 packages to highest compatible versions
[INFO] [stderr]       Adding ansi_term v0.9.0 (available: v0.12.1)
[INFO] [stderr]       Adding clap v2.23.3 (available: v2.34.0)
[INFO] [stderr]       Adding colored v1.9.4 (available: v3.1.1)
[INFO] [stderr]       Adding dialoguer v0.1.0 (available: v0.12.0)
[INFO] [stderr]       Adding rand v0.3.23 (available: v0.10.3)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: An explicit [[bin]] section is specified in Cargo.toml which currently
[INFO] [stderr] disables Cargo from automatically inferring other binary targets.
[INFO] [stderr] This inference behavior will change in the Rust 2018 edition and the following
[INFO] [stderr] files will be included as a binary target:
[INFO] [stderr] 
[INFO] [stderr] * src/bin/error.rs
[INFO] [stderr] * src/bin/output.rs
[INFO] [stderr] 
[INFO] [stderr] This is likely to break cargo build or cargo test as these files may not be
[INFO] [stderr] ready to be compiled as a binary target today. You can future-proof yourself
[INFO] [stderr] and disable this warning by adding `autobins = false` to your [package]
[INFO] [stderr] section. You may also move the files to a location where Cargo would not
[INFO] [stderr] automatically infer them to be a target, such as in subfolders.
[INFO] [stderr] 
[INFO] [stderr] For more information on this warning you can consult
[INFO] [stderr] https://github.com/rust-lang/cargo/issues/5330
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `grafen` (manifest) generated 2 warnings
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 6ad20164c39360d8dea690399e325bf58c188deb33396dc33b71d07d76d6697e
[INFO] running `Command { std: "docker" "start" "6ad20164c39360d8dea690399e325bf58c188deb33396dc33b71d07d76d6697e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6ad20164c39360d8dea690399e325bf58c188deb33396dc33b71d07d76d6697e", 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" "6ad20164c39360d8dea690399e325bf58c188deb33396dc33b71d07d76d6697e" "/opt/rustwide/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6ad20164c39360d8dea690399e325bf58c188deb33396dc33b71d07d76d6697e", 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" "6ad20164c39360d8dea690399e325bf58c188deb33396dc33b71d07d76d6697e" "/opt/rustwide/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: An explicit [[bin]] section is specified in Cargo.toml which currently
[INFO] [stderr] disables Cargo from automatically inferring other binary targets.
[INFO] [stderr] This inference behavior will change in the Rust 2018 edition and the following
[INFO] [stderr] files will be included as a binary target:
[INFO] [stderr] 
[INFO] [stderr] * src/bin/error.rs
[INFO] [stderr] * src/bin/output.rs
[INFO] [stderr] 
[INFO] [stderr] This is likely to break cargo build or cargo test as these files may not be
[INFO] [stderr] ready to be compiled as a binary target today. You can future-proof yourself
[INFO] [stderr] and disable this warning by adding `autobins = false` to your [package]
[INFO] [stderr] section. You may also move the files to a location where Cargo would not
[INFO] [stderr] automatically infer them to be a target, such as in subfolders.
[INFO] [stderr] 
[INFO] [stderr] For more information on this warning you can consult
[INFO] [stderr] https://github.com/rust-lang/cargo/issues/5330
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `grafen` (manifest) generated 2 warnings
[INFO] [stderr]    Compiling libc v0.2.191
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling serde_json v1.0.154
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]     Checking strsim v0.6.0
[INFO] [stderr]     Checking bitflags v0.8.2
[INFO] [stderr]     Checking lazy_static v1.5.1
[INFO] [stderr]     Checking vec_map v0.7.0
[INFO] [stderr]     Checking ansi_term v0.9.0
[INFO] [stderr]    Compiling syn v3.0.9
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking term_size v0.3.2
[INFO] [stderr]     Checking is-terminal v0.4.17
[INFO] [stderr]     Checking console v0.16.6
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking clap v2.23.3
[INFO] [stderr]     Checking colored v1.9.4
[INFO] [stderr]     Checking rand v0.3.23
[INFO] [stderr]     Checking tempfile v2.2.0
[INFO] [stderr]     Checking dialoguer v0.1.0
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]     Checking grafen v0.9.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated function `rand::sample`: renamed to seq::sample_iter
[INFO] [stdout]    --> src/volume/cuboid.rs:196:38
[INFO] [stdout]     |
[INFO] [stdout] 196 |         let selected_indices = rand::sample(&mut rng, 0..num_cells, num_coords as usize);
[INFO] [stdout]     |                                      ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/iterator.rs:10:33
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type AtomIterItem<'a> = Box<Iterator<Item = CurrentAtom<'a>> + 'a>;
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type AtomIterItem<'a> = Box<dyn Iterator<Item = CurrentAtom<'a>> + 'a>;
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/error.rs:34:32
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn cause(&self) -> Option<&error::Error> {
[INFO] [stdout]    |                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/coord.rs:203:67
[INFO] [stdout]     |
[INFO] [stdout] 203 |                  .and_then(|v| v.parse::<f64>().map_err(|err| err.description().to_string()))
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::sample`: renamed to seq::sample_iter
[INFO] [stdout]    --> src/volume/cuboid.rs:196:38
[INFO] [stdout]     |
[INFO] [stdout] 196 |         let selected_indices = rand::sample(&mut rng, 0..num_cells, num_coords as usize);
[INFO] [stdout]     |                                      ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/iterator.rs:10:33
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type AtomIterItem<'a> = Box<Iterator<Item = CurrentAtom<'a>> + 'a>;
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type AtomIterItem<'a> = Box<dyn Iterator<Item = CurrentAtom<'a>> + 'a>;
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/error.rs:34:32
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn cause(&self) -> Option<&error::Error> {
[INFO] [stdout]    |                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/coord.rs:203:67
[INFO] [stdout]     |
[INFO] [stdout] 203 |                  .and_then(|v| v.parse::<f64>().map_err(|err| err.description().to_string()))
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `residue` and `radius` are never read
[INFO] [stdout]    --> src/surface/sheet.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 175 | pub struct Circle {
[INFO] [stdout]     |            ------ fields in this struct
[INFO] [stdout] 176 |     residue: Option<Residue>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 177 |     origin: Coord,
[INFO] [stdout] 178 |     radius: f64,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Circle` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/system.rs:69:36
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub fn iter_atoms(&'a self) -> AtomIterItem {
[INFO] [stdout]    |                        --          ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub fn iter_atoms(&'a self) -> AtomIterItem<'a> {
[INFO] [stdout]    |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/database.rs:125:44
[INFO] [stdout]     |
[INFO] [stdout] 110 |   macro_rules! create_entry_wrapper {
[INFO] [stdout] ...
[INFO] [stdout] 125 |               pub fn get_coords(&'a self) -> &Vec<Coord> {
[INFO] [stdout]     |                                  --          ^^^^^^^^^^^ the same lifetime is elided here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is named here
[INFO] [stdout] ...
[INFO] [stdout] 242 | / create_entry_wrapper![
[INFO] [stdout] 243 | |     ComponentEntry,
[INFO] [stdout] 244 | |     (volume::Cuboid => VolumeCuboid),
[INFO] [stdout] 245 | |     (volume::Cylinder => VolumeCylinder),
[INFO] [stdout] 246 | |     (surface::Sheet => SurfaceSheet),
[INFO] [stdout] 247 | |     (surface::Cylinder => SurfaceCylinder)
[INFO] [stdout] 248 | | ];
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 125 |             pub fn get_coords(&'a self) -> &'a Vec<Coord> {
[INFO] [stdout]     |                                             ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/database.rs:134:52
[INFO] [stdout]     |
[INFO] [stdout] 110 |   macro_rules! create_entry_wrapper {
[INFO] [stdout] ...
[INFO] [stdout] 134 |               pub fn get_coords_mut(&'a mut self) -> &mut Vec<Coord> {
[INFO] [stdout]     |                                      --              ^^^^^^^^^^^^^^^ the same lifetime is elided here
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      the lifetime is named here
[INFO] [stdout] ...
[INFO] [stdout] 242 | / create_entry_wrapper![
[INFO] [stdout] 243 | |     ComponentEntry,
[INFO] [stdout] 244 | |     (volume::Cuboid => VolumeCuboid),
[INFO] [stdout] 245 | |     (volume::Cylinder => VolumeCylinder),
[INFO] [stdout] 246 | |     (surface::Sheet => SurfaceSheet),
[INFO] [stdout] 247 | |     (surface::Cylinder => SurfaceCylinder)
[INFO] [stdout] 248 | | ];
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 134 |             pub fn get_coords_mut(&'a mut self) -> &'a mut Vec<Coord> {
[INFO] [stdout]     |                                                     ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/database.rs:187:40
[INFO] [stdout]     |
[INFO] [stdout] 110 |   macro_rules! create_entry_wrapper {
[INFO] [stdout] ...
[INFO] [stdout] 187 |               fn iter_atoms(&'a self) -> AtomIterItem {
[INFO] [stdout]     |                              --          ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              the lifetime is named here
[INFO] [stdout] ...
[INFO] [stdout] 242 | / create_entry_wrapper![
[INFO] [stdout] 243 | |     ComponentEntry,
[INFO] [stdout] 244 | |     (volume::Cuboid => VolumeCuboid),
[INFO] [stdout] 245 | |     (volume::Cylinder => VolumeCylinder),
[INFO] [stdout] 246 | |     (surface::Sheet => SurfaceSheet),
[INFO] [stdout] 247 | |     (surface::Cylinder => SurfaceCylinder)
[INFO] [stdout] 248 | | ];
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 187 |             fn iter_atoms(&'a self) -> AtomIterItem<'a> {
[INFO] [stdout]     |                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/system.rs:140:31
[INFO] [stdout]     |
[INFO] [stdout] 132 | macro_rules! impl_component {
[INFO] [stdout] ...
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem {
[INFO] [stdout]     |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/surface/cylinder.rs:17:1
[INFO] [stdout]     |
[INFO] [stdout]  17 | impl_component![Cylinder];
[INFO] [stdout]     | ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem<'_> {
[INFO] [stdout]     |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/system.rs:140:31
[INFO] [stdout]     |
[INFO] [stdout] 132 | macro_rules! impl_component {
[INFO] [stdout] ...
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem {
[INFO] [stdout]     |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/surface/sheet.rs:16:1
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl_component![Sheet];
[INFO] [stdout]     | ---------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem<'_> {
[INFO] [stdout]     |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/system.rs:140:31
[INFO] [stdout]     |
[INFO] [stdout] 132 | macro_rules! impl_component {
[INFO] [stdout] ...
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem {
[INFO] [stdout]     |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/volume/cuboid.rs:31:1
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl_component![Cuboid];
[INFO] [stdout]     | ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem<'_> {
[INFO] [stdout]     |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/system.rs:140:31
[INFO] [stdout]     |
[INFO] [stdout] 132 | macro_rules! impl_component {
[INFO] [stdout] ...
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem {
[INFO] [stdout]     |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/volume/cylinder.rs:31:1
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl_component![Cylinder];
[INFO] [stdout]     | ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem<'_> {
[INFO] [stdout]     |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> src/bin/ui/mod.rs:39:15
[INFO] [stdout]    |
[INFO] [stdout] 39 |         @pre: { system.print_state() };
[INFO] [stdout]    |               ^^                    ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_braces)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these braces
[INFO] [stdout]    |
[INFO] [stdout] 39 -         @pre: { system.print_state() };
[INFO] [stdout] 39 +         @pre: system.print_state();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bin/error.rs:81:32
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn cause(&self) -> Option<&Error> {
[INFO] [stdout]    |                                ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn cause(&self) -> Option<&dyn Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> src/bin/ui/mod.rs:39:15
[INFO] [stdout]    |
[INFO] [stdout] 39 |         @pre: { system.print_state() };
[INFO] [stdout]    |               ^^                    ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_braces)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these braces
[INFO] [stdout]    |
[INFO] [stdout] 39 -         @pre: { system.print_state() };
[INFO] [stdout] 39 +         @pre: system.print_state();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bin/ui/edit_component.rs:66:70
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn get_volume_from_user(components: &[ComponentEntry]) -> Result<Box<Contains>> {
[INFO] [stdout]    |                                                                      ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn get_volume_from_user(components: &[ComponentEntry]) -> Result<Box<dyn Contains>> {
[INFO] [stdout]    |                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bin/error.rs:81:32
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn cause(&self) -> Option<&Error> {
[INFO] [stdout]    |                                ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn cause(&self) -> Option<&dyn Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/bin/error.rs:134:38
[INFO] [stdout]     |
[INFO] [stdout] 134 |         GrafenCliError::RunError(err.description().to_string())
[INFO] [stdout]     |                                      ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bin/ui/edit_component.rs:66:70
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn get_volume_from_user(components: &[ComponentEntry]) -> Result<Box<Contains>> {
[INFO] [stdout]    |                                                                      ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn get_volume_from_user(components: &[ComponentEntry]) -> Result<Box<dyn Contains>> {
[INFO] [stdout]    |                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/bin/error.rs:134:38
[INFO] [stdout]     |
[INFO] [stdout] 134 |         GrafenCliError::RunError(err.description().to_string())
[INFO] [stdout]     |                                      ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/ui/edit_database/component.rs:44:69
[INFO] [stdout]    |
[INFO] [stdout] 44 |                     format!("Could not remove a component: {}", err.description())
[INFO] [stdout]    |                                                                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/ui/edit_database/component.rs:51:67
[INFO] [stdout]    |
[INFO] [stdout] 51 |                     format!("Could not reorder the list: {}", err.description())
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/ui/edit_database/residue.rs:26:65
[INFO] [stdout]    |
[INFO] [stdout] 26 |                     format!("Could not create residue: {}", err.description())
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/ui/edit_database/residue.rs:33:67
[INFO] [stdout]    |
[INFO] [stdout] 33 |                     format!("Could not remove a residue: {}", err.description())
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/ui/edit_database/residue.rs:40:67
[INFO] [stdout]    |
[INFO] [stdout] 40 |                     format!("Could not reorder the list: {}", err.description())
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/ui/edit_database/component.rs:44:69
[INFO] [stdout]    |
[INFO] [stdout] 44 |                     format!("Could not remove a component: {}", err.description())
[INFO] [stdout]    |                                                                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/ui/edit_database/component.rs:51:67
[INFO] [stdout]    |
[INFO] [stdout] 51 |                     format!("Could not reorder the list: {}", err.description())
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/ui/edit_database/mod.rs:35:65
[INFO] [stdout]    |
[INFO] [stdout] 35 |                     format!("Could not write database: {}", err.description())
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/ui/edit_database/residue.rs:26:65
[INFO] [stdout]    |
[INFO] [stdout] 26 |                     format!("Could not create residue: {}", err.description())
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/ui/edit_database/residue.rs:33:67
[INFO] [stdout]    |
[INFO] [stdout] 33 |                     format!("Could not remove a residue: {}", err.description())
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/ui/edit_database/residue.rs:40:67
[INFO] [stdout]    |
[INFO] [stdout] 40 |                     format!("Could not reorder the list: {}", err.description())
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/bin/ui/edit_database/mod.rs:35:65
[INFO] [stdout]    |
[INFO] [stdout] 35 |                     format!("Could not write database: {}", err.description())
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `residue` and `radius` are never read
[INFO] [stdout]    --> src/surface/sheet.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 175 | pub struct Circle {
[INFO] [stdout]     |            ------ fields in this struct
[INFO] [stdout] 176 |     residue: Option<Residue>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 177 |     origin: Coord,
[INFO] [stdout] 178 |     radius: f64,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Circle` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/system.rs:69:36
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub fn iter_atoms(&'a self) -> AtomIterItem {
[INFO] [stdout]    |                        --          ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub fn iter_atoms(&'a self) -> AtomIterItem<'a> {
[INFO] [stdout]    |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/system.rs:140:31
[INFO] [stdout]     |
[INFO] [stdout] 132 | macro_rules! impl_component {
[INFO] [stdout] ...
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem {
[INFO] [stdout]     |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 296 |     impl_component![TestObject];
[INFO] [stdout]     |     --------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem<'_> {
[INFO] [stdout]     |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/database.rs:125:44
[INFO] [stdout]     |
[INFO] [stdout] 110 |   macro_rules! create_entry_wrapper {
[INFO] [stdout] ...
[INFO] [stdout] 125 |               pub fn get_coords(&'a self) -> &Vec<Coord> {
[INFO] [stdout]     |                                  --          ^^^^^^^^^^^ the same lifetime is elided here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is named here
[INFO] [stdout] ...
[INFO] [stdout] 242 | / create_entry_wrapper![
[INFO] [stdout] 243 | |     ComponentEntry,
[INFO] [stdout] 244 | |     (volume::Cuboid => VolumeCuboid),
[INFO] [stdout] 245 | |     (volume::Cylinder => VolumeCylinder),
[INFO] [stdout] 246 | |     (surface::Sheet => SurfaceSheet),
[INFO] [stdout] 247 | |     (surface::Cylinder => SurfaceCylinder)
[INFO] [stdout] 248 | | ];
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 125 |             pub fn get_coords(&'a self) -> &'a Vec<Coord> {
[INFO] [stdout]     |                                             ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/database.rs:134:52
[INFO] [stdout]     |
[INFO] [stdout] 110 |   macro_rules! create_entry_wrapper {
[INFO] [stdout] ...
[INFO] [stdout] 134 |               pub fn get_coords_mut(&'a mut self) -> &mut Vec<Coord> {
[INFO] [stdout]     |                                      --              ^^^^^^^^^^^^^^^ the same lifetime is elided here
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      the lifetime is named here
[INFO] [stdout] ...
[INFO] [stdout] 242 | / create_entry_wrapper![
[INFO] [stdout] 243 | |     ComponentEntry,
[INFO] [stdout] 244 | |     (volume::Cuboid => VolumeCuboid),
[INFO] [stdout] 245 | |     (volume::Cylinder => VolumeCylinder),
[INFO] [stdout] 246 | |     (surface::Sheet => SurfaceSheet),
[INFO] [stdout] 247 | |     (surface::Cylinder => SurfaceCylinder)
[INFO] [stdout] 248 | | ];
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 134 |             pub fn get_coords_mut(&'a mut self) -> &'a mut Vec<Coord> {
[INFO] [stdout]     |                                                     ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/database.rs:187:40
[INFO] [stdout]     |
[INFO] [stdout] 110 |   macro_rules! create_entry_wrapper {
[INFO] [stdout] ...
[INFO] [stdout] 187 |               fn iter_atoms(&'a self) -> AtomIterItem {
[INFO] [stdout]     |                              --          ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              the lifetime is named here
[INFO] [stdout] ...
[INFO] [stdout] 242 | / create_entry_wrapper![
[INFO] [stdout] 243 | |     ComponentEntry,
[INFO] [stdout] 244 | |     (volume::Cuboid => VolumeCuboid),
[INFO] [stdout] 245 | |     (volume::Cylinder => VolumeCylinder),
[INFO] [stdout] 246 | |     (surface::Sheet => SurfaceSheet),
[INFO] [stdout] 247 | |     (surface::Cylinder => SurfaceCylinder)
[INFO] [stdout] 248 | | ];
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 187 |             fn iter_atoms(&'a self) -> AtomIterItem<'a> {
[INFO] [stdout]     |                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/system.rs:140:31
[INFO] [stdout]     |
[INFO] [stdout] 132 | macro_rules! impl_component {
[INFO] [stdout] ...
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem {
[INFO] [stdout]     |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/surface/cylinder.rs:17:1
[INFO] [stdout]     |
[INFO] [stdout]  17 | impl_component![Cylinder];
[INFO] [stdout]     | ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem<'_> {
[INFO] [stdout]     |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/system.rs:140:31
[INFO] [stdout]     |
[INFO] [stdout] 132 | macro_rules! impl_component {
[INFO] [stdout] ...
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem {
[INFO] [stdout]     |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/surface/sheet.rs:16:1
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl_component![Sheet];
[INFO] [stdout]     | ---------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem<'_> {
[INFO] [stdout]     |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/system.rs:140:31
[INFO] [stdout]     |
[INFO] [stdout] 132 | macro_rules! impl_component {
[INFO] [stdout] ...
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem {
[INFO] [stdout]     |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/volume/cuboid.rs:31:1
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl_component![Cuboid];
[INFO] [stdout]     | ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem<'_> {
[INFO] [stdout]     |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/system.rs:140:31
[INFO] [stdout]     |
[INFO] [stdout] 132 | macro_rules! impl_component {
[INFO] [stdout] ...
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem {
[INFO] [stdout]     |                               ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/volume/cylinder.rs:31:1
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl_component![Cylinder];
[INFO] [stdout]     | ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 fn iter_atoms(&self) -> AtomIterItem<'_> {
[INFO] [stdout]     |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.49s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: bitflags v0.8.2
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 6`
[INFO] running `Command { std: "docker" "inspect" "6ad20164c39360d8dea690399e325bf58c188deb33396dc33b71d07d76d6697e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6ad20164c39360d8dea690399e325bf58c188deb33396dc33b71d07d76d6697e", kill_on_drop: false }`
[INFO] [stdout] 6ad20164c39360d8dea690399e325bf58c188deb33396dc33b71d07d76d6697e
