[INFO] updating cached repository aji/ircd-oxide
[INFO] running `"git" "fetch" "--all"`
[INFO] [stdout] Fetching origin
[INFO] [stderr] From git://github.com/aji/ircd-oxide
[INFO] [stderr] * branch HEAD -> FETCH_HEAD
[INFO] running `"git" "clone" "work/cache/sources/gh/aji/ircd-oxide" "work/ex/clippy-test-run/sources/stable/gh/aji/ircd-oxide"`
[INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/aji/ircd-oxide'...
[INFO] [stderr] done.
[INFO] running `"git" "clone" "work/cache/sources/gh/aji/ircd-oxide" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/aji/ircd-oxide"`
[INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/aji/ircd-oxide'...
[INFO] [stderr] done.
[INFO] running `"git" "rev-parse" "HEAD"`
[INFO] [stdout] d17716e88b31d1bca5fb6ec20eea52d757bc9619
[INFO] sha for GitHub repo aji/ircd-oxide: d17716e88b31d1bca5fb6ec20eea52d757bc9619
[INFO] validating manifest of aji/ircd-oxide 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 aji/ircd-oxide 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 aji/ircd-oxide
[INFO] finished frobbing aji/ircd-oxide
[INFO] frobbed toml for aji/ircd-oxide written to work/ex/clippy-test-run/sources/stable/gh/aji/ircd-oxide/Cargo.toml
[INFO] started frobbing aji/ircd-oxide
[INFO] finished frobbing aji/ircd-oxide
[INFO] frobbed toml for aji/ircd-oxide written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/aji/ircd-oxide/Cargo.toml
[INFO] crate aji/ircd-oxide 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 aji/ircd-oxide against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run
[INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-3/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/aji/ircd-oxide:/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 -Dclippy::into_iter_on_array" "-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] 1e3d513f52a9a80e7b939e87adf24720e0f8621148cfb7ea6d1145f169c5451f
[INFO] running `"docker" "start" "-a" "1e3d513f52a9a80e7b939e87adf24720e0f8621148cfb7ea6d1145f169c5451f"`
[INFO] [stderr] Checking futures v0.1.11
[INFO] [stderr] Checking iovec v0.1.0
[INFO] [stderr] Checking net2 v0.2.27
[INFO] [stderr] Checking toml v0.3.1
[INFO] [stderr] Checking bytes v0.4.1
[INFO] [stderr] Checking mio v0.6.6
[INFO] [stderr] Checking tokio-io v0.1.1
[INFO] [stderr] Checking tokio-core v0.1.6
[INFO] [stderr] Checking oxide v0.0.1 (/opt/crater/workdir)
[INFO] [stderr] warning: redundant field names in struct initialization
[INFO] [stderr] --> src/common/bimap.rs:155:16
[INFO] [stderr] |
[INFO] [stderr] 155 | AllA { pairs: pairs, tt: tt, bi: bi, iter: iter }
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `pairs`
[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/common/bimap.rs:155:30
[INFO] [stderr] |
[INFO] [stderr] 155 | AllA { pairs: pairs, tt: tt, bi: bi, iter: iter }
[INFO] [stderr] | ^^^^^^ help: replace it with: `tt`
[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/common/bimap.rs:155:38
[INFO] [stderr] |
[INFO] [stderr] 155 | AllA { pairs: pairs, tt: tt, bi: bi, iter: iter }
[INFO] [stderr] | ^^^^^^ help: replace it with: `bi`
[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/common/bimap.rs:155:46
[INFO] [stderr] |
[INFO] [stderr] 155 | AllA { pairs: pairs, tt: tt, bi: bi, iter: iter }
[INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `iter`
[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/common/bimap.rs:186:16
[INFO] [stderr] |
[INFO] [stderr] 186 | AllB { pairs: pairs, tt: tt, ai: ai, iter: iter }
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `pairs`
[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/common/bimap.rs:186:30
[INFO] [stderr] |
[INFO] [stderr] 186 | AllB { pairs: pairs, tt: tt, ai: ai, iter: iter }
[INFO] [stderr] | ^^^^^^ help: replace it with: `tt`
[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/common/bimap.rs:186:38
[INFO] [stderr] |
[INFO] [stderr] 186 | AllB { pairs: pairs, tt: tt, ai: ai, iter: iter }
[INFO] [stderr] | ^^^^^^ help: replace it with: `ai`
[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/common/bimap.rs:186:46
[INFO] [stderr] |
[INFO] [stderr] 186 | AllB { pairs: pairs, tt: tt, ai: ai, iter: iter }
[INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `iter`
[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/common/observe.rs:140:13
[INFO] [stderr] |
[INFO] [stderr] 140 | shared: shared,
[INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `shared`
[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/common/observe.rs:157:20
[INFO] [stderr] |
[INFO] [stderr] 157 | Observer { dispatch: dispatch }
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `dispatch`
[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/crdb/mod.rs:130:17
[INFO] [stderr] |
[INFO] [stderr] 130 | schema: schema,
[INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `schema`
[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/crdb/mod.rs:138:29
[INFO] [stderr] |
[INFO] [stderr] 138 | let typed = Table { inner: inner };
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `inner`
[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/crdb/mod.rs:173:13
[INFO] [stderr] |
[INFO] [stderr] 173 | txid: txid,
[INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `txid`
[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/crdb/mod.rs:174:13
[INFO] [stderr] |
[INFO] [stderr] 174 | updates: updates
[INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `updates`
[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/crdb/mod.rs:189:13
[INFO] [stderr] |
[INFO] [stderr] 189 | txid: txid,
[INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `txid`
[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/crdb/mod.rs:190:13
[INFO] [stderr] |
[INFO] [stderr] 190 | updates: updates
[INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `updates`
[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/crdb/mod.rs:354:13
[INFO] [stderr] |
[INFO] [stderr] 354 | prev: prev,
[INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `prev`
[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/crdb/mod.rs:380:13
[INFO] [stderr] |
[INFO] [stderr] 380 | txid: txid,
[INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `txid`
[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/crdb/mod.rs:398:13
[INFO] [stderr] |
[INFO] [stderr] 398 | txid: txid,
[INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `txid`
[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/irc/active.rs:19:18
[INFO] [stderr] |
[INFO] [stderr] 19 | Active { world: world, _out: out, nick: nick }
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `world`
[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/irc/active.rs:19:43
[INFO] [stderr] |
[INFO] [stderr] 19 | Active { world: world, _out: out, nick: nick }
[INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `nick`
[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/irc/listener.rs:25:13
[INFO] [stderr] |
[INFO] [stderr] 25 | world: world,
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `world`
[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/irc/listener.rs:26:13
[INFO] [stderr] |
[INFO] [stderr] 26 | accept: accept,
[INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `accept`
[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/irc/message.rs:31:19
[INFO] [stderr] |
[INFO] [stderr] 31 | Scanner { b: b }
[INFO] [stderr] | ^^^^ help: replace it with: `b`
[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/irc/message.rs:93:13
[INFO] [stderr] |
[INFO] [stderr] 93 | verb: verb,
[INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `verb`
[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/irc/message.rs:94:13
[INFO] [stderr] |
[INFO] [stderr] 94 | args: args
[INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `args`
[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/irc/pending.rs:21:13
[INFO] [stderr] |
[INFO] [stderr] 21 | world: world,
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `world`
[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/irc/pending.rs:22:13
[INFO] [stderr] |
[INFO] [stderr] 22 | out: out,
[INFO] [stderr] | ^^^^^^^^ help: replace it with: `out`
[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/irc/send.rs:110:13
[INFO] [stderr] |
[INFO] [stderr] 110 | buf: buf,
[INFO] [stderr] | ^^^^^^^^ help: replace it with: `buf`
[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/irc/send.rs:116:13
[INFO] [stderr] |
[INFO] [stderr] 116 | send: send,
[INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `send`
[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/world/mod.rs:42:13
[INFO] [stderr] |
[INFO] [stderr] 42 | db: db,
[INFO] [stderr] | ^^^^^^ help: replace it with: `db`
[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/world/mod.rs:44:13
[INFO] [stderr] |
[INFO] [stderr] 44 | u_table: u_table,
[INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `u_table`
[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/world/mod.rs:47:13
[INFO] [stderr] |
[INFO] [stderr] 47 | c_table: c_table,
[INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `c_table`
[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/world/mod.rs:50:13
[INFO] [stderr] |
[INFO] [stderr] 50 | m_table: m_table,
[INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `m_table`
[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/world/mod.rs:278:53
[INFO] [stderr] |
[INFO] [stderr] 278 | MembershipRecord { since: Timestamp::now(), status: status }
[INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `status`
[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/common/bimap.rs:155:16
[INFO] [stderr] |
[INFO] [stderr] 155 | AllA { pairs: pairs, tt: tt, bi: bi, iter: iter }
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `pairs`
[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/common/bimap.rs:155:30
[INFO] [stderr] |
[INFO] [stderr] 155 | AllA { pairs: pairs, tt: tt, bi: bi, iter: iter }
[INFO] [stderr] | ^^^^^^ help: replace it with: `tt`
[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/common/bimap.rs:155:38
[INFO] [stderr] |
[INFO] [stderr] 155 | AllA { pairs: pairs, tt: tt, bi: bi, iter: iter }
[INFO] [stderr] | ^^^^^^ help: replace it with: `bi`
[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/common/bimap.rs:155:46
[INFO] [stderr] |
[INFO] [stderr] 155 | AllA { pairs: pairs, tt: tt, bi: bi, iter: iter }
[INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `iter`
[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/common/bimap.rs:186:16
[INFO] [stderr] |
[INFO] [stderr] 186 | AllB { pairs: pairs, tt: tt, ai: ai, iter: iter }
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `pairs`
[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/common/bimap.rs:186:30
[INFO] [stderr] |
[INFO] [stderr] 186 | AllB { pairs: pairs, tt: tt, ai: ai, iter: iter }
[INFO] [stderr] | ^^^^^^ help: replace it with: `tt`
[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/common/bimap.rs:186:38
[INFO] [stderr] |
[INFO] [stderr] 186 | AllB { pairs: pairs, tt: tt, ai: ai, iter: iter }
[INFO] [stderr] | ^^^^^^ help: replace it with: `ai`
[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/common/bimap.rs:186:46
[INFO] [stderr] |
[INFO] [stderr] 186 | AllB { pairs: pairs, tt: tt, ai: ai, iter: iter }
[INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `iter`
[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/common/observe.rs:140:13
[INFO] [stderr] |
[INFO] [stderr] 140 | shared: shared,
[INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `shared`
[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/common/observe.rs:157:20
[INFO] [stderr] |
[INFO] [stderr] 157 | Observer { dispatch: dispatch }
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `dispatch`
[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/crdb/tests.rs:61:9
[INFO] [stderr] |
[INFO] [stderr] 61 | min_finish: min_finish,
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `min_finish`
[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/crdb/tests.rs:62:9
[INFO] [stderr] |
[INFO] [stderr] 62 | max_finish: max_finish,
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `max_finish`
[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/crdb/mod.rs:130:17
[INFO] [stderr] |
[INFO] [stderr] 130 | schema: schema,
[INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `schema`
[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/crdb/mod.rs:138:29
[INFO] [stderr] |
[INFO] [stderr] 138 | let typed = Table { inner: inner };
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `inner`
[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/crdb/mod.rs:173:13
[INFO] [stderr] |
[INFO] [stderr] 173 | txid: txid,
[INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `txid`
[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/crdb/mod.rs:174:13
[INFO] [stderr] |
[INFO] [stderr] 174 | updates: updates
[INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `updates`
[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/crdb/mod.rs:189:13
[INFO] [stderr] |
[INFO] [stderr] 189 | txid: txid,
[INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `txid`
[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/crdb/mod.rs:190:13
[INFO] [stderr] |
[INFO] [stderr] 190 | updates: updates
[INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `updates`
[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/crdb/mod.rs:354:13
[INFO] [stderr] |
[INFO] [stderr] 354 | prev: prev,
[INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `prev`
[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/crdb/mod.rs:380:13
[INFO] [stderr] |
[INFO] [stderr] 380 | txid: txid,
[INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `txid`
[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/crdb/mod.rs:398:13
[INFO] [stderr] |
[INFO] [stderr] 398 | txid: txid,
[INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `txid`
[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/irc/active.rs:19:18
[INFO] [stderr] |
[INFO] [stderr] 19 | Active { world: world, _out: out, nick: nick }
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `world`
[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/irc/active.rs:19:43
[INFO] [stderr] |
[INFO] [stderr] 19 | Active { world: world, _out: out, nick: nick }
[INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `nick`
[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/irc/listener.rs:25:13
[INFO] [stderr] |
[INFO] [stderr] 25 | world: world,
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `world`
[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/irc/listener.rs:26:13
[INFO] [stderr] |
[INFO] [stderr] 26 | accept: accept,
[INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `accept`
[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/irc/message.rs:31:19
[INFO] [stderr] |
[INFO] [stderr] 31 | Scanner { b: b }
[INFO] [stderr] | ^^^^ help: replace it with: `b`
[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/irc/message.rs:93:13
[INFO] [stderr] |
[INFO] [stderr] 93 | verb: verb,
[INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `verb`
[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/irc/message.rs:94:13
[INFO] [stderr] |
[INFO] [stderr] 94 | args: args
[INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `args`
[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/irc/pending.rs:21:13
[INFO] [stderr] |
[INFO] [stderr] 21 | world: world,
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `world`
[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/irc/pending.rs:22:13
[INFO] [stderr] |
[INFO] [stderr] 22 | out: out,
[INFO] [stderr] | ^^^^^^^^ help: replace it with: `out`
[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/irc/send.rs:110:13
[INFO] [stderr] |
[INFO] [stderr] 110 | buf: buf,
[INFO] [stderr] | ^^^^^^^^ help: replace it with: `buf`
[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/irc/send.rs:116:13
[INFO] [stderr] |
[INFO] [stderr] 116 | send: send,
[INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `send`
[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/world/mod.rs:42:13
[INFO] [stderr] |
[INFO] [stderr] 42 | db: db,
[INFO] [stderr] | ^^^^^^ help: replace it with: `db`
[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/world/mod.rs:44:13
[INFO] [stderr] |
[INFO] [stderr] 44 | u_table: u_table,
[INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `u_table`
[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/world/mod.rs:47:13
[INFO] [stderr] |
[INFO] [stderr] 47 | c_table: c_table,
[INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `c_table`
[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/world/mod.rs:50:13
[INFO] [stderr] |
[INFO] [stderr] 50 | m_table: m_table,
[INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `m_table`
[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/world/mod.rs:278:53
[INFO] [stderr] |
[INFO] [stderr] 278 | MembershipRecord { since: Timestamp::now(), status: status }
[INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `status`
[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: module has the same name as its containing module
[INFO] [stderr] --> src/irc/cap.rs:20:1
[INFO] [stderr] |
[INFO] [stderr] 20 | / mod cap {
[INFO] [stderr] 21 | | bitflags! {
[INFO] [stderr] 22 | | pub flags Caps: u16 {
[INFO] [stderr] 23 | | const MULTI_PREFIX = 0b_00000000_00000001,
[INFO] [stderr] ... |
[INFO] [stderr] 28 | | }
[INFO] [stderr] 29 | | }
[INFO] [stderr] | |_^
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception
[INFO] [stderr]
[INFO] [stderr] warning: digit groups should be smaller
[INFO] [stderr] --> src/irc/cap.rs:23:40
[INFO] [stderr] |
[INFO] [stderr] 23 | const MULTI_PREFIX = 0b_00000000_00000001,
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider: `0b0000_0000_0000_0001`
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::large_digit_groups)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups
[INFO] [stderr]
[INFO] [stderr] warning: digit groups should be smaller
[INFO] [stderr] --> src/irc/cap.rs:24:40
[INFO] [stderr] |
[INFO] [stderr] 24 | const ACCOUNT_NOTIFY = 0b_00000000_00000010,
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider: `0b0000_0000_0000_0010`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups
[INFO] [stderr]
[INFO] [stderr] warning: digit groups should be smaller
[INFO] [stderr] --> src/irc/cap.rs:25:40
[INFO] [stderr] |
[INFO] [stderr] 25 | const AWAY_NOTIFY = 0b_00000000_00000100,
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider: `0b0000_0000_0000_0100`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups
[INFO] [stderr]
[INFO] [stderr] warning: digit groups should be smaller
[INFO] [stderr] --> src/irc/cap.rs:26:40
[INFO] [stderr] |
[INFO] [stderr] 26 | const EXTENDED_JOIN = 0b_00000000_00001000,
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider: `0b0000_0000_0000_1000`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups
[INFO] [stderr]
[INFO] [stderr] warning: Constants have by default a `'static` lifetime
[INFO] [stderr] --> src/world/mod.rs:326:21
[INFO] [stderr] |
[INFO] [stderr] 326 | const TIME_FORMAT: &'static str = "%y%m%d%H%M%S";
[INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str`
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime
[INFO] [stderr]
[INFO] [stderr] warning: unused import: `futures::Async`
[INFO] [stderr] --> src/crdb/tests.rs:4:5
[INFO] [stderr] |
[INFO] [stderr] 4 | use futures::Async;
[INFO] [stderr] | ^^^^^^^^^^^^^^
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(unused_imports)] on by default
[INFO] [stderr]
[INFO] [stderr] warning: module has the same name as its containing module
[INFO] [stderr] --> src/irc/cap.rs:20:1
[INFO] [stderr] |
[INFO] [stderr] 20 | / mod cap {
[INFO] [stderr] 21 | | bitflags! {
[INFO] [stderr] 22 | | pub flags Caps: u16 {
[INFO] [stderr] 23 | | const MULTI_PREFIX = 0b_00000000_00000001,
[INFO] [stderr] ... |
[INFO] [stderr] 28 | | }
[INFO] [stderr] 29 | | }
[INFO] [stderr] | |_^
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception
[INFO] [stderr]
[INFO] [stderr] warning: digit groups should be smaller
[INFO] [stderr] --> src/irc/cap.rs:23:40
[INFO] [stderr] |
[INFO] [stderr] 23 | const MULTI_PREFIX = 0b_00000000_00000001,
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider: `0b0000_0000_0000_0001`
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::large_digit_groups)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups
[INFO] [stderr]
[INFO] [stderr] warning: digit groups should be smaller
[INFO] [stderr] --> src/irc/cap.rs:24:40
[INFO] [stderr] |
[INFO] [stderr] 24 | const ACCOUNT_NOTIFY = 0b_00000000_00000010,
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider: `0b0000_0000_0000_0010`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups
[INFO] [stderr]
[INFO] [stderr] warning: digit groups should be smaller
[INFO] [stderr] --> src/irc/cap.rs:25:40
[INFO] [stderr] |
[INFO] [stderr] 25 | const AWAY_NOTIFY = 0b_00000000_00000100,
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider: `0b0000_0000_0000_0100`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups
[INFO] [stderr]
[INFO] [stderr] warning: digit groups should be smaller
[INFO] [stderr] --> src/irc/cap.rs:26:40
[INFO] [stderr] |
[INFO] [stderr] 26 | const EXTENDED_JOIN = 0b_00000000_00001000,
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider: `0b0000_0000_0000_1000`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups
[INFO] [stderr]
[INFO] [stderr] warning: Constants have by default a `'static` lifetime
[INFO] [stderr] --> src/world/mod.rs:326:21
[INFO] [stderr] |
[INFO] [stderr] 326 | const TIME_FORMAT: &'static str = "%y%m%d%H%M%S";
[INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str`
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime
[INFO] [stderr]
[INFO] [stderr] warning: you should consider deriving a `Default` implementation for `common::bimap::Bimap`
[INFO] [stderr] --> src/common/bimap.rs:38:5
[INFO] [stderr] |
[INFO] [stderr] 38 | / pub fn new() -> Bimap {
[INFO] [stderr] 39 | | Bimap {
[INFO] [stderr] 40 | | tt: HashMap::new(),
[INFO] [stderr] 41 | | aa: HashMap::new(),
[INFO] [stderr] ... |
[INFO] [stderr] 51 | | }
[INFO] [stderr] 52 | | }
[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] 23 | #[derive(Default)]
[INFO] [stderr] |
[INFO] [stderr]
[INFO] [stderr] warning: redundant closure found
[INFO] [stderr] --> src/common/bimap.rs:64:58
[INFO] [stderr] |
[INFO] [stderr] 64 | let apair = self.apair.entry(*ai).or_insert_with(|| Vec::new());
[INFO] [stderr] | ^^^^^^^^^^^^^ help: remove closure as shown: `Vec::new`
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure
[INFO] [stderr]
[INFO] [stderr] warning: redundant closure found
[INFO] [stderr] --> src/common/bimap.rs:65:58
[INFO] [stderr] |
[INFO] [stderr] 65 | let bpair = self.bpair.entry(*bi).or_insert_with(|| Vec::new());
[INFO] [stderr] | ^^^^^^^^^^^^^ help: remove closure as shown: `Vec::new`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure
[INFO] [stderr]
[INFO] [stderr] warning: use of `unwrap_or` followed by a function call
[INFO] [stderr] --> src/common/bimap.rs:103:58
[INFO] [stderr] |
[INFO] [stderr] 103 | let iter = self.bpair.get(&bi).map(|v| v.iter()).unwrap_or(NOTHING.iter());
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| NOTHING.iter())`
[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 `unwrap_or` followed by a function call
[INFO] [stderr] --> src/common/bimap.rs:110:58
[INFO] [stderr] |
[INFO] [stderr] 110 | let iter = self.apair.get(&ai).map(|v| v.iter()).unwrap_or(NOTHING.iter());
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| NOTHING.iter())`
[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 should consider deriving a `Default` implementation for `common::observe::Observable`
[INFO] [stderr] --> src/common/observe.rs:123:5
[INFO] [stderr] |
[INFO] [stderr] 123 | / pub fn new() -> Observable {
[INFO] [stderr] 124 | | Observable { dispatch: Vec::new() }
[INFO] [stderr] 125 | | }
[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] 84 | #[derive(Default)]
[INFO] [stderr] |
[INFO] [stderr]
[INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure
[INFO] [stderr] --> src/common/observe.rs:172:17
[INFO] [stderr] |
[INFO] [stderr] 172 | inner.parked.as_ref().map(|t| t.unpark());
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stderr] | |
[INFO] [stderr] | help: try this: `if let Some(t) = inner.parked.as_ref() { t.unpark() }`
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn
[INFO] [stderr]
[INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure
[INFO] [stderr] --> src/common/observe.rs:186:17
[INFO] [stderr] |
[INFO] [stderr] 186 | dispatch.borrow_mut().parked.take().map(|t| t.unpark());
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stderr] | |
[INFO] [stderr] | help: try this: `if let Some(t) = dispatch.borrow_mut().parked.take() { t.unpark() }`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn
[INFO] [stderr]
[INFO] [stderr] warning: redundant pattern matching, consider using `is_none()`
[INFO] [stderr] --> src/common/observe.rs:197:16
[INFO] [stderr] |
[INFO] [stderr] 197 | if let None = self.signal.upgrade() {
[INFO] [stderr] | _________- ^^^^
[INFO] [stderr] 198 | | Ok(Async::Ready(()))
[INFO] [stderr] 199 | | } else {
[INFO] [stderr] 200 | | self.shared.borrow_mut().parked = Some(task::park());
[INFO] [stderr] 201 | | Ok(Async::NotReady)
[INFO] [stderr] 202 | | }
[INFO] [stderr] | |_________- help: try this: `if self.signal.upgrade().is_none()`
[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: called `map(f)` on an Option value where `f` is a unit closure
[INFO] [stderr] --> src/common/observe.rs:257:13
[INFO] [stderr] |
[INFO] [stderr] 257 | shared.borrow_mut().parked.take().map(|t| t.unpark());
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stderr] | |
[INFO] [stderr] | help: try this: `if let Some(t) = shared.borrow_mut().parked.take() { t.unpark() }`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn
[INFO] [stderr]
[INFO] [stderr] warning: you should consider deriving a `Default` implementation for `common::table::Table`
[INFO] [stderr] --> src/common/table.rs:20:5
[INFO] [stderr] |
[INFO] [stderr] 20 | / pub fn new() -> Table {
[INFO] [stderr] 21 | | Table { rows: HashMap::new() }
[INFO] [stderr] 22 | | }
[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] 14 | #[derive(Default)]
[INFO] [stderr] |
[INFO] [stderr]
[INFO] [stderr] warning: redundant closure found
[INFO] [stderr] --> src/common/table.rs:39:44
[INFO] [stderr] |
[INFO] [stderr] 39 | self.rows.entry(k1).or_insert_with(|| HashMap::new()).insert(k2, v);
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `HashMap::new`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure
[INFO] [stderr]
[INFO] [stderr] warning: redundant closure found
[INFO] [stderr] --> src/common/table.rs:44:44
[INFO] [stderr] |
[INFO] [stderr] 44 | self.rows.entry(k1).or_insert_with(|| HashMap::new()).entry(k2)
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `HashMap::new`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure
[INFO] [stderr]
[INFO] [stderr] warning: you should consider adding a `Default` implementation for `crdb::CRDB`
[INFO] [stderr] --> src/crdb/mod.rs:114:5
[INFO] [stderr] |
[INFO] [stderr] 114 | / pub fn new() -> CRDB {
[INFO] [stderr] 115 | | CRDB {
[INFO] [stderr] 116 | | updates: Observable::new(),
[INFO] [stderr] 117 | | tables: HashMap::new(),
[INFO] [stderr] 118 | | }
[INFO] [stderr] 119 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default
[INFO] [stderr] help: try this
[INFO] [stderr] |
[INFO] [stderr] 112 | impl Default for crdb::CRDB {
[INFO] [stderr] 113 | fn default() -> Self {
[INFO] [stderr] 114 | Self::new()
[INFO] [stderr] 115 | }
[INFO] [stderr] 116 | }
[INFO] [stderr] |
[INFO] [stderr]
[INFO] [stderr] warning: you should consider deriving a `Default` implementation for `crdb::RawTransaction`
[INFO] [stderr] --> src/crdb/mod.rs:214:5
[INFO] [stderr] |
[INFO] [stderr] 214 | / pub fn new() -> RawTransaction {
[INFO] [stderr] 215 | | RawTransaction {
[INFO] [stderr] 216 | | txid: random(),
[INFO] [stderr] 217 | | items: HashMap::new()
[INFO] [stderr] 218 | | }
[INFO] [stderr] 219 | | }
[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] 207 | #[derive(Default)]
[INFO] [stderr] |
[INFO] [stderr]
[INFO] [stderr] warning: redundant closure found
[INFO] [stderr] --> src/crdb/mod.rs:231:38
[INFO] [stderr] |
[INFO] [stderr] 231 | .entry(k).or_insert_with(|| Vec::new())
[INFO] [stderr] | ^^^^^^^^^^^^^ help: remove closure as shown: `Vec::new`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure
[INFO] [stderr]
[INFO] [stderr] warning: redundant closure found
[INFO] [stderr] --> src/crdb/mod.rs:230:42
[INFO] [stderr] |
[INFO] [stderr] 230 | .entry(table).or_insert_with(|| HashMap::new())
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `HashMap::new`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure
[INFO] [stderr]
[INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration)
[INFO] [stderr] --> src/crdb/mod.rs:286:5
[INFO] [stderr] |
[INFO] [stderr] 286 | / pub fn open<'t>(&'t mut self) -> Transaction<'t, S> {
[INFO] [stderr] 287 | | Transaction {
[INFO] [stderr] 288 | | txid: random(),
[INFO] [stderr] 289 | | inner: self.inner.borrow_mut(),
[INFO] [stderr] 290 | | next: HashMap::new(),
[INFO] [stderr] 291 | | }
[INFO] [stderr] 292 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes
[INFO] [stderr]
[INFO] [stderr] warning: length comparison to zero
[INFO] [stderr] --> src/crdb/mod.rs:322:17
[INFO] [stderr] |
[INFO] [stderr] 322 | assert!(rows.len() > 0);
[INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!rows.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: length comparison to zero
[INFO] [stderr] --> src/crdb/mod.rs:373:16
[INFO] [stderr] |
[INFO] [stderr] 373 | if rows.len() > 0 {
[INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!rows.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/crdb/mod.rs:524:15
[INFO] [stderr] |
[INFO] [stderr] 524 | while inner.len() > 0 {
[INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!inner.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: manual implementation of an assign operation
[INFO] [stderr] --> src/irc/cap.rs:55:9
[INFO] [stderr] |
[INFO] [stderr] 55 | self.caps = self.caps | other.caps;
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.caps |= other.caps`
[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: length comparison to zero
[INFO] [stderr] --> src/irc/codec.rs:30:16
[INFO] [stderr] |
[INFO] [stderr] 30 | if line.len() != 0 {
[INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!line.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: use of `unwrap_or` followed by a function call
[INFO] [stderr] --> src/irc/message.rs:49:14
[INFO] [stderr] |
[INFO] [stderr] 49 | .unwrap_or(self.b.len());
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.b.len())`
[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: use of `unwrap_or` followed by a function call
[INFO] [stderr] --> src/irc/message.rs:59:14
[INFO] [stderr] |
[INFO] [stderr] 59 | .unwrap_or(self.b.len());
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.b.len())`
[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: length comparison to zero
[INFO] [stderr] --> src/irc/pending.rs:30:38
[INFO] [stderr] |
[INFO] [stderr] 30 | if b"NICK" == &m.verb[..] && m.args.len() > 0 {
[INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!m.args.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 closure found
[INFO] [stderr] --> src/irc/pool.rs:34:37
[INFO] [stderr] |
[INFO] [stderr] 34 | .or_insert_with(|| HashSet::new())
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `HashSet::new`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure
[INFO] [stderr]
[INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do.
[INFO] [stderr] --> src/irc/pool.rs:53:38
[INFO] [stderr] |
[INFO] [stderr] 53 | fn send_to_chan(&mut self, chan: &String, omit: Option<&String>, line: String) {
[INFO] [stderr] | ^^^^^^^ help: change this to: `&str`
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg
[INFO] [stderr]
[INFO] [stderr] warning: you should consider adding a `Default` implementation for `irc::pool::Pool`
[INFO] [stderr] --> src/irc/pool.rs:78:5
[INFO] [stderr] |
[INFO] [stderr] 78 | / pub fn new() -> Pool {
[INFO] [stderr] 79 | | Pool { inner: Rc::new(RefCell::new(PoolInner::new())) }
[INFO] [stderr] 80 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default
[INFO] [stderr] help: try this
[INFO] [stderr] |
[INFO] [stderr] 77 | impl Default for irc::pool::Pool {
[INFO] [stderr] 78 | fn default() -> Self {
[INFO] [stderr] 79 | Self::new()
[INFO] [stderr] 80 | }
[INFO] [stderr] 81 | }
[INFO] [stderr] |
[INFO] [stderr]
[INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure
[INFO] [stderr] --> src/irc/send.rs:66:13
[INFO] [stderr] |
[INFO] [stderr] 66 | inner.blocked_send.take().map(|t| t.unpark());
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stderr] | |
[INFO] [stderr] | help: try this: `if let Some(t) = inner.blocked_send.take() { t.unpark() }`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn
[INFO] [stderr]
[INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure
[INFO] [stderr] --> src/irc/send.rs:80:13
[INFO] [stderr] |
[INFO] [stderr] 80 | inner.blocked_send.take().map(|t| t.unpark());
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stderr] | |
[INFO] [stderr] | help: try this: `if let Some(t) = inner.blocked_send.take() { t.unpark() }`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn
[INFO] [stderr]
[INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure
[INFO] [stderr] --> src/irc/send.rs:92:13
[INFO] [stderr] |
[INFO] [stderr] 92 | inner.blocked_send.take().map(|t| t.unpark());
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stderr] | |
[INFO] [stderr] | help: try this: `if let Some(t) = inner.blocked_send.take() { t.unpark() }`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn
[INFO] [stderr]
[INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead
[INFO] [stderr] --> src/world/mod.rs:153:17
[INFO] [stderr] |
[INFO] [stderr] 153 | let ref mut users = inner.borrow_mut().users;
[INFO] [stderr] | ----^^^^^^^^^^^^^---------------------------- help: try: `let users = &mut inner.borrow_mut().users;`
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg
[INFO] [stderr]
[INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead
[INFO] [stderr] --> src/world/mod.rs:171:17
[INFO] [stderr] |
[INFO] [stderr] 171 | let ref mut chans = inner.borrow_mut().chans;
[INFO] [stderr] | ----^^^^^^^^^^^^^---------------------------- help: try: `let chans = &mut inner.borrow_mut().chans;`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg
[INFO] [stderr]
[INFO] [stderr] warning: redundant closure found
[INFO] [stderr] --> src/world/mod.rs:208:45
[INFO] [stderr] |
[INFO] [stderr] 208 | .or_insert_with(|| HashSet::new())
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `HashSet::new`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure
[INFO] [stderr]
[INFO] [stderr] warning: redundant closure found
[INFO] [stderr] --> src/world/mod.rs:212:45
[INFO] [stderr] |
[INFO] [stderr] 212 | .or_insert_with(|| HashSet::new())
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `HashSet::new`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure
[INFO] [stderr]
[INFO] [stderr] warning: you should consider deriving a `Default` implementation for `common::bimap::Bimap`
[INFO] [stderr] --> src/common/bimap.rs:38:5
[INFO] [stderr] |
[INFO] [stderr] 38 | / pub fn new() -> Bimap {
[INFO] [stderr] 39 | | Bimap {
[INFO] [stderr] 40 | | tt: HashMap::new(),
[INFO] [stderr] 41 | | aa: HashMap::new(),
[INFO] [stderr] ... |
[INFO] [stderr] 51 | | }
[INFO] [stderr] 52 | | }
[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] 23 | #[derive(Default)]
[INFO] [stderr] |
[INFO] [stderr]
[INFO] [stderr] warning: redundant closure found
[INFO] [stderr] --> src/common/bimap.rs:64:58
[INFO] [stderr] |
[INFO] [stderr] 64 | let apair = self.apair.entry(*ai).or_insert_with(|| Vec::new());
[INFO] [stderr] | ^^^^^^^^^^^^^ help: remove closure as shown: `Vec::new`
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure
[INFO] [stderr]
[INFO] [stderr] warning: redundant closure found
[INFO] [stderr] --> src/common/bimap.rs:65:58
[INFO] [stderr] |
[INFO] [stderr] 65 | let bpair = self.bpair.entry(*bi).or_insert_with(|| Vec::new());
[INFO] [stderr] | ^^^^^^^^^^^^^ help: remove closure as shown: `Vec::new`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure
[INFO] [stderr]
[INFO] [stderr] warning: use of `unwrap_or` followed by a function call
[INFO] [stderr] --> src/common/bimap.rs:103:58
[INFO] [stderr] |
[INFO] [stderr] 103 | let iter = self.bpair.get(&bi).map(|v| v.iter()).unwrap_or(NOTHING.iter());
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| NOTHING.iter())`
[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 `unwrap_or` followed by a function call
[INFO] [stderr] --> src/common/bimap.rs:110:58
[INFO] [stderr] |
[INFO] [stderr] 110 | let iter = self.apair.get(&ai).map(|v| v.iter()).unwrap_or(NOTHING.iter());
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| NOTHING.iter())`
[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 should consider deriving a `Default` implementation for `common::observe::Observable`
[INFO] [stderr] --> src/common/observe.rs:123:5
[INFO] [stderr] |
[INFO] [stderr] 123 | / pub fn new() -> Observable {
[INFO] [stderr] 124 | | Observable { dispatch: Vec::new() }
[INFO] [stderr] 125 | | }
[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] 84 | #[derive(Default)]
[INFO] [stderr] |
[INFO] [stderr]
[INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure
[INFO] [stderr] --> src/common/observe.rs:172:17
[INFO] [stderr] |
[INFO] [stderr] 172 | inner.parked.as_ref().map(|t| t.unpark());
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stderr] | |
[INFO] [stderr] | help: try this: `if let Some(t) = inner.parked.as_ref() { t.unpark() }`
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn
[INFO] [stderr]
[INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure
[INFO] [stderr] --> src/common/observe.rs:186:17
[INFO] [stderr] |
[INFO] [stderr] 186 | dispatch.borrow_mut().parked.take().map(|t| t.unpark());
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stderr] | |
[INFO] [stderr] | help: try this: `if let Some(t) = dispatch.borrow_mut().parked.take() { t.unpark() }`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn
[INFO] [stderr]
[INFO] [stderr] warning: redundant pattern matching, consider using `is_none()`
[INFO] [stderr] --> src/common/observe.rs:197:16
[INFO] [stderr] |
[INFO] [stderr] 197 | if let None = self.signal.upgrade() {
[INFO] [stderr] | _________- ^^^^
[INFO] [stderr] 198 | | Ok(Async::Ready(()))
[INFO] [stderr] 199 | | } else {
[INFO] [stderr] 200 | | self.shared.borrow_mut().parked = Some(task::park());
[INFO] [stderr] 201 | | Ok(Async::NotReady)
[INFO] [stderr] 202 | | }
[INFO] [stderr] | |_________- help: try this: `if self.signal.upgrade().is_none()`
[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: called `map(f)` on an Option value where `f` is a unit closure
[INFO] [stderr] --> src/common/observe.rs:257:13
[INFO] [stderr] |
[INFO] [stderr] 257 | shared.borrow_mut().parked.take().map(|t| t.unpark());
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stderr] | |
[INFO] [stderr] | help: try this: `if let Some(t) = shared.borrow_mut().parked.take() { t.unpark() }`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn
[INFO] [stderr]
[INFO] [stderr] warning: you should consider deriving a `Default` implementation for `common::table::Table`
[INFO] [stderr] --> src/common/table.rs:20:5
[INFO] [stderr] |
[INFO] [stderr] 20 | / pub fn new() -> Table {
[INFO] [stderr] 21 | | Table { rows: HashMap::new() }
[INFO] [stderr] 22 | | }
[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] 14 | #[derive(Default)]
[INFO] [stderr] |
[INFO] [stderr]
[INFO] [stderr] warning: redundant closure found
[INFO] [stderr] --> src/common/table.rs:39:44
[INFO] [stderr] |
[INFO] [stderr] 39 | self.rows.entry(k1).or_insert_with(|| HashMap::new()).insert(k2, v);
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `HashMap::new`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure
[INFO] [stderr]
[INFO] [stderr] warning: redundant closure found
[INFO] [stderr] --> src/common/table.rs:44:44
[INFO] [stderr] |
[INFO] [stderr] 44 | self.rows.entry(k1).or_insert_with(|| HashMap::new()).entry(k2)
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `HashMap::new`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure
[INFO] [stderr]
[INFO] [stderr] warning: you should consider adding a `Default` implementation for `crdb::CRDB`
[INFO] [stderr] --> src/crdb/mod.rs:114:5
[INFO] [stderr] |
[INFO] [stderr] 114 | / pub fn new() -> CRDB {
[INFO] [stderr] 115 | | CRDB {
[INFO] [stderr] 116 | | updates: Observable::new(),
[INFO] [stderr] 117 | | tables: HashMap::new(),
[INFO] [stderr] 118 | | }
[INFO] [stderr] 119 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default
[INFO] [stderr] help: try this
[INFO] [stderr] |
[INFO] [stderr] 112 | impl Default for crdb::CRDB {
[INFO] [stderr] 113 | fn default() -> Self {
[INFO] [stderr] 114 | Self::new()
[INFO] [stderr] 115 | }
[INFO] [stderr] 116 | }
[INFO] [stderr] |
[INFO] [stderr]
[INFO] [stderr] warning: you should consider deriving a `Default` implementation for `crdb::RawTransaction`
[INFO] [stderr] --> src/crdb/mod.rs:214:5
[INFO] [stderr] |
[INFO] [stderr] 214 | / pub fn new() -> RawTransaction {
[INFO] [stderr] 215 | | RawTransaction {
[INFO] [stderr] 216 | | txid: random(),
[INFO] [stderr] 217 | | items: HashMap::new()
[INFO] [stderr] 218 | | }
[INFO] [stderr] 219 | | }
[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] 207 | #[derive(Default)]
[INFO] [stderr] |
[INFO] [stderr]
[INFO] [stderr] warning: redundant closure found
[INFO] [stderr] --> src/crdb/mod.rs:231:38
[INFO] [stderr] |
[INFO] [stderr] 231 | .entry(k).or_insert_with(|| Vec::new())
[INFO] [stderr] | ^^^^^^^^^^^^^ help: remove closure as shown: `Vec::new`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure
[INFO] [stderr]
[INFO] [stderr] warning: redundant closure found
[INFO] [stderr] --> src/crdb/mod.rs:230:42
[INFO] [stderr] |
[INFO] [stderr] 230 | .entry(table).or_insert_with(|| HashMap::new())
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `HashMap::new`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure
[INFO] [stderr]
[INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration)
[INFO] [stderr] --> src/crdb/mod.rs:286:5
[INFO] [stderr] |
[INFO] [stderr] 286 | / pub fn open<'t>(&'t mut self) -> Transaction<'t, S> {
[INFO] [stderr] 287 | | Transaction {
[INFO] [stderr] 288 | | txid: random(),
[INFO] [stderr] 289 | | inner: self.inner.borrow_mut(),
[INFO] [stderr] 290 | | next: HashMap::new(),
[INFO] [stderr] 291 | | }
[INFO] [stderr] 292 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes
[INFO] [stderr]
[INFO] [stderr] warning: length comparison to zero
[INFO] [stderr] --> src/crdb/mod.rs:322:17
[INFO] [stderr] |
[INFO] [stderr] 322 | assert!(rows.len() > 0);
[INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!rows.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: length comparison to zero
[INFO] [stderr] --> src/crdb/mod.rs:373:16
[INFO] [stderr] |
[INFO] [stderr] 373 | if rows.len() > 0 {
[INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!rows.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/crdb/mod.rs:524:15
[INFO] [stderr] |
[INFO] [stderr] 524 | while inner.len() > 0 {
[INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!inner.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: manual implementation of an assign operation
[INFO] [stderr] --> src/irc/cap.rs:55:9
[INFO] [stderr] |
[INFO] [stderr] 55 | self.caps = self.caps | other.caps;
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.caps |= other.caps`
[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: length comparison to zero
[INFO] [stderr] --> src/irc/codec.rs:30:16
[INFO] [stderr] |
[INFO] [stderr] 30 | if line.len() != 0 {
[INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!line.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: use of `unwrap_or` followed by a function call
[INFO] [stderr] --> src/irc/message.rs:49:14
[INFO] [stderr] |
[INFO] [stderr] 49 | .unwrap_or(self.b.len());
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.b.len())`
[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: use of `unwrap_or` followed by a function call
[INFO] [stderr] --> src/irc/message.rs:59:14
[INFO] [stderr] |
[INFO] [stderr] 59 | .unwrap_or(self.b.len());
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.b.len())`
[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: redundant closure found
[INFO] [stderr] --> src/irc/message.rs:129:36
[INFO] [stderr] |
[INFO] [stderr] 129 | args: args.into_iter().map(|v| Bytes::from(v)).collect()
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Bytes::from`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure
[INFO] [stderr]
[INFO] [stderr] warning: length comparison to zero
[INFO] [stderr] --> src/irc/pending.rs:30:38
[INFO] [stderr] |
[INFO] [stderr] 30 | if b"NICK" == &m.verb[..] && m.args.len() > 0 {
[INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!m.args.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 closure found
[INFO] [stderr] --> src/irc/pool.rs:34:37
[INFO] [stderr] |
[INFO] [stderr] 34 | .or_insert_with(|| HashSet::new())
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `HashSet::new`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure
[INFO] [stderr]
[INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do.
[INFO] [stderr] --> src/irc/pool.rs:53:38
[INFO] [stderr] |
[INFO] [stderr] 53 | fn send_to_chan(&mut self, chan: &String, omit: Option<&String>, line: String) {
[INFO] [stderr] | ^^^^^^^ help: change this to: `&str`
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg
[INFO] [stderr]
[INFO] [stderr] warning: you should consider adding a `Default` implementation for `irc::pool::Pool`
[INFO] [stderr] --> src/irc/pool.rs:78:5
[INFO] [stderr] |
[INFO] [stderr] 78 | / pub fn new() -> Pool {
[INFO] [stderr] 79 | | Pool { inner: Rc::new(RefCell::new(PoolInner::new())) }
[INFO] [stderr] 80 | | }
[INFO] [stderr] | |_____^
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default
[INFO] [stderr] help: try this
[INFO] [stderr] |
[INFO] [stderr] 77 | impl Default for irc::pool::Pool {
[INFO] [stderr] 78 | fn default() -> Self {
[INFO] [stderr] 79 | Self::new()
[INFO] [stderr] 80 | }
[INFO] [stderr] 81 | }
[INFO] [stderr] |
[INFO] [stderr]
[INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure
[INFO] [stderr] --> src/irc/send.rs:66:13
[INFO] [stderr] |
[INFO] [stderr] 66 | inner.blocked_send.take().map(|t| t.unpark());
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stderr] | |
[INFO] [stderr] | help: try this: `if let Some(t) = inner.blocked_send.take() { t.unpark() }`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn
[INFO] [stderr]
[INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure
[INFO] [stderr] --> src/irc/send.rs:80:13
[INFO] [stderr] |
[INFO] [stderr] 80 | inner.blocked_send.take().map(|t| t.unpark());
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stderr] | |
[INFO] [stderr] | help: try this: `if let Some(t) = inner.blocked_send.take() { t.unpark() }`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn
[INFO] [stderr]
[INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure
[INFO] [stderr] --> src/irc/send.rs:92:13
[INFO] [stderr] |
[INFO] [stderr] 92 | inner.blocked_send.take().map(|t| t.unpark());
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stderr] | |
[INFO] [stderr] | help: try this: `if let Some(t) = inner.blocked_send.take() { t.unpark() }`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn
[INFO] [stderr]
[INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead
[INFO] [stderr] --> src/world/mod.rs:153:17
[INFO] [stderr] |
[INFO] [stderr] 153 | let ref mut users = inner.borrow_mut().users;
[INFO] [stderr] | ----^^^^^^^^^^^^^---------------------------- help: try: `let users = &mut inner.borrow_mut().users;`
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg
[INFO] [stderr]
[INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead
[INFO] [stderr] --> src/world/mod.rs:171:17
[INFO] [stderr] |
[INFO] [stderr] 171 | let ref mut chans = inner.borrow_mut().chans;
[INFO] [stderr] | ----^^^^^^^^^^^^^---------------------------- help: try: `let chans = &mut inner.borrow_mut().chans;`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg
[INFO] [stderr]
[INFO] [stderr] warning: redundant closure found
[INFO] [stderr] --> src/world/mod.rs:208:45
[INFO] [stderr] |
[INFO] [stderr] 208 | .or_insert_with(|| HashSet::new())
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `HashSet::new`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure
[INFO] [stderr]
[INFO] [stderr] warning: redundant closure found
[INFO] [stderr] --> src/world/mod.rs:212:45
[INFO] [stderr] |
[INFO] [stderr] 212 | .or_insert_with(|| HashSet::new())
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `HashSet::new`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure
[INFO] [stderr]
[INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 13.43s
[INFO] running `"docker" "inspect" "1e3d513f52a9a80e7b939e87adf24720e0f8621148cfb7ea6d1145f169c5451f"`
[INFO] running `"docker" "rm" "-f" "1e3d513f52a9a80e7b939e87adf24720e0f8621148cfb7ea6d1145f169c5451f"`
[INFO] [stdout] 1e3d513f52a9a80e7b939e87adf24720e0f8621148cfb7ea6d1145f169c5451f