[INFO] updating cached repository Isan-Rivkin/p2p-network-graph-simulator-rs [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/Isan-Rivkin/p2p-network-graph-simulator-rs [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/Isan-Rivkin/p2p-network-graph-simulator-rs" "work/ex/clippy-test-run/sources/stable/gh/Isan-Rivkin/p2p-network-graph-simulator-rs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/Isan-Rivkin/p2p-network-graph-simulator-rs'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/Isan-Rivkin/p2p-network-graph-simulator-rs" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Isan-Rivkin/p2p-network-graph-simulator-rs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Isan-Rivkin/p2p-network-graph-simulator-rs'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] d4c9a0a2bec3bbaf7d62c76e62bdb20c045ade19 [INFO] sha for GitHub repo Isan-Rivkin/p2p-network-graph-simulator-rs: d4c9a0a2bec3bbaf7d62c76e62bdb20c045ade19 [INFO] validating manifest of Isan-Rivkin/p2p-network-graph-simulator-rs on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of Isan-Rivkin/p2p-network-graph-simulator-rs on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing Isan-Rivkin/p2p-network-graph-simulator-rs [INFO] finished frobbing Isan-Rivkin/p2p-network-graph-simulator-rs [INFO] frobbed toml for Isan-Rivkin/p2p-network-graph-simulator-rs written to work/ex/clippy-test-run/sources/stable/gh/Isan-Rivkin/p2p-network-graph-simulator-rs/Cargo.toml [INFO] started frobbing Isan-Rivkin/p2p-network-graph-simulator-rs [INFO] finished frobbing Isan-Rivkin/p2p-network-graph-simulator-rs [INFO] frobbed toml for Isan-Rivkin/p2p-network-graph-simulator-rs written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Isan-Rivkin/p2p-network-graph-simulator-rs/Cargo.toml [INFO] crate Isan-Rivkin/p2p-network-graph-simulator-rs has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting Isan-Rivkin/p2p-network-graph-simulator-rs against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-3/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/Isan-Rivkin/p2p-network-graph-simulator-rs:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] f0738860a2ffba4ebfeff4c62a3719d1abc534c0d768933bb70f667837927429 [INFO] running `"docker" "start" "-a" "f0738860a2ffba4ebfeff4c62a3719d1abc534c0d768933bb70f667837927429"` [INFO] [stderr] Checking memchr v2.1.0 [INFO] [stderr] Checking csv-core v0.1.4 [INFO] [stderr] Checking csv v1.0.2 [INFO] [stderr] Checking graph_connetions_calculator v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/policy.rs:11:13 [INFO] [stderr] | [INFO] [stderr] 11 | outbound_optimal : outbound_optimal, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `outbound_optimal` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/policy.rs:12:13 [INFO] [stderr] | [INFO] [stderr] 12 | inbound_max : inbound_max, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `inbound_max` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/policy.rs:13:13 [INFO] [stderr] | [INFO] [stderr] 13 | dns_nodes :dns_nodes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `dns_nodes` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/optimizer.rs:37:9 [INFO] [stderr] | [INFO] [stderr] 37 | write!(f,"\t1) Config: Optimal = {} , Max inbound = {} \n", self.config_optimal_out, self.config_max_in); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/optimizer.rs:38:9 [INFO] [stderr] | [INFO] [stderr] 38 | write!(f,"\t2) Satisfied Graph : {} \n" , self.is_satisfied_graph); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/optimizer.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | write!(f,"\t3) Violated graph : {} \n", self.is_violating_graph); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/optimizer.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | write!(f, "\t4) Total Nodes (with dns) : {} \n", self.final_graph.len()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/optimizer.rs:41:9 [INFO] [stderr] | [INFO] [stderr] 41 | write!(f,"\t5) Satisfied Nodes (exclude dns): {}/{} \n", self.satisfied_nodes_num , self.final_graph.len()- self.dns_nodes_num); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/optimizer.rs:42:9 [INFO] [stderr] | [INFO] [stderr] 42 | write!(f,"\t6) Dns Nodes : {} \n" , self.dns_nodes_num); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/optimizer.rs:43:9 [INFO] [stderr] | [INFO] [stderr] 43 | write!(f,"\t7) Not Satisfied Nodes : {} \n" , self.not_satisfied_nodes); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/optimizer.rs:56:13 [INFO] [stderr] | [INFO] [stderr] 56 | policy : policy, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `policy` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/optimizer.rs:125:21 [INFO] [stderr] | [INFO] [stderr] 125 | node : node, [INFO] [stderr] | ^^^^^^^^^^^ help: replace it with: `node` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/optimizer.rs:153:21 [INFO] [stderr] | [INFO] [stderr] 153 | node : node, [INFO] [stderr] | ^^^^^^^^^^^ help: replace it with: `node` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/policy.rs:11:13 [INFO] [stderr] | [INFO] [stderr] 11 | outbound_optimal : outbound_optimal, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `outbound_optimal` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/policy.rs:12:13 [INFO] [stderr] | [INFO] [stderr] 12 | inbound_max : inbound_max, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `inbound_max` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/policy.rs:13:13 [INFO] [stderr] | [INFO] [stderr] 13 | dns_nodes :dns_nodes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `dns_nodes` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/optimizer.rs:37:9 [INFO] [stderr] | [INFO] [stderr] 37 | write!(f,"\t1) Config: Optimal = {} , Max inbound = {} \n", self.config_optimal_out, self.config_max_in); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/optimizer.rs:38:9 [INFO] [stderr] | [INFO] [stderr] 38 | write!(f,"\t2) Satisfied Graph : {} \n" , self.is_satisfied_graph); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/optimizer.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | write!(f,"\t3) Violated graph : {} \n", self.is_violating_graph); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/optimizer.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | write!(f, "\t4) Total Nodes (with dns) : {} \n", self.final_graph.len()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/optimizer.rs:41:9 [INFO] [stderr] | [INFO] [stderr] 41 | write!(f,"\t5) Satisfied Nodes (exclude dns): {}/{} \n", self.satisfied_nodes_num , self.final_graph.len()- self.dns_nodes_num); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/optimizer.rs:42:9 [INFO] [stderr] | [INFO] [stderr] 42 | write!(f,"\t6) Dns Nodes : {} \n" , self.dns_nodes_num); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/optimizer.rs:43:9 [INFO] [stderr] | [INFO] [stderr] 43 | write!(f,"\t7) Not Satisfied Nodes : {} \n" , self.not_satisfied_nodes); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/optimizer.rs:56:13 [INFO] [stderr] | [INFO] [stderr] 56 | policy : policy, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `policy` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/optimizer.rs:125:21 [INFO] [stderr] | [INFO] [stderr] 125 | node : node, [INFO] [stderr] | ^^^^^^^^^^^ help: replace it with: `node` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/optimizer.rs:153:21 [INFO] [stderr] | [INFO] [stderr] 153 | node : node, [INFO] [stderr] | ^^^^^^^^^^^ help: replace it with: `node` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::default::Default` [INFO] [stderr] --> src/input.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::default::Default; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `print_graph` [INFO] [stderr] --> src/optimizer.rs:2:21 [INFO] [stderr] | [INFO] [stderr] 2 | use policy::{Policy,print_graph}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/optimizer.rs:82:21 [INFO] [stderr] | [INFO] [stderr] 82 | / if self.policy.is_satisfied_node(id, &initial_graph){ [INFO] [stderr] 83 | | if !self.policy.is_dns(id){ [INFO] [stderr] 84 | | satisfied_nodes += 1; [INFO] [stderr] 85 | | } [INFO] [stderr] 86 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 82 | if self.policy.is_satisfied_node(id, &initial_graph) && !self.policy.is_dns(id) { [INFO] [stderr] 83 | satisfied_nodes += 1; [INFO] [stderr] 84 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/optimizer.rs:158:17 [INFO] [stderr] | [INFO] [stderr] 158 | return Ok((test_graph,stats)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok((test_graph,stats))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/optimizer.rs:161:17 [INFO] [stderr] | [INFO] [stderr] 161 | return Err(From::from("no connectables")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(From::from("no connectables"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `Graph` [INFO] [stderr] --> src/main.rs:8:17 [INFO] [stderr] | [INFO] [stderr] 8 | use optimizer::{Graph, Optimizer}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::error::Error` [INFO] [stderr] --> src/main.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use std::error::Error; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::default::Default` [INFO] [stderr] --> src/input.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::default::Default; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `print_graph` [INFO] [stderr] --> src/optimizer.rs:2:21 [INFO] [stderr] | [INFO] [stderr] 2 | use policy::{Policy,print_graph}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/optimizer.rs:82:21 [INFO] [stderr] | [INFO] [stderr] 82 | / if self.policy.is_satisfied_node(id, &initial_graph){ [INFO] [stderr] 83 | | if !self.policy.is_dns(id){ [INFO] [stderr] 84 | | satisfied_nodes += 1; [INFO] [stderr] 85 | | } [INFO] [stderr] 86 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 82 | if self.policy.is_satisfied_node(id, &initial_graph) && !self.policy.is_dns(id) { [INFO] [stderr] 83 | satisfied_nodes += 1; [INFO] [stderr] 84 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/optimizer.rs:158:17 [INFO] [stderr] | [INFO] [stderr] 158 | return Ok((test_graph,stats)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok((test_graph,stats))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/optimizer.rs:161:17 [INFO] [stderr] | [INFO] [stderr] 161 | return Err(From::from("no connectables")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(From::from("no connectables"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `Graph` [INFO] [stderr] --> src/main.rs:8:17 [INFO] [stderr] | [INFO] [stderr] 8 | use optimizer::{Graph, Optimizer}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::error::Error` [INFO] [stderr] --> src/main.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use std::error::Error; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/optimizer.rs:114:13 [INFO] [stderr] | [INFO] [stderr] 114 | let mut test_graph = graph.clone(); [INFO] [stderr] | ----^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `get_nodes` [INFO] [stderr] --> src/policy.rs:158:1 [INFO] [stderr] | [INFO] [stderr] 158 | fn get_nodes(graph :& Vec< Vec>)->Vec{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `get_edges` [INFO] [stderr] --> src/policy.rs:164:1 [INFO] [stderr] | [INFO] [stderr] 164 | fn get_edges(node : usize , graph :& Vec< Vec>)->Vec{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `initial_graph` [INFO] [stderr] --> src/optimizer.rs:50:5 [INFO] [stderr] | [INFO] [stderr] 50 | initial_graph :&'a Graph [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/input.rs:9:38 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn graph_to_csv(path : &str, g : &Graph)->Result<(),Box>{ [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/input.rs:16:12 [INFO] [stderr] | [INFO] [stderr] 16 | if line.len() == 0{ [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/input.rs:25:35 [INFO] [stderr] | [INFO] [stderr] 25 | pub fn csv_to_graph(path : &str)->Result<(Vec,Vec>,OptimalOut,MaxIn),Box> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/input.rs:40:16 [INFO] [stderr] | [INFO] [stderr] 40 | if element.to_string() != "~"{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `element` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:9:72 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn new( outbound_optimal:usize,inbound_max : usize,dns_nodes : &'a Vec)->Policy{ [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[usize]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:20:25 [INFO] [stderr] | [INFO] [stderr] 20 | fn get_nodes(graph :& Vec< Vec>)->Vec{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:25:58 [INFO] [stderr] | [INFO] [stderr] 25 | fn is_connected(node1 : usize, node2 : usize ,graph: &Vec>)->bool{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:36:62 [INFO] [stderr] | [INFO] [stderr] 36 | pub fn get_all_connectables(&self,node : usize , graph : &Vec>)->Option>{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/policy.rs:50:12 [INFO] [stderr] | [INFO] [stderr] 50 | if connectable_nodes.len() > 0{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!connectable_nodes.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:67:44 [INFO] [stderr] | [INFO] [stderr] 67 | pub fn is_violating_graph(&self,graph :& Vec< Vec>)->bool{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:80:59 [INFO] [stderr] | [INFO] [stderr] 80 | pub fn is_vaiolating_node(&self, node : usize, graph :& Vec< Vec>)->bool{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:85:75 [INFO] [stderr] | [INFO] [stderr] 85 | pub fn is_violating_optimal_outbound_node(&self, node : usize, graph :& Vec< Vec>)->bool{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:92:70 [INFO] [stderr] | [INFO] [stderr] 92 | pub fn is_violating_max_inbound_node(&self, node : usize, graph :& Vec< Vec>)->bool{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:98:51 [INFO] [stderr] | [INFO] [stderr] 98 | pub fn get_inbound_edges(node : usize, graph :& Vec< Vec>)->Vec{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/policy.rs:102:36 [INFO] [stderr] | [INFO] [stderr] 102 | for (idx, vertex) in graph.into_iter().enumerate(){ [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:114:53 [INFO] [stderr] | [INFO] [stderr] 114 | pub fn get_outbound_edges( node : usize, graph :& Vec< Vec>)->Vec{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:118:58 [INFO] [stderr] | [INFO] [stderr] 118 | pub fn is_satisfied_node(&self, node : usize, graph :& Vec< Vec>)->bool{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:130:46 [INFO] [stderr] | [INFO] [stderr] 130 | pub fn is_satisfied_graph(&self, graph : &Vec>)->bool{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/policy.rs:133:30 [INFO] [stderr] | [INFO] [stderr] 133 | for (idx,_) in graph.into_iter().enumerate(){ [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:151:24 [INFO] [stderr] | [INFO] [stderr] 151 | pub fn print_graph(g : & Vec>){ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/policy.rs:152:24 [INFO] [stderr] | [INFO] [stderr] 152 | for (id,line) in g.into_iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:158:21 [INFO] [stderr] | [INFO] [stderr] 158 | fn get_nodes(graph :& Vec< Vec>)->Vec{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:164:36 [INFO] [stderr] | [INFO] [stderr] 164 | fn get_edges(node : usize , graph :& Vec< Vec>)->Vec{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/optimizer.rs:35:9 [INFO] [stderr] | [INFO] [stderr] 35 | write!(f,"\n --- START Optimization Stats --- \n\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/optimizer.rs:37:9 [INFO] [stderr] | [INFO] [stderr] 37 | write!(f,"\t1) Config: Optimal = {} , Max inbound = {} \n", self.config_optimal_out, self.config_max_in); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/optimizer.rs:38:9 [INFO] [stderr] | [INFO] [stderr] 38 | write!(f,"\t2) Satisfied Graph : {} \n" , self.is_satisfied_graph); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/optimizer.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | write!(f,"\t3) Violated graph : {} \n", self.is_violating_graph); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/optimizer.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | write!(f, "\t4) Total Nodes (with dns) : {} \n", self.final_graph.len()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/optimizer.rs:41:9 [INFO] [stderr] | [INFO] [stderr] 41 | write!(f,"\t5) Satisfied Nodes (exclude dns): {}/{} \n", self.satisfied_nodes_num , self.final_graph.len()- self.dns_nodes_num); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/optimizer.rs:42:9 [INFO] [stderr] | [INFO] [stderr] 42 | write!(f,"\t6) Dns Nodes : {} \n" , self.dns_nodes_num); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/optimizer.rs:43:9 [INFO] [stderr] | [INFO] [stderr] 43 | write!(f,"\t7) Not Satisfied Nodes : {} \n" , self.not_satisfied_nodes); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/optimizer.rs:64:45 [INFO] [stderr] | [INFO] [stderr] 64 | pub fn try_satisfy_graph(&self, graph : &Graph)->Result>{ [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change `graph.clone()` to [INFO] [stderr] | [INFO] [stderr] 65 | let mut initial_graph = graph.to_owned(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: change `graph.clone()` to [INFO] [stderr] | [INFO] [stderr] 98 | graph_stats.initial_graph = graph.to_owned(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/main.rs:181:13 [INFO] [stderr] | [INFO] [stderr] 181 | Err(e)=> assert!(false) [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: the loop variable `idx` is only used to index `connectables`. [INFO] [stderr] --> src/optimizer.rs:145:28 [INFO] [stderr] | [INFO] [stderr] 145 | for idx in 0..try_num{ [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 145 | for in connectables.iter().take(try_num){ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | graph_to_csv(path,&res); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/main.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | / let mut path = path; [INFO] [stderr] 37 | | if args.len()>1 { [INFO] [stderr] 38 | | path = &args[1]; [INFO] [stderr] 39 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let path = if args.len()>1 { &args[1] } else { path };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | let mut dns : Vec = vec![1,3]; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:188:13 [INFO] [stderr] | [INFO] [stderr] 188 | let mut path = "./samples/g2_test.csv"; [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/optimizer.rs:114:13 [INFO] [stderr] | [INFO] [stderr] 114 | let mut test_graph = graph.clone(); [INFO] [stderr] | ----^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: function is never used: `get_nodes` [INFO] [stderr] --> src/policy.rs:158:1 [INFO] [stderr] | [INFO] [stderr] 158 | fn get_nodes(graph :& Vec< Vec>)->Vec{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `get_edges` [INFO] [stderr] --> src/policy.rs:164:1 [INFO] [stderr] | [INFO] [stderr] 164 | fn get_edges(node : usize , graph :& Vec< Vec>)->Vec{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `initial_graph` [INFO] [stderr] --> src/optimizer.rs:50:5 [INFO] [stderr] | [INFO] [stderr] 50 | initial_graph :&'a Graph [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/input.rs:9:38 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn graph_to_csv(path : &str, g : &Graph)->Result<(),Box>{ [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/input.rs:16:12 [INFO] [stderr] | [INFO] [stderr] 16 | if line.len() == 0{ [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/input.rs:25:35 [INFO] [stderr] | [INFO] [stderr] 25 | pub fn csv_to_graph(path : &str)->Result<(Vec,Vec>,OptimalOut,MaxIn),Box> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/input.rs:40:16 [INFO] [stderr] | [INFO] [stderr] 40 | if element.to_string() != "~"{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `element` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:9:72 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn new( outbound_optimal:usize,inbound_max : usize,dns_nodes : &'a Vec)->Policy{ [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[usize]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:20:25 [INFO] [stderr] | [INFO] [stderr] 20 | fn get_nodes(graph :& Vec< Vec>)->Vec{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:25:58 [INFO] [stderr] | [INFO] [stderr] 25 | fn is_connected(node1 : usize, node2 : usize ,graph: &Vec>)->bool{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:36:62 [INFO] [stderr] | [INFO] [stderr] 36 | pub fn get_all_connectables(&self,node : usize , graph : &Vec>)->Option>{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/policy.rs:50:12 [INFO] [stderr] | [INFO] [stderr] 50 | if connectable_nodes.len() > 0{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!connectable_nodes.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:67:44 [INFO] [stderr] | [INFO] [stderr] 67 | pub fn is_violating_graph(&self,graph :& Vec< Vec>)->bool{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:80:59 [INFO] [stderr] | [INFO] [stderr] 80 | pub fn is_vaiolating_node(&self, node : usize, graph :& Vec< Vec>)->bool{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:85:75 [INFO] [stderr] | [INFO] [stderr] 85 | pub fn is_violating_optimal_outbound_node(&self, node : usize, graph :& Vec< Vec>)->bool{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:92:70 [INFO] [stderr] | [INFO] [stderr] 92 | pub fn is_violating_max_inbound_node(&self, node : usize, graph :& Vec< Vec>)->bool{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:98:51 [INFO] [stderr] | [INFO] [stderr] 98 | pub fn get_inbound_edges(node : usize, graph :& Vec< Vec>)->Vec{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/policy.rs:102:36 [INFO] [stderr] | [INFO] [stderr] 102 | for (idx, vertex) in graph.into_iter().enumerate(){ [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:114:53 [INFO] [stderr] | [INFO] [stderr] 114 | pub fn get_outbound_edges( node : usize, graph :& Vec< Vec>)->Vec{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:118:58 [INFO] [stderr] | [INFO] [stderr] 118 | pub fn is_satisfied_node(&self, node : usize, graph :& Vec< Vec>)->bool{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:130:46 [INFO] [stderr] | [INFO] [stderr] 130 | pub fn is_satisfied_graph(&self, graph : &Vec>)->bool{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/policy.rs:133:30 [INFO] [stderr] | [INFO] [stderr] 133 | for (idx,_) in graph.into_iter().enumerate(){ [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:151:24 [INFO] [stderr] | [INFO] [stderr] 151 | pub fn print_graph(g : & Vec>){ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/policy.rs:152:24 [INFO] [stderr] | [INFO] [stderr] 152 | for (id,line) in g.into_iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:158:21 [INFO] [stderr] | [INFO] [stderr] 158 | fn get_nodes(graph :& Vec< Vec>)->Vec{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/policy.rs:164:36 [INFO] [stderr] | [INFO] [stderr] 164 | fn get_edges(node : usize , graph :& Vec< Vec>)->Vec{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/optimizer.rs:35:9 [INFO] [stderr] | [INFO] [stderr] 35 | write!(f,"\n --- START Optimization Stats --- \n\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/optimizer.rs:37:9 [INFO] [stderr] | [INFO] [stderr] 37 | write!(f,"\t1) Config: Optimal = {} , Max inbound = {} \n", self.config_optimal_out, self.config_max_in); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/optimizer.rs:38:9 [INFO] [stderr] | [INFO] [stderr] 38 | write!(f,"\t2) Satisfied Graph : {} \n" , self.is_satisfied_graph); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/optimizer.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | write!(f,"\t3) Violated graph : {} \n", self.is_violating_graph); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/optimizer.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | write!(f, "\t4) Total Nodes (with dns) : {} \n", self.final_graph.len()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/optimizer.rs:41:9 [INFO] [stderr] | [INFO] [stderr] 41 | write!(f,"\t5) Satisfied Nodes (exclude dns): {}/{} \n", self.satisfied_nodes_num , self.final_graph.len()- self.dns_nodes_num); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/optimizer.rs:42:9 [INFO] [stderr] | [INFO] [stderr] 42 | write!(f,"\t6) Dns Nodes : {} \n" , self.dns_nodes_num); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/optimizer.rs:43:9 [INFO] [stderr] | [INFO] [stderr] 43 | write!(f,"\t7) Not Satisfied Nodes : {} \n" , self.not_satisfied_nodes); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/optimizer.rs:64:45 [INFO] [stderr] | [INFO] [stderr] 64 | pub fn try_satisfy_graph(&self, graph : &Graph)->Result>{ [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change `graph.clone()` to [INFO] [stderr] | [INFO] [stderr] 65 | let mut initial_graph = graph.to_owned(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: change `graph.clone()` to [INFO] [stderr] | [INFO] [stderr] 98 | graph_stats.initial_graph = graph.to_owned(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `idx` is only used to index `connectables`. [INFO] [stderr] --> src/optimizer.rs:145:28 [INFO] [stderr] | [INFO] [stderr] 145 | for idx in 0..try_num{ [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 145 | for in connectables.iter().take(try_num){ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | graph_to_csv(path,&res); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/main.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | / let mut path = path; [INFO] [stderr] 37 | | if args.len()>1 { [INFO] [stderr] 38 | | path = &args[1]; [INFO] [stderr] 39 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let path = if args.len()>1 { &args[1] } else { path };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 5.28s [INFO] running `"docker" "inspect" "f0738860a2ffba4ebfeff4c62a3719d1abc534c0d768933bb70f667837927429"` [INFO] running `"docker" "rm" "-f" "f0738860a2ffba4ebfeff4c62a3719d1abc534c0d768933bb70f667837927429"` [INFO] [stdout] f0738860a2ffba4ebfeff4c62a3719d1abc534c0d768933bb70f667837927429