[INFO] updating cached repository CryZe/wasm-to-rust [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/CryZe/wasm-to-rust [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/CryZe/wasm-to-rust" "work/ex/clippy-test-run/sources/stable/gh/CryZe/wasm-to-rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/CryZe/wasm-to-rust'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/CryZe/wasm-to-rust" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/CryZe/wasm-to-rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/CryZe/wasm-to-rust'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] d3e7f16e3d64014435f35569204f453286bcdf98 [INFO] sha for GitHub repo CryZe/wasm-to-rust: d3e7f16e3d64014435f35569204f453286bcdf98 [INFO] validating manifest of CryZe/wasm-to-rust 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 CryZe/wasm-to-rust 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 CryZe/wasm-to-rust [INFO] finished frobbing CryZe/wasm-to-rust [INFO] frobbed toml for CryZe/wasm-to-rust written to work/ex/clippy-test-run/sources/stable/gh/CryZe/wasm-to-rust/Cargo.toml [INFO] started frobbing CryZe/wasm-to-rust [INFO] finished frobbing CryZe/wasm-to-rust [INFO] frobbed toml for CryZe/wasm-to-rust written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/CryZe/wasm-to-rust/Cargo.toml [INFO] crate CryZe/wasm-to-rust 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 CryZe/wasm-to-rust 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/CryZe/wasm-to-rust:/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] 10ae9b60ab1da3cdf3476bbe478654313921e6a896d9650d93a9aab9f8e0eb8c [INFO] running `"docker" "start" "-a" "10ae9b60ab1da3cdf3476bbe478654313921e6a896d9650d93a9aab9f8e0eb8c"` [INFO] [stderr] Checking parking_lot_core v0.2.13 [INFO] [stderr] Checking clap v2.31.1 [INFO] [stderr] Checking parking_lot v0.5.4 [INFO] [stderr] Checking parity-wasm v0.27.2 [INFO] [stderr] Checking structopt v0.2.5 [INFO] [stderr] Checking wasm-to-rust v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> src/main.rs:325:9 [INFO] [stderr] | [INFO] [stderr] 325 | / r#"} [INFO] [stderr] 326 | | [INFO] [stderr] 327 | | pub trait Memory { [INFO] [stderr] 328 | | fn load8(&mut self, addr: usize) -> u8; [INFO] [stderr] ... | [INFO] [stderr] 349 | | pub struct Context { [INFO] [stderr] 350 | | pub memory: M,"# [INFO] [stderr] | |____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_literal [INFO] [stderr] [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> src/main.rs:379:13 [INFO] [stderr] | [INFO] [stderr] 379 | / r#"} [INFO] [stderr] 380 | | [INFO] [stderr] 381 | | pub mod consts {"# [INFO] [stderr] | |__________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_literal [INFO] [stderr] [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> src/main.rs:408:9 [INFO] [stderr] | [INFO] [stderr] 408 | / r#"} [INFO] [stderr] 409 | | [INFO] [stderr] 410 | | impl, M: Memory> Instance { [INFO] [stderr] 411 | | pub fn new(imports: I, mut memory: M) -> Self {"# [INFO] [stderr] | |_____________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_literal [INFO] [stderr] [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> src/main.rs:429:9 [INFO] [stderr] | [INFO] [stderr] 429 | / r#" let mut instance = Self { [INFO] [stderr] 430 | | imports, [INFO] [stderr] 431 | | context: Context { [INFO] [stderr] 432 | | memory,"# [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_literal [INFO] [stderr] [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> src/main.rs:462:9 [INFO] [stderr] | [INFO] [stderr] 462 | / r#" }, [INFO] [stderr] 463 | | };"# [INFO] [stderr] | |____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_literal [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/main.rs:540:38 [INFO] [stderr] | [INFO] [stderr] 540 | b'\n' => write!(writer, r#"\n"#).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> src/main.rs:568:9 [INFO] [stderr] | [INFO] [stderr] 568 | / r#" instance [INFO] [stderr] 569 | | }"# [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_literal [INFO] [stderr] [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> src/main.rs:634:9 [INFO] [stderr] | [INFO] [stderr] 634 | / r#"} [INFO] [stderr] 635 | | [INFO] [stderr] 636 | | impl Context {"# [INFO] [stderr] | |______________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_literal [INFO] [stderr] [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> src/main.rs:325:9 [INFO] [stderr] | [INFO] [stderr] 325 | / r#"} [INFO] [stderr] 326 | | [INFO] [stderr] 327 | | pub trait Memory { [INFO] [stderr] 328 | | fn load8(&mut self, addr: usize) -> u8; [INFO] [stderr] ... | [INFO] [stderr] 349 | | pub struct Context { [INFO] [stderr] 350 | | pub memory: M,"# [INFO] [stderr] | |____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_literal [INFO] [stderr] [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> src/main.rs:379:13 [INFO] [stderr] | [INFO] [stderr] 379 | / r#"} [INFO] [stderr] 380 | | [INFO] [stderr] 381 | | pub mod consts {"# [INFO] [stderr] | |__________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_literal [INFO] [stderr] [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> src/main.rs:408:9 [INFO] [stderr] | [INFO] [stderr] 408 | / r#"} [INFO] [stderr] 409 | | [INFO] [stderr] 410 | | impl, M: Memory> Instance { [INFO] [stderr] 411 | | pub fn new(imports: I, mut memory: M) -> Self {"# [INFO] [stderr] | |_____________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_literal [INFO] [stderr] [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> src/main.rs:429:9 [INFO] [stderr] | [INFO] [stderr] 429 | / r#" let mut instance = Self { [INFO] [stderr] 430 | | imports, [INFO] [stderr] 431 | | context: Context { [INFO] [stderr] 432 | | memory,"# [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_literal [INFO] [stderr] [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> src/main.rs:462:9 [INFO] [stderr] | [INFO] [stderr] 462 | / r#" }, [INFO] [stderr] 463 | | };"# [INFO] [stderr] | |____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_literal [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/main.rs:540:38 [INFO] [stderr] | [INFO] [stderr] 540 | b'\n' => write!(writer, r#"\n"#).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> src/main.rs:568:9 [INFO] [stderr] | [INFO] [stderr] 568 | / r#" instance [INFO] [stderr] 569 | | }"# [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_literal [INFO] [stderr] [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> src/main.rs:634:9 [INFO] [stderr] | [INFO] [stderr] 634 | / r#"} [INFO] [stderr] 635 | | [INFO] [stderr] 636 | | impl Context {"# [INFO] [stderr] | |______________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_literal [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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/main.rs:132:20 [INFO] [stderr] | [INFO] [stderr] 132 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 133 | | if s.chars().last() != Some('_') { [INFO] [stderr] 134 | | s.push('_'); [INFO] [stderr] 135 | | } [INFO] [stderr] 136 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 132 | } else if s.chars().last() != Some('_') { [INFO] [stderr] 133 | s.push('_'); [INFO] [stderr] 134 | } [INFO] [stderr] | [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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/main.rs:132:20 [INFO] [stderr] | [INFO] [stderr] 132 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 133 | | if s.chars().last() != Some('_') { [INFO] [stderr] 134 | | s.push('_'); [INFO] [stderr] 135 | | } [INFO] [stderr] 136 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 132 | } else if s.chars().last() != Some('_') { [INFO] [stderr] 133 | s.push('_'); [INFO] [stderr] 134 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 70 [INFO] [stderr] --> src/code_builder.rs:39:1 [INFO] [stderr] | [INFO] [stderr] 39 | / pub fn build( [INFO] [stderr] 40 | | writer: &mut W, [INFO] [stderr] 41 | | mut expr_index: usize, [INFO] [stderr] 42 | | evaluates_to_value: bool, [INFO] [stderr] ... | [INFO] [stderr] 1636 | | } [INFO] [stderr] 1637 | | } [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: this function has too many arguments (11/7) [INFO] [stderr] --> src/code_builder.rs:39:1 [INFO] [stderr] | [INFO] [stderr] 39 | / pub fn build( [INFO] [stderr] 40 | | writer: &mut W, [INFO] [stderr] 41 | | mut expr_index: usize, [INFO] [stderr] 42 | | evaluates_to_value: bool, [INFO] [stderr] ... | [INFO] [stderr] 1636 | | } [INFO] [stderr] 1637 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 70 [INFO] [stderr] --> src/code_builder.rs:39:1 [INFO] [stderr] | [INFO] [stderr] 39 | / pub fn build( [INFO] [stderr] 40 | | writer: &mut W, [INFO] [stderr] 41 | | mut expr_index: usize, [INFO] [stderr] 42 | | evaluates_to_value: bool, [INFO] [stderr] ... | [INFO] [stderr] 1636 | | } [INFO] [stderr] 1637 | | } [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: this function has too many arguments (11/7) [INFO] [stderr] --> src/code_builder.rs:39:1 [INFO] [stderr] | [INFO] [stderr] 39 | / pub fn build( [INFO] [stderr] 40 | | writer: &mut W, [INFO] [stderr] 41 | | mut expr_index: usize, [INFO] [stderr] 42 | | evaluates_to_value: bool, [INFO] [stderr] ... | [INFO] [stderr] 1636 | | } [INFO] [stderr] 1637 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/code_builder.rs:59:25 [INFO] [stderr] | [INFO] [stderr] 59 | let mut code = code.into_iter(); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/code_builder.rs:160:21 [INFO] [stderr] | [INFO] [stderr] 160 | / if let &Some(ref dst_var) = dst_var { [INFO] [stderr] 161 | | let (_, expr) = expr_builder.pop().unwrap(); [INFO] [stderr] 162 | | writeln!(writer, "{}{} = {};", indentation, dst_var, expr).unwrap(); [INFO] [stderr] 163 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 160 | if let Some(ref dst_var) = *dst_var { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/code_builder.rs:240:25 [INFO] [stderr] | [INFO] [stderr] 240 | / if let &Some(ref dst_var) = dst_var { [INFO] [stderr] 241 | | let (_, expr) = expr_builder.pop().unwrap(); [INFO] [stderr] 242 | | writeln!(writer, "{}{} = {};", indentation, dst_var, expr).unwrap(); [INFO] [stderr] 243 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 240 | if let Some(ref dst_var) = *dst_var { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/code_builder.rs:59:25 [INFO] [stderr] | [INFO] [stderr] 59 | let mut code = code.into_iter(); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/code_builder.rs:160:21 [INFO] [stderr] | [INFO] [stderr] 160 | / if let &Some(ref dst_var) = dst_var { [INFO] [stderr] 161 | | let (_, expr) = expr_builder.pop().unwrap(); [INFO] [stderr] 162 | | writeln!(writer, "{}{} = {};", indentation, dst_var, expr).unwrap(); [INFO] [stderr] 163 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 160 | if let Some(ref dst_var) = *dst_var { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/code_builder.rs:240:25 [INFO] [stderr] | [INFO] [stderr] 240 | / if let &Some(ref dst_var) = dst_var { [INFO] [stderr] 241 | | let (_, expr) = expr_builder.pop().unwrap(); [INFO] [stderr] 242 | | writeln!(writer, "{}{} = {};", indentation, dst_var, expr).unwrap(); [INFO] [stderr] 243 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 240 | if let Some(ref dst_var) = *dst_var { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/reorder_analysis.rs:78:21 [INFO] [stderr] | [INFO] [stderr] 78 | stack_frames.get(last - relative_depth as usize).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `stack_frames[last - relative_depth as usize]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/reorder_analysis.rs:95:21 [INFO] [stderr] | [INFO] [stderr] 95 | stack_frames.get(last - relative_depth as usize).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `stack_frames[last - relative_depth as usize]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/reorder_analysis.rs:78:21 [INFO] [stderr] | [INFO] [stderr] 78 | stack_frames.get(last - relative_depth as usize).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `stack_frames[last - relative_depth as usize]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/reorder_analysis.rs:95:21 [INFO] [stderr] | [INFO] [stderr] 95 | stack_frames.get(last - relative_depth as usize).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `stack_frames[last - relative_depth as usize]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you should use the `ends_with` method [INFO] [stderr] --> src/main.rs:123:16 [INFO] [stderr] | [INFO] [stderr] 123 | if s.chars().last() != Some('_') { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: like this: `!s.ends_with('_')` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::chars_last_cmp)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#chars_last_cmp [INFO] [stderr] [INFO] [stderr] warning: you should use the `ends_with` method [INFO] [stderr] --> src/main.rs:133:20 [INFO] [stderr] | [INFO] [stderr] 133 | if s.chars().last() != Some('_') { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: like this: `!s.ends_with('_')` [INFO] [stderr] warning: you should use the `ends_with` method [INFO] [stderr] --> src/main.rs:123:16 [INFO] [stderr] | [INFO] [stderr] 123 | if s.chars().last() != Some('_') { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: like this: `!s.ends_with('_')` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::chars_last_cmp)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#chars_last_cmp [INFO] [stderr] [INFO] [stderr] warning: you should use the `ends_with` method [INFO] [stderr] --> src/main.rs:133:20 [INFO] [stderr] | [INFO] [stderr] 133 | if s.chars().last() != Some('_') { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: like this: `!s.ends_with('_')` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#chars_last_cmp [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 84 [INFO] [stderr] --> src/main.rs:162:1 [INFO] [stderr] | [INFO] [stderr] 162 | / fn main() { [INFO] [stderr] 163 | | let opt = Opt::from_args(); [INFO] [stderr] 164 | | let input = opt.input; [INFO] [stderr] 165 | | let output = opt.output.unwrap_or_else(|| input.with_extension("rs")); [INFO] [stderr] ... | [INFO] [stderr] 787 | | writeln!(writer, "}}").unwrap(); [INFO] [stderr] 788 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#chars_last_cmp [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 84 [INFO] [stderr] --> src/main.rs:162:1 [INFO] [stderr] | [INFO] [stderr] 162 | / fn main() { [INFO] [stderr] 163 | | let opt = Opt::from_args(); [INFO] [stderr] 164 | | let input = opt.input; [INFO] [stderr] 165 | | let output = opt.output.unwrap_or_else(|| input.with_extension("rs")); [INFO] [stderr] ... | [INFO] [stderr] 787 | | writeln!(writer, "}}").unwrap(); [INFO] [stderr] 788 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [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] | [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 don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:191:13 [INFO] [stderr] | [INFO] [stderr] 191 | / if let &External::Function(ty_index) = import.external() { [INFO] [stderr] 192 | | let typ: &Type = &types.types()[ty_index as usize]; [INFO] [stderr] 193 | | let fn_type = match *typ { [INFO] [stderr] 194 | | Type::Function(ref t) => t, [INFO] [stderr] ... | [INFO] [stderr] 202 | | }); [INFO] [stderr] 203 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 191 | if let External::Function(ty_index) = *import.external() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match to destructure a single infallible pattern. Consider using `let` [INFO] [stderr] --> src/main.rs:193:17 [INFO] [stderr] | [INFO] [stderr] 193 | / let fn_type = match *typ { [INFO] [stderr] 194 | | Type::Function(ref t) => t, [INFO] [stderr] 195 | | }; [INFO] [stderr] | |__________________^ help: try this: `let Type::Function(fn_type) = *typ;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::infallible_destructuring_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#infallible_destructuring_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:266:13 [INFO] [stderr] | [INFO] [stderr] 266 | / if let &External::Global(ty) = import.external() { [INFO] [stderr] 267 | | let name = import.field().to_string(); [INFO] [stderr] 268 | | globals.push(Global { [INFO] [stderr] 269 | | is_mutable: ty.is_mutable(), [INFO] [stderr] ... | [INFO] [stderr] 274 | | }); [INFO] [stderr] 275 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 266 | if let External::Global(ty) = *import.external() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:303:9 [INFO] [stderr] | [INFO] [stderr] 303 | / if let &Internal::Global(global_index) = export.internal() { [INFO] [stderr] 304 | | let global = &mut globals[global_index as usize]; [INFO] [stderr] 305 | | global.name = export.field().to_string(); [INFO] [stderr] 306 | | global.is_pub = true; [INFO] [stderr] 307 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 303 | if let Internal::Global(global_index) = *export.internal() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:191:13 [INFO] [stderr] | [INFO] [stderr] 191 | / if let &External::Function(ty_index) = import.external() { [INFO] [stderr] 192 | | let typ: &Type = &types.types()[ty_index as usize]; [INFO] [stderr] 193 | | let fn_type = match *typ { [INFO] [stderr] 194 | | Type::Function(ref t) => t, [INFO] [stderr] ... | [INFO] [stderr] 202 | | }); [INFO] [stderr] 203 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 191 | if let External::Function(ty_index) = *import.external() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match to destructure a single infallible pattern. Consider using `let` [INFO] [stderr] --> src/main.rs:193:17 [INFO] [stderr] | [INFO] [stderr] 193 | / let fn_type = match *typ { [INFO] [stderr] 194 | | Type::Function(ref t) => t, [INFO] [stderr] 195 | | }; [INFO] [stderr] | |__________________^ help: try this: `let Type::Function(fn_type) = *typ;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::infallible_destructuring_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#infallible_destructuring_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:266:13 [INFO] [stderr] | [INFO] [stderr] 266 | / if let &External::Global(ty) = import.external() { [INFO] [stderr] 267 | | let name = import.field().to_string(); [INFO] [stderr] 268 | | globals.push(Global { [INFO] [stderr] 269 | | is_mutable: ty.is_mutable(), [INFO] [stderr] ... | [INFO] [stderr] 274 | | }); [INFO] [stderr] 275 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 266 | if let External::Global(ty) = *import.external() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:303:9 [INFO] [stderr] | [INFO] [stderr] 303 | / if let &Internal::Global(global_index) = export.internal() { [INFO] [stderr] 304 | | let global = &mut globals[global_index as usize]; [INFO] [stderr] 305 | | global.name = export.field().to_string(); [INFO] [stderr] 306 | | global.is_pub = true; [INFO] [stderr] 307 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 303 | if let Internal::Global(global_index) = *export.internal() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: some ranges overlap [INFO] [stderr] --> src/main.rs:536:29 [INFO] [stderr] | [INFO] [stderr] 536 | b'\0' => write!(writer, r#"\0"#).unwrap(), [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_overlapping_arm)] on by default [INFO] [stderr] note: overlaps with this [INFO] [stderr] --> src/main.rs:542:29 [INFO] [stderr] | [INFO] [stderr] 542 | 0x00...0x7F => { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_overlapping_arm [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:543:74 [INFO] [stderr] | [INFO] [stderr] 543 | write!(writer, "{}", std::char::from_u32(b as _).unwrap()).unwrap() [INFO] [stderr] | ^^^^^^ help: try: `u32::from(b)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:573:9 [INFO] [stderr] | [INFO] [stderr] 573 | / if let &Internal::Function(fn_index) = export.internal() { [INFO] [stderr] 574 | | let function = &functions[fn_index as usize]; [INFO] [stderr] 575 | | write!( [INFO] [stderr] 576 | | writer, [INFO] [stderr] ... | [INFO] [stderr] 597 | | writeln!(writer, " }}").unwrap(); [INFO] [stderr] 598 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 573 | if let Internal::Function(fn_index) = *export.internal() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: some ranges overlap [INFO] [stderr] --> src/main.rs:536:29 [INFO] [stderr] | [INFO] [stderr] 536 | b'\0' => write!(writer, r#"\0"#).unwrap(), [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_overlapping_arm)] on by default [INFO] [stderr] note: overlaps with this [INFO] [stderr] --> src/main.rs:542:29 [INFO] [stderr] | [INFO] [stderr] 542 | 0x00...0x7F => { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_overlapping_arm [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:543:74 [INFO] [stderr] | [INFO] [stderr] 543 | write!(writer, "{}", std::char::from_u32(b as _).unwrap()).unwrap() [INFO] [stderr] | ^^^^^^ help: try: `u32::from(b)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's keys [INFO] [stderr] --> src/main.rs:602:33 [INFO] [stderr] | [INFO] [stderr] 602 | for (&type_index, _) in &indirect_fns { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::for_kv_map)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 602 | for &type_index in indirect_fns.keys() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:573:9 [INFO] [stderr] | [INFO] [stderr] 573 | / if let &Internal::Function(fn_index) = export.internal() { [INFO] [stderr] 574 | | let function = &functions[fn_index as usize]; [INFO] [stderr] 575 | | write!( [INFO] [stderr] 576 | | writer, [INFO] [stderr] ... | [INFO] [stderr] 597 | | writeln!(writer, " }}").unwrap(); [INFO] [stderr] 598 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 573 | if let Internal::Function(fn_index) = *export.internal() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:640:9 [INFO] [stderr] | [INFO] [stderr] 640 | / if let &Internal::Function(fn_index) = export.internal() { [INFO] [stderr] 641 | | let function = &mut functions[fn_index as usize]; [INFO] [stderr] 642 | | if function.name == export.field() { [INFO] [stderr] 643 | | function.make_public = true; [INFO] [stderr] ... | [INFO] [stderr] 664 | | writeln!(writer, " }}").unwrap(); [INFO] [stderr] 665 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 640 | if let Internal::Function(fn_index) = *export.internal() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's keys [INFO] [stderr] --> src/main.rs:602:33 [INFO] [stderr] | [INFO] [stderr] 602 | for (&type_index, _) in &indirect_fns { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::for_kv_map)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 602 | for &type_index in indirect_fns.keys() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match to destructure a single infallible pattern. Consider using `let` [INFO] [stderr] --> src/main.rs:671:9 [INFO] [stderr] | [INFO] [stderr] 671 | / let fn_type = match *typ { [INFO] [stderr] 672 | | Type::Function(ref t) => t, [INFO] [stderr] 673 | | }; [INFO] [stderr] | |__________^ help: try this: `let Type::Function(fn_type) = *typ;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#infallible_destructuring_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:640:9 [INFO] [stderr] | [INFO] [stderr] 640 | / if let &Internal::Function(fn_index) = export.internal() { [INFO] [stderr] 641 | | let function = &mut functions[fn_index as usize]; [INFO] [stderr] 642 | | if function.name == export.field() { [INFO] [stderr] 643 | | function.make_public = true; [INFO] [stderr] ... | [INFO] [stderr] 664 | | writeln!(writer, " }}").unwrap(); [INFO] [stderr] 665 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 640 | if let Internal::Function(fn_index) = *export.internal() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:701:46 [INFO] [stderr] | [INFO] [stderr] 701 | let decimals = if ty.starts_with("f") { ".0" } else { "" }; [INFO] [stderr] | ^^^ help: try using a char instead: `'f'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match to destructure a single infallible pattern. Consider using `let` [INFO] [stderr] --> src/main.rs:671:9 [INFO] [stderr] | [INFO] [stderr] 671 | / let fn_type = match *typ { [INFO] [stderr] 672 | | Type::Function(ref t) => t, [INFO] [stderr] 673 | | }; [INFO] [stderr] | |__________^ help: try this: `let Type::Function(fn_type) = *typ;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#infallible_destructuring_match [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:701:46 [INFO] [stderr] | [INFO] [stderr] 701 | let decimals = if ty.starts_with("f") { ".0" } else { "" }; [INFO] [stderr] | ^^^ help: try using a char instead: `'f'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 11.63s [INFO] running `"docker" "inspect" "10ae9b60ab1da3cdf3476bbe478654313921e6a896d9650d93a9aab9f8e0eb8c"` [INFO] running `"docker" "rm" "-f" "10ae9b60ab1da3cdf3476bbe478654313921e6a896d9650d93a9aab9f8e0eb8c"` [INFO] [stdout] 10ae9b60ab1da3cdf3476bbe478654313921e6a896d9650d93a9aab9f8e0eb8c