[INFO] cloning repository https://github.com/frfole/take-me-there [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/frfole/take-me-there" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffrfole%2Ftake-me-there", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffrfole%2Ftake-me-there'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 6faab0cd0944089dafa89aa1063854c95617ae09 [INFO] linting frfole/take-me-there against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffrfole%2Ftake-me-there" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/frfole/take-me-there [INFO] finished tweaking git repo https://github.com/frfole/take-me-there [INFO] tweaked toml for git repo https://github.com/frfole/take-me-there written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/frfole/take-me-there on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/frfole/take-me-there 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" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded serde v1.0.214 [INFO] [stderr] Downloaded serde_derive v1.0.214 [INFO] [stderr] Downloaded cc v1.1.34 [INFO] [stderr] Downloaded quick-xml v0.37.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 1564dd9872e360c43da0aee3a44774b2a9075692c9dfba15615e1df913d610d1 [INFO] running `Command { std: "docker" "start" "-a" "1564dd9872e360c43da0aee3a44774b2a9075692c9dfba15615e1df913d610d1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1564dd9872e360c43da0aee3a44774b2a9075692c9dfba15615e1df913d610d1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1564dd9872e360c43da0aee3a44774b2a9075692c9dfba15615e1df913d610d1", kill_on_drop: false }` [INFO] [stdout] 1564dd9872e360c43da0aee3a44774b2a9075692c9dfba15615e1df913d610d1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ebf9e2ecda9de496094fe94a0c054a6f34cef806103b587ae0727c5d8b165ab9 [INFO] running `Command { std: "docker" "start" "-a" "ebf9e2ecda9de496094fe94a0c054a6f34cef806103b587ae0727c5d8b165ab9", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.89 [INFO] [stderr] Compiling unicode-ident v1.0.13 [INFO] [stderr] Compiling serde v1.0.214 [INFO] [stderr] Compiling anyhow v1.0.92 [INFO] [stderr] Compiling cc v1.1.34 [INFO] [stderr] Checking hashbrown v0.15.0 [INFO] [stderr] Checking miniz_oxide v0.8.0 [INFO] [stderr] Checking iana-time-zone v0.1.61 [INFO] [stderr] Checking fixedbitset v0.4.2 [INFO] [stderr] Checking quick-xml v0.37.0 [INFO] [stderr] Checking indexmap v2.6.0 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Compiling libz-sys v1.1.20 [INFO] [stderr] Compiling syn v2.0.87 [INFO] [stderr] Checking petgraph v0.6.5 [INFO] [stderr] Checking flate2 v1.0.34 [INFO] [stderr] Compiling serde_derive v1.0.214 [INFO] [stderr] Checking bit-vec v0.8.0 [INFO] [stderr] Checking bincode v1.3.3 [INFO] [stderr] Checking chrono v0.4.38 [INFO] [stderr] Checking bit-set v0.8.0 [INFO] [stderr] Checking take-me-there v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `dijkstra` [INFO] [stdout] --> src/main.rs:3:29 [INFO] [stdout] | [INFO] [stdout] 3 | use petgraph::algo::{astar, dijkstra}; [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: `dijkstra` [INFO] [stdout] --> src/main.rs:3:29 [INFO] [stdout] | [INFO] [stdout] 3 | use petgraph::algo::{astar, dijkstra}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `print_journey` is never used [INFO] [stdout] --> src/structure.rs:94:12 [INFO] [stdout] | [INFO] [stdout] 93 | impl Connection { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 94 | pub fn print_journey(&self, index: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/parser.rs:102:47 [INFO] [stdout] | [INFO] [stdout] 102 | let order = i32::from_str(&*e.try_get_attribute("order")?.unwrap().unescape_value()?)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&e.try_get_attribute("order")?.unwrap().unescape_value()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `bool_vec` [INFO] [stdout] --> src/parser.rs:205:30 [INFO] [stdout] | [INFO] [stdout] 205 | for i in 0..bool_vec.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 205 - for i in 0..bool_vec.len() { [INFO] [stdout] 205 + for (i, ) in bool_vec.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/parser.rs:323:27 [INFO] [stdout] | [INFO] [stdout] 323 | fn path_vec_eq(left_path: &Vec, rigth_path: Vec<&str>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 323 - fn path_vec_eq(left_path: &Vec, rigth_path: Vec<&str>) -> bool { [INFO] [stdout] 323 + fn path_vec_eq(left_path: &[String], rigth_path: Vec<&str>) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `sub_stop_counter` is used as a loop counter [INFO] [stdout] --> src/structure.rs:135:13 [INFO] [stdout] | [INFO] [stdout] 135 | for stop in connection.stops { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (sub_stop_counter, stop) in connection.stops.into_iter().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | if base_folder.join("cache.bin").is_file() && true { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `base_folder.join("cache.bin").is_file()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Ok` variant of the iterator element is used [INFO] [stdout] --> src/main.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | / for entry in base_folder.read_dir()? { [INFO] [stdout] 32 | | if let Ok(entry) = entry { [INFO] [stdout] 33 | | if entry.path().is_file() && entry.path().extension() == Some("xml".as_ref()) { [INFO] [stdout] 34 | | if counter % 100 == 0 { [INFO] [stdout] ... | [INFO] [stdout] 42 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/main.rs:32:13 [INFO] [stdout] | [INFO] [stdout] 32 | / if let Ok(entry) = entry { [INFO] [stdout] 33 | | if entry.path().is_file() && entry.path().extension() == Some("xml".as_ref()) { [INFO] [stdout] 34 | | if counter % 100 == 0 { [INFO] [stdout] 35 | | println!("parsing {} {}", counter, entry.path().display()); [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] = note: `#[warn(clippy::manual_flatten)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 31 ~ for entry in base_folder.read_dir()?.flatten() { [INFO] [stdout] 32 + if entry.path().is_file() && entry.path().extension() == Some("xml".as_ref()) { [INFO] [stdout] 33 + if counter % 100 == 0 { [INFO] [stdout] 34 + println!("parsing {} {}", counter, entry.path().display()); [INFO] [stdout] 35 + } [INFO] [stdout] 36 + counter += 1; [INFO] [stdout] 37 + let connection = parse_netex(entry.path())?; [INFO] [stdout] 38 + sub_conns.push(connection); [INFO] [stdout] 39 + } [INFO] [stdout] 40 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:64:33 [INFO] [stdout] | [INFO] [stdout] 64 | if journey.is_valid(&connection, NaiveDateTime::from(NaiveDate::from_ymd_opt(2024, 11, 4).unwrap())) { [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `connection` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's values [INFO] [stdout] --> src/main.rs:98:23 [INFO] [stdout] | [INFO] [stdout] 98 | for (_, verts) in &same_vert { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] = note: `#[warn(clippy::for_kv_map)]` on by default [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 98 - for (_, verts) in &same_vert { [INFO] [stdout] 98 + for verts in same_vert.values() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `NaiveTime` which implements the `Copy` trait [INFO] [stdout] --> src/main.rs:105:53 [INFO] [stdout] | [INFO] [stdout] 105 | graph.add_edge(*start_vert, *end_vert, (end_t.clone() - start_t.clone()).num_seconds()); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*end_t` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `NaiveTime` which implements the `Copy` trait [INFO] [stdout] --> src/main.rs:105:69 [INFO] [stdout] | [INFO] [stdout] 105 | graph.add_edge(*start_vert, *end_vert, (end_t.clone() - start_t.clone()).num_seconds()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try dereferencing it: `*start_t` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> src/main.rs:110:32 [INFO] [stdout] | [INFO] [stdout] 110 | let end_vert: Vec = same_vert["Hradec Králové,,Terminál HD/Other"].iter().map(|(_, v)| *v).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `same_vert["Hradec Králové,,Terminál HD/Other"].values().map(|v| *v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] = note: `#[warn(clippy::iter_kv_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's values [INFO] [stdout] --> src/main.rs:112:28 [INFO] [stdout] | [INFO] [stdout] 112 | for (_, start_vert) in &same_vert["Opočno,,nám./Other"] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 112 - for (_, start_vert) in &same_vert["Opočno,,nám./Other"] { [INFO] [stdout] 112 + for start_vert in same_vert["Opočno,,nám./Other"].values() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:113:39 [INFO] [stdout] | [INFO] [stdout] 113 | println!("start {}", idx2vert[&start_vert]); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `start_vert` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `print_journey` is never used [INFO] [stdout] --> src/structure.rs:94:12 [INFO] [stdout] | [INFO] [stdout] 93 | impl Connection { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 94 | pub fn print_journey(&self, index: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/parser.rs:102:47 [INFO] [stdout] | [INFO] [stdout] 102 | let order = i32::from_str(&*e.try_get_attribute("order")?.unwrap().unescape_value()?)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&e.try_get_attribute("order")?.unwrap().unescape_value()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `bool_vec` [INFO] [stdout] --> src/parser.rs:205:30 [INFO] [stdout] | [INFO] [stdout] 205 | for i in 0..bool_vec.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 205 - for i in 0..bool_vec.len() { [INFO] [stdout] 205 + for (i, ) in bool_vec.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/parser.rs:323:27 [INFO] [stdout] | [INFO] [stdout] 323 | fn path_vec_eq(left_path: &Vec, rigth_path: Vec<&str>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 323 - fn path_vec_eq(left_path: &Vec, rigth_path: Vec<&str>) -> bool { [INFO] [stdout] 323 + fn path_vec_eq(left_path: &[String], rigth_path: Vec<&str>) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `sub_stop_counter` is used as a loop counter [INFO] [stdout] --> src/structure.rs:135:13 [INFO] [stdout] | [INFO] [stdout] 135 | for stop in connection.stops { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (sub_stop_counter, stop) in connection.stops.into_iter().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | if base_folder.join("cache.bin").is_file() && true { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `base_folder.join("cache.bin").is_file()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Ok` variant of the iterator element is used [INFO] [stdout] --> src/main.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | / for entry in base_folder.read_dir()? { [INFO] [stdout] 32 | | if let Ok(entry) = entry { [INFO] [stdout] 33 | | if entry.path().is_file() && entry.path().extension() == Some("xml".as_ref()) { [INFO] [stdout] 34 | | if counter % 100 == 0 { [INFO] [stdout] ... | [INFO] [stdout] 42 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/main.rs:32:13 [INFO] [stdout] | [INFO] [stdout] 32 | / if let Ok(entry) = entry { [INFO] [stdout] 33 | | if entry.path().is_file() && entry.path().extension() == Some("xml".as_ref()) { [INFO] [stdout] 34 | | if counter % 100 == 0 { [INFO] [stdout] 35 | | println!("parsing {} {}", counter, entry.path().display()); [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] = note: `#[warn(clippy::manual_flatten)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 31 ~ for entry in base_folder.read_dir()?.flatten() { [INFO] [stdout] 32 + if entry.path().is_file() && entry.path().extension() == Some("xml".as_ref()) { [INFO] [stdout] 33 + if counter % 100 == 0 { [INFO] [stdout] 34 + println!("parsing {} {}", counter, entry.path().display()); [INFO] [stdout] 35 + } [INFO] [stdout] 36 + counter += 1; [INFO] [stdout] 37 + let connection = parse_netex(entry.path())?; [INFO] [stdout] 38 + sub_conns.push(connection); [INFO] [stdout] 39 + } [INFO] [stdout] 40 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:64:33 [INFO] [stdout] | [INFO] [stdout] 64 | if journey.is_valid(&connection, NaiveDateTime::from(NaiveDate::from_ymd_opt(2024, 11, 4).unwrap())) { [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `connection` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 18.50s [INFO] [stdout] warning: you seem to want to iterate on a map's values [INFO] [stdout] --> src/main.rs:98:23 [INFO] [stdout] | [INFO] [stdout] 98 | for (_, verts) in &same_vert { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] = note: `#[warn(clippy::for_kv_map)]` on by default [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 98 - for (_, verts) in &same_vert { [INFO] [stdout] 98 + for verts in same_vert.values() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `NaiveTime` which implements the `Copy` trait [INFO] [stdout] --> src/main.rs:105:53 [INFO] [stdout] | [INFO] [stdout] 105 | graph.add_edge(*start_vert, *end_vert, (end_t.clone() - start_t.clone()).num_seconds()); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*end_t` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `NaiveTime` which implements the `Copy` trait [INFO] [stdout] --> src/main.rs:105:69 [INFO] [stdout] | [INFO] [stdout] 105 | graph.add_edge(*start_vert, *end_vert, (end_t.clone() - start_t.clone()).num_seconds()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try dereferencing it: `*start_t` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> src/main.rs:110:32 [INFO] [stdout] | [INFO] [stdout] 110 | let end_vert: Vec = same_vert["Hradec Králové,,Terminál HD/Other"].iter().map(|(_, v)| *v).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `same_vert["Hradec Králové,,Terminál HD/Other"].values().map(|v| *v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] = note: `#[warn(clippy::iter_kv_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's values [INFO] [stdout] --> src/main.rs:112:28 [INFO] [stdout] | [INFO] [stdout] 112 | for (_, start_vert) in &same_vert["Opočno,,nám./Other"] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 112 - for (_, start_vert) in &same_vert["Opočno,,nám./Other"] { [INFO] [stdout] 112 + for start_vert in same_vert["Opočno,,nám./Other"].values() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:113:39 [INFO] [stdout] | [INFO] [stdout] 113 | println!("start {}", idx2vert[&start_vert]); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `start_vert` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "ebf9e2ecda9de496094fe94a0c054a6f34cef806103b587ae0727c5d8b165ab9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ebf9e2ecda9de496094fe94a0c054a6f34cef806103b587ae0727c5d8b165ab9", kill_on_drop: false }` [INFO] [stdout] ebf9e2ecda9de496094fe94a0c054a6f34cef806103b587ae0727c5d8b165ab9