[INFO] fetching crate marcus 0.1.2... [INFO] linting marcus-0.1.2 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate marcus 0.1.2 into /workspace/builds/worker-4-tc1/source [INFO] started tweaking crates.io crate marcus 0.1.2 [INFO] finished tweaking crates.io crate marcus 0.1.2 [INFO] tweaked toml for crates.io crate marcus 0.1.2 written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate marcus 0.1.2 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 50 packages to latest compatible versions [INFO] [stderr] Adding rand v0.8.5 (available: v0.10.0) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 627bc6d3005d1ad0bc6d0102bd80dd54788e488e4ab118cd57db2b03b582f91b [INFO] running `Command { std: "docker" "start" "-a" "627bc6d3005d1ad0bc6d0102bd80dd54788e488e4ab118cd57db2b03b582f91b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "627bc6d3005d1ad0bc6d0102bd80dd54788e488e4ab118cd57db2b03b582f91b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "627bc6d3005d1ad0bc6d0102bd80dd54788e488e4ab118cd57db2b03b582f91b", kill_on_drop: false }` [INFO] [stdout] 627bc6d3005d1ad0bc6d0102bd80dd54788e488e4ab118cd57db2b03b582f91b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d35b1f715268dfcd1ec7cecce01cc124e34ebf3205e7aa15944cd70c94610274 [INFO] running `Command { std: "docker" "start" "-a" "d35b1f715268dfcd1ec7cecce01cc124e34ebf3205e7aa15944cd70c94610274", kill_on_drop: false }` [INFO] [stderr] Checking stable_deref_trait v1.2.1 [INFO] [stderr] Checking writeable v0.6.2 [INFO] [stderr] Checking litemap v0.8.1 [INFO] [stderr] Checking smallvec v1.15.1 [INFO] [stderr] Checking cfg-if v1.0.4 [INFO] [stderr] Checking memchr v2.8.0 [INFO] [stderr] Checking percent-encoding v2.3.2 [INFO] [stderr] Checking utf8_iter v1.0.4 [INFO] [stderr] Checking regex-syntax v0.8.10 [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling icu_normalizer_data v2.1.1 [INFO] [stderr] Compiling icu_properties_data v2.1.2 [INFO] [stderr] Compiling zerocopy v0.8.42 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Checking form_urlencoded v1.2.2 [INFO] [stderr] Checking aho-corasick v1.1.4 [INFO] [stderr] Checking getrandom v0.2.17 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking regex-automata v0.4.14 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking yoke v0.8.1 [INFO] [stderr] Checking zerotrie v0.2.3 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking regex v1.12.3 [INFO] [stderr] Checking zerovec v0.11.5 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking tinystr v0.8.2 [INFO] [stderr] Checking potential_utf v0.1.4 [INFO] [stderr] Checking icu_collections v2.1.1 [INFO] [stderr] Checking icu_locale_core v2.1.1 [INFO] [stderr] Checking icu_provider v2.1.1 [INFO] [stderr] Checking icu_normalizer v2.1.1 [INFO] [stderr] Checking icu_properties v2.1.2 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Checking url v2.5.8 [INFO] [stderr] Checking marcus v0.1.2 (/opt/rustwide/workdir) [INFO] [stdout] warning: large array defined as const [INFO] [stdout] --> src/helpers/emoji.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | pub const LIST: [[&str; 2]; 1813] = [ [INFO] [stdout] | ^ ----- help: make this a static item: `static` [INFO] [stdout] | _| [INFO] [stdout] | | [INFO] [stdout] 3 | | ["😀", "grinning_face"], [INFO] [stdout] 4 | | ["😃", "grinning_face_with_big_eyes"], [INFO] [stdout] 5 | | ["😄", "grinning_face_with_smiling_eyes"], [INFO] [stdout] ... | [INFO] [stdout] 1815 | | ["🏴󠁧󠁢󠁷󠁬󠁳󠁿", "flag_wales"] [INFO] [stdout] 1816 | | ]; [INFO] [stdout] | |__^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_const_arrays [INFO] [stdout] = note: `#[warn(clippy::large_const_arrays)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large array defined as const [INFO] [stdout] --> src/helpers/emoji.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | pub const LIST: [[&str; 2]; 1813] = [ [INFO] [stdout] | ^ ----- help: make this a static item: `static` [INFO] [stdout] | _| [INFO] [stdout] | | [INFO] [stdout] 3 | | ["😀", "grinning_face"], [INFO] [stdout] 4 | | ["😃", "grinning_face_with_big_eyes"], [INFO] [stdout] 5 | | ["😄", "grinning_face_with_smiling_eyes"], [INFO] [stdout] ... | [INFO] [stdout] 1815 | | ["🏴󠁧󠁢󠁷󠁬󠁳󠁿", "flag_wales"] [INFO] [stdout] 1816 | | ]; [INFO] [stdout] | |__^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_const_arrays [INFO] [stdout] = note: `#[warn(clippy::large_const_arrays)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/helpers/re.rs:9:21 [INFO] [stdout] | [INFO] [stdout] 9 | if regex.is_match(&html) { [INFO] [stdout] | ^^^^^ help: change this to: `html` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/helpers/re.rs:12:40 [INFO] [stdout] | [INFO] [stdout] 12 | for capture in regex.captures_iter(&html) { [INFO] [stdout] | ^^^^^ help: change this to: `html` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/core/blockquotes.rs:17:30 [INFO] [stdout] | [INFO] [stdout] 17 | if !re_blockquote.is_match(&html) { [INFO] [stdout] | ^^^^^ help: change this to: `html` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `()` [INFO] [stdout] --> src/core/blockquotes.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | return (); [INFO] [stdout] | ^^ help: remove the `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/core/blockquotes.rs:39:9 [INFO] [stdout] | [INFO] [stdout] 39 | / match line.find(cite_split) { [INFO] [stdout] 40 | | // Extract the cite and update the quote text [INFO] [stdout] 41 | | Some(position) => { [INFO] [stdout] 42 | | cite = &line[(position + cite_split.len())..].trim(); [INFO] [stdout] ... | [INFO] [stdout] 46 | | None => { } [INFO] [stdout] 47 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = note: you might want to preserve the comments from inside the `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 39 ~ if let Some(position) = line.find(cite_split) { [INFO] [stdout] 40 + cite = &line[(position + cite_split.len())..].trim(); [INFO] [stdout] 41 + line = &line[..position].trim(); [INFO] [stdout] 42 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/core/blockquotes.rs:42:20 [INFO] [stdout] | [INFO] [stdout] 42 | cite = &line[(position + cite_split.len())..].trim(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `line[(position + cite_split.len())..].trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/core/blockquotes.rs:43:20 [INFO] [stdout] | [INFO] [stdout] 43 | line = &line[..position].trim(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `line[..position].trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/core/emphasis.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | match value.chars().nth(0).unwrap() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `value.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] = note: `#[warn(clippy::iter_nth_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to one [INFO] [stdout] --> src/core/emphasis.rs:15:6 [INFO] [stdout] | [INFO] [stdout] 15 | if text.len() < 1 { capture.to_string() } else { html } [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `text.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/core/emphasis.rs:22:21 [INFO] [stdout] | [INFO] [stdout] 22 | capture_or_html(&text, &capture[0], format!("{}", text)) [INFO] [stdout] | ^^^^^ help: change this to: `text` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/core/emphasis.rs:28:21 [INFO] [stdout] | [INFO] [stdout] 28 | capture_or_html(&text, &capture[0], format!("{}", text)) [INFO] [stdout] | ^^^^^ help: change this to: `text` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/core/emphasis.rs:34:21 [INFO] [stdout] | [INFO] [stdout] 34 | capture_or_html(&text, &capture[0], format!("{}", text)) [INFO] [stdout] | ^^^^^ help: change this to: `text` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/core/horizontal_rule.rs:5:18 [INFO] [stdout] | [INFO] [stdout] 5 | fn is_rule(line: &String, value: &str) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 5 - fn is_rule(line: &String, value: &str) -> bool { [INFO] [stdout] 5 + fn is_rule(line: &str, value: &str) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/core/links_images_footnotes.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | if is_footnote == false { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `!is_footnote` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/links_images_footnotes.rs:44:3 [INFO] [stdout] | [INFO] [stdout] 44 | return defined; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 44 - return defined; [INFO] [stdout] 44 + defined [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/core/links_images_footnotes.rs:40:8 [INFO] [stdout] | [INFO] [stdout] 40 | if link.is_footnote == false { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!link.is_footnote` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/helpers/re.rs:9:21 [INFO] [stdout] | [INFO] [stdout] 9 | if regex.is_match(&html) { [INFO] [stdout] | ^^^^^ help: change this to: `html` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/core/links_images_footnotes.rs:82:70 [INFO] [stdout] | [INFO] [stdout] 82 | let (src, alt): (String, &str) = (capture[2].trim().to_string(), &capture[1].trim()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `capture[1].trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/helpers/re.rs:12:40 [INFO] [stdout] | [INFO] [stdout] 12 | for capture in regex.captures_iter(&html) { [INFO] [stdout] | ^^^^^ help: change this to: `html` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/core/links_images_footnotes.rs:96:70 [INFO] [stdout] | [INFO] [stdout] 96 | let (src, alt): (String, &str) = (capture[2].trim().to_string(), &capture[1].trim()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `capture[1].trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/core/links_images_footnotes.rs:112:72 [INFO] [stdout] | [INFO] [stdout] 112 | let (href, text): (String, &str) = (capture[2].trim().to_string(), &capture[1].trim()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `capture[1].trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/core/blockquotes.rs:17:30 [INFO] [stdout] | [INFO] [stdout] 17 | if !re_blockquote.is_match(&html) { [INFO] [stdout] | ^^^^^ help: change this to: `html` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `()` [INFO] [stdout] --> src/core/blockquotes.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | return (); [INFO] [stdout] | ^^ help: remove the `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/core/links_images_footnotes.rs:126:72 [INFO] [stdout] | [INFO] [stdout] 126 | let (href, text): (String, &str) = (capture[2].trim().to_string(), &capture[1].trim()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `capture[1].trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/core/blockquotes.rs:39:9 [INFO] [stdout] | [INFO] [stdout] 39 | / match line.find(cite_split) { [INFO] [stdout] 40 | | // Extract the cite and update the quote text [INFO] [stdout] 41 | | Some(position) => { [INFO] [stdout] 42 | | cite = &line[(position + cite_split.len())..].trim(); [INFO] [stdout] ... | [INFO] [stdout] 46 | | None => { } [INFO] [stdout] 47 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = note: you might want to preserve the comments from inside the `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 39 ~ if let Some(position) = line.find(cite_split) { [INFO] [stdout] 40 + cite = &line[(position + cite_split.len())..].trim(); [INFO] [stdout] 41 + line = &line[..position].trim(); [INFO] [stdout] 42 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/core/blockquotes.rs:42:20 [INFO] [stdout] | [INFO] [stdout] 42 | cite = &line[(position + cite_split.len())..].trim(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `line[(position + cite_split.len())..].trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/links_images_footnotes.rs:149:5 [INFO] [stdout] | [INFO] [stdout] 149 | return format!("[{}]", index); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 149 - return format!("[{}]", index); [INFO] [stdout] 149 + format!("[{}]", index) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/core/blockquotes.rs:43:20 [INFO] [stdout] | [INFO] [stdout] 43 | line = &line[..position].trim(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `line[..position].trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/core/links_images_footnotes.rs:142:10 [INFO] [stdout] | [INFO] [stdout] 142 | if link.is_footnote == true { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `link.is_footnote` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to one [INFO] [stdout] --> src/core/lists_and_task_lists.rs:68:68 [INFO] [stdout] | [INFO] [stdout] 68 | let mut result: String = format!("{}{}<{}>\n", &capture[1], if capture[1].len() < 1 { "" } else { "\n" }, list[0].2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `capture[1].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/core/emphasis.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | match value.chars().nth(0).unwrap() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `value.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] = note: `#[warn(clippy::iter_nth_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to one [INFO] [stdout] --> src/core/emphasis.rs:15:6 [INFO] [stdout] | [INFO] [stdout] 15 | if text.len() < 1 { capture.to_string() } else { html } [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `text.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/core/emphasis.rs:22:21 [INFO] [stdout] | [INFO] [stdout] 22 | capture_or_html(&text, &capture[0], format!("{}", text)) [INFO] [stdout] | ^^^^^ help: change this to: `text` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/core/emphasis.rs:28:21 [INFO] [stdout] | [INFO] [stdout] 28 | capture_or_html(&text, &capture[0], format!("{}", text)) [INFO] [stdout] | ^^^^^ help: change this to: `text` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/core/emphasis.rs:34:21 [INFO] [stdout] | [INFO] [stdout] 34 | capture_or_html(&text, &capture[0], format!("{}", text)) [INFO] [stdout] | ^^^^^ help: change this to: `text` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to pop elements from a `Vec` in a loop [INFO] [stdout] --> src/core/lists_and_task_lists.rs:105:7 [INFO] [stdout] | [INFO] [stdout] 105 | let (whitespace, format): (String, &str) = open_lists.pop().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_while_let_some [INFO] [stdout] = note: `#[warn(clippy::manual_while_let_some)]` on by default [INFO] [stdout] help: consider using a `while..let` loop [INFO] [stdout] | [INFO] [stdout] 104 ~ while let Some((whitespace, format)) = open_lists.pop() { [INFO] [stdout] 105 ~ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/core/horizontal_rule.rs:5:18 [INFO] [stdout] | [INFO] [stdout] 5 | fn is_rule(line: &String, value: &str) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 5 - fn is_rule(line: &String, value: &str) -> bool { [INFO] [stdout] 5 + fn is_rule(line: &str, value: &str) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/core/links_images_footnotes.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | if is_footnote == false { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `!is_footnote` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/links_images_footnotes.rs:44:3 [INFO] [stdout] | [INFO] [stdout] 44 | return defined; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 44 - return defined; [INFO] [stdout] 44 + defined [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/core/links_images_footnotes.rs:40:8 [INFO] [stdout] | [INFO] [stdout] 40 | if link.is_footnote == false { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!link.is_footnote` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/core/links_images_footnotes.rs:82:70 [INFO] [stdout] | [INFO] [stdout] 82 | let (src, alt): (String, &str) = (capture[2].trim().to_string(), &capture[1].trim()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `capture[1].trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/core/table.rs:71:10 [INFO] [stdout] | [INFO] [stdout] 71 | if !((i == 0 && row_length < 1) || (i == (table_length - 1) && row_length < 1)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `row_length >= 1 || i != 0 && i != (table_length - 1)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/core/table.rs:71:11 [INFO] [stdout] | [INFO] [stdout] 71 | if !((i == 0 && row_length < 1) || (i == (table_length - 1) && row_length < 1)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 71 - if !((i == 0 && row_length < 1) || (i == (table_length - 1) && row_length < 1)) { [INFO] [stdout] 71 + if !!(row_length >= 1 || i != 0 && i != (table_length - 1)) { [INFO] [stdout] | [INFO] [stdout] 71 - if !((i == 0 && row_length < 1) || (i == (table_length - 1) && row_length < 1)) { [INFO] [stdout] 71 + if !(i == (table_length - 1) || i == 0) && row_length < 1 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/core/table.rs:35:16 [INFO] [stdout] | [INFO] [stdout] 35 | line = &line.trim(); [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `line.trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/core/links_images_footnotes.rs:96:70 [INFO] [stdout] | [INFO] [stdout] 96 | let (src, alt): (String, &str) = (capture[2].trim().to_string(), &capture[1].trim()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `capture[1].trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/core/links_images_footnotes.rs:112:72 [INFO] [stdout] | [INFO] [stdout] 112 | let (href, text): (String, &str) = (capture[2].trim().to_string(), &capture[1].trim()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `capture[1].trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/core/links_images_footnotes.rs:126:72 [INFO] [stdout] | [INFO] [stdout] 126 | let (href, text): (String, &str) = (capture[2].trim().to_string(), &capture[1].trim()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `capture[1].trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/links_images_footnotes.rs:149:5 [INFO] [stdout] | [INFO] [stdout] 149 | return format!("[{}]", index); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 149 - return format!("[{}]", index); [INFO] [stdout] 149 + format!("[{}]", index) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/core/links_images_footnotes.rs:142:10 [INFO] [stdout] | [INFO] [stdout] 142 | if link.is_footnote == true { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `link.is_footnote` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/core/paragraphs.rs:23:36 [INFO] [stdout] | [INFO] [stdout] 23 | *html = re::from(r"\n+").replace(&output.trim(), "\n\n").to_string() [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `output.trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to one [INFO] [stdout] --> src/core/lists_and_task_lists.rs:68:68 [INFO] [stdout] | [INFO] [stdout] 68 | let mut result: String = format!("{}{}<{}>\n", &capture[1], if capture[1].len() < 1 { "" } else { "\n" }, list[0].2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `capture[1].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to pop elements from a `Vec` in a loop [INFO] [stdout] --> src/core/lists_and_task_lists.rs:105:7 [INFO] [stdout] | [INFO] [stdout] 105 | let (whitespace, format): (String, &str) = open_lists.pop().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_while_let_some [INFO] [stdout] = note: `#[warn(clippy::manual_while_let_some)]` on by default [INFO] [stdout] help: consider using a `while..let` loop [INFO] [stdout] | [INFO] [stdout] 104 ~ while let Some((whitespace, format)) = open_lists.pop() { [INFO] [stdout] 105 ~ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/core/table.rs:71:10 [INFO] [stdout] | [INFO] [stdout] 71 | if !((i == 0 && row_length < 1) || (i == (table_length - 1) && row_length < 1)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `row_length >= 1 || i != 0 && i != (table_length - 1)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/core/table.rs:71:11 [INFO] [stdout] | [INFO] [stdout] 71 | if !((i == 0 && row_length < 1) || (i == (table_length - 1) && row_length < 1)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 71 - if !((i == 0 && row_length < 1) || (i == (table_length - 1) && row_length < 1)) { [INFO] [stdout] 71 + if !!(row_length >= 1 || i != 0 && i != (table_length - 1)) { [INFO] [stdout] | [INFO] [stdout] 71 - if !((i == 0 && row_length < 1) || (i == (table_length - 1) && row_length < 1)) { [INFO] [stdout] 71 + if !(i == (table_length - 1) || i == 0) && row_length < 1 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/core/table.rs:35:16 [INFO] [stdout] | [INFO] [stdout] 35 | line = &line.trim(); [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `line.trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/core/paragraphs.rs:23:36 [INFO] [stdout] | [INFO] [stdout] 23 | *html = re::from(r"\n+").replace(&output.trim(), "\n\n").to_string() [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `output.trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [optimized + debuginfo] target(s) in 13.94s [INFO] running `Command { std: "docker" "inspect" "d35b1f715268dfcd1ec7cecce01cc124e34ebf3205e7aa15944cd70c94610274", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d35b1f715268dfcd1ec7cecce01cc124e34ebf3205e7aa15944cd70c94610274", kill_on_drop: false }` [INFO] [stdout] d35b1f715268dfcd1ec7cecce01cc124e34ebf3205e7aa15944cd70c94610274