[INFO] updating cached repository zyxw59/conlang_fmt [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/zyxw59/conlang_fmt [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/zyxw59/conlang_fmt" "work/ex/clippy-test-run/sources/stable/gh/zyxw59/conlang_fmt"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/zyxw59/conlang_fmt'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/zyxw59/conlang_fmt" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/zyxw59/conlang_fmt"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/zyxw59/conlang_fmt'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] c1f9f7536f1c330ef65c80a25f2ca66abe446548 [INFO] sha for GitHub repo zyxw59/conlang_fmt: c1f9f7536f1c330ef65c80a25f2ca66abe446548 [INFO] validating manifest of zyxw59/conlang_fmt 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 zyxw59/conlang_fmt 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 zyxw59/conlang_fmt [INFO] finished frobbing zyxw59/conlang_fmt [INFO] frobbed toml for zyxw59/conlang_fmt written to work/ex/clippy-test-run/sources/stable/gh/zyxw59/conlang_fmt/Cargo.toml [INFO] started frobbing zyxw59/conlang_fmt [INFO] finished frobbing zyxw59/conlang_fmt [INFO] frobbed toml for zyxw59/conlang_fmt written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/zyxw59/conlang_fmt/Cargo.toml [INFO] crate zyxw59/conlang_fmt 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 zyxw59/conlang_fmt against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/zyxw59/conlang_fmt:/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] 8010af81ac77b1050b76cf373712e4231bc9241be8e10dbe5a3121afbbbfb032 [INFO] running `"docker" "start" "-a" "8010af81ac77b1050b76cf373712e4231bc9241be8e10dbe5a3121afbbbfb032"` [INFO] [stderr] Compiling unicode-xid v0.0.4 [INFO] [stderr] Compiling cc v1.0.15 [INFO] [stderr] Compiling quote v0.3.15 [INFO] [stderr] Checking libc v0.2.41 [INFO] [stderr] Checking rustc-demangle v0.1.8 [INFO] [stderr] Checking cfg-if v0.1.3 [INFO] [stderr] Checking either v1.5.0 [INFO] [stderr] Compiling synom v0.11.3 [INFO] [stderr] Checking itertools v0.7.8 [INFO] [stderr] Compiling syn v0.11.11 [INFO] [stderr] Compiling backtrace-sys v0.1.19 [INFO] [stderr] Compiling synstructure v0.6.1 [INFO] [stderr] Compiling failure_derive v0.1.1 [INFO] [stderr] Checking backtrace v0.3.8 [INFO] [stderr] Checking failure v0.1.1 [INFO] [stderr] Checking conlang_fmt v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/main.rs:2:1 [INFO] [stderr] | [INFO] [stderr] 2 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/main.rs:2:1 [INFO] [stderr] | [INFO] [stderr] 2 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `add_block` [INFO] [stderr] --> src/document.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | pub fn add_block(&mut self, block: Block) -> EResult<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `kind` [INFO] [stderr] --> src/errors.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn kind(&self) -> &ErrorKind { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Id` [INFO] [stderr] --> src/errors.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | Id(String), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `start` [INFO] [stderr] --> src/parse.rs:695:5 [INFO] [stderr] | [INFO] [stderr] 695 | pub fn start(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/document.rs:32:34 [INFO] [stderr] | [INFO] [stderr] 32 | if level == 1 || self.sections.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.sections.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/input.rs:39:16 [INFO] [stderr] | [INFO] [stderr] 39 | if line.trim().len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line.trim().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/input.rs:41:20 [INFO] [stderr] | [INFO] [stderr] 41 | if self.buffer.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.buffer.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/input.rs:46:20 [INFO] [stderr] | [INFO] [stderr] 46 | if self.buffer.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.buffer.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: the function has a cyclomatic complexity of 42 [INFO] [stderr] --> src/parse.rs:83:5 [INFO] [stderr] | [INFO] [stderr] 83 | / pub fn parse(&mut self) -> OResult { [INFO] [stderr] 84 | | // skip leading whitespace [INFO] [stderr] 85 | | self.skip_whitespace(); [INFO] [stderr] 86 | | // save the position of the first non-whitespace character; if we need to rewind, this is [INFO] [stderr] ... | [INFO] [stderr] 294 | | })) [INFO] [stderr] 295 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [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/parse.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | / match $first.update_param($param)? { [INFO] [stderr] 45 | | // if the parameter is returned, try the next argument. [INFO] [stderr] 46 | | Some(param) => update_one!($self, param, $( $x ),*), [INFO] [stderr] 47 | | // otherwise, we're done. [INFO] [stderr] 48 | | None => {} [INFO] [stderr] 49 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $first.update_param($param)? { update_multiple!(self, toc, common); }` [INFO] [stderr] ... [INFO] [stderr] 94 | update_multiple!(self, toc, common); [INFO] [stderr] | ------------------------------------ in this macro invocation [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | / match $last.update_param($param)? { [INFO] [stderr] 55 | | // we can unwrap because `common` will always catch the `None` case [INFO] [stderr] 56 | | // (and treat it as a class). [INFO] [stderr] 57 | | Some(param) => $self.parameter_error(param.0.unwrap())?, [INFO] [stderr] 58 | | None => {} [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $last.update_param($param)? { update_multiple!(self, toc, common); }` [INFO] [stderr] ... [INFO] [stderr] 94 | update_multiple!(self, toc, common); [INFO] [stderr] | ------------------------------------ in this macro invocation [INFO] [stderr] | [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | / match $first.update_param($param)? { [INFO] [stderr] 45 | | // if the parameter is returned, try the next argument. [INFO] [stderr] 46 | | Some(param) => update_one!($self, param, $( $x ),*), [INFO] [stderr] 47 | | // otherwise, we're done. [INFO] [stderr] 48 | | None => {} [INFO] [stderr] 49 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $first.update_param($param)? { update_multiple!(self, list, common); }` [INFO] [stderr] ... [INFO] [stderr] 104 | update_multiple!(self, list, common); [INFO] [stderr] | ------------------------------------- in this macro invocation [INFO] [stderr] | [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | / match $last.update_param($param)? { [INFO] [stderr] 55 | | // we can unwrap because `common` will always catch the `None` case [INFO] [stderr] 56 | | // (and treat it as a class). [INFO] [stderr] 57 | | Some(param) => $self.parameter_error(param.0.unwrap())?, [INFO] [stderr] 58 | | None => {} [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $last.update_param($param)? { update_multiple!(self, list, common); }` [INFO] [stderr] ... [INFO] [stderr] 104 | update_multiple!(self, list, common); [INFO] [stderr] | ------------------------------------- in this macro invocation [INFO] [stderr] | [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | / match $first.update_param($param)? { [INFO] [stderr] 45 | | // if the parameter is returned, try the next argument. [INFO] [stderr] 46 | | Some(param) => update_one!($self, param, $( $x ),*), [INFO] [stderr] 47 | | // otherwise, we're done. [INFO] [stderr] 48 | | None => {} [INFO] [stderr] 49 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $first.update_param($param)? { update_multiple!(self, table, common); }` [INFO] [stderr] ... [INFO] [stderr] 121 | update_multiple!(self, table, common); [INFO] [stderr] | -------------------------------------- in this macro invocation [INFO] [stderr] | [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | / match $last.update_param($param)? { [INFO] [stderr] 55 | | // we can unwrap because `common` will always catch the `None` case [INFO] [stderr] 56 | | // (and treat it as a class). [INFO] [stderr] 57 | | Some(param) => $self.parameter_error(param.0.unwrap())?, [INFO] [stderr] 58 | | None => {} [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $last.update_param($param)? { update_multiple!(self, table, common); }` [INFO] [stderr] ... [INFO] [stderr] 121 | update_multiple!(self, table, common); [INFO] [stderr] | -------------------------------------- in this macro invocation [INFO] [stderr] | [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | / match $last.update_param($param)? { [INFO] [stderr] 55 | | // we can unwrap because `common` will always catch the `None` case [INFO] [stderr] 56 | | // (and treat it as a class). [INFO] [stderr] 57 | | Some(param) => $self.parameter_error(param.0.unwrap())?, [INFO] [stderr] 58 | | None => {} [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $last.update_param($param)? { update_multiple!(self, col); }` [INFO] [stderr] ... [INFO] [stderr] 131 | update_multiple!(self, col); [INFO] [stderr] | ---------------------------- in this macro invocation [INFO] [stderr] | [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | / match $last.update_param($param)? { [INFO] [stderr] 55 | | // we can unwrap because `common` will always catch the `None` case [INFO] [stderr] 56 | | // (and treat it as a class). [INFO] [stderr] 57 | | Some(param) => $self.parameter_error(param.0.unwrap())?, [INFO] [stderr] 58 | | None => {} [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $last.update_param($param)? { update_multiple!(self, row); }` [INFO] [stderr] ... [INFO] [stderr] 153 | update_multiple!(self, row); [INFO] [stderr] | ---------------------------- in this macro invocation [INFO] [stderr] | [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | / match $last.update_param($param)? { [INFO] [stderr] 55 | | // we can unwrap because `common` will always catch the `None` case [INFO] [stderr] 56 | | // (and treat it as a class). [INFO] [stderr] 57 | | Some(param) => $self.parameter_error(param.0.unwrap())?, [INFO] [stderr] 58 | | None => {} [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $last.update_param($param)? { update_multiple!(self, cell); }` [INFO] [stderr] ... [INFO] [stderr] 160 | update_multiple!(self, cell); [INFO] [stderr] | ----------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parse.rs:182:28 [INFO] [stderr] | [INFO] [stderr] 182 | if row.cells.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!row.cells.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | / match $first.update_param($param)? { [INFO] [stderr] 45 | | // if the parameter is returned, try the next argument. [INFO] [stderr] 46 | | Some(param) => update_one!($self, param, $( $x ),*), [INFO] [stderr] 47 | | // otherwise, we're done. [INFO] [stderr] 48 | | None => {} [INFO] [stderr] 49 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $first.update_param($param)? { update_multiple!(self, gloss, common); }` [INFO] [stderr] ... [INFO] [stderr] 194 | update_multiple!(self, gloss, common); [INFO] [stderr] | -------------------------------------- in this macro invocation [INFO] [stderr] | [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | / match $last.update_param($param)? { [INFO] [stderr] 55 | | // we can unwrap because `common` will always catch the `None` case [INFO] [stderr] 56 | | // (and treat it as a class). [INFO] [stderr] 57 | | Some(param) => $self.parameter_error(param.0.unwrap())?, [INFO] [stderr] 58 | | None => {} [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $last.update_param($param)? { update_multiple!(self, gloss, common); }` [INFO] [stderr] ... [INFO] [stderr] 194 | update_multiple!(self, gloss, common); [INFO] [stderr] | -------------------------------------- in this macro invocation [INFO] [stderr] | [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | / match $first.update_param($param)? { [INFO] [stderr] 45 | | // if the parameter is returned, try the next argument. [INFO] [stderr] 46 | | Some(param) => update_one!($self, param, $( $x ),*), [INFO] [stderr] 47 | | // otherwise, we're done. [INFO] [stderr] 48 | | None => {} [INFO] [stderr] 49 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $first.update_param($param)? { update_multiple!(self, kind, class); }` [INFO] [stderr] ... [INFO] [stderr] 204 | update_multiple!(self, kind, class); [INFO] [stderr] | ------------------------------------ in this macro invocation [INFO] [stderr] | [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | / match $last.update_param($param)? { [INFO] [stderr] 55 | | // we can unwrap because `common` will always catch the `None` case [INFO] [stderr] 56 | | // (and treat it as a class). [INFO] [stderr] 57 | | Some(param) => $self.parameter_error(param.0.unwrap())?, [INFO] [stderr] 58 | | None => {} [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $last.update_param($param)? { update_multiple!(self, kind, class); }` [INFO] [stderr] ... [INFO] [stderr] 204 | update_multiple!(self, kind, class); [INFO] [stderr] | ------------------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parse.rs:212:36 [INFO] [stderr] | [INFO] [stderr] 212 | if class.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!class.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/parse.rs:217:36 [INFO] [stderr] | [INFO] [stderr] 217 | if gloss.gloss.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `gloss.gloss.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/parse.rs:226:36 [INFO] [stderr] | [INFO] [stderr] 226 | if gloss.postamble.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!gloss.postamble.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | / match $first.update_param($param)? { [INFO] [stderr] 45 | | // if the parameter is returned, try the next argument. [INFO] [stderr] 46 | | Some(param) => update_one!($self, param, $( $x ),*), [INFO] [stderr] 47 | | // otherwise, we're done. [INFO] [stderr] 48 | | None => {} [INFO] [stderr] 49 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $first.update_param($param)? { update_multiple!(self, heading, common); }` [INFO] [stderr] ... [INFO] [stderr] 280 | update_multiple!(self, heading, common); [INFO] [stderr] | ---------------------------------------- in this macro invocation [INFO] [stderr] | [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | / match $last.update_param($param)? { [INFO] [stderr] 55 | | // we can unwrap because `common` will always catch the `None` case [INFO] [stderr] 56 | | // (and treat it as a class). [INFO] [stderr] 57 | | Some(param) => $self.parameter_error(param.0.unwrap())?, [INFO] [stderr] 58 | | None => {} [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $last.update_param($param)? { update_multiple!(self, heading, common); }` [INFO] [stderr] ... [INFO] [stderr] 280 | update_multiple!(self, heading, common); [INFO] [stderr] | ---------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/parse.rs:352:29 [INFO] [stderr] | [INFO] [stderr] 352 | self.parameter()?.map(|p| params.push(p)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(p) = self.parameter()? { params.push(p) }` [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: length comparison to zero [INFO] [stderr] --> src/parse.rs:419:52 [INFO] [stderr] | [INFO] [stderr] 419 | let name = param_builder.iter().filter(|w| w.len() > 0).join(" "); [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!w.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/parse.rs:420:12 [INFO] [stderr] | [INFO] [stderr] 420 | if name.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `name.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/parse.rs:477:44 [INFO] [stderr] | [INFO] [stderr] 477 | Ok(param_builder.iter().filter(|w| w.len() > 0).join(" ")) [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!w.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | / match $last.update_param($param)? { [INFO] [stderr] 55 | | // we can unwrap because `common` will always catch the `None` case [INFO] [stderr] 56 | | // (and treat it as a class). [INFO] [stderr] 57 | | Some(param) => $self.parameter_error(param.0.unwrap())?, [INFO] [stderr] 58 | | None => {} [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $last.update_param($param)? { update_multiple!(self, common); }` [INFO] [stderr] ... [INFO] [stderr] 598 | update_multiple!(self, common); [INFO] [stderr] | ------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parse.rs:612:12 [INFO] [stderr] | [INFO] [stderr] 612 | if buffer.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!buffer.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | / match $first.update_param($param)? { [INFO] [stderr] 45 | | // if the parameter is returned, try the next argument. [INFO] [stderr] 46 | | Some(param) => update_one!($self, param, $( $x ),*), [INFO] [stderr] 47 | | // otherwise, we're done. [INFO] [stderr] 48 | | None => {} [INFO] [stderr] 49 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $first.update_param($param)? { update_multiple!(self, kind, common); }` [INFO] [stderr] ... [INFO] [stderr] 620 | update_multiple!(self, kind, common); [INFO] [stderr] | ------------------------------------- in this macro invocation [INFO] [stderr] | [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | / match $last.update_param($param)? { [INFO] [stderr] 55 | | // we can unwrap because `common` will always catch the `None` case [INFO] [stderr] 56 | | // (and treat it as a class). [INFO] [stderr] 57 | | Some(param) => $self.parameter_error(param.0.unwrap())?, [INFO] [stderr] 58 | | None => {} [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $last.update_param($param)? { update_multiple!(self, kind, common); }` [INFO] [stderr] ... [INFO] [stderr] 620 | update_multiple!(self, kind, common); [INFO] [stderr] | ------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: method is never used: `add_block` [INFO] [stderr] --> src/document.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | pub fn add_block(&mut self, block: Block) -> EResult<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `kind` [INFO] [stderr] --> src/errors.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn kind(&self) -> &ErrorKind { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Id` [INFO] [stderr] --> src/errors.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | Id(String), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/document.rs:32:34 [INFO] [stderr] | [INFO] [stderr] 32 | if level == 1 || self.sections.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.sections.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/input.rs:39:16 [INFO] [stderr] | [INFO] [stderr] 39 | if line.trim().len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line.trim().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/input.rs:41:20 [INFO] [stderr] | [INFO] [stderr] 41 | if self.buffer.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.buffer.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/input.rs:46:20 [INFO] [stderr] | [INFO] [stderr] 46 | if self.buffer.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.buffer.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: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/input.rs:67:25 [INFO] [stderr] | [INFO] [stderr] 67 | let input_str = r#"block 1, line 1 [INFO] [stderr] | _________________________^ [INFO] [stderr] 68 | | block 1, line 2 [INFO] [stderr] 69 | | block 1, line 3 [INFO] [stderr] 70 | | [INFO] [stderr] 71 | | block 2, line 1 [INFO] [stderr] 72 | | block 2, line 2 [INFO] [stderr] 73 | | "#.as_bytes(); [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] help: consider using a byte string literal instead [INFO] [stderr] | [INFO] [stderr] 67 | let input_str = br#"block 1, line 1 [INFO] [stderr] 68 | block 1, line 2 [INFO] [stderr] 69 | block 1, line 3 [INFO] [stderr] 70 | [INFO] [stderr] 71 | block 2, line 1 [INFO] [stderr] 72 | block 2, line 2 [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/input.rs:94:25 [INFO] [stderr] | [INFO] [stderr] 94 | let input_str = r#"block 1, line 1 [INFO] [stderr] | _________________________^ [INFO] [stderr] 95 | | block 1, line 2 [INFO] [stderr] 96 | | block 1, line 3 [INFO] [stderr] 97 | | [INFO] [stderr] ... | [INFO] [stderr] 101 | | [INFO] [stderr] 102 | | "#.as_bytes(); [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] help: consider using a byte string literal instead [INFO] [stderr] | [INFO] [stderr] 94 | let input_str = br#"block 1, line 1 [INFO] [stderr] 95 | block 1, line 2 [INFO] [stderr] 96 | block 1, line 3 [INFO] [stderr] 97 | [INFO] [stderr] 98 | [INFO] [stderr] 99 | block 2, line 1 [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/input.rs:123:25 [INFO] [stderr] | [INFO] [stderr] 123 | let input_str = r#"block 1, line 1 [INFO] [stderr] | _________________________^ [INFO] [stderr] 124 | | block 1, line 2 [INFO] [stderr] 125 | | block 1, line 3"#.as_bytes(); [INFO] [stderr] | |____________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] help: consider using a byte string literal instead [INFO] [stderr] | [INFO] [stderr] 123 | let input_str = br#"block 1, line 1 [INFO] [stderr] 124 | block 1, line 2 [INFO] [stderr] 125 | block 1, line 3"#; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 42 [INFO] [stderr] --> src/parse.rs:83:5 [INFO] [stderr] | [INFO] [stderr] 83 | / pub fn parse(&mut self) -> OResult { [INFO] [stderr] 84 | | // skip leading whitespace [INFO] [stderr] 85 | | self.skip_whitespace(); [INFO] [stderr] 86 | | // save the position of the first non-whitespace character; if we need to rewind, this is [INFO] [stderr] ... | [INFO] [stderr] 294 | | })) [INFO] [stderr] 295 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [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/parse.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | / match $first.update_param($param)? { [INFO] [stderr] 45 | | // if the parameter is returned, try the next argument. [INFO] [stderr] 46 | | Some(param) => update_one!($self, param, $( $x ),*), [INFO] [stderr] 47 | | // otherwise, we're done. [INFO] [stderr] 48 | | None => {} [INFO] [stderr] 49 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $first.update_param($param)? { update_multiple!(self, toc, common); }` [INFO] [stderr] ... [INFO] [stderr] 94 | update_multiple!(self, toc, common); [INFO] [stderr] | ------------------------------------ in this macro invocation [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | / match $last.update_param($param)? { [INFO] [stderr] 55 | | // we can unwrap because `common` will always catch the `None` case [INFO] [stderr] 56 | | // (and treat it as a class). [INFO] [stderr] 57 | | Some(param) => $self.parameter_error(param.0.unwrap())?, [INFO] [stderr] 58 | | None => {} [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $last.update_param($param)? { update_multiple!(self, toc, common); }` [INFO] [stderr] ... [INFO] [stderr] 94 | update_multiple!(self, toc, common); [INFO] [stderr] | ------------------------------------ in this macro invocation [INFO] [stderr] | [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | / match $first.update_param($param)? { [INFO] [stderr] 45 | | // if the parameter is returned, try the next argument. [INFO] [stderr] 46 | | Some(param) => update_one!($self, param, $( $x ),*), [INFO] [stderr] 47 | | // otherwise, we're done. [INFO] [stderr] 48 | | None => {} [INFO] [stderr] 49 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $first.update_param($param)? { update_multiple!(self, list, common); }` [INFO] [stderr] ... [INFO] [stderr] 104 | update_multiple!(self, list, common); [INFO] [stderr] | ------------------------------------- in this macro invocation [INFO] [stderr] | [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | / match $last.update_param($param)? { [INFO] [stderr] 55 | | // we can unwrap because `common` will always catch the `None` case [INFO] [stderr] 56 | | // (and treat it as a class). [INFO] [stderr] 57 | | Some(param) => $self.parameter_error(param.0.unwrap())?, [INFO] [stderr] 58 | | None => {} [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $last.update_param($param)? { update_multiple!(self, list, common); }` [INFO] [stderr] ... [INFO] [stderr] 104 | update_multiple!(self, list, common); [INFO] [stderr] | ------------------------------------- in this macro invocation [INFO] [stderr] | [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | / match $first.update_param($param)? { [INFO] [stderr] 45 | | // if the parameter is returned, try the next argument. [INFO] [stderr] 46 | | Some(param) => update_one!($self, param, $( $x ),*), [INFO] [stderr] 47 | | // otherwise, we're done. [INFO] [stderr] 48 | | None => {} [INFO] [stderr] 49 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $first.update_param($param)? { update_multiple!(self, table, common); }` [INFO] [stderr] ... [INFO] [stderr] 121 | update_multiple!(self, table, common); [INFO] [stderr] | -------------------------------------- in this macro invocation [INFO] [stderr] | [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | / match $last.update_param($param)? { [INFO] [stderr] 55 | | // we can unwrap because `common` will always catch the `None` case [INFO] [stderr] 56 | | // (and treat it as a class). [INFO] [stderr] 57 | | Some(param) => $self.parameter_error(param.0.unwrap())?, [INFO] [stderr] 58 | | None => {} [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $last.update_param($param)? { update_multiple!(self, table, common); }` [INFO] [stderr] ... [INFO] [stderr] 121 | update_multiple!(self, table, common); [INFO] [stderr] | -------------------------------------- in this macro invocation [INFO] [stderr] | [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | / match $last.update_param($param)? { [INFO] [stderr] 55 | | // we can unwrap because `common` will always catch the `None` case [INFO] [stderr] 56 | | // (and treat it as a class). [INFO] [stderr] 57 | | Some(param) => $self.parameter_error(param.0.unwrap())?, [INFO] [stderr] 58 | | None => {} [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $last.update_param($param)? { update_multiple!(self, col); }` [INFO] [stderr] ... [INFO] [stderr] 131 | update_multiple!(self, col); [INFO] [stderr] | ---------------------------- in this macro invocation [INFO] [stderr] | [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | / match $last.update_param($param)? { [INFO] [stderr] 55 | | // we can unwrap because `common` will always catch the `None` case [INFO] [stderr] 56 | | // (and treat it as a class). [INFO] [stderr] 57 | | Some(param) => $self.parameter_error(param.0.unwrap())?, [INFO] [stderr] 58 | | None => {} [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $last.update_param($param)? { update_multiple!(self, row); }` [INFO] [stderr] ... [INFO] [stderr] 153 | update_multiple!(self, row); [INFO] [stderr] | ---------------------------- in this macro invocation [INFO] [stderr] | [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | / match $last.update_param($param)? { [INFO] [stderr] 55 | | // we can unwrap because `common` will always catch the `None` case [INFO] [stderr] 56 | | // (and treat it as a class). [INFO] [stderr] 57 | | Some(param) => $self.parameter_error(param.0.unwrap())?, [INFO] [stderr] 58 | | None => {} [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $last.update_param($param)? { update_multiple!(self, cell); }` [INFO] [stderr] ... [INFO] [stderr] 160 | update_multiple!(self, cell); [INFO] [stderr] | ----------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parse.rs:182:28 [INFO] [stderr] | [INFO] [stderr] 182 | if row.cells.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!row.cells.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | / match $first.update_param($param)? { [INFO] [stderr] 45 | | // if the parameter is returned, try the next argument. [INFO] [stderr] 46 | | Some(param) => update_one!($self, param, $( $x ),*), [INFO] [stderr] 47 | | // otherwise, we're done. [INFO] [stderr] 48 | | None => {} [INFO] [stderr] 49 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $first.update_param($param)? { update_multiple!(self, gloss, common); }` [INFO] [stderr] ... [INFO] [stderr] 194 | update_multiple!(self, gloss, common); [INFO] [stderr] | -------------------------------------- in this macro invocation [INFO] [stderr] | [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | / match $last.update_param($param)? { [INFO] [stderr] 55 | | // we can unwrap because `common` will always catch the `None` case [INFO] [stderr] 56 | | // (and treat it as a class). [INFO] [stderr] 57 | | Some(param) => $self.parameter_error(param.0.unwrap())?, [INFO] [stderr] 58 | | None => {} [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $last.update_param($param)? { update_multiple!(self, gloss, common); }` [INFO] [stderr] ... [INFO] [stderr] 194 | update_multiple!(self, gloss, common); [INFO] [stderr] | -------------------------------------- in this macro invocation [INFO] [stderr] | [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | / match $first.update_param($param)? { [INFO] [stderr] 45 | | // if the parameter is returned, try the next argument. [INFO] [stderr] 46 | | Some(param) => update_one!($self, param, $( $x ),*), [INFO] [stderr] 47 | | // otherwise, we're done. [INFO] [stderr] 48 | | None => {} [INFO] [stderr] 49 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $first.update_param($param)? { update_multiple!(self, kind, class); }` [INFO] [stderr] ... [INFO] [stderr] 204 | update_multiple!(self, kind, class); [INFO] [stderr] | ------------------------------------ in this macro invocation [INFO] [stderr] | [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | / match $last.update_param($param)? { [INFO] [stderr] 55 | | // we can unwrap because `common` will always catch the `None` case [INFO] [stderr] 56 | | // (and treat it as a class). [INFO] [stderr] 57 | | Some(param) => $self.parameter_error(param.0.unwrap())?, [INFO] [stderr] 58 | | None => {} [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $last.update_param($param)? { update_multiple!(self, kind, class); }` [INFO] [stderr] ... [INFO] [stderr] 204 | update_multiple!(self, kind, class); [INFO] [stderr] | ------------------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parse.rs:212:36 [INFO] [stderr] | [INFO] [stderr] 212 | if class.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!class.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/parse.rs:217:36 [INFO] [stderr] | [INFO] [stderr] 217 | if gloss.gloss.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `gloss.gloss.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/parse.rs:226:36 [INFO] [stderr] | [INFO] [stderr] 226 | if gloss.postamble.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!gloss.postamble.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | / match $first.update_param($param)? { [INFO] [stderr] 45 | | // if the parameter is returned, try the next argument. [INFO] [stderr] 46 | | Some(param) => update_one!($self, param, $( $x ),*), [INFO] [stderr] 47 | | // otherwise, we're done. [INFO] [stderr] 48 | | None => {} [INFO] [stderr] 49 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $first.update_param($param)? { update_multiple!(self, heading, common); }` [INFO] [stderr] ... [INFO] [stderr] 280 | update_multiple!(self, heading, common); [INFO] [stderr] | ---------------------------------------- in this macro invocation [INFO] [stderr] | [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | / match $last.update_param($param)? { [INFO] [stderr] 55 | | // we can unwrap because `common` will always catch the `None` case [INFO] [stderr] 56 | | // (and treat it as a class). [INFO] [stderr] 57 | | Some(param) => $self.parameter_error(param.0.unwrap())?, [INFO] [stderr] 58 | | None => {} [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $last.update_param($param)? { update_multiple!(self, heading, common); }` [INFO] [stderr] ... [INFO] [stderr] 280 | update_multiple!(self, heading, common); [INFO] [stderr] | ---------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/parse.rs:352:29 [INFO] [stderr] | [INFO] [stderr] 352 | self.parameter()?.map(|p| params.push(p)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(p) = self.parameter()? { params.push(p) }` [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: length comparison to zero [INFO] [stderr] --> src/parse.rs:419:52 [INFO] [stderr] | [INFO] [stderr] 419 | let name = param_builder.iter().filter(|w| w.len() > 0).join(" "); [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!w.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/parse.rs:420:12 [INFO] [stderr] | [INFO] [stderr] 420 | if name.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `name.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/parse.rs:477:44 [INFO] [stderr] | [INFO] [stderr] 477 | Ok(param_builder.iter().filter(|w| w.len() > 0).join(" ")) [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!w.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | / match $last.update_param($param)? { [INFO] [stderr] 55 | | // we can unwrap because `common` will always catch the `None` case [INFO] [stderr] 56 | | // (and treat it as a class). [INFO] [stderr] 57 | | Some(param) => $self.parameter_error(param.0.unwrap())?, [INFO] [stderr] 58 | | None => {} [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $last.update_param($param)? { update_multiple!(self, common); }` [INFO] [stderr] ... [INFO] [stderr] 598 | update_multiple!(self, common); [INFO] [stderr] | ------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parse.rs:612:12 [INFO] [stderr] | [INFO] [stderr] 612 | if buffer.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!buffer.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | / match $first.update_param($param)? { [INFO] [stderr] 45 | | // if the parameter is returned, try the next argument. [INFO] [stderr] 46 | | Some(param) => update_one!($self, param, $( $x ),*), [INFO] [stderr] 47 | | // otherwise, we're done. [INFO] [stderr] 48 | | None => {} [INFO] [stderr] 49 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $first.update_param($param)? { update_multiple!(self, kind, common); }` [INFO] [stderr] ... [INFO] [stderr] 620 | update_multiple!(self, kind, common); [INFO] [stderr] | ------------------------------------- in this macro invocation [INFO] [stderr] | [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | / match $last.update_param($param)? { [INFO] [stderr] 55 | | // we can unwrap because `common` will always catch the `None` case [INFO] [stderr] 56 | | // (and treat it as a class). [INFO] [stderr] 57 | | Some(param) => $self.parameter_error(param.0.unwrap())?, [INFO] [stderr] 58 | | None => {} [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(param) = $last.update_param($param)? { update_multiple!(self, kind, common); }` [INFO] [stderr] ... [INFO] [stderr] 620 | update_multiple!(self, kind, common); [INFO] [stderr] | ------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/parse.rs:749:25 [INFO] [stderr] | [INFO] [stderr] 749 | let input_str = r#"block 1, line 1"#.as_bytes(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `br#"block 1, line 1"#` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/parse.rs:759:25 [INFO] [stderr] | [INFO] [stderr] 759 | let input_str = r#"[nameless]"#.as_bytes(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `br#"[nameless]"#` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/parse.rs:768:25 [INFO] [stderr] | [INFO] [stderr] 768 | let input_str = r#"[class=foo]"#.as_bytes(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `br#"[class=foo]"#` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/parse.rs:780:25 [INFO] [stderr] | [INFO] [stderr] 780 | let input_str = r#"[ nameless ]"#.as_bytes(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `br#"[ nameless ]"#` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/parse.rs:789:25 [INFO] [stderr] | [INFO] [stderr] 789 | let input_str = r#"[id=foo, class=bar]"#.as_bytes(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `br#"[id=foo, class=bar]"#` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/parse.rs:817:25 [INFO] [stderr] | [INFO] [stderr] 817 | let input_str = ":foo:x".as_bytes(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b":foo:x"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/parse.rs:828:25 [INFO] [stderr] | [INFO] [stderr] 828 | let input_str = r#"*emphasis*"#.as_bytes(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `br#"*emphasis*"#` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/parse.rs:847:25 [INFO] [stderr] | [INFO] [stderr] 847 | let input_str = r#"**strong**"#.as_bytes(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `br#"**strong**"#` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 25.58s [INFO] running `"docker" "inspect" "8010af81ac77b1050b76cf373712e4231bc9241be8e10dbe5a3121afbbbfb032"` [INFO] running `"docker" "rm" "-f" "8010af81ac77b1050b76cf373712e4231bc9241be8e10dbe5a3121afbbbfb032"` [INFO] [stdout] 8010af81ac77b1050b76cf373712e4231bc9241be8e10dbe5a3121afbbbfb032