[INFO] fetching crate cosmolkit-core 0.5.1-rc.3...
[INFO] testing cosmolkit-core-0.5.1-rc.3 against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate cosmolkit-core 0.5.1-rc.3 into /workspace/builds/worker-6-tc2/source
[INFO] started tweaking crates.io crate cosmolkit-core 0.5.1-rc.3
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate cosmolkit-core 0.5.1-rc.3
[INFO] tweaked toml for crates.io crate cosmolkit-core 0.5.1-rc.3 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate cosmolkit-core 0.5.1-rc.3 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate cosmolkit-core 0.5.1-rc.3 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] 3f399642aabeae9da4a9656c127c4c9811724fcba46608e0b5c1ceadce1a1577
[INFO] running `Command { std: "docker" "start" "3f399642aabeae9da4a9656c127c4c9811724fcba46608e0b5c1ceadce1a1577", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3f399642aabeae9da4a9656c127c4c9811724fcba46608e0b5c1ceadce1a1577", 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" "3f399642aabeae9da4a9656c127c4c9811724fcba46608e0b5c1ceadce1a1577" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3f399642aabeae9da4a9656c127c4c9811724fcba46608e0b5c1ceadce1a1577", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3f399642aabeae9da4a9656c127c4c9811724fcba46608e0b5c1ceadce1a1577" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.27
[INFO] [stderr]    Compiling thiserror v2.0.21
[INFO] [stderr]    Compiling serde_json v1.0.154
[INFO] [stderr]    Compiling libc v0.2.190
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling syn v3.0.9
[INFO] [stderr]    Compiling thiserror-impl v2.0.21
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling hashify v0.3.1
[INFO] [stderr]    Compiling cosmolkit-ringdecomposer v0.5.1-rc.3
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling cosmolkit-types v0.5.1-rc.3
[INFO] [stderr]    Compiling cosmolkit-model v0.5.1-rc.3
[INFO] [stderr]    Compiling cosmolkit-core v0.5.1-rc.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Atom`
[INFO] [stdout]  --> src/hcount.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 | use cosmolkit_model::{Atom, AtomId, TopologyBlock, TopologyValidationError};
[INFO] [stdout]   |                       ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BTreeMap`
[INFO] [stdout]  --> src/legacy_stereo.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `assign_directional_double_bond_stereo`
[INFO] [stdout]   --> src/legacy_stereo.rs:14:45
[INFO] [stdout]    |
[INFO] [stdout] 14 |     assign_atom_cip_ranks_with_query_state, assign_directional_double_bond_stereo,
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BondStereo`
[INFO] [stdout]  --> src/paths.rs:9:87
[INFO] [stdout]   |
[INFO] [stdout] 9 |     AtomId, AtomMapping, AtomQueryPredicate, BondId, BondMapping, BondQueryPredicate, BondStereo,
[INFO] [stdout]   |                                                                                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NeighborRef`
[INFO] [stdout]  --> src/rings.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     NeighborRef, TopologyBlock, TopologyValidationError,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `assign_valence_state_for_atom_from_parts`, `find_sssr`, and `kekulize`
[INFO] [stdout]   --> src/sanitize.rs:22:21
[INFO] [stdout]    |
[INFO] [stdout] 22 |     assign_valence, assign_valence_state_for_atom_from_parts, cleanup, find_sssr, kekulize,
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^           ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BondId` and `TopologyValidationError`
[INFO] [stdout]  --> src/valence.rs:8:40
[INFO] [stdout]   |
[INFO] [stdout] 8 |     AdjacencyList, Atom, AtomId, Bond, BondId, SourceAtomValenceFacts, TopologyBlock,
[INFO] [stdout]   |                                        ^^^^^^
[INFO] [stdout] 9 |     TopologyValidationError,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BTreeSet`
[INFO] [stdout]  --> src/wedge.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RingSearchParams` and `find_sssr`
[INFO] [stdout]  --> src/wedge.rs:7:62
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::rings::{RingFindType, RingFindingError, RingInfo, RingSearchParams, find_sssr};
[INFO] [stdout]   |                                                              ^^^^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `wedge_bonds_from_atropisomers`
[INFO] [stdout]   --> src/wedge.rs:12:48
[INFO] [stdout]    |
[INFO] [stdout] 12 |     AtropisomerWedgeUpdate, ValenceAssignment, wedge_bonds_from_atropisomers,
[INFO] [stdout]    |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Atom`
[INFO] [stdout]   --> src/wedge.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     Atom, AtomId, Bond, BondId, CoordinateValidationError, PropertyValue, PropertyValueKind,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `atom_has_conjugated_bond`
[INFO] [stdout]    --> src/lib.rs:123:50
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub(crate) use conjugation::{assign_conjugation, atom_has_conjugated_bond};
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PropertyCacheAssignment`, `PropertyCacheError`, `PropertyCacheParams`, and `assign_property_cache`
[INFO] [stdout]    --> src/lib.rs:226:5
[INFO] [stdout]     |
[INFO] [stdout] 226 |     PropertyCacheAssignment, PropertyCacheError, PropertyCacheParams, assign_property_cache,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/double_stereo.rs:775:5
[INFO] [stdout]     |
[INFO] [stdout] 775 |     mut topology: &mut TopologyBlock,
[INFO] [stdout]     |     ----^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/legacy_stereo.rs:852:5
[INFO] [stdout]     |
[INFO] [stdout] 852 |     mut topology: &mut TopologyBlock,
[INFO] [stdout]     |     ----^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `direction_ok` is never read
[INFO] [stdout]     --> src/potential_stereo.rs:1653:36
[INFO] [stdout]      |
[INFO] [stdout] 1653 |               let mut direction_ok = false;
[INFO] [stdout]      |                                      ^^^^^ this value is reassigned later and never used
[INFO] [stdout] 1654 |               for endpoint in endpoints {
[INFO] [stdout] 1655 | /                 direction_ok = topology
[INFO] [stdout] 1656 | |                     .adjacency
[INFO] [stdout] 1657 | |                     .neighbors_of(endpoint.index())
[INFO] [stdout] 1658 | |                     .iter()
[INFO] [stdout] ...    |
[INFO] [stdout] 1661 | |                             && topology.bonds[neighbor.bond.index()].stereo() != BondStereo::None
[INFO] [stdout] 1662 | |                     });
[INFO] [stdout]      | |______________________- `direction_ok` is overwritten here before the previous value is read
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_atom_count`
[INFO] [stdout]    --> src/stereo_order.rs:560:5
[INFO] [stdout]     |
[INFO] [stdout] 560 |     new_atom_count: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_atom_count`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `i` is never read
[INFO] [stdout]    --> src/numeric/decimal_float.rs:508:17
[INFO] [stdout]     |
[INFO] [stdout] 508 |                 i -= 1;
[INFO] [stdout]     |                 ^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 524 |     i = 0;
[INFO] [stdout]     |     ----- `i` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `j` is never read
[INFO] [stdout]    --> src/numeric/decimal_float.rs:400:9
[INFO] [stdout]     |
[INFO] [stdout] 400 |         j = 0;
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `e10` is never read
[INFO] [stdout]    --> src/numeric/decimal_float.rs:292:24
[INFO] [stdout]     |
[INFO] [stdout] 292 |     let mut e10: i64 = 0;
[INFO] [stdout]     |                        ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 361 |         e10 = super::float_scan::scanexp(cursor, pok);
[INFO] [stdout]     |         --------------------------------------------- `e10` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `denormal` is never read
[INFO] [stdout]    --> src/numeric/decimal_float.rs:576:17
[INFO] [stdout]     |
[INFO] [stdout] 576 |                 denormal = false;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OneOrTwo` is never constructed
[INFO] [stdout]    --> src/aromaticity.rs:167:5
[INFO] [stdout]     |
[INFO] [stdout] 163 | enum ElectronDonorType {
[INFO] [stdout]     |      ----------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 167 |     OneOrTwo,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ElectronDonorType` has derived impls for the traits `Clone` and `Debug`, 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: function `atom_donor_type` is never used
[INFO] [stdout]    --> src/aromaticity.rs:769:4
[INFO] [stdout]     |
[INFO] [stdout] 769 | fn atom_donor_type(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `aromaticity_helper` is never used
[INFO] [stdout]     --> src/aromaticity.rs:1579:4
[INFO] [stdout]      |
[INFO] [stdout] 1579 | fn aromaticity_helper(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mdl_aromaticity_helper` is never used
[INFO] [stdout]     --> src/aromaticity.rs:1950:4
[INFO] [stdout]      |
[INFO] [stdout] 1950 | fn mdl_aromaticity_helper(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mmff94_aromaticity_helper` is never used
[INFO] [stdout]     --> src/aromaticity.rs:2531:4
[INFO] [stdout]      |
[INFO] [stdout] 2531 | fn mmff94_aromaticity_helper(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `bond` and `atom` are never read
[INFO] [stdout]    --> src/atropisomer.rs:213:5
[INFO] [stdout]     |
[INFO] [stdout] 212 | struct SourceCarrierError {
[INFO] [stdout]     |        ------------------ fields in this struct
[INFO] [stdout] 213 |     bond: BondId,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 214 |     atom: AtomId,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SourceCarrierError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `try_from_parts` is never used
[INFO] [stdout]     --> src/atropisomer.rs:1408:8
[INFO] [stdout]      |
[INFO] [stdout] 1407 | impl<'a> SourceAtropisomerCandidateTraversal<'a> {
[INFO] [stdout]      | ------------------------------------------------ associated function in this implementation
[INFO] [stdout] 1408 |     fn try_from_parts(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `source_atropisomer_candidate_membership` is never used
[INFO] [stdout]     --> src/atropisomer.rs:1458:4
[INFO] [stdout]      |
[INFO] [stdout] 1458 | fn source_atropisomer_candidate_membership(topology: &TopologyBlock) -> Vec<bool> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cleanup_invalid_atropisomers` is never used
[INFO] [stdout]     --> src/atropisomer.rs:4006:8
[INFO] [stdout]      |
[INFO] [stdout] 4006 | pub fn cleanup_invalid_atropisomers(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cleanup_invalid_atropisomers_with_ring_state` is never used
[INFO] [stdout]     --> src/atropisomer.rs:4165:15
[INFO] [stdout]      |
[INFO] [stdout] 4165 | pub(crate) fn cleanup_invalid_atropisomers_with_ring_state(
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `atom_has_conjugated_bond` is never used
[INFO] [stdout]    --> src/conjugation.rs:295:8
[INFO] [stdout]     |
[INFO] [stdout] 295 | pub fn atom_has_conjugated_bond(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `copy_single_full_molecule_component` is never used
[INFO] [stdout]     --> src/fragments.rs:1168:4
[INFO] [stdout]      |
[INFO] [stdout] 1168 | fn copy_single_full_molecule_component(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `copy_full_molecule_remove_atoms_outside_component` is never used
[INFO] [stdout]     --> src/fragments.rs:1374:4
[INFO] [stdout]      |
[INFO] [stdout] 1374 | fn copy_full_molecule_remove_atoms_outside_component(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `copy_subset_coordinates` is never used
[INFO] [stdout]     --> src/fragments.rs:1707:4
[INFO] [stdout]      |
[INFO] [stdout] 1707 | fn copy_subset_coordinates(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `copy_mol_subset_atom_path` is never used
[INFO] [stdout]     --> src/fragments.rs:1975:4
[INFO] [stdout]      |
[INFO] [stdout] 1975 | fn copy_mol_subset_atom_path(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_ordered_fragment_copies` is never used
[INFO] [stdout]     --> src/fragments.rs:2357:4
[INFO] [stdout]      |
[INFO] [stdout] 2357 | fn build_ordered_fragment_copies(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_ordered_fragment_copies_with_view` is never used
[INFO] [stdout]     --> src/fragments.rs:2374:4
[INFO] [stdout]      |
[INFO] [stdout] 2374 | fn build_ordered_fragment_copies_with_view(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_hydrogens_topology` is never used
[INFO] [stdout]    --> src/hydrogens.rs:524:8
[INFO] [stdout]     |
[INFO] [stdout] 524 | pub fn add_hydrogens_topology(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_hydrogen_candidates` is never used
[INFO] [stdout]     --> src/hydrogens.rs:3950:8
[INFO] [stdout]      |
[INFO] [stdout] 3950 | pub fn remove_hydrogen_candidates(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_hydrogen_candidates_with_query_state` is never used
[INFO] [stdout]     --> src/hydrogens.rs:3960:8
[INFO] [stdout]      |
[INFO] [stdout] 3960 | pub fn remove_hydrogen_candidates_with_query_state(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PreparedKekulizeSelection` is never constructed
[INFO] [stdout]    --> src/kekulize.rs:187:8
[INFO] [stdout]     |
[INFO] [stdout] 187 | struct PreparedKekulizeSelection {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PreparedKekulizeCore` is never constructed
[INFO] [stdout]    --> src/kekulize.rs:203:8
[INFO] [stdout]     |
[INFO] [stdout] 203 | struct PreparedKekulizeCore {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CandidateState` is never constructed
[INFO] [stdout]    --> src/kekulize.rs:214:8
[INFO] [stdout]     |
[INFO] [stdout] 214 | struct CandidateState {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MatchingState` is never constructed
[INFO] [stdout]    --> src/kekulize.rs:222:8
[INFO] [stdout]     |
[INFO] [stdout] 222 | struct MatchingState {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FusedKekulizeState` is never constructed
[INFO] [stdout]    --> src/kekulize.rs:233:8
[INFO] [stdout]     |
[INFO] [stdout] 233 | struct FusedKekulizeState {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `double_bond_candidates`, `double_bonds_added`, `done`, `problem_atoms`, and `backtracks` are never read
[INFO] [stdout]    --> src/kekulize.rs:248:5
[INFO] [stdout]     |
[INFO] [stdout] 246 | struct MatchingAttempt {
[INFO] [stdout]     |        --------------- fields in this struct
[INFO] [stdout] 247 |     succeeded: bool,
[INFO] [stdout] 248 |     double_bond_candidates: Vec<bool>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 249 |     double_bonds_added: Vec<bool>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 250 |     done: Vec<AtomId>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 251 |     problem_atoms: Vec<AtomId>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 252 |     backtracks: u32,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MatchingAttempt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prepare_kekulize_core` is never used
[INFO] [stdout]    --> src/kekulize.rs:406:4
[INFO] [stdout]     |
[INFO] [stdout] 406 | fn prepare_kekulize_core(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kekulize_ring_state_transition` is never used
[INFO] [stdout]    --> src/kekulize.rs:905:4
[INFO] [stdout]     |
[INFO] [stdout] 905 | fn kekulize_ring_state_transition<'a>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mark_double_bond_candidates` is never used
[INFO] [stdout]     --> src/kekulize.rs:1091:4
[INFO] [stdout]      |
[INFO] [stdout] 1091 | fn mark_double_bond_candidates(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kekulize_matching_worker` is never used
[INFO] [stdout]     --> src/kekulize.rs:1548:4
[INFO] [stdout]      |
[INFO] [stdout] 1548 | fn kekulize_matching_worker(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `permute_dummies_and_kekulize` is never used
[INFO] [stdout]     --> src/kekulize.rs:2101:4
[INFO] [stdout]      |
[INFO] [stdout] 2101 | fn permute_dummies_and_kekulize(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kekulize_fused_system` is never used
[INFO] [stdout]     --> src/kekulize.rs:2305:4
[INFO] [stdout]      |
[INFO] [stdout] 2305 | fn kekulize_fused_system(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kekulize_fused_components` is never used
[INFO] [stdout]     --> src/kekulize.rs:2435:4
[INFO] [stdout]      |
[INFO] [stdout] 2435 | fn kekulize_fused_components(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hanoi_sort_order_for_kekulize` is never used
[INFO] [stdout]     --> src/kekulize.rs:5307:4
[INFO] [stdout]      |
[INFO] [stdout] 5307 | fn hanoi_sort_order_for_kekulize(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_potential_bond` is never used
[INFO] [stdout]    --> src/potential_stereo.rs:681:15
[INFO] [stdout]     |
[INFO] [stdout] 681 | pub(crate) fn is_potential_bond(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_BFSQ_SIZE` is never used
[INFO] [stdout]   --> src/rings.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const MAX_BFSQ_SIZE: usize = 200_000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RingSearchResult` is never constructed
[INFO] [stdout]     --> src/rings.rs:1251:8
[INFO] [stdout]      |
[INFO] [stdout] 1251 | struct RingSearchResult {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extra_ring_can_replace_sssr_ring` is never used
[INFO] [stdout]     --> src/rings.rs:1321:4
[INFO] [stdout]      |
[INFO] [stdout] 1321 | fn extra_ring_can_replace_sssr_ring(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_sssr_internal` is never used
[INFO] [stdout]     --> src/rings.rs:2131:4
[INFO] [stdout]      |
[INFO] [stdout] 2131 | fn find_sssr_internal(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `next_possible_ring_bond` is never used
[INFO] [stdout]     --> src/rings.rs:2597:4
[INFO] [stdout]      |
[INFO] [stdout] 2597 | fn next_possible_ring_bond(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_dative` is never used
[INFO] [stdout]     --> src/rings.rs:2620:4
[INFO] [stdout]      |
[INFO] [stdout] 2620 | fn is_dative(order: BondOrder) -> bool {
[INFO] [stdout]      |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_inactive_ring_bond` is never used
[INFO] [stdout]     --> src/rings.rs:2627:4
[INFO] [stdout]      |
[INFO] [stdout] 2627 | fn is_inactive_ring_bond(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RingInvariant` is never constructed
[INFO] [stdout]     --> src/rings.rs:2638:8
[INFO] [stdout]      |
[INFO] [stdout] 2638 | struct RingInvariant {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `bit` is never used
[INFO] [stdout]     --> src/rings.rs:2713:8
[INFO] [stdout]      |
[INFO] [stdout] 2712 | impl RingInvariant {
[INFO] [stdout]      | ------------------ method in this implementation
[INFO] [stdout] 2713 |     fn bit(&self, index: usize) -> bool {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_ring_invariant` is never used
[INFO] [stdout]     --> src/rings.rs:2727:4
[INFO] [stdout]      |
[INFO] [stdout] 2727 | fn compute_ring_invariant(ring: &[usize], num_atoms: usize) -> RingInvariant {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `convert_rings_to_bonds` is never used
[INFO] [stdout]     --> src/rings.rs:2830:4
[INFO] [stdout]      |
[INFO] [stdout] 2830 | fn convert_rings_to_bonds(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trim_bonds` is never used
[INFO] [stdout]     --> src/rings.rs:2871:4
[INFO] [stdout]      |
[INFO] [stdout] 2871 | fn trim_bonds(
[INFO] [stdout]      |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `smallest_rings_bfs` is never used
[INFO] [stdout]     --> src/rings.rs:2908:4
[INFO] [stdout]      |
[INFO] [stdout] 2908 | fn smallest_rings_bfs(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mark_useless_d2s` is never used
[INFO] [stdout]     --> src/rings.rs:3020:4
[INFO] [stdout]      |
[INFO] [stdout] 3020 | fn mark_useless_d2s(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pick_d2_nodes` is never used
[INFO] [stdout]     --> src/rings.rs:3055:4
[INFO] [stdout]      |
[INFO] [stdout] 3055 | fn pick_d2_nodes(
[INFO] [stdout]      |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_sssr_for_dup_candidates` is never used
[INFO] [stdout]     --> src/rings.rs:3104:4
[INFO] [stdout]      |
[INFO] [stdout] 3104 | fn find_sssr_for_dup_candidates(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_rings_d2_nodes` is never used
[INFO] [stdout]     --> src/rings.rs:3193:4
[INFO] [stdout]      |
[INFO] [stdout] 3193 | fn find_rings_d2_nodes(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_rings_d3_node` is never used
[INFO] [stdout]     --> src/rings.rs:3307:4
[INFO] [stdout]      |
[INFO] [stdout] 3307 | fn find_rings_d3_node(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_extra_rings` is never used
[INFO] [stdout]     --> src/rings.rs:3458:4
[INFO] [stdout]      |
[INFO] [stdout] 3458 | fn remove_extra_rings(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_std_sort_rings_by_size` is never used
[INFO] [stdout]     --> src/rings.rs:3628:4
[INFO] [stdout]      |
[INFO] [stdout] 3628 | fn rdkit_std_sort_rings_by_size(rings: &mut [Vec<usize>]) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `atom_search_bfs` is never used
[INFO] [stdout]     --> src/rings.rs:3674:4
[INFO] [stdout]      |
[INFO] [stdout] 3674 | fn atom_search_bfs(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_ring_connecting_atoms` is never used
[INFO] [stdout]     --> src/rings.rs:3754:4
[INFO] [stdout]      |
[INFO] [stdout] 3754 | fn find_ring_connecting_atoms(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `molecule_fragments` is never used
[INFO] [stdout]     --> src/rings.rs:3831:4
[INFO] [stdout]      |
[INFO] [stdout] 3831 | fn molecule_fragments(context: &RingSearchContext<'_>) -> Vec<Vec<usize>> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `valence` is never used
[INFO] [stdout]    --> src/sanitize.rs:314:12
[INFO] [stdout]     |
[INFO] [stdout] 312 | impl PropertyCacheAssignment {
[INFO] [stdout]     | ---------------------------- method in this implementation
[INFO] [stdout] 313 |     #[must_use]
[INFO] [stdout] 314 |     pub fn valence(&self) -> &ValenceAssignment {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cleanup_chirality` is never used
[INFO] [stdout]     --> src/structure_tags.rs:1027:8
[INFO] [stdout]      |
[INFO] [stdout] 1027 | pub fn cleanup_chirality(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `atom` is never used
[INFO] [stdout]    --> src/valence.rs:169:4
[INFO] [stdout]     |
[INFO] [stdout] 169 | fn atom(topology: &TopologyBlock, id: AtomId) -> Result<&Atom, ValenceError> {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pick_bond_to_wedge` is never used
[INFO] [stdout]     --> src/wedge.rs:1390:4
[INFO] [stdout]      |
[INFO] [stdout] 1390 | fn pick_bond_to_wedge(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 19s
[INFO] running `Command { std: "docker" "inspect" "3f399642aabeae9da4a9656c127c4c9811724fcba46608e0b5c1ceadce1a1577", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3f399642aabeae9da4a9656c127c4c9811724fcba46608e0b5c1ceadce1a1577" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_json v1.0.154
[INFO] [stderr]    Compiling cosmolkit-model v0.5.1-rc.3
[INFO] [stderr]    Compiling cosmolkit-core v0.5.1-rc.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Atom`
[INFO] [stdout]  --> src/hcount.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 | use cosmolkit_model::{Atom, AtomId, TopologyBlock, TopologyValidationError};
[INFO] [stdout]   |                       ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BTreeMap`
[INFO] [stdout]  --> src/legacy_stereo.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `assign_directional_double_bond_stereo`
[INFO] [stdout]   --> src/legacy_stereo.rs:14:45
[INFO] [stdout]    |
[INFO] [stdout] 14 |     assign_atom_cip_ranks_with_query_state, assign_directional_double_bond_stereo,
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BondStereo`
[INFO] [stdout]  --> src/paths.rs:9:87
[INFO] [stdout]   |
[INFO] [stdout] 9 |     AtomId, AtomMapping, AtomQueryPredicate, BondId, BondMapping, BondQueryPredicate, BondStereo,
[INFO] [stdout]   |                                                                                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NeighborRef`
[INFO] [stdout]  --> src/rings.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     NeighborRef, TopologyBlock, TopologyValidationError,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `assign_valence_state_for_atom_from_parts`, `find_sssr`, and `kekulize`
[INFO] [stdout]   --> src/sanitize.rs:22:21
[INFO] [stdout]    |
[INFO] [stdout] 22 |     assign_valence, assign_valence_state_for_atom_from_parts, cleanup, find_sssr, kekulize,
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^           ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BondId` and `TopologyValidationError`
[INFO] [stdout]  --> src/valence.rs:8:40
[INFO] [stdout]   |
[INFO] [stdout] 8 |     AdjacencyList, Atom, AtomId, Bond, BondId, SourceAtomValenceFacts, TopologyBlock,
[INFO] [stdout]   |                                        ^^^^^^
[INFO] [stdout] 9 |     TopologyValidationError,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BTreeSet`
[INFO] [stdout]  --> src/wedge.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RingSearchParams` and `find_sssr`
[INFO] [stdout]  --> src/wedge.rs:7:62
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::rings::{RingFindType, RingFindingError, RingInfo, RingSearchParams, find_sssr};
[INFO] [stdout]   |                                                              ^^^^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `wedge_bonds_from_atropisomers`
[INFO] [stdout]   --> src/wedge.rs:12:48
[INFO] [stdout]    |
[INFO] [stdout] 12 |     AtropisomerWedgeUpdate, ValenceAssignment, wedge_bonds_from_atropisomers,
[INFO] [stdout]    |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Atom`
[INFO] [stdout]   --> src/wedge.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     Atom, AtomId, Bond, BondId, CoordinateValidationError, PropertyValue, PropertyValueKind,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `atom_has_conjugated_bond`
[INFO] [stdout]    --> src/lib.rs:123:50
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub(crate) use conjugation::{assign_conjugation, atom_has_conjugated_bond};
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PropertyCacheAssignment`, `PropertyCacheError`, `PropertyCacheParams`, and `assign_property_cache`
[INFO] [stdout]    --> src/lib.rs:226:5
[INFO] [stdout]     |
[INFO] [stdout] 226 |     PropertyCacheAssignment, PropertyCacheError, PropertyCacheParams, assign_property_cache,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: couldn't find file `src/../../../testdata/depict_2d/expected/rdkit/stereo_property_owners_core.rs`
[INFO] [stdout]     --> src/legacy_stereo.rs:1658:13
[INFO] [stdout]      |
[INFO] [stdout] 1658 |             include!("../../../testdata/depict_2d/expected/rdkit/stereo_property_owners_core.rs");
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `cosmolkit-core` (lib test) due to 1 previous error
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/double_stereo.rs:775:5
[INFO] [stdout]     |
[INFO] [stdout] 775 |     mut topology: &mut TopologyBlock,
[INFO] [stdout]     |     ----^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/legacy_stereo.rs:852:5
[INFO] [stdout]     |
[INFO] [stdout] 852 |     mut topology: &mut TopologyBlock,
[INFO] [stdout]     |     ----^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `direction_ok` is never read
[INFO] [stdout]     --> src/potential_stereo.rs:1653:36
[INFO] [stdout]      |
[INFO] [stdout] 1653 |               let mut direction_ok = false;
[INFO] [stdout]      |                                      ^^^^^ this value is reassigned later and never used
[INFO] [stdout] 1654 |               for endpoint in endpoints {
[INFO] [stdout] 1655 | /                 direction_ok = topology
[INFO] [stdout] 1656 | |                     .adjacency
[INFO] [stdout] 1657 | |                     .neighbors_of(endpoint.index())
[INFO] [stdout] 1658 | |                     .iter()
[INFO] [stdout] ...    |
[INFO] [stdout] 1661 | |                             && topology.bonds[neighbor.bond.index()].stereo() != BondStereo::None
[INFO] [stdout] 1662 | |                     });
[INFO] [stdout]      | |______________________- `direction_ok` is overwritten here before the previous value is read
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_atom_count`
[INFO] [stdout]    --> src/stereo_order.rs:560:5
[INFO] [stdout]     |
[INFO] [stdout] 560 |     new_atom_count: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_atom_count`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `i` is never read
[INFO] [stdout]    --> src/numeric/decimal_float.rs:508:17
[INFO] [stdout]     |
[INFO] [stdout] 508 |                 i -= 1;
[INFO] [stdout]     |                 ^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 524 |     i = 0;
[INFO] [stdout]     |     ----- `i` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `j` is never read
[INFO] [stdout]    --> src/numeric/decimal_float.rs:400:9
[INFO] [stdout]     |
[INFO] [stdout] 400 |         j = 0;
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `e10` is never read
[INFO] [stdout]    --> src/numeric/decimal_float.rs:292:24
[INFO] [stdout]     |
[INFO] [stdout] 292 |     let mut e10: i64 = 0;
[INFO] [stdout]     |                        ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 361 |         e10 = super::float_scan::scanexp(cursor, pok);
[INFO] [stdout]     |         --------------------------------------------- `e10` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `denormal` is never read
[INFO] [stdout]    --> src/numeric/decimal_float.rs:576:17
[INFO] [stdout]     |
[INFO] [stdout] 576 |                 denormal = false;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OneOrTwo` is never constructed
[INFO] [stdout]    --> src/aromaticity.rs:167:5
[INFO] [stdout]     |
[INFO] [stdout] 163 | enum ElectronDonorType {
[INFO] [stdout]     |      ----------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 167 |     OneOrTwo,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ElectronDonorType` has derived impls for the traits `Clone` and `Debug`, 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: function `atom_donor_type` is never used
[INFO] [stdout]    --> src/aromaticity.rs:769:4
[INFO] [stdout]     |
[INFO] [stdout] 769 | fn atom_donor_type(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `aromaticity_helper` is never used
[INFO] [stdout]     --> src/aromaticity.rs:1579:4
[INFO] [stdout]      |
[INFO] [stdout] 1579 | fn aromaticity_helper(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mdl_aromaticity_helper` is never used
[INFO] [stdout]     --> src/aromaticity.rs:1950:4
[INFO] [stdout]      |
[INFO] [stdout] 1950 | fn mdl_aromaticity_helper(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mmff94_aromaticity_helper` is never used
[INFO] [stdout]     --> src/aromaticity.rs:2531:4
[INFO] [stdout]      |
[INFO] [stdout] 2531 | fn mmff94_aromaticity_helper(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `bond` and `atom` are never read
[INFO] [stdout]    --> src/atropisomer.rs:213:5
[INFO] [stdout]     |
[INFO] [stdout] 212 | struct SourceCarrierError {
[INFO] [stdout]     |        ------------------ fields in this struct
[INFO] [stdout] 213 |     bond: BondId,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 214 |     atom: AtomId,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SourceCarrierError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `try_from_parts` is never used
[INFO] [stdout]     --> src/atropisomer.rs:1408:8
[INFO] [stdout]      |
[INFO] [stdout] 1407 | impl<'a> SourceAtropisomerCandidateTraversal<'a> {
[INFO] [stdout]      | ------------------------------------------------ associated function in this implementation
[INFO] [stdout] 1408 |     fn try_from_parts(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `source_atropisomer_candidate_membership` is never used
[INFO] [stdout]     --> src/atropisomer.rs:1458:4
[INFO] [stdout]      |
[INFO] [stdout] 1458 | fn source_atropisomer_candidate_membership(topology: &TopologyBlock) -> Vec<bool> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cleanup_invalid_atropisomers` is never used
[INFO] [stdout]     --> src/atropisomer.rs:4006:8
[INFO] [stdout]      |
[INFO] [stdout] 4006 | pub fn cleanup_invalid_atropisomers(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cleanup_invalid_atropisomers_with_ring_state` is never used
[INFO] [stdout]     --> src/atropisomer.rs:4165:15
[INFO] [stdout]      |
[INFO] [stdout] 4165 | pub(crate) fn cleanup_invalid_atropisomers_with_ring_state(
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `atom_has_conjugated_bond` is never used
[INFO] [stdout]    --> src/conjugation.rs:295:8
[INFO] [stdout]     |
[INFO] [stdout] 295 | pub fn atom_has_conjugated_bond(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `copy_single_full_molecule_component` is never used
[INFO] [stdout]     --> src/fragments.rs:1168:4
[INFO] [stdout]      |
[INFO] [stdout] 1168 | fn copy_single_full_molecule_component(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `copy_full_molecule_remove_atoms_outside_component` is never used
[INFO] [stdout]     --> src/fragments.rs:1374:4
[INFO] [stdout]      |
[INFO] [stdout] 1374 | fn copy_full_molecule_remove_atoms_outside_component(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `copy_subset_coordinates` is never used
[INFO] [stdout]     --> src/fragments.rs:1707:4
[INFO] [stdout]      |
[INFO] [stdout] 1707 | fn copy_subset_coordinates(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `copy_mol_subset_atom_path` is never used
[INFO] [stdout]     --> src/fragments.rs:1975:4
[INFO] [stdout]      |
[INFO] [stdout] 1975 | fn copy_mol_subset_atom_path(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_ordered_fragment_copies` is never used
[INFO] [stdout]     --> src/fragments.rs:2357:4
[INFO] [stdout]      |
[INFO] [stdout] 2357 | fn build_ordered_fragment_copies(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_ordered_fragment_copies_with_view` is never used
[INFO] [stdout]     --> src/fragments.rs:2374:4
[INFO] [stdout]      |
[INFO] [stdout] 2374 | fn build_ordered_fragment_copies_with_view(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_hydrogens_topology` is never used
[INFO] [stdout]    --> src/hydrogens.rs:524:8
[INFO] [stdout]     |
[INFO] [stdout] 524 | pub fn add_hydrogens_topology(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_hydrogen_candidates` is never used
[INFO] [stdout]     --> src/hydrogens.rs:3950:8
[INFO] [stdout]      |
[INFO] [stdout] 3950 | pub fn remove_hydrogen_candidates(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_hydrogen_candidates_with_query_state` is never used
[INFO] [stdout]     --> src/hydrogens.rs:3960:8
[INFO] [stdout]      |
[INFO] [stdout] 3960 | pub fn remove_hydrogen_candidates_with_query_state(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PreparedKekulizeSelection` is never constructed
[INFO] [stdout]    --> src/kekulize.rs:187:8
[INFO] [stdout]     |
[INFO] [stdout] 187 | struct PreparedKekulizeSelection {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PreparedKekulizeCore` is never constructed
[INFO] [stdout]    --> src/kekulize.rs:203:8
[INFO] [stdout]     |
[INFO] [stdout] 203 | struct PreparedKekulizeCore {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CandidateState` is never constructed
[INFO] [stdout]    --> src/kekulize.rs:214:8
[INFO] [stdout]     |
[INFO] [stdout] 214 | struct CandidateState {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MatchingState` is never constructed
[INFO] [stdout]    --> src/kekulize.rs:222:8
[INFO] [stdout]     |
[INFO] [stdout] 222 | struct MatchingState {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FusedKekulizeState` is never constructed
[INFO] [stdout]    --> src/kekulize.rs:233:8
[INFO] [stdout]     |
[INFO] [stdout] 233 | struct FusedKekulizeState {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `double_bond_candidates`, `double_bonds_added`, `done`, `problem_atoms`, and `backtracks` are never read
[INFO] [stdout]    --> src/kekulize.rs:248:5
[INFO] [stdout]     |
[INFO] [stdout] 246 | struct MatchingAttempt {
[INFO] [stdout]     |        --------------- fields in this struct
[INFO] [stdout] 247 |     succeeded: bool,
[INFO] [stdout] 248 |     double_bond_candidates: Vec<bool>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 249 |     double_bonds_added: Vec<bool>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 250 |     done: Vec<AtomId>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 251 |     problem_atoms: Vec<AtomId>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 252 |     backtracks: u32,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MatchingAttempt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prepare_kekulize_core` is never used
[INFO] [stdout]    --> src/kekulize.rs:406:4
[INFO] [stdout]     |
[INFO] [stdout] 406 | fn prepare_kekulize_core(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kekulize_ring_state_transition` is never used
[INFO] [stdout]    --> src/kekulize.rs:905:4
[INFO] [stdout]     |
[INFO] [stdout] 905 | fn kekulize_ring_state_transition<'a>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mark_double_bond_candidates` is never used
[INFO] [stdout]     --> src/kekulize.rs:1091:4
[INFO] [stdout]      |
[INFO] [stdout] 1091 | fn mark_double_bond_candidates(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kekulize_matching_worker` is never used
[INFO] [stdout]     --> src/kekulize.rs:1548:4
[INFO] [stdout]      |
[INFO] [stdout] 1548 | fn kekulize_matching_worker(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `permute_dummies_and_kekulize` is never used
[INFO] [stdout]     --> src/kekulize.rs:2101:4
[INFO] [stdout]      |
[INFO] [stdout] 2101 | fn permute_dummies_and_kekulize(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kekulize_fused_system` is never used
[INFO] [stdout]     --> src/kekulize.rs:2305:4
[INFO] [stdout]      |
[INFO] [stdout] 2305 | fn kekulize_fused_system(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kekulize_fused_components` is never used
[INFO] [stdout]     --> src/kekulize.rs:2435:4
[INFO] [stdout]      |
[INFO] [stdout] 2435 | fn kekulize_fused_components(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hanoi_sort_order_for_kekulize` is never used
[INFO] [stdout]     --> src/kekulize.rs:5307:4
[INFO] [stdout]      |
[INFO] [stdout] 5307 | fn hanoi_sort_order_for_kekulize(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_potential_bond` is never used
[INFO] [stdout]    --> src/potential_stereo.rs:681:15
[INFO] [stdout]     |
[INFO] [stdout] 681 | pub(crate) fn is_potential_bond(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_BFSQ_SIZE` is never used
[INFO] [stdout]   --> src/rings.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const MAX_BFSQ_SIZE: usize = 200_000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RingSearchResult` is never constructed
[INFO] [stdout]     --> src/rings.rs:1251:8
[INFO] [stdout]      |
[INFO] [stdout] 1251 | struct RingSearchResult {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extra_ring_can_replace_sssr_ring` is never used
[INFO] [stdout]     --> src/rings.rs:1321:4
[INFO] [stdout]      |
[INFO] [stdout] 1321 | fn extra_ring_can_replace_sssr_ring(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_sssr_internal` is never used
[INFO] [stdout]     --> src/rings.rs:2131:4
[INFO] [stdout]      |
[INFO] [stdout] 2131 | fn find_sssr_internal(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `next_possible_ring_bond` is never used
[INFO] [stdout]     --> src/rings.rs:2597:4
[INFO] [stdout]      |
[INFO] [stdout] 2597 | fn next_possible_ring_bond(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_dative` is never used
[INFO] [stdout]     --> src/rings.rs:2620:4
[INFO] [stdout]      |
[INFO] [stdout] 2620 | fn is_dative(order: BondOrder) -> bool {
[INFO] [stdout]      |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_inactive_ring_bond` is never used
[INFO] [stdout]     --> src/rings.rs:2627:4
[INFO] [stdout]      |
[INFO] [stdout] 2627 | fn is_inactive_ring_bond(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RingInvariant` is never constructed
[INFO] [stdout]     --> src/rings.rs:2638:8
[INFO] [stdout]      |
[INFO] [stdout] 2638 | struct RingInvariant {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `bit` is never used
[INFO] [stdout]     --> src/rings.rs:2713:8
[INFO] [stdout]      |
[INFO] [stdout] 2712 | impl RingInvariant {
[INFO] [stdout]      | ------------------ method in this implementation
[INFO] [stdout] 2713 |     fn bit(&self, index: usize) -> bool {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_ring_invariant` is never used
[INFO] [stdout]     --> src/rings.rs:2727:4
[INFO] [stdout]      |
[INFO] [stdout] 2727 | fn compute_ring_invariant(ring: &[usize], num_atoms: usize) -> RingInvariant {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `convert_rings_to_bonds` is never used
[INFO] [stdout]     --> src/rings.rs:2830:4
[INFO] [stdout]      |
[INFO] [stdout] 2830 | fn convert_rings_to_bonds(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trim_bonds` is never used
[INFO] [stdout]     --> src/rings.rs:2871:4
[INFO] [stdout]      |
[INFO] [stdout] 2871 | fn trim_bonds(
[INFO] [stdout]      |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `smallest_rings_bfs` is never used
[INFO] [stdout]     --> src/rings.rs:2908:4
[INFO] [stdout]      |
[INFO] [stdout] 2908 | fn smallest_rings_bfs(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mark_useless_d2s` is never used
[INFO] [stdout]     --> src/rings.rs:3020:4
[INFO] [stdout]      |
[INFO] [stdout] 3020 | fn mark_useless_d2s(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pick_d2_nodes` is never used
[INFO] [stdout]     --> src/rings.rs:3055:4
[INFO] [stdout]      |
[INFO] [stdout] 3055 | fn pick_d2_nodes(
[INFO] [stdout]      |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_sssr_for_dup_candidates` is never used
[INFO] [stdout]     --> src/rings.rs:3104:4
[INFO] [stdout]      |
[INFO] [stdout] 3104 | fn find_sssr_for_dup_candidates(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_rings_d2_nodes` is never used
[INFO] [stdout]     --> src/rings.rs:3193:4
[INFO] [stdout]      |
[INFO] [stdout] 3193 | fn find_rings_d2_nodes(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_rings_d3_node` is never used
[INFO] [stdout]     --> src/rings.rs:3307:4
[INFO] [stdout]      |
[INFO] [stdout] 3307 | fn find_rings_d3_node(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_extra_rings` is never used
[INFO] [stdout]     --> src/rings.rs:3458:4
[INFO] [stdout]      |
[INFO] [stdout] 3458 | fn remove_extra_rings(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_std_sort_rings_by_size` is never used
[INFO] [stdout]     --> src/rings.rs:3628:4
[INFO] [stdout]      |
[INFO] [stdout] 3628 | fn rdkit_std_sort_rings_by_size(rings: &mut [Vec<usize>]) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `atom_search_bfs` is never used
[INFO] [stdout]     --> src/rings.rs:3674:4
[INFO] [stdout]      |
[INFO] [stdout] 3674 | fn atom_search_bfs(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_ring_connecting_atoms` is never used
[INFO] [stdout]     --> src/rings.rs:3754:4
[INFO] [stdout]      |
[INFO] [stdout] 3754 | fn find_ring_connecting_atoms(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `molecule_fragments` is never used
[INFO] [stdout]     --> src/rings.rs:3831:4
[INFO] [stdout]      |
[INFO] [stdout] 3831 | fn molecule_fragments(context: &RingSearchContext<'_>) -> Vec<Vec<usize>> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `valence` is never used
[INFO] [stdout]    --> src/sanitize.rs:314:12
[INFO] [stdout]     |
[INFO] [stdout] 312 | impl PropertyCacheAssignment {
[INFO] [stdout]     | ---------------------------- method in this implementation
[INFO] [stdout] 313 |     #[must_use]
[INFO] [stdout] 314 |     pub fn valence(&self) -> &ValenceAssignment {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cleanup_chirality` is never used
[INFO] [stdout]     --> src/structure_tags.rs:1027:8
[INFO] [stdout]      |
[INFO] [stdout] 1027 | pub fn cleanup_chirality(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `atom` is never used
[INFO] [stdout]    --> src/valence.rs:169:4
[INFO] [stdout]     |
[INFO] [stdout] 169 | fn atom(topology: &TopologyBlock, id: AtomId) -> Result<&Atom, ValenceError> {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pick_bond_to_wedge` is never used
[INFO] [stdout]     --> src/wedge.rs:1390:4
[INFO] [stdout]      |
[INFO] [stdout] 1390 | fn pick_bond_to_wedge(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "3f399642aabeae9da4a9656c127c4c9811724fcba46608e0b5c1ceadce1a1577", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3f399642aabeae9da4a9656c127c4c9811724fcba46608e0b5c1ceadce1a1577", kill_on_drop: false }`
[INFO] [stdout] 3f399642aabeae9da4a9656c127c4c9811724fcba46608e0b5c1ceadce1a1577
