[INFO] updating cached repository samWighton/graph_network [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/samWighton/graph_network [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/samWighton/graph_network" "work/ex/clippy-test-run/sources/stable/gh/samWighton/graph_network"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/samWighton/graph_network'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/samWighton/graph_network" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/samWighton/graph_network"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/samWighton/graph_network'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] db735322de8b075644ee113dfc6c84c6a2c7ea3c [INFO] sha for GitHub repo samWighton/graph_network: db735322de8b075644ee113dfc6c84c6a2c7ea3c [INFO] validating manifest of samWighton/graph_network 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 samWighton/graph_network 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 samWighton/graph_network [INFO] finished frobbing samWighton/graph_network [INFO] frobbed toml for samWighton/graph_network written to work/ex/clippy-test-run/sources/stable/gh/samWighton/graph_network/Cargo.toml [INFO] started frobbing samWighton/graph_network [INFO] finished frobbing samWighton/graph_network [INFO] frobbed toml for samWighton/graph_network written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/samWighton/graph_network/Cargo.toml [INFO] crate samWighton/graph_network 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 samWighton/graph_network 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/samWighton/graph_network:/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] 70ef0ea373cb6b6e2dffcbcea2e2d3bee6d2d8f91f6a562b0f81da007eb50ee8 [INFO] running `"docker" "start" "-a" "70ef0ea373cb6b6e2dffcbcea2e2d3bee6d2d8f91f6a562b0f81da007eb50ee8"` [INFO] [stderr] Checking permissions v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:258:3 [INFO] [stderr] | [INFO] [stderr] 258 | subject_type: subject_type, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `subject_type` [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/main.rs:259:3 [INFO] [stderr] | [INFO] [stderr] 259 | subject_id: subject_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `subject_id` [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/main.rs:258:3 [INFO] [stderr] | [INFO] [stderr] 258 | subject_type: subject_type, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `subject_type` [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/main.rs:259:3 [INFO] [stderr] | [INFO] [stderr] 259 | subject_id: subject_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `subject_id` [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::time::Instant` [INFO] [stderr] --> src/main.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | use std::time::Instant; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::borrow::ToOwned` [INFO] [stderr] --> src/main.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | use std::borrow::ToOwned; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:38:2 [INFO] [stderr] | [INFO] [stderr] 38 | return table_names.len() - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `table_names.len() - 1` [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/main.rs:42:2 [INFO] [stderr] | [INFO] [stderr] 42 | return table_names[table_index]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `table_names[table_index]` [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: unneeded return statement [INFO] [stderr] --> src/main.rs:185:3 [INFO] [stderr] | [INFO] [stderr] 185 | return self.subject_id.cmp(& other.subject_id); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.subject_id.cmp(& other.subject_id)` [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: unneeded return statement [INFO] [stderr] --> src/main.rs:197:3 [INFO] [stderr] | [INFO] [stderr] 197 | return self.subject_type == other.subject_type && [INFO] [stderr] | _________^ [INFO] [stderr] 198 | | self.subject_id == other.subject_id; [INFO] [stderr] | |________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 197 | self.subject_type == other.subject_type && [INFO] [stderr] 198 | self.subject_id == other.subject_id [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:330:29 [INFO] [stderr] | [INFO] [stderr] 330 | let num_of_edges : usize = 1000000; [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::time::Instant` [INFO] [stderr] --> src/main.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | use std::time::Instant; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::borrow::ToOwned` [INFO] [stderr] --> src/main.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | use std::borrow::ToOwned; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:38:2 [INFO] [stderr] | [INFO] [stderr] 38 | return table_names.len() - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `table_names.len() - 1` [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/main.rs:42:2 [INFO] [stderr] | [INFO] [stderr] 42 | return table_names[table_index]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `table_names[table_index]` [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: unneeded return statement [INFO] [stderr] --> src/main.rs:185:3 [INFO] [stderr] | [INFO] [stderr] 185 | return self.subject_id.cmp(& other.subject_id); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.subject_id.cmp(& other.subject_id)` [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: unneeded return statement [INFO] [stderr] --> src/main.rs:197:3 [INFO] [stderr] | [INFO] [stderr] 197 | return self.subject_type == other.subject_type && [INFO] [stderr] | _________^ [INFO] [stderr] 198 | | self.subject_id == other.subject_id; [INFO] [stderr] | |________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 197 | self.subject_type == other.subject_type && [INFO] [stderr] 198 | self.subject_id == other.subject_id [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:330:29 [INFO] [stderr] | [INFO] [stderr] 330 | let num_of_edges : usize = 1000000; [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/main.rs:163:2 [INFO] [stderr] | [INFO] [stderr] 163 | return [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unreachable_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/main.rs:163:2 [INFO] [stderr] | [INFO] [stderr] 163 | return [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unreachable_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/main.rs:247:2 [INFO] [stderr] | [INFO] [stderr] 247 | None [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/main.rs:247:2 [INFO] [stderr] | [INFO] [stderr] 247 | None [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `table_names` [INFO] [stderr] --> src/main.rs:213:19 [INFO] [stderr] | [INFO] [stderr] 213 | fn parse_received(table_names: &mut Vec<&str>, edges: &Vec, buf: [u8;100]) -> Option <(Vec<(Edge)>)> { [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_table_names` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/main.rs:331:6 [INFO] [stderr] | [INFO] [stderr] 331 | for e in 0 .. num_of_edges { [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t` [INFO] [stderr] --> src/main.rs:347:6 [INFO] [stderr] | [INFO] [stderr] 347 | for t in 0 .. num_of_tables { [INFO] [stderr] | ^ help: consider using `_t` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `table_names` [INFO] [stderr] --> src/main.rs:213:19 [INFO] [stderr] | [INFO] [stderr] 213 | fn parse_received(table_names: &mut Vec<&str>, edges: &Vec, buf: [u8;100]) -> Option <(Vec<(Edge)>)> { [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_table_names` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/main.rs:331:6 [INFO] [stderr] | [INFO] [stderr] 331 | for e in 0 .. num_of_edges { [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t` [INFO] [stderr] --> src/main.rs:347:6 [INFO] [stderr] | [INFO] [stderr] 347 | for t in 0 .. num_of_tables { [INFO] [stderr] | ^ help: consider using `_t` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:216:6 [INFO] [stderr] | [INFO] [stderr] 216 | let mut split = temp_string.split(" "); [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:41:37 [INFO] [stderr] | [INFO] [stderr] 41 | fn id_to_table<'a,'b> (table_names: &'a Vec<&'b str>, table_index: usize) -> & 'b str { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: change this to: `&[&'b str]` [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: called `.get().unwrap()` on a slice. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main.rs:79:23 [INFO] [stderr] | [INFO] [stderr] 79 | let element = json_array.get(e).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `json_array[e]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: the loop variable `e` is only used to index `edges_to_return`. [INFO] [stderr] --> src/main.rs:123:15 [INFO] [stderr] | [INFO] [stderr] 123 | for e in 0 .. edges_to_return.len() { [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] 123 | for in &edges_to_return { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: The function/method `id_to_table` doesn't need a mutable reference [INFO] [stderr] --> src/main.rs:133:72 [INFO] [stderr] | [INFO] [stderr] 133 | o.insert("subject_type".to_string(), String::from(id_to_table(&mut table_names, edges_to_return[e].subject_type as usize)).to_json()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `id_to_table` doesn't need a mutable reference [INFO] [stderr] --> src/main.rs:135:71 [INFO] [stderr] | [INFO] [stderr] 135 | o.insert("object_type".to_string(), String::from(id_to_table(&mut table_names, edges_to_return[e].object_type as usize)).to_json()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `id_to_table` doesn't need a mutable reference [INFO] [stderr] --> src/main.rs:137:72 [INFO] [stderr] | [INFO] [stderr] 137 | o.insert("relationship".to_string(), String::from(id_to_table(&mut table_names, edges_to_return[e].relationship as usize)).to_json()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/main.rs:148:28 [INFO] [stderr] | [INFO] [stderr] 148 | let temp_reply_message = String::from(json_to_return); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `json_to_return` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:149:3 [INFO] [stderr] | [INFO] [stderr] 149 | socket.send_to(&temp_reply_message.as_bytes(), &src_addr); [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] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:216:6 [INFO] [stderr] | [INFO] [stderr] 216 | let mut split = temp_string.split(" "); [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:213:55 [INFO] [stderr] | [INFO] [stderr] 213 | fn parse_received(table_names: &mut Vec<&str>, edges: &Vec, buf: [u8;100]) -> Option <(Vec<(Edge)>)> { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Edge]` [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/main.rs:41:37 [INFO] [stderr] | [INFO] [stderr] 41 | fn id_to_table<'a,'b> (table_names: &'a Vec<&'b str>, table_index: usize) -> & 'b str { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: change this to: `&[&'b str]` [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: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:216:36 [INFO] [stderr] | [INFO] [stderr] 216 | let mut split = temp_string.split(" "); [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [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/main.rs:251:10 [INFO] [stderr] | [INFO] [stderr] 251 | edges: &Vec, [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Edge]` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:272:3 [INFO] [stderr] | [INFO] [stderr] 272 | match search_edge.cmp(&edges[search_start + jump_amount]) { [INFO] [stderr] | _________^ [INFO] [stderr] 273 | | Ordering::Greater => { [INFO] [stderr] 274 | | search_start += jump_amount; [INFO] [stderr] 275 | | }, [INFO] [stderr] ... | [INFO] [stderr] 278 | | }, [INFO] [stderr] 279 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 272 | if let Ordering::Greater = search_edge.cmp(&edges[search_start + jump_amount]) { [INFO] [stderr] 273 | search_start += jump_amount; [INFO] [stderr] 274 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:283:3 [INFO] [stderr] | [INFO] [stderr] 283 | jump_amount = jump_amount / 2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `jump_amount /= 2` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:292:3 [INFO] [stderr] | [INFO] [stderr] 292 | match search_edge.cmp(&edges[search_end - jump_amount]) { [INFO] [stderr] | _________^ [INFO] [stderr] 293 | | Ordering::Less => { [INFO] [stderr] 294 | | search_end -= jump_amount; [INFO] [stderr] 295 | | }, [INFO] [stderr] ... | [INFO] [stderr] 298 | | }, [INFO] [stderr] 299 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 292 | if let Ordering::Less = search_edge.cmp(&edges[search_end - jump_amount]) { [INFO] [stderr] 293 | search_end -= jump_amount; [INFO] [stderr] 294 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:303:3 [INFO] [stderr] | [INFO] [stderr] 303 | jump_amount = jump_amount / 2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `jump_amount /= 2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: the loop variable `x` is only used to index `edges`. [INFO] [stderr] --> src/main.rs:307:11 [INFO] [stderr] | [INFO] [stderr] 307 | for x in search_start + 1 .. search_end { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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] 307 | for in edges.iter().take(search_end).skip(search_start + 1) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a slice. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main.rs:79:23 [INFO] [stderr] | [INFO] [stderr] 79 | let element = json_array.get(e).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `json_array[e]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: the loop variable `e` is only used to index `edges_to_return`. [INFO] [stderr] --> src/main.rs:123:15 [INFO] [stderr] | [INFO] [stderr] 123 | for e in 0 .. edges_to_return.len() { [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] 123 | for in &edges_to_return { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: The function/method `id_to_table` doesn't need a mutable reference [INFO] [stderr] --> src/main.rs:133:72 [INFO] [stderr] | [INFO] [stderr] 133 | o.insert("subject_type".to_string(), String::from(id_to_table(&mut table_names, edges_to_return[e].subject_type as usize)).to_json()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `id_to_table` doesn't need a mutable reference [INFO] [stderr] --> src/main.rs:135:71 [INFO] [stderr] | [INFO] [stderr] 135 | o.insert("object_type".to_string(), String::from(id_to_table(&mut table_names, edges_to_return[e].object_type as usize)).to_json()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `id_to_table` doesn't need a mutable reference [INFO] [stderr] --> src/main.rs:137:72 [INFO] [stderr] | [INFO] [stderr] 137 | o.insert("relationship".to_string(), String::from(id_to_table(&mut table_names, edges_to_return[e].relationship as usize)).to_json()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/main.rs:148:28 [INFO] [stderr] | [INFO] [stderr] 148 | let temp_reply_message = String::from(json_to_return); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `json_to_return` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:149:3 [INFO] [stderr] | [INFO] [stderr] 149 | socket.send_to(&temp_reply_message.as_bytes(), &src_addr); [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] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:213:55 [INFO] [stderr] | [INFO] [stderr] 213 | fn parse_received(table_names: &mut Vec<&str>, edges: &Vec, buf: [u8;100]) -> Option <(Vec<(Edge)>)> { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Edge]` [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: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:216:36 [INFO] [stderr] | [INFO] [stderr] 216 | let mut split = temp_string.split(" "); [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [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/main.rs:251:10 [INFO] [stderr] | [INFO] [stderr] 251 | edges: &Vec, [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Edge]` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:272:3 [INFO] [stderr] | [INFO] [stderr] 272 | match search_edge.cmp(&edges[search_start + jump_amount]) { [INFO] [stderr] | _________^ [INFO] [stderr] 273 | | Ordering::Greater => { [INFO] [stderr] 274 | | search_start += jump_amount; [INFO] [stderr] 275 | | }, [INFO] [stderr] ... | [INFO] [stderr] 278 | | }, [INFO] [stderr] 279 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 272 | if let Ordering::Greater = search_edge.cmp(&edges[search_start + jump_amount]) { [INFO] [stderr] 273 | search_start += jump_amount; [INFO] [stderr] 274 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:283:3 [INFO] [stderr] | [INFO] [stderr] 283 | jump_amount = jump_amount / 2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `jump_amount /= 2` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:292:3 [INFO] [stderr] | [INFO] [stderr] 292 | match search_edge.cmp(&edges[search_end - jump_amount]) { [INFO] [stderr] | _________^ [INFO] [stderr] 293 | | Ordering::Less => { [INFO] [stderr] 294 | | search_end -= jump_amount; [INFO] [stderr] 295 | | }, [INFO] [stderr] ... | [INFO] [stderr] 298 | | }, [INFO] [stderr] 299 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 292 | if let Ordering::Less = search_edge.cmp(&edges[search_end - jump_amount]) { [INFO] [stderr] 293 | search_end -= jump_amount; [INFO] [stderr] 294 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:303:3 [INFO] [stderr] | [INFO] [stderr] 303 | jump_amount = jump_amount / 2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `jump_amount /= 2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: the loop variable `x` is only used to index `edges`. [INFO] [stderr] --> src/main.rs:307:11 [INFO] [stderr] | [INFO] [stderr] 307 | for x in search_start + 1 .. search_end { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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] 307 | for in edges.iter().take(search_end).skip(search_start + 1) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.80s [INFO] running `"docker" "inspect" "70ef0ea373cb6b6e2dffcbcea2e2d3bee6d2d8f91f6a562b0f81da007eb50ee8"` [INFO] running `"docker" "rm" "-f" "70ef0ea373cb6b6e2dffcbcea2e2d3bee6d2d8f91f6a562b0f81da007eb50ee8"` [INFO] [stdout] 70ef0ea373cb6b6e2dffcbcea2e2d3bee6d2d8f91f6a562b0f81da007eb50ee8