[INFO] updating cached repository unixpickle/myodine [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/unixpickle/myodine [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/unixpickle/myodine" "work/ex/clippy-test-run/sources/stable/gh/unixpickle/myodine"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/unixpickle/myodine'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/unixpickle/myodine" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/unixpickle/myodine"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/unixpickle/myodine'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 8d0a5d1fed06b1cfd29979083b7f90a758999ce8 [INFO] sha for GitHub repo unixpickle/myodine: 8d0a5d1fed06b1cfd29979083b7f90a758999ce8 [INFO] validating manifest of unixpickle/myodine 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 unixpickle/myodine 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 unixpickle/myodine [INFO] finished frobbing unixpickle/myodine [INFO] frobbed toml for unixpickle/myodine written to work/ex/clippy-test-run/sources/stable/gh/unixpickle/myodine/Cargo.toml [INFO] started frobbing unixpickle/myodine [INFO] finished frobbing unixpickle/myodine [INFO] frobbed toml for unixpickle/myodine written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/unixpickle/myodine/Cargo.toml [INFO] crate unixpickle/myodine 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 unixpickle/myodine against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/unixpickle/myodine:/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] ff46a49cd402fe9216f3a9fe10bcee0d1c75570fa04165edae7966d4d1d6764c [INFO] running `"docker" "start" "-a" "ff46a49cd402fe9216f3a9fe10bcee0d1c75570fa04165edae7966d4d1d6764c"` [INFO] [stderr] Checking num-integer v0.1.36 [INFO] [stderr] Checking clap v2.31.2 [INFO] [stderr] Checking chrono v0.4.1 [INFO] [stderr] Checking myodine v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dns_coding/decoding.rs:137:13 [INFO] [stderr] | [INFO] [stderr] 137 | value: value, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [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/dns_proto/header.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | identifier: identifier, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `identifier` [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/dns_proto/header.rs:90:13 [INFO] [stderr] | [INFO] [stderr] 90 | is_response: is_response, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `is_response` [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/dns_proto/header.rs:91:13 [INFO] [stderr] | [INFO] [stderr] 91 | opcode: opcode, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `opcode` [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/dns_proto/header.rs:92:13 [INFO] [stderr] | [INFO] [stderr] 92 | authoritative: authoritative, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `authoritative` [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/dns_proto/header.rs:93:13 [INFO] [stderr] | [INFO] [stderr] 93 | truncated: truncated, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `truncated` [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/dns_proto/header.rs:94:13 [INFO] [stderr] | [INFO] [stderr] 94 | recursion_desired: recursion_desired, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `recursion_desired` [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/dns_proto/header.rs:95:13 [INFO] [stderr] | [INFO] [stderr] 95 | recursion_available: recursion_available, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `recursion_available` [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/dns_proto/header.rs:96:13 [INFO] [stderr] | [INFO] [stderr] 96 | response_code: response_code, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `response_code` [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/dns_proto/header.rs:97:13 [INFO] [stderr] | [INFO] [stderr] 97 | question_count: question_count, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `question_count` [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/dns_proto/header.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | answer_count: answer_count, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `answer_count` [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/dns_proto/header.rs:99:13 [INFO] [stderr] | [INFO] [stderr] 99 | authority_count: authority_count, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `authority_count` [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/dns_proto/header.rs:100:13 [INFO] [stderr] | [INFO] [stderr] 100 | additional_count: additional_count [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `additional_count` [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/dns_proto/record.rs:86:17 [INFO] [stderr] | [INFO] [stderr] 86 | domain: domain, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `domain` [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/dns_proto/record.rs:87:17 [INFO] [stderr] | [INFO] [stderr] 87 | record_type: record_type, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `record_type` [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/dns_proto/record.rs:88:17 [INFO] [stderr] | [INFO] [stderr] 88 | record_class: record_class, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `record_class` [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/dns_proto/record.rs:89:17 [INFO] [stderr] | [INFO] [stderr] 89 | ttl: ttl [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ttl` [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/dns_proto/record.rs:110:29 [INFO] [stderr] | [INFO] [stderr] 110 | master_name: master_name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `master_name` [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/dns_proto/record.rs:111:29 [INFO] [stderr] | [INFO] [stderr] 111 | responsible_name: responsible_name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `responsible_name` [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/dns_proto/message.rs:73:17 [INFO] [stderr] | [INFO] [stderr] 73 | header: header, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `header` [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/dns_proto/message.rs:74:17 [INFO] [stderr] | [INFO] [stderr] 74 | questions: questions, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `questions` [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/dns_proto/message.rs:75:17 [INFO] [stderr] | [INFO] [stderr] 75 | answers: answers, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `answers` [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/dns_proto/message.rs:76:17 [INFO] [stderr] | [INFO] [stderr] 76 | authorities: authorities, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `authorities` [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/dns_proto/message.rs:77:17 [INFO] [stderr] | [INFO] [stderr] 77 | additional: additional [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `additional` [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/dns_proto/message.rs:95:13 [INFO] [stderr] | [INFO] [stderr] 95 | domain: domain, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `domain` [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/dns_proto/message.rs:96:13 [INFO] [stderr] | [INFO] [stderr] 96 | record_type: record_type, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `record_type` [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/dns_proto/message.rs:97:13 [INFO] [stderr] | [INFO] [stderr] 97 | record_class: record_class [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `record_class` [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/myo_proto/discovery.rs:102:17 [INFO] [stderr] | [INFO] [stderr] 102 | encoding: encoding, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `encoding` [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/myo_proto/establish.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | body: body [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `body` [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/myo_proto/establish.rs:106:17 [INFO] [stderr] | [INFO] [stderr] 106 | response_encoding: response_encoding, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `response_encoding` [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/myo_proto/establish.rs:108:17 [INFO] [stderr] | [INFO] [stderr] 108 | name_encoding: name_encoding, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `name_encoding` [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/myo_proto/xfer/types.rs:49:16 [INFO] [stderr] | [INFO] [stderr] 49 | Ok(Ack{window_start: window_start, window_mask: bits}) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `window_start` [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/myo_proto/xfer/types.rs:80:18 [INFO] [stderr] | [INFO] [stderr] 80 | Ok(Chunk{seq: seq, data: data}) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `seq` [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/myo_proto/xfer/types.rs:80:28 [INFO] [stderr] | [INFO] [stderr] 80 | Ok(Chunk{seq: seq, data: data}) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/myo_proto/xfer/types.rs:125:13 [INFO] [stderr] | [INFO] [stderr] 125 | ack: ack, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ack` [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/myo_proto/xfer/types.rs:154:13 [INFO] [stderr] | [INFO] [stderr] 154 | ack: ack, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ack` [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/myo_proto/xfer/wwr.rs:30:13 [INFO] [stderr] | [INFO] [stderr] 30 | in_win_size: in_win_size, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `in_win_size` [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/myo_proto/xfer/wwr.rs:35:13 [INFO] [stderr] | [INFO] [stderr] 35 | out_win_size: out_win_size, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `out_win_size` [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/myo_proto/xfer/wwr.rs:96:51 [INFO] [stderr] | [INFO] [stderr] 96 | let chunk = Chunk{seq: self.out_next_seq, data: data}; [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/conn/chunker.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | stream: stream, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `stream` [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/conn/highway_tcp.rs:63:13 [INFO] [stderr] | [INFO] [stderr] 63 | lanes: lanes, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `lanes` [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/conn/highway_tcp.rs:64:13 [INFO] [stderr] | [INFO] [stderr] 64 | kill_sender: kill_sender [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `kill_sender` [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/conn/highway_tcp.rs:189:13 [INFO] [stderr] | [INFO] [stderr] 189 | lane: lane, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `lane` [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/conn/highway_tcp.rs:191:13 [INFO] [stderr] | [INFO] [stderr] 191 | timeout: timeout [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `timeout` [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/conn/highway_udp.rs:61:13 [INFO] [stderr] | [INFO] [stderr] 61 | min_time: min_time, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `min_time` [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/conn/highway_udp.rs:62:13 [INFO] [stderr] | [INFO] [stderr] 62 | max_time: max_time, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `max_time` [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/conn/highway_udp.rs:63:13 [INFO] [stderr] | [INFO] [stderr] 63 | senders: senders [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `senders` [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/conn/highway_udp.rs:76:21 [INFO] [stderr] | [INFO] [stderr] 76 | lane: lane, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `lane` [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/conn/highway_udp.rs:79:21 [INFO] [stderr] | [INFO] [stderr] 79 | socket: socket [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `socket` [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/dns_coding/decoding.rs:137:13 [INFO] [stderr] | [INFO] [stderr] 137 | value: value, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [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/dns_proto/header.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | identifier: identifier, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `identifier` [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/dns_proto/header.rs:90:13 [INFO] [stderr] | [INFO] [stderr] 90 | is_response: is_response, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `is_response` [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/dns_proto/header.rs:91:13 [INFO] [stderr] | [INFO] [stderr] 91 | opcode: opcode, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `opcode` [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/dns_proto/header.rs:92:13 [INFO] [stderr] | [INFO] [stderr] 92 | authoritative: authoritative, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `authoritative` [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/dns_proto/header.rs:93:13 [INFO] [stderr] | [INFO] [stderr] 93 | truncated: truncated, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `truncated` [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/dns_proto/header.rs:94:13 [INFO] [stderr] | [INFO] [stderr] 94 | recursion_desired: recursion_desired, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `recursion_desired` [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/dns_proto/header.rs:95:13 [INFO] [stderr] | [INFO] [stderr] 95 | recursion_available: recursion_available, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `recursion_available` [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/dns_proto/header.rs:96:13 [INFO] [stderr] | [INFO] [stderr] 96 | response_code: response_code, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `response_code` [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/dns_proto/header.rs:97:13 [INFO] [stderr] | [INFO] [stderr] 97 | question_count: question_count, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `question_count` [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/dns_proto/header.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | answer_count: answer_count, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `answer_count` [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/dns_proto/header.rs:99:13 [INFO] [stderr] | [INFO] [stderr] 99 | authority_count: authority_count, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `authority_count` [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/dns_proto/header.rs:100:13 [INFO] [stderr] | [INFO] [stderr] 100 | additional_count: additional_count [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `additional_count` [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/dns_proto/record.rs:86:17 [INFO] [stderr] | [INFO] [stderr] 86 | domain: domain, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `domain` [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/dns_proto/record.rs:87:17 [INFO] [stderr] | [INFO] [stderr] 87 | record_type: record_type, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `record_type` [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/dns_proto/record.rs:88:17 [INFO] [stderr] | [INFO] [stderr] 88 | record_class: record_class, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `record_class` [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/dns_proto/record.rs:89:17 [INFO] [stderr] | [INFO] [stderr] 89 | ttl: ttl [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ttl` [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/dns_proto/record.rs:110:29 [INFO] [stderr] | [INFO] [stderr] 110 | master_name: master_name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `master_name` [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/dns_proto/record.rs:111:29 [INFO] [stderr] | [INFO] [stderr] 111 | responsible_name: responsible_name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `responsible_name` [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/dns_proto/message.rs:73:17 [INFO] [stderr] | [INFO] [stderr] 73 | header: header, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `header` [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/dns_proto/message.rs:74:17 [INFO] [stderr] | [INFO] [stderr] 74 | questions: questions, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `questions` [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/dns_proto/message.rs:75:17 [INFO] [stderr] | [INFO] [stderr] 75 | answers: answers, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `answers` [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/dns_proto/message.rs:76:17 [INFO] [stderr] | [INFO] [stderr] 76 | authorities: authorities, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `authorities` [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/dns_proto/message.rs:77:17 [INFO] [stderr] | [INFO] [stderr] 77 | additional: additional [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `additional` [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/dns_proto/message.rs:95:13 [INFO] [stderr] | [INFO] [stderr] 95 | domain: domain, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `domain` [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/dns_proto/message.rs:96:13 [INFO] [stderr] | [INFO] [stderr] 96 | record_type: record_type, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `record_type` [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/dns_proto/message.rs:97:13 [INFO] [stderr] | [INFO] [stderr] 97 | record_class: record_class [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `record_class` [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/myo_proto/discovery.rs:102:17 [INFO] [stderr] | [INFO] [stderr] 102 | encoding: encoding, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `encoding` [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/myo_proto/establish.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | body: body [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `body` [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/myo_proto/establish.rs:106:17 [INFO] [stderr] | [INFO] [stderr] 106 | response_encoding: response_encoding, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `response_encoding` [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/myo_proto/establish.rs:108:17 [INFO] [stderr] | [INFO] [stderr] 108 | name_encoding: name_encoding, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `name_encoding` [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/myo_proto/xfer/types.rs:49:16 [INFO] [stderr] | [INFO] [stderr] 49 | Ok(Ack{window_start: window_start, window_mask: bits}) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `window_start` [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/myo_proto/xfer/types.rs:80:18 [INFO] [stderr] | [INFO] [stderr] 80 | Ok(Chunk{seq: seq, data: data}) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `seq` [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/myo_proto/xfer/types.rs:80:28 [INFO] [stderr] | [INFO] [stderr] 80 | Ok(Chunk{seq: seq, data: data}) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/myo_proto/xfer/types.rs:125:13 [INFO] [stderr] | [INFO] [stderr] 125 | ack: ack, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ack` [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/myo_proto/xfer/types.rs:154:13 [INFO] [stderr] | [INFO] [stderr] 154 | ack: ack, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ack` [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/myo_proto/xfer/wwr.rs:30:13 [INFO] [stderr] | [INFO] [stderr] 30 | in_win_size: in_win_size, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `in_win_size` [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/myo_proto/xfer/wwr.rs:35:13 [INFO] [stderr] | [INFO] [stderr] 35 | out_win_size: out_win_size, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `out_win_size` [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/myo_proto/xfer/wwr.rs:96:51 [INFO] [stderr] | [INFO] [stderr] 96 | let chunk = Chunk{seq: self.out_next_seq, data: data}; [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/conn/chunker.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | stream: stream, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `stream` [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/conn/highway_tcp.rs:63:13 [INFO] [stderr] | [INFO] [stderr] 63 | lanes: lanes, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `lanes` [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/conn/highway_tcp.rs:64:13 [INFO] [stderr] | [INFO] [stderr] 64 | kill_sender: kill_sender [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `kill_sender` [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/conn/highway_tcp.rs:189:13 [INFO] [stderr] | [INFO] [stderr] 189 | lane: lane, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `lane` [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/conn/highway_tcp.rs:191:13 [INFO] [stderr] | [INFO] [stderr] 191 | timeout: timeout [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `timeout` [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/conn/highway_udp.rs:61:13 [INFO] [stderr] | [INFO] [stderr] 61 | min_time: min_time, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `min_time` [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/conn/highway_udp.rs:62:13 [INFO] [stderr] | [INFO] [stderr] 62 | max_time: max_time, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `max_time` [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/conn/highway_udp.rs:63:13 [INFO] [stderr] | [INFO] [stderr] 63 | senders: senders [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `senders` [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/conn/highway_udp.rs:76:21 [INFO] [stderr] | [INFO] [stderr] 76 | lane: lane, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `lane` [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/conn/highway_udp.rs:79:21 [INFO] [stderr] | [INFO] [stderr] 79 | socket: socket [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `socket` [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: unneeded return statement [INFO] [stderr] --> src/myo_proto/util.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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/myo_proto/util.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | return domain_part_lowercase(x) == domain_part_lowercase(y); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `domain_part_lowercase(x) == domain_part_lowercase(y)` [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: long literal lacking separators [INFO] [stderr] --> src/myo_proto/xfer/types.rs:104:42 [INFO] [stderr] | [INFO] [stderr] 104 | let range = Range::new(0u64, 0xffffffffffffffffu64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider: `0xffff_ffff_ffff_ffffu64` [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: unneeded return statement [INFO] [stderr] --> src/myo_proto/xfer/messages.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | return part.parse().ok() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `part.parse().ok()` [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: long literal lacking separators [INFO] [stderr] --> src/dns_proto/message.rs:167:22 [INFO] [stderr] | [INFO] [stderr] 167 | [2017120402, 10800, 3600, 604800, 3600]); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `2_017_120_402` [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: long literal lacking separators [INFO] [stderr] --> src/dns_proto/message.rs:167:47 [INFO] [stderr] | [INFO] [stderr] 167 | [2017120402, 10800, 3600, 604800, 3600]); [INFO] [stderr] | ^^^^^^ help: consider: `604_800` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/myo_proto/util.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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/myo_proto/util.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | return domain_part_lowercase(x) == domain_part_lowercase(y); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `domain_part_lowercase(x) == domain_part_lowercase(y)` [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: long literal lacking separators [INFO] [stderr] --> src/myo_proto/establish.rs:213:20 [INFO] [stderr] | [INFO] [stderr] 213 | proof: 0x913379, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0091_3379` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/myo_proto/establish.rs:234:20 [INFO] [stderr] | [INFO] [stderr] 234 | proof: 0x913379, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0091_3379` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/myo_proto/xfer/types.rs:104:42 [INFO] [stderr] | [INFO] [stderr] 104 | let range = Range::new(0u64, 0xffffffffffffffffu64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider: `0xffff_ffff_ffff_ffffu64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/myo_proto/xfer/wwr.rs:218:50 [INFO] [stderr] | [INFO] [stderr] 218 | let mut state = WwrState::new(15, 5, 0xfffffdff + i); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xffff_fdff` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/myo_proto/xfer/wwr.rs:228:46 [INFO] [stderr] | [INFO] [stderr] 228 | let mut state = WwrState::new(15, 5, 0xfffffffe); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xffff_fffe` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/myo_proto/xfer/wwr.rs:255:27 [INFO] [stderr] | [INFO] [stderr] 255 | window_start: 0xfffffffd, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xffff_fffd` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/myo_proto/xfer/messages.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | return part.parse().ok() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `part.parse().ok()` [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: you should consider deriving a `Default` implementation for `dns_coding::encoding::EncPacket` [INFO] [stderr] --> src/dns_coding/encoding.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | / pub fn new() -> EncPacket { [INFO] [stderr] 17 | | EncPacket(Vec::new()) [INFO] [stderr] 18 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 12 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/dns_coding/encoding.rs:86:26 [INFO] [stderr] | [INFO] [stderr] 86 | for item in self.into_iter() { [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: you should consider deriving a `Default` implementation for `dns_coding::encoding::BitWriter` [INFO] [stderr] --> src/dns_coding/encoding.rs:101:5 [INFO] [stderr] | [INFO] [stderr] 101 | / pub fn new() -> BitWriter { [INFO] [stderr] 102 | | BitWriter{ [INFO] [stderr] 103 | | value: 0, [INFO] [stderr] 104 | | bits_used: 0 [INFO] [stderr] 105 | | } [INFO] [stderr] 106 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 94 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/dns_coding/decoding.rs:106:13 [INFO] [stderr] | [INFO] [stderr] 106 | Ok(((big_byte as u16) << 8) | (small_byte as u16)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(big_byte)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/dns_coding/decoding.rs:106:39 [INFO] [stderr] | [INFO] [stderr] 106 | Ok(((big_byte as u16) << 8) | (small_byte as u16)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(small_byte)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/dns_coding/decoding.rs:114:13 [INFO] [stderr] | [INFO] [stderr] 114 | Ok(((big_word as u32) << 16) | (small_word as u32)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(big_word)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/dns_coding/decoding.rs:114:40 [INFO] [stderr] | [INFO] [stderr] 114 | Ok(((big_word as u32) << 16) | (small_word as u32)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(small_word)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/dns_coding/decoding.rs:122:13 [INFO] [stderr] | [INFO] [stderr] 122 | Ok(((big_word as u64) << 32) | (small_word as u64)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(big_word)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/dns_coding/decoding.rs:122:40 [INFO] [stderr] | [INFO] [stderr] 122 | Ok(((big_word as u64) << 32) | (small_word as u64)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(small_word)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/dns_proto/domain.rs:17:16 [INFO] [stderr] | [INFO] [stderr] 17 | if label.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `label.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: useless use of `format!` [INFO] [stderr] --> src/dns_proto/domain.rs:18:28 [INFO] [stderr] | [INFO] [stderr] 18 | return Err(format!("empty domain name label")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"empty domain name label".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/dns_proto/domain.rs:27:28 [INFO] [stderr] | [INFO] [stderr] 27 | return Err(format!("domain label may not end or start with -")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"domain label may not end or start with -".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/dns_proto/domain.rs:32:32 [INFO] [stderr] | [INFO] [stderr] 32 | return Err(format!("domain label may only contain a-zA-Z0-9-")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"domain label may only contain a-zA-Z0-9-".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/dns_proto/domain.rs:72:36 [INFO] [stderr] | [INFO] [stderr] 72 | Domain::from_parts(s.split(".").map(String::from).collect()) [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: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/dns_proto/domain.rs:78:33 [INFO] [stderr] | [INFO] [stderr] 78 | for (i, x) in (&self.0).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: length comparison to zero [INFO] [stderr] --> src/dns_proto/domain.rs:90:12 [INFO] [stderr] | [INFO] [stderr] 90 | if self.0.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.0.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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/dns_proto/header.rs:106:15 [INFO] [stderr] | [INFO] [stderr] 106 | fn encode(&self) -> usize { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/dns_proto/header.rs:130:15 [INFO] [stderr] | [INFO] [stderr] 130 | fn encode(&self) -> usize { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/dns_proto/record.rs:97:34 [INFO] [stderr] | [INFO] [stderr] 97 | for i in 0..16 { [INFO] [stderr] | ^^^^^ help: try replacing the loop by: `buffer[..16].clone_from_slice(&data[..16])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_memcpy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/myo_proto/util.rs:9:9 [INFO] [stderr] | [INFO] [stderr] 9 | m.answers.len() == 0 && [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `m.answers.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: length comparison to zero [INFO] [stderr] --> src/myo_proto/util.rs:10:9 [INFO] [stderr] | [INFO] [stderr] 10 | m.authorities.len() == 0 && [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `m.authorities.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: length comparison to zero [INFO] [stderr] --> src/myo_proto/util.rs:11:9 [INFO] [stderr] | [INFO] [stderr] 11 | m.additional.len() == 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `m.additional.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: length comparison to zero [INFO] [stderr] --> src/myo_proto/util.rs:14:12 [INFO] [stderr] | [INFO] [stderr] 14 | if domain.parts().len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!domain.parts().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: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/myo_proto/util.rs:45:19 [INFO] [stderr] | [INFO] [stderr] 45 | if *ch >= ('A' as u8) && *ch <= ('Z' as u8) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'A' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/myo_proto/util.rs:45:41 [INFO] [stderr] | [INFO] [stderr] 45 | if *ch >= ('A' as u8) && *ch <= ('Z' as u8) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'Z' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/myo_proto/util.rs:46:36 [INFO] [stderr] | [INFO] [stderr] 46 | res.write_char(((*ch - ('A' as u8)) + ('a' as u8)) as char) [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'A' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/myo_proto/util.rs:46:51 [INFO] [stderr] | [INFO] [stderr] 46 | res.write_char(((*ch - ('A' as u8)) + ('a' as u8)) as char) [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'a' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/myo_proto/record_code.rs:42:12 [INFO] [stderr] | [INFO] [stderr] 42 | if next_buf.len() > 0 || result.data().len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!next_buf.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: length comparison to zero [INFO] [stderr] --> src/myo_proto/record_code.rs:42:34 [INFO] [stderr] | [INFO] [stderr] 42 | if next_buf.len() > 0 || result.data().len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `result.data().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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/myo_proto/record_code.rs:50:9 [INFO] [stderr] | [INFO] [stderr] 50 | / if let &RecordBody::Unknown(ref data) = body { [INFO] [stderr] 51 | | let mut packet = DecPacket::new(data.clone()); [INFO] [stderr] 52 | | let mut result = Vec::new(); [INFO] [stderr] 53 | | while packet.remaining() > 0 { [INFO] [stderr] ... | [INFO] [stderr] 59 | | Err("unexpected record type".to_owned()) [INFO] [stderr] 60 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 50 | if let RecordBody::Unknown(ref data) = *body { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/myo_proto/discovery.rs:51:10 [INFO] [stderr] | [INFO] [stderr] 51 | .ok_or("no record code found".to_owned())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| "no record code found".to_owned())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/myo_proto/discovery.rs:115:26 [INFO] [stderr] | [INFO] [stderr] 115 | let value = ((i as u64) + (self.bias as u64)) * (self.coefficient as u64) % [INFO] [stderr] | ^^^^^^^^^^ help: try: `u64::from(i)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/myo_proto/discovery.rs:115:39 [INFO] [stderr] | [INFO] [stderr] 115 | let value = ((i as u64) + (self.bias as u64)) * (self.coefficient as u64) % [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.bias)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/myo_proto/discovery.rs:115:61 [INFO] [stderr] | [INFO] [stderr] 115 | let value = ((i as u64) + (self.bias as u64)) * (self.coefficient as u64) % [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.coefficient)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/myo_proto/discovery.rs:116:17 [INFO] [stderr] | [INFO] [stderr] 116 | (self.modulus as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.modulus)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/myo_proto/discovery.rs:136:66 [INFO] [stderr] | [INFO] [stderr] 136 | let mut total_bytes = host.parts().iter().chain((&parts).into_iter()) [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: use of `ok_or` followed by a function call [INFO] [stderr] --> src/myo_proto/establish.rs:30:10 [INFO] [stderr] | [INFO] [stderr] 30 | .ok_or("no response encoding".to_owned())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| "no response encoding".to_owned())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/myo_proto/establish.rs:53:6 [INFO] [stderr] | [INFO] [stderr] 53 | ((hash[0] as u64) << 56) | ((hash[1] as u64) << 48) | ((hash[2] as u64) << 40) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(hash[0])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/myo_proto/establish.rs:53:33 [INFO] [stderr] | [INFO] [stderr] 53 | ((hash[0] as u64) << 56) | ((hash[1] as u64) << 48) | ((hash[2] as u64) << 40) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(hash[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/myo_proto/establish.rs:53:60 [INFO] [stderr] | [INFO] [stderr] 53 | ((hash[0] as u64) << 56) | ((hash[1] as u64) << 48) | ((hash[2] as u64) << 40) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(hash[2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/myo_proto/establish.rs:54:10 [INFO] [stderr] | [INFO] [stderr] 54 | ((hash[3] as u64) << 32) | ((hash[4] as u64) << 24) | ((hash[5] as u64) << 16) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(hash[3])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/myo_proto/establish.rs:54:37 [INFO] [stderr] | [INFO] [stderr] 54 | ((hash[3] as u64) << 32) | ((hash[4] as u64) << 24) | ((hash[5] as u64) << 16) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(hash[4])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/myo_proto/establish.rs:54:64 [INFO] [stderr] | [INFO] [stderr] 54 | ((hash[3] as u64) << 32) | ((hash[4] as u64) << 24) | ((hash[5] as u64) << 16) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(hash[5])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/myo_proto/establish.rs:55:10 [INFO] [stderr] | [INFO] [stderr] 55 | ((hash[6] as u64) << 8) | (hash[7] as u64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(hash[6])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/myo_proto/establish.rs:55:35 [INFO] [stderr] | [INFO] [stderr] 55 | ((hash[6] as u64) << 8) | (hash[7] as u64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(hash[7])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/myo_proto/establish.rs:184:9 [INFO] [stderr] | [INFO] [stderr] 184 | / match self { [INFO] [stderr] 185 | | &EstablishResponse::Success{id: ref session_id, seq: ref seq_num} => { [INFO] [stderr] 186 | | 0u8.dns_encode(packet)?; [INFO] [stderr] 187 | | session_id.dns_encode(packet)?; [INFO] [stderr] ... | [INFO] [stderr] 196 | | } [INFO] [stderr] 197 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 184 | match *self { [INFO] [stderr] 185 | EstablishResponse::Success{id: ref session_id, seq: ref seq_num} => { [INFO] [stderr] 186 | 0u8.dns_encode(packet)?; [INFO] [stderr] 187 | session_id.dns_encode(packet)?; [INFO] [stderr] 188 | seq_num.dns_encode(packet) [INFO] [stderr] 189 | }, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/myo_proto/xfer/types.rs:57:43 [INFO] [stderr] | [INFO] [stderr] 57 | for (i, b) in (&self.window_mask).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: manual implementation of an assign operation [INFO] [stderr] --> src/myo_proto/xfer/types.rs:58:13 [INFO] [stderr] | [INFO] [stderr] 58 | cur_byte = cur_byte << 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cur_byte <<= 1` [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 don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/myo_proto/xfer/types.rs:99:24 [INFO] [stderr] | [INFO] [stderr] 99 | let api_code = if let &Some(ref chunk) = &self.chunk { [INFO] [stderr] | ________________________^ [INFO] [stderr] 100 | | chunk.dns_encode(&mut enc_packet)?; [INFO] [stderr] 101 | | 't' [INFO] [stderr] 102 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 106 | | 'p' [INFO] [stderr] 107 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 99 | let api_code = if let Some(ref chunk) = self.chunk { [INFO] [stderr] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/myo_proto/xfer/types.rs:138:9 [INFO] [stderr] | [INFO] [stderr] 138 | / if let &Some(ref chunk) = &self.chunk { [INFO] [stderr] 139 | | chunk.dns_encode(&mut packet)?; [INFO] [stderr] 140 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 138 | if let Some(ref chunk) = self.chunk { [INFO] [stderr] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/myo_proto/xfer/wwr.rs:46:40 [INFO] [stderr] | [INFO] [stderr] 46 | self.in_eof && self.out_eof && self.out_pending.len() == 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.out_pending.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: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/myo_proto/xfer/wwr.rs:57:30 [INFO] [stderr] | [INFO] [stderr] 57 | assert!(offset < self.in_win_size as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.in_win_size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/myo_proto/xfer/wwr.rs:134:42 [INFO] [stderr] | [INFO] [stderr] 134 | for (i, b) in (&ack.window_mask).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: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/myo_proto/xfer/wwr.rs:156:28 [INFO] [stderr] | [INFO] [stderr] 156 | if chunk_offset >= self.in_win_size as u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.in_win_size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/myo_proto/xfer/wwr.rs:160:32 [INFO] [stderr] | [INFO] [stderr] 160 | if (&self.in_received).into_iter().any(|x| x.seq == chunk.seq) { [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: length comparison to zero [INFO] [stderr] --> src/myo_proto/xfer/wwr.rs:172:34 [INFO] [stderr] | [INFO] [stderr] 172 | let is_eof = chunk.data.len() == 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `chunk.data.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: identical conversion [INFO] [stderr] --> src/myo_proto/xfer/wwr.rs:188:18 [INFO] [stderr] | [INFO] [stderr] 188 | for i in (0..self.out_pending.len()).into_iter().rev() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..self.out_pending.len())` [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: length comparison to zero [INFO] [stderr] --> src/myo_proto/xfer/session.rs:15:16 [INFO] [stderr] | [INFO] [stderr] 15 | if chunk.data.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `chunk.data.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: length comparison to zero [INFO] [stderr] --> src/myo_proto/xfer/session.rs:45:16 [INFO] [stderr] | [INFO] [stderr] 45 | if data.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!data.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: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/conn/chunker.rs:106:20 [INFO] [stderr] | [INFO] [stderr] 106 | if let Err(_) = stream.write_all(&chunk) { [INFO] [stderr] | _____________- ^^^^^^ [INFO] [stderr] 107 | | return; [INFO] [stderr] 108 | | } [INFO] [stderr] | |_____________- help: try this: `if stream.write_all(&chunk).is_err()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/conn/highway_tcp.rs:109:9 [INFO] [stderr] | [INFO] [stderr] 109 | cur_seq = cur_seq + Wrapping(1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cur_seq += Wrapping(1)` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/conn/highway_tcp.rs:120:44 [INFO] [stderr] | [INFO] [stderr] 120 | pending.add(msg, lane, max_time.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `max_time` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/conn/highway_tcp.rs:143:24 [INFO] [stderr] | [INFO] [stderr] 143 | if let Err(_) = sender.send(Event::Response(pending.lane, msg)) { [INFO] [stderr] | _________________- ^^^^^^ [INFO] [stderr] 144 | | return Ok(()); [INFO] [stderr] 145 | | } [INFO] [stderr] | |_________________- help: try this: `if sender.send(Event::Response(pending.lane, msg)).is_err()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/conn/highway_tcp.rs:149:20 [INFO] [stderr] | [INFO] [stderr] 149 | if let Err(_) = sender.send(Event::Timeout(timed_out.lane)) { [INFO] [stderr] | _____________- ^^^^^^ [INFO] [stderr] 150 | | return Ok(()); [INFO] [stderr] 151 | | } [INFO] [stderr] | |_____________- help: try this: `if sender.send(Event::Timeout(timed_out.lane)).is_err()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [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/conn/highway_tcp.rs:153:9 [INFO] [stderr] | [INFO] [stderr] 153 | / match kill_receiver.try_recv() { [INFO] [stderr] 154 | | Err(TryRecvError::Disconnected) => return Ok(()), [INFO] [stderr] 155 | | _ => () [INFO] [stderr] 156 | | } [INFO] [stderr] | |_________^ help: try this: `if let Err(TryRecvError::Disconnected) = kill_receiver.try_recv() { return Ok(()) }` [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] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/conn/highway_tcp.rs:198:18 [INFO] [stderr] | [INFO] [stderr] 198 | for i in (0..list.len()).into_iter().rev() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..list.len())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/conn/highway_tcp.rs:262:26 [INFO] [stderr] | [INFO] [stderr] 262 | let msg_size = (((self.buffer[0] as u16) << 8) | (self.buffer[1] as u16)) as usize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.buffer[0])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/conn/highway_tcp.rs:262:58 [INFO] [stderr] | [INFO] [stderr] 262 | let msg_size = (((self.buffer[0] as u16) << 8) | (self.buffer[1] as u16)) as usize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.buffer[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/conn/highway_udp.rs:27:43 [INFO] [stderr] | [INFO] [stderr] 27 | self.senders[lane].send((message, self.min_time.clone(), self.max_time.clone())).ok(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.min_time` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/conn/highway_udp.rs:27:66 [INFO] [stderr] | [INFO] [stderr] 27 | self.senders[lane].send((message, self.min_time.clone(), self.max_time.clone())).ok(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.max_time` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/client/logger.rs:21:19 [INFO] [stderr] | [INFO] [stderr] 21 | RawLogger{sender: sender} [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `sender` [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/client/logger.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | sender: sender, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `sender` [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/client/logger.rs:50:13 [INFO] [stderr] | [INFO] [stderr] 50 | timeout_closer: timeout_closer [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `timeout_closer` [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/client/session.rs:29:9 [INFO] [stderr] | [INFO] [stderr] 29 | conn: conn, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `conn` [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/client/session.rs:30:9 [INFO] [stderr] | [INFO] [stderr] 30 | info: info, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `info` [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/client/logger.rs:21:19 [INFO] [stderr] | [INFO] [stderr] 21 | RawLogger{sender: sender} [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `sender` [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/client/logger.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | sender: sender, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `sender` [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/client/logger.rs:50:13 [INFO] [stderr] | [INFO] [stderr] 50 | timeout_closer: timeout_closer [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `timeout_closer` [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/client/session.rs:29:9 [INFO] [stderr] | [INFO] [stderr] 29 | conn: conn, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `conn` [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/client/session.rs:30:9 [INFO] [stderr] | [INFO] [stderr] 30 | info: info, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `info` [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/server/session.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/server/session.rs:46:13 [INFO] [stderr] | [INFO] [stderr] 46 | name_code: name_code, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `name_code` [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/server/session.rs:47:13 [INFO] [stderr] | [INFO] [stderr] 47 | record_code: record_code, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `record_code` [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/server/session.rs:48:13 [INFO] [stderr] | [INFO] [stderr] 48 | conn: conn, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `conn` [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/server/server.rs:21:16 [INFO] [stderr] | [INFO] [stderr] 21 | Server{flags: flags, sessions: Vec::new()} [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `flags` [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/server/server.rs:69:63 [INFO] [stderr] | [INFO] [stderr] 69 | establish::EstablishResponse::Success{id: id, seq: seq_start} [INFO] [stderr] | ^^^^^^ help: replace it with: `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/server/session.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/server/session.rs:46:13 [INFO] [stderr] | [INFO] [stderr] 46 | name_code: name_code, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `name_code` [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/server/session.rs:47:13 [INFO] [stderr] | [INFO] [stderr] 47 | record_code: record_code, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `record_code` [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/server/session.rs:48:13 [INFO] [stderr] | [INFO] [stderr] 48 | conn: conn, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `conn` [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/server/server.rs:21:16 [INFO] [stderr] | [INFO] [stderr] 21 | Server{flags: flags, sessions: Vec::new()} [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `flags` [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/server/server.rs:69:63 [INFO] [stderr] | [INFO] [stderr] 69 | establish::EstablishResponse::Success{id: id, seq: seq_start} [INFO] [stderr] | ^^^^^^ help: replace it with: `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: you should consider deriving a `Default` implementation for `dns_coding::encoding::EncPacket` [INFO] [stderr] --> src/dns_coding/encoding.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | / pub fn new() -> EncPacket { [INFO] [stderr] 17 | | EncPacket(Vec::new()) [INFO] [stderr] 18 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 12 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/dns_coding/encoding.rs:86:26 [INFO] [stderr] | [INFO] [stderr] 86 | for item in self.into_iter() { [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: you should consider deriving a `Default` implementation for `dns_coding::encoding::BitWriter` [INFO] [stderr] --> src/dns_coding/encoding.rs:101:5 [INFO] [stderr] | [INFO] [stderr] 101 | / pub fn new() -> BitWriter { [INFO] [stderr] 102 | | BitWriter{ [INFO] [stderr] 103 | | value: 0, [INFO] [stderr] 104 | | bits_used: 0 [INFO] [stderr] 105 | | } [INFO] [stderr] 106 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 94 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/dns_coding/decoding.rs:106:13 [INFO] [stderr] | [INFO] [stderr] 106 | Ok(((big_byte as u16) << 8) | (small_byte as u16)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(big_byte)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/dns_coding/decoding.rs:106:39 [INFO] [stderr] | [INFO] [stderr] 106 | Ok(((big_byte as u16) << 8) | (small_byte as u16)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(small_byte)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/dns_coding/decoding.rs:114:13 [INFO] [stderr] | [INFO] [stderr] 114 | Ok(((big_word as u32) << 16) | (small_word as u32)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(big_word)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/dns_coding/decoding.rs:114:40 [INFO] [stderr] | [INFO] [stderr] 114 | Ok(((big_word as u32) << 16) | (small_word as u32)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(small_word)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/dns_coding/decoding.rs:122:13 [INFO] [stderr] | [INFO] [stderr] 122 | Ok(((big_word as u64) << 32) | (small_word as u64)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(big_word)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/dns_coding/decoding.rs:122:40 [INFO] [stderr] | [INFO] [stderr] 122 | Ok(((big_word as u64) << 32) | (small_word as u64)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(small_word)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/dns_proto/domain.rs:17:16 [INFO] [stderr] | [INFO] [stderr] 17 | if label.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `label.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: useless use of `format!` [INFO] [stderr] --> src/dns_proto/domain.rs:18:28 [INFO] [stderr] | [INFO] [stderr] 18 | return Err(format!("empty domain name label")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"empty domain name label".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/dns_proto/domain.rs:27:28 [INFO] [stderr] | [INFO] [stderr] 27 | return Err(format!("domain label may not end or start with -")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"domain label may not end or start with -".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/dns_proto/domain.rs:32:32 [INFO] [stderr] | [INFO] [stderr] 32 | return Err(format!("domain label may only contain a-zA-Z0-9-")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"domain label may only contain a-zA-Z0-9-".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/dns_proto/domain.rs:72:36 [INFO] [stderr] | [INFO] [stderr] 72 | Domain::from_parts(s.split(".").map(String::from).collect()) [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: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/dns_proto/domain.rs:78:33 [INFO] [stderr] | [INFO] [stderr] 78 | for (i, x) in (&self.0).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: length comparison to zero [INFO] [stderr] --> src/dns_proto/domain.rs:90:12 [INFO] [stderr] | [INFO] [stderr] 90 | if self.0.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.0.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: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/dns_proto/domain.rs:180:28 [INFO] [stderr] | [INFO] [stderr] 180 | 0u8, 0u8, 3u8, 'c' as u8, 'o' as u8, 'm' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'c' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/dns_proto/domain.rs:180:39 [INFO] [stderr] | [INFO] [stderr] 180 | 0u8, 0u8, 3u8, 'c' as u8, 'o' as u8, 'm' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'o' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/dns_proto/domain.rs:180:50 [INFO] [stderr] | [INFO] [stderr] 180 | 0u8, 0u8, 3u8, 'c' as u8, 'o' as u8, 'm' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'm' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/dns_proto/domain.rs:182:18 [INFO] [stderr] | [INFO] [stderr] 182 | 2u8, 'a' as u8, 'b' as u8, 0xc0u8, 2u8 [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'a' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/dns_proto/domain.rs:182:29 [INFO] [stderr] | [INFO] [stderr] 182 | 2u8, 'a' as u8, 'b' as u8, 0xc0u8, 2u8 [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'b' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/dns_proto/header.rs:106:15 [INFO] [stderr] | [INFO] [stderr] 106 | fn encode(&self) -> usize { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/dns_proto/header.rs:130:15 [INFO] [stderr] | [INFO] [stderr] 130 | fn encode(&self) -> usize { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/dns_proto/record.rs:97:34 [INFO] [stderr] | [INFO] [stderr] 97 | for i in 0..16 { [INFO] [stderr] | ^^^^^ help: try replacing the loop by: `buffer[..16].clone_from_slice(&data[..16])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_memcpy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/server/session.rs:32:14 [INFO] [stderr] | [INFO] [stderr] 32 | .ok_or(format!("bad name code: {}", query.name_encoding))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format!("bad name code: {}", query.name_encoding))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/server/session.rs:34:14 [INFO] [stderr] | [INFO] [stderr] 34 | .ok_or("bad record code".to_owned())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| "bad record code".to_owned())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/server/server.rs:26:18 [INFO] [stderr] | [INFO] [stderr] 26 | for i in (0..self.sessions.len()).into_iter().rev() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..self.sessions.len())` [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: this .into_iter() call is equivalent to .iter_mut() and will not move the Vec [INFO] [stderr] --> src/server/server.rs:45:54 [INFO] [stderr] | [INFO] [stderr] 45 | let mut some_sess = (&mut self.sessions).into_iter().find(|x| x.session_id() == id); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter_mut` [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: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/server/server.rs:85:34 [INFO] [stderr] | [INFO] [stderr] 85 | if !(&self.sessions).into_iter().any(|x| x.session_id() == i) { [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/dns_proto/message.rs:115:43 [INFO] [stderr] | [INFO] [stderr] 115 | let message: Message = dns_decode(request.clone().to_vec()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `request` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/server/main.rs:43:16 [INFO] [stderr] | [INFO] [stderr] 43 | if message.additional.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!message.additional.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: using `clone` on a `Copy` type [INFO] [stderr] --> src/dns_proto/message.rs:143:43 [INFO] [stderr] | [INFO] [stderr] 143 | let message: Message = dns_decode(response.clone().to_vec()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `response` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/dns_proto/message.rs:162:9 [INFO] [stderr] | [INFO] [stderr] 162 | / match &soa.body { [INFO] [stderr] 163 | | &RecordBody::SOA(ref info) => { [INFO] [stderr] 164 | | assert_eq!(info.master_name, "ns1.digimedia.com".parse().unwrap()); [INFO] [stderr] 165 | | assert_eq!(info.responsible_name, "dns.digimedia.com".parse().unwrap()); [INFO] [stderr] ... | [INFO] [stderr] 169 | | _ => panic!("expected SOARecord") [INFO] [stderr] 170 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 162 | match soa.body { [INFO] [stderr] 163 | RecordBody::SOA(ref info) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/myo_proto/util.rs:9:9 [INFO] [stderr] | [INFO] [stderr] 9 | m.answers.len() == 0 && [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `m.answers.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: length comparison to zero [INFO] [stderr] --> src/myo_proto/util.rs:10:9 [INFO] [stderr] | [INFO] [stderr] 10 | m.authorities.len() == 0 && [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `m.authorities.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: length comparison to zero [INFO] [stderr] --> src/myo_proto/util.rs:11:9 [INFO] [stderr] | [INFO] [stderr] 11 | m.additional.len() == 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `m.additional.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: length comparison to zero [INFO] [stderr] --> src/myo_proto/util.rs:14:12 [INFO] [stderr] | [INFO] [stderr] 14 | if domain.parts().len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!domain.parts().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: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/myo_proto/util.rs:45:19 [INFO] [stderr] | [INFO] [stderr] 45 | if *ch >= ('A' as u8) && *ch <= ('Z' as u8) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'A' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/myo_proto/util.rs:45:41 [INFO] [stderr] | [INFO] [stderr] 45 | if *ch >= ('A' as u8) && *ch <= ('Z' as u8) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'Z' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/myo_proto/util.rs:46:36 [INFO] [stderr] | [INFO] [stderr] 46 | res.write_char(((*ch - ('A' as u8)) + ('a' as u8)) as char) [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'A' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/myo_proto/util.rs:46:51 [INFO] [stderr] | [INFO] [stderr] 46 | res.write_char(((*ch - ('A' as u8)) + ('a' as u8)) as char) [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'a' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/myo_proto/name_code.rs:127:61 [INFO] [stderr] | [INFO] [stderr] 127 | let encoded = code.encode_domain(api_flag, sess_id, &vec![0u8, 1u8, 2u8, 52u8], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[0u8, 1u8, 2u8, 52u8]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_vec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/myo_proto/record_code.rs:42:12 [INFO] [stderr] | [INFO] [stderr] 42 | if next_buf.len() > 0 || result.data().len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!next_buf.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: length comparison to zero [INFO] [stderr] --> src/myo_proto/record_code.rs:42:34 [INFO] [stderr] | [INFO] [stderr] 42 | if next_buf.len() > 0 || result.data().len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `result.data().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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/myo_proto/record_code.rs:50:9 [INFO] [stderr] | [INFO] [stderr] 50 | / if let &RecordBody::Unknown(ref data) = body { [INFO] [stderr] 51 | | let mut packet = DecPacket::new(data.clone()); [INFO] [stderr] 52 | | let mut result = Vec::new(); [INFO] [stderr] 53 | | while packet.remaining() > 0 { [INFO] [stderr] ... | [INFO] [stderr] 59 | | Err("unexpected record type".to_owned()) [INFO] [stderr] 60 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 50 | if let RecordBody::Unknown(ref data) = *body { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/myo_proto/discovery.rs:51:10 [INFO] [stderr] | [INFO] [stderr] 51 | .ok_or("no record code found".to_owned())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| "no record code found".to_owned())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/myo_proto/discovery.rs:115:26 [INFO] [stderr] | [INFO] [stderr] 115 | let value = ((i as u64) + (self.bias as u64)) * (self.coefficient as u64) % [INFO] [stderr] | ^^^^^^^^^^ help: try: `u64::from(i)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/myo_proto/discovery.rs:115:39 [INFO] [stderr] | [INFO] [stderr] 115 | let value = ((i as u64) + (self.bias as u64)) * (self.coefficient as u64) % [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.bias)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/myo_proto/discovery.rs:115:61 [INFO] [stderr] | [INFO] [stderr] 115 | let value = ((i as u64) + (self.bias as u64)) * (self.coefficient as u64) % [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.coefficient)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/myo_proto/discovery.rs:116:17 [INFO] [stderr] | [INFO] [stderr] 116 | (self.modulus as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.modulus)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/myo_proto/discovery.rs:136:66 [INFO] [stderr] | [INFO] [stderr] 136 | let mut total_bytes = host.parts().iter().chain((&parts).into_iter()) [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: use of `ok_or` followed by a function call [INFO] [stderr] --> src/myo_proto/establish.rs:30:10 [INFO] [stderr] | [INFO] [stderr] 30 | .ok_or("no response encoding".to_owned())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| "no response encoding".to_owned())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/myo_proto/establish.rs:53:6 [INFO] [stderr] | [INFO] [stderr] 53 | ((hash[0] as u64) << 56) | ((hash[1] as u64) << 48) | ((hash[2] as u64) << 40) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(hash[0])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/myo_proto/establish.rs:53:33 [INFO] [stderr] | [INFO] [stderr] 53 | ((hash[0] as u64) << 56) | ((hash[1] as u64) << 48) | ((hash[2] as u64) << 40) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(hash[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/myo_proto/establish.rs:53:60 [INFO] [stderr] | [INFO] [stderr] 53 | ((hash[0] as u64) << 56) | ((hash[1] as u64) << 48) | ((hash[2] as u64) << 40) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(hash[2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/myo_proto/establish.rs:54:10 [INFO] [stderr] | [INFO] [stderr] 54 | ((hash[3] as u64) << 32) | ((hash[4] as u64) << 24) | ((hash[5] as u64) << 16) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(hash[3])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/myo_proto/establish.rs:54:37 [INFO] [stderr] | [INFO] [stderr] 54 | ((hash[3] as u64) << 32) | ((hash[4] as u64) << 24) | ((hash[5] as u64) << 16) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(hash[4])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/myo_proto/establish.rs:54:64 [INFO] [stderr] | [INFO] [stderr] 54 | ((hash[3] as u64) << 32) | ((hash[4] as u64) << 24) | ((hash[5] as u64) << 16) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(hash[5])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/myo_proto/establish.rs:55:10 [INFO] [stderr] | [INFO] [stderr] 55 | ((hash[6] as u64) << 8) | (hash[7] as u64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(hash[6])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/myo_proto/establish.rs:55:35 [INFO] [stderr] | [INFO] [stderr] 55 | ((hash[6] as u64) << 8) | (hash[7] as u64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(hash[7])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/server/session.rs:32:14 [INFO] [stderr] | [INFO] [stderr] 32 | .ok_or(format!("bad name code: {}", query.name_encoding))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format!("bad name code: {}", query.name_encoding))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/server/session.rs:34:14 [INFO] [stderr] | [INFO] [stderr] 34 | .ok_or("bad record code".to_owned())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| "bad record code".to_owned())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/myo_proto/establish.rs:184:9 [INFO] [stderr] | [INFO] [stderr] 184 | / match self { [INFO] [stderr] 185 | | &EstablishResponse::Success{id: ref session_id, seq: ref seq_num} => { [INFO] [stderr] 186 | | 0u8.dns_encode(packet)?; [INFO] [stderr] 187 | | session_id.dns_encode(packet)?; [INFO] [stderr] ... | [INFO] [stderr] 196 | | } [INFO] [stderr] 197 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 184 | match *self { [INFO] [stderr] 185 | EstablishResponse::Success{id: ref session_id, seq: ref seq_num} => { [INFO] [stderr] 186 | 0u8.dns_encode(packet)?; [INFO] [stderr] 187 | session_id.dns_encode(packet)?; [INFO] [stderr] 188 | seq_num.dns_encode(packet) [INFO] [stderr] 189 | }, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/server/server.rs:26:18 [INFO] [stderr] | [INFO] [stderr] 26 | for i in (0..self.sessions.len()).into_iter().rev() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..self.sessions.len())` [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: this .into_iter() call is equivalent to .iter_mut() and will not move the Vec [INFO] [stderr] --> src/server/server.rs:45:54 [INFO] [stderr] | [INFO] [stderr] 45 | let mut some_sess = (&mut self.sessions).into_iter().find(|x| x.session_id() == id); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter_mut` [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: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/server/server.rs:85:34 [INFO] [stderr] | [INFO] [stderr] 85 | if !(&self.sessions).into_iter().any(|x| x.session_id() == i) { [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/client/logger.rs:95:13 [INFO] [stderr] | [INFO] [stderr] 95 | / match closer.try_recv() { [INFO] [stderr] 96 | | Err(TryRecvError::Disconnected) => return, [INFO] [stderr] 97 | | _ => () [INFO] [stderr] 98 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Err(TryRecvError::Disconnected) = closer.try_recv() { return }` [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] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/server/main.rs:43:16 [INFO] [stderr] | [INFO] [stderr] 43 | if message.additional.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!message.additional.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: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/myo_proto/xfer/types.rs:57:43 [INFO] [stderr] | [INFO] [stderr] 57 | for (i, b) in (&self.window_mask).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: manual implementation of an assign operation [INFO] [stderr] --> src/myo_proto/xfer/types.rs:58:13 [INFO] [stderr] | [INFO] [stderr] 58 | cur_byte = cur_byte << 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cur_byte <<= 1` [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: use of `ok_or` followed by a function call [INFO] [stderr] --> src/client/establish.rs:48:10 [INFO] [stderr] | [INFO] [stderr] 48 | .ok_or("no establishment response".to_owned())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| "no establishment response".to_owned())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/myo_proto/xfer/types.rs:99:24 [INFO] [stderr] | [INFO] [stderr] 99 | let api_code = if let &Some(ref chunk) = &self.chunk { [INFO] [stderr] | ________________________^ [INFO] [stderr] 100 | | chunk.dns_encode(&mut enc_packet)?; [INFO] [stderr] 101 | | 't' [INFO] [stderr] 102 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 106 | | 'p' [INFO] [stderr] 107 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 99 | let api_code = if let Some(ref chunk) = self.chunk { [INFO] [stderr] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/myo_proto/xfer/types.rs:138:9 [INFO] [stderr] | [INFO] [stderr] 138 | / if let &Some(ref chunk) = &self.chunk { [INFO] [stderr] 139 | | chunk.dns_encode(&mut packet)?; [INFO] [stderr] 140 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 138 | if let Some(ref chunk) = self.chunk { [INFO] [stderr] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/myo_proto/xfer/wwr.rs:46:40 [INFO] [stderr] | [INFO] [stderr] 46 | self.in_eof && self.out_eof && self.out_pending.len() == 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.out_pending.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: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/myo_proto/xfer/wwr.rs:57:30 [INFO] [stderr] | [INFO] [stderr] 57 | assert!(offset < self.in_win_size as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.in_win_size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/myo_proto/xfer/wwr.rs:134:42 [INFO] [stderr] | [INFO] [stderr] 134 | for (i, b) in (&ack.window_mask).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: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/myo_proto/xfer/wwr.rs:156:28 [INFO] [stderr] | [INFO] [stderr] 156 | if chunk_offset >= self.in_win_size as u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.in_win_size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/myo_proto/xfer/wwr.rs:160:32 [INFO] [stderr] | [INFO] [stderr] 160 | if (&self.in_received).into_iter().any(|x| x.seq == chunk.seq) { [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: length comparison to zero [INFO] [stderr] --> src/myo_proto/xfer/wwr.rs:172:34 [INFO] [stderr] | [INFO] [stderr] 172 | let is_eof = chunk.data.len() == 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `chunk.data.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: identical conversion [INFO] [stderr] --> src/myo_proto/xfer/wwr.rs:188:18 [INFO] [stderr] | [INFO] [stderr] 188 | for i in (0..self.out_pending.len()).into_iter().rev() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..self.out_pending.len())` [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: identical conversion [INFO] [stderr] --> src/myo_proto/xfer/wwr.rs:419:18 [INFO] [stderr] | [INFO] [stderr] 419 | for i in (0u32..win_size).into_iter().rev() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0u32..win_size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/myo_proto/xfer/session.rs:15:16 [INFO] [stderr] | [INFO] [stderr] 15 | if chunk.data.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `chunk.data.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: length comparison to zero [INFO] [stderr] --> src/myo_proto/xfer/session.rs:45:16 [INFO] [stderr] | [INFO] [stderr] 45 | if data.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!data.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: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/conn/chunker.rs:106:20 [INFO] [stderr] | [INFO] [stderr] 106 | if let Err(_) = stream.write_all(&chunk) { [INFO] [stderr] | _____________- ^^^^^^ [INFO] [stderr] 107 | | return; [INFO] [stderr] 108 | | } [INFO] [stderr] | |_____________- help: try this: `if stream.write_all(&chunk).is_err()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/conn/highway_tcp.rs:109:9 [INFO] [stderr] | [INFO] [stderr] 109 | cur_seq = cur_seq + Wrapping(1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cur_seq += Wrapping(1)` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/conn/highway_tcp.rs:120:44 [INFO] [stderr] | [INFO] [stderr] 120 | pending.add(msg, lane, max_time.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `max_time` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/conn/highway_tcp.rs:143:24 [INFO] [stderr] | [INFO] [stderr] 143 | if let Err(_) = sender.send(Event::Response(pending.lane, msg)) { [INFO] [stderr] | _________________- ^^^^^^ [INFO] [stderr] 144 | | return Ok(()); [INFO] [stderr] 145 | | } [INFO] [stderr] | |_________________- help: try this: `if sender.send(Event::Response(pending.lane, msg)).is_err()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/conn/highway_tcp.rs:149:20 [INFO] [stderr] | [INFO] [stderr] 149 | if let Err(_) = sender.send(Event::Timeout(timed_out.lane)) { [INFO] [stderr] | _____________- ^^^^^^ [INFO] [stderr] 150 | | return Ok(()); [INFO] [stderr] 151 | | } [INFO] [stderr] | |_____________- help: try this: `if sender.send(Event::Timeout(timed_out.lane)).is_err()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [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/conn/highway_tcp.rs:153:9 [INFO] [stderr] | [INFO] [stderr] 153 | / match kill_receiver.try_recv() { [INFO] [stderr] 154 | | Err(TryRecvError::Disconnected) => return Ok(()), [INFO] [stderr] 155 | | _ => () [INFO] [stderr] 156 | | } [INFO] [stderr] | |_________^ help: try this: `if let Err(TryRecvError::Disconnected) = kill_receiver.try_recv() { return Ok(()) }` [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] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/conn/highway_tcp.rs:198:18 [INFO] [stderr] | [INFO] [stderr] 198 | for i in (0..list.len()).into_iter().rev() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..list.len())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/conn/highway_tcp.rs:262:26 [INFO] [stderr] | [INFO] [stderr] 262 | let msg_size = (((self.buffer[0] as u16) << 8) | (self.buffer[1] as u16)) as usize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.buffer[0])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/conn/highway_tcp.rs:262:58 [INFO] [stderr] | [INFO] [stderr] 262 | let msg_size = (((self.buffer[0] as u16) << 8) | (self.buffer[1] as u16)) as usize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.buffer[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/conn/highway_udp.rs:27:43 [INFO] [stderr] | [INFO] [stderr] 27 | self.senders[lane].send((message, self.min_time.clone(), self.max_time.clone())).ok(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.min_time` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/conn/highway_udp.rs:27:66 [INFO] [stderr] | [INFO] [stderr] 27 | self.senders[lane].send((message, self.min_time.clone(), self.max_time.clone())).ok(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.max_time` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [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/client/logger.rs:95:13 [INFO] [stderr] | [INFO] [stderr] 95 | / match closer.try_recv() { [INFO] [stderr] 96 | | Err(TryRecvError::Disconnected) => return, [INFO] [stderr] 97 | | _ => () [INFO] [stderr] 98 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Err(TryRecvError::Disconnected) = closer.try_recv() { return }` [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] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/client/establish.rs:48:10 [INFO] [stderr] | [INFO] [stderr] 48 | .ok_or("no establishment response".to_owned())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| "no establishment response".to_owned())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 10.97s [INFO] running `"docker" "inspect" "ff46a49cd402fe9216f3a9fe10bcee0d1c75570fa04165edae7966d4d1d6764c"` [INFO] running `"docker" "rm" "-f" "ff46a49cd402fe9216f3a9fe10bcee0d1c75570fa04165edae7966d4d1d6764c"` [INFO] [stdout] ff46a49cd402fe9216f3a9fe10bcee0d1c75570fa04165edae7966d4d1d6764c