[INFO] updating cached repository iwillspeak/docket [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/iwillspeak/docket [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/iwillspeak/docket" "work/ex/clippy-test-run/sources/stable/gh/iwillspeak/docket"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/iwillspeak/docket'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/iwillspeak/docket" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/iwillspeak/docket"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/iwillspeak/docket'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] fcf381f43faa49f50b5756f9710f00482eb95aef [INFO] sha for GitHub repo iwillspeak/docket: fcf381f43faa49f50b5756f9710f00482eb95aef [INFO] validating manifest of iwillspeak/docket 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 iwillspeak/docket 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 iwillspeak/docket [INFO] finished frobbing iwillspeak/docket [INFO] frobbed toml for iwillspeak/docket written to work/ex/clippy-test-run/sources/stable/gh/iwillspeak/docket/Cargo.toml [INFO] started frobbing iwillspeak/docket [INFO] finished frobbing iwillspeak/docket [INFO] frobbed toml for iwillspeak/docket written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/iwillspeak/docket/Cargo.toml [INFO] crate iwillspeak/docket 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 iwillspeak/docket 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/iwillspeak/docket:/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] 46b960715a4da24ca5488f8f693130816304e098d97cf47676825afce56c9840 [INFO] running `"docker" "start" "-a" "46b960715a4da24ca5488f8f693130816304e098d97cf47676825afce56c9840"` [INFO] [stderr] Compiling pulldown-cmark v0.2.0 [INFO] [stderr] Compiling syn v0.15.18 [INFO] [stderr] Checking env_logger v0.5.13 [INFO] [stderr] Checking tokio-reactor v0.1.6 [INFO] [stderr] Checking inotify v0.6.1 [INFO] [stderr] Checking notify v4.0.6 [INFO] [stderr] Compiling synstructure v0.10.1 [INFO] [stderr] Compiling serde_derive v1.0.80 [INFO] [stderr] Compiling failure_derive v0.1.3 [INFO] [stderr] Checking failure v0.1.3 [INFO] [stderr] Checking docopt v1.0.2 [INFO] [stderr] Checking docket v0.2.2 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/asset.rs:51:13 [INFO] [stderr] | [INFO] [stderr] 51 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/asset.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 52 | contents: contents, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `contents` [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/docket.rs:118:13 [INFO] [stderr] | [INFO] [stderr] 118 | index: index, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `index` [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/docket.rs:119:13 [INFO] [stderr] | [INFO] [stderr] 119 | footer: footer, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `footer` [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/docket.rs:120:13 [INFO] [stderr] | [INFO] [stderr] 120 | pages: pages, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `pages` [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/docket.rs:121:13 [INFO] [stderr] | [INFO] [stderr] 121 | assets: assets, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `assets` [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/page.rs:126:13 [INFO] [stderr] | [INFO] [stderr] 126 | path: path, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `path` [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/page.rs:127:13 [INFO] [stderr] | [INFO] [stderr] 127 | title: title, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `title` [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/page.rs:128:13 [INFO] [stderr] | [INFO] [stderr] 128 | toc: toc, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `toc` [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/toc.rs:133:13 [INFO] [stderr] | [INFO] [stderr] 133 | level: level, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `level` [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/toc.rs:134:13 [INFO] [stderr] | [INFO] [stderr] 134 | contents: contents, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `contents` [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/toc.rs:135:13 [INFO] [stderr] | [INFO] [stderr] 135 | slug: slug, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `slug` [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/toc.rs:148:13 [INFO] [stderr] | [INFO] [stderr] 148 | level: level, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `level` [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/toc.rs:150:13 [INFO] [stderr] | [INFO] [stderr] 150 | slug: slug, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `slug` [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/index.rs:71:13 [INFO] [stderr] | [INFO] [stderr] 71 | title: title, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `title` [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/index.rs:73:13 [INFO] [stderr] | [INFO] [stderr] 73 | pages: pages, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `pages` [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/renderer.rs:74:13 [INFO] [stderr] | [INFO] [stderr] 74 | slug: slug, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `slug` [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/asset.rs:51:13 [INFO] [stderr] | [INFO] [stderr] 51 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/asset.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 52 | contents: contents, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `contents` [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/docket.rs:118:13 [INFO] [stderr] | [INFO] [stderr] 118 | index: index, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `index` [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/docket.rs:119:13 [INFO] [stderr] | [INFO] [stderr] 119 | footer: footer, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `footer` [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/docket.rs:120:13 [INFO] [stderr] | [INFO] [stderr] 120 | pages: pages, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `pages` [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/docket.rs:121:13 [INFO] [stderr] | [INFO] [stderr] 121 | assets: assets, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `assets` [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/page.rs:126:13 [INFO] [stderr] | [INFO] [stderr] 126 | path: path, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `path` [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/page.rs:127:13 [INFO] [stderr] | [INFO] [stderr] 127 | title: title, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `title` [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/page.rs:128:13 [INFO] [stderr] | [INFO] [stderr] 128 | toc: toc, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `toc` [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/toc.rs:133:13 [INFO] [stderr] | [INFO] [stderr] 133 | level: level, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `level` [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/toc.rs:134:13 [INFO] [stderr] | [INFO] [stderr] 134 | contents: contents, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `contents` [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/toc.rs:135:13 [INFO] [stderr] | [INFO] [stderr] 135 | slug: slug, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `slug` [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/toc.rs:148:13 [INFO] [stderr] | [INFO] [stderr] 148 | level: level, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `level` [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/toc.rs:150:13 [INFO] [stderr] | [INFO] [stderr] 150 | slug: slug, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `slug` [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/index.rs:71:13 [INFO] [stderr] | [INFO] [stderr] 71 | title: title, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `title` [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/index.rs:73:13 [INFO] [stderr] | [INFO] [stderr] 73 | pages: pages, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `pages` [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/renderer.rs:74:13 [INFO] [stderr] | [INFO] [stderr] 74 | slug: slug, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `slug` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/main.rs:37:15 [INFO] [stderr] | [INFO] [stderr] 37 | const USAGE: &'static str = " [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/main.rs:37:15 [INFO] [stderr] | [INFO] [stderr] 37 | const USAGE: &'static str = " [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 don't need to add `&` to all patterns [INFO] [stderr] --> src/page.rs:35:9 [INFO] [stderr] | [INFO] [stderr] 35 | / match e { [INFO] [stderr] 36 | | &TocElement::Heading(ref h, ref children) => { [INFO] [stderr] 37 | | write!( [INFO] [stderr] 38 | | w, [INFO] [stderr] ... | [INFO] [stderr] 49 | | } [INFO] [stderr] 50 | | } [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] 35 | match *e { [INFO] [stderr] 36 | TocElement::Heading(ref h, ref children) => { [INFO] [stderr] 37 | write!( [INFO] [stderr] 38 | w, [INFO] [stderr] 39 | "{2}", [INFO] [stderr] 40 | h.level, h.slug, h.contents [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/page.rs:64:9 [INFO] [stderr] | [INFO] [stderr] 64 | / if let &TocElement::Heading(ref h, ref children) = e { [INFO] [stderr] 65 | | if h.level > depth { [INFO] [stderr] 66 | | continue; [INFO] [stderr] 67 | | } [INFO] [stderr] ... | [INFO] [stderr] 73 | | rendered.push_str("") [INFO] [stderr] 74 | | } [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] 64 | if let TocElement::Heading(ref h, ref children) = *e { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ [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/page.rs:86:5 [INFO] [stderr] | [INFO] [stderr] 86 | / fn get_title<'t>(&'t self) -> Cow<'t, str> { [INFO] [stderr] 87 | | Cow::Borrowed(&self.title) [INFO] [stderr] 88 | | } [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/toc.rs:56:24 [INFO] [stderr] | [INFO] [stderr] 56 | if current.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!current.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/toc.rs:86:28 [INFO] [stderr] | [INFO] [stderr] 86 | if current.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!current.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/toc.rs:101:8 [INFO] [stderr] | [INFO] [stderr] 101 | if current.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!current.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/toc.rs:117:36 [INFO] [stderr] | [INFO] [stderr] 117 | html::push_html(&mut rendered, events.into_iter()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `events` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/toc.rs:127:60 [INFO] [stderr] | [INFO] [stderr] 127 | let contents = render_to_string(events.inspect(|e| match e { [INFO] [stderr] | ____________________________________________________________^ [INFO] [stderr] 128 | | &Event::Text(ref t) => slug.push_str(&t), [INFO] [stderr] 129 | | _ => (), [INFO] [stderr] 130 | | })); [INFO] [stderr] | |_________^ help: try this: `if let &Event::Text(ref t) = e { slug.push_str(&t) }` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/toc.rs:127:60 [INFO] [stderr] | [INFO] [stderr] 127 | let contents = render_to_string(events.inspect(|e| match e { [INFO] [stderr] | ____________________________________________________________^ [INFO] [stderr] 128 | | &Event::Text(ref t) => slug.push_str(&t), [INFO] [stderr] 129 | | _ => (), [INFO] [stderr] 130 | | })); [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] 127 | let contents = render_to_string(events.inspect(|e| match *e { [INFO] [stderr] 128 | Event::Text(ref t) => slug.push_str(&t), [INFO] [stderr] | [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/index.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | / fn get_title<'t>(&'t self) -> Cow<'t, str> { [INFO] [stderr] 26 | | (&self.title[..]).into() [INFO] [stderr] 27 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [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/renderable.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | fn get_title<'a>(&'a self) -> Cow<'a, str>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/main.rs:74:10 [INFO] [stderr] | [INFO] [stderr] 74 | .unwrap_or(default.to_owned().into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| default.to_owned().into())` [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: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/main.rs:78:5 [INFO] [stderr] | [INFO] [stderr] 78 | let _ = env_logger::init(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/page.rs:35:9 [INFO] [stderr] | [INFO] [stderr] 35 | / match e { [INFO] [stderr] 36 | | &TocElement::Heading(ref h, ref children) => { [INFO] [stderr] 37 | | write!( [INFO] [stderr] 38 | | w, [INFO] [stderr] ... | [INFO] [stderr] 49 | | } [INFO] [stderr] 50 | | } [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] 35 | match *e { [INFO] [stderr] 36 | TocElement::Heading(ref h, ref children) => { [INFO] [stderr] 37 | write!( [INFO] [stderr] 38 | w, [INFO] [stderr] 39 | "{2}", [INFO] [stderr] 40 | h.level, h.slug, h.contents [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/page.rs:64:9 [INFO] [stderr] | [INFO] [stderr] 64 | / if let &TocElement::Heading(ref h, ref children) = e { [INFO] [stderr] 65 | | if h.level > depth { [INFO] [stderr] 66 | | continue; [INFO] [stderr] 67 | | } [INFO] [stderr] ... | [INFO] [stderr] 73 | | rendered.push_str("") [INFO] [stderr] 74 | | } [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] 64 | if let TocElement::Heading(ref h, ref children) = *e { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ [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/page.rs:86:5 [INFO] [stderr] | [INFO] [stderr] 86 | / fn get_title<'t>(&'t self) -> Cow<'t, str> { [INFO] [stderr] 87 | | Cow::Borrowed(&self.title) [INFO] [stderr] 88 | | } [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/toc.rs:56:24 [INFO] [stderr] | [INFO] [stderr] 56 | if current.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!current.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/toc.rs:86:28 [INFO] [stderr] | [INFO] [stderr] 86 | if current.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!current.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/toc.rs:101:8 [INFO] [stderr] | [INFO] [stderr] 101 | if current.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!current.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/toc.rs:117:36 [INFO] [stderr] | [INFO] [stderr] 117 | html::push_html(&mut rendered, events.into_iter()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `events` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/toc.rs:127:60 [INFO] [stderr] | [INFO] [stderr] 127 | let contents = render_to_string(events.inspect(|e| match e { [INFO] [stderr] | ____________________________________________________________^ [INFO] [stderr] 128 | | &Event::Text(ref t) => slug.push_str(&t), [INFO] [stderr] 129 | | _ => (), [INFO] [stderr] 130 | | })); [INFO] [stderr] | |_________^ help: try this: `if let &Event::Text(ref t) = e { slug.push_str(&t) }` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/toc.rs:127:60 [INFO] [stderr] | [INFO] [stderr] 127 | let contents = render_to_string(events.inspect(|e| match e { [INFO] [stderr] | ____________________________________________________________^ [INFO] [stderr] 128 | | &Event::Text(ref t) => slug.push_str(&t), [INFO] [stderr] 129 | | _ => (), [INFO] [stderr] 130 | | })); [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] 127 | let contents = render_to_string(events.inspect(|e| match *e { [INFO] [stderr] 128 | Event::Text(ref t) => slug.push_str(&t), [INFO] [stderr] | [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/index.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | / fn get_title<'t>(&'t self) -> Cow<'t, str> { [INFO] [stderr] 26 | | (&self.title[..]).into() [INFO] [stderr] 27 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [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/renderable.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | fn get_title<'a>(&'a self) -> Cow<'a, str>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/main.rs:74:10 [INFO] [stderr] | [INFO] [stderr] 74 | .unwrap_or(default.to_owned().into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| default.to_owned().into())` [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: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/main.rs:78:5 [INFO] [stderr] | [INFO] [stderr] 78 | let _ = env_logger::init(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 32.25s [INFO] running `"docker" "inspect" "46b960715a4da24ca5488f8f693130816304e098d97cf47676825afce56c9840"` [INFO] running `"docker" "rm" "-f" "46b960715a4da24ca5488f8f693130816304e098d97cf47676825afce56c9840"` [INFO] [stdout] 46b960715a4da24ca5488f8f693130816304e098d97cf47676825afce56c9840