[INFO] crate json_flex 0.3.2 is already in cache [INFO] extracting crate json_flex 0.3.2 into work/ex/clippy-test-run/sources/stable/reg/json_flex/0.3.2 [INFO] extracting crate json_flex 0.3.2 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/json_flex/0.3.2 [INFO] validating manifest of json_flex-0.3.2 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 json_flex-0.3.2 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 json_flex-0.3.2 [INFO] finished frobbing json_flex-0.3.2 [INFO] frobbed toml for json_flex-0.3.2 written to work/ex/clippy-test-run/sources/stable/reg/json_flex/0.3.2/Cargo.toml [INFO] started frobbing json_flex-0.3.2 [INFO] finished frobbing json_flex-0.3.2 [INFO] frobbed toml for json_flex-0.3.2 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/json_flex/0.3.2/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [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 json_flex-0.3.2 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/json_flex/0.3.2:/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] e81b0598ccb70ff4ffad58d487c6552ebeaacec563c80da462e1ecea298521bd [INFO] running `"docker" "start" "-a" "e81b0598ccb70ff4ffad58d487c6552ebeaacec563c80da462e1ecea298521bd"` [INFO] [stderr] Checking json_flex v0.3.2 (/opt/crater/workdir) [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/json_flex.rs:392:9 [INFO] [stderr] | [INFO] [stderr] 392 | / if DEBUG { [INFO] [stderr] 393 | | if c != ' ' { [INFO] [stderr] 394 | | println!("\x1b[32mc: {}\t -- l: {}\t -- c: {:?}\t -- ac: {:?}\t -- dc: {:?}\t -- \ [INFO] [stderr] 395 | | s: {}\t -- n: {} -- lac: {} -- t: {} -- f: {} -- 0: {}\x1b[0m", [INFO] [stderr] ... | [INFO] [stderr] 407 | | } [INFO] [stderr] 408 | | } [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] 392 | if DEBUG && c != ' ' { [INFO] [stderr] 393 | println!("\x1b[32mc: {}\t -- l: {}\t -- c: {:?}\t -- ac: {:?}\t -- dc: {:?}\t -- \ [INFO] [stderr] 394 | s: {}\t -- n: {} -- lac: {} -- t: {} -- f: {} -- 0: {}\x1b[0m", [INFO] [stderr] 395 | body[pos], [INFO] [stderr] 396 | last_chain, [INFO] [stderr] 397 | chain, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/json_flex.rs:1652:9 [INFO] [stderr] | [INFO] [stderr] 1652 | / if DEBUG { [INFO] [stderr] 1653 | | if c != ' ' { [INFO] [stderr] 1654 | | println!("\x1b[35mc: {}\t -- l: {}\t -- c: {:?}\t -- ac: {:?}\t -- dc: {:?}\t -- \ [INFO] [stderr] 1655 | | s: {}\t -- n: {} -- lac: {} -- t: {} -- f: {} -- 0: {}\x1b[0m", [INFO] [stderr] ... | [INFO] [stderr] 1667 | | } [INFO] [stderr] 1668 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [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] 1652 | if DEBUG && c != ' ' { [INFO] [stderr] 1653 | println!("\x1b[35mc: {}\t -- l: {}\t -- c: {:?}\t -- ac: {:?}\t -- dc: {:?}\t -- \ [INFO] [stderr] 1654 | s: {}\t -- n: {} -- lac: {} -- t: {} -- f: {} -- 0: {}\x1b[0m", [INFO] [stderr] 1655 | body[pos], [INFO] [stderr] 1656 | last_chain, [INFO] [stderr] 1657 | chain, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/json_flex.rs:21:24 [INFO] [stderr] | [INFO] [stderr] 21 | pub fn into_string(&self) -> Option<&String> { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:22:9 [INFO] [stderr] | [INFO] [stderr] 22 | / match self { [INFO] [stderr] 23 | | &JFObject::String(ref v) => Some(v), [INFO] [stderr] 24 | | _ => None, [INFO] [stderr] 25 | | } [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] 22 | match *self { [INFO] [stderr] 23 | JFObject::String(ref v) => Some(v), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/json_flex.rs:27:21 [INFO] [stderr] | [INFO] [stderr] 27 | pub fn into_i64(&self) -> Option<&i64> { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:28:9 [INFO] [stderr] | [INFO] [stderr] 28 | / match self { [INFO] [stderr] 29 | | &JFObject::Integer(ref v) => Some(v), [INFO] [stderr] 30 | | _ => None, [INFO] [stderr] 31 | | } [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] 28 | match *self { [INFO] [stderr] 29 | JFObject::Integer(ref v) => Some(v), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/json_flex.rs:33:21 [INFO] [stderr] | [INFO] [stderr] 33 | pub fn into_f64(&self) -> Option<&f64> { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | / match self { [INFO] [stderr] 35 | | &JFObject::Float(ref v) => Some(v), [INFO] [stderr] 36 | | _ => None, [INFO] [stderr] 37 | | } [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] 34 | match *self { [INFO] [stderr] 35 | JFObject::Float(ref v) => Some(v), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/json_flex.rs:39:25 [INFO] [stderr] | [INFO] [stderr] 39 | pub fn into_hashmap(&self) -> Option<&HashMap> { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | / match self { [INFO] [stderr] 41 | | &JFObject::Dictionary(ref v) => Some(v), [INFO] [stderr] 42 | | _ => None, [INFO] [stderr] 43 | | } [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] 40 | match *self { [INFO] [stderr] 41 | JFObject::Dictionary(ref v) => Some(v), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/json_flex.rs:45:21 [INFO] [stderr] | [INFO] [stderr] 45 | pub fn into_vec(&self) -> Option<&Vec> { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 46 | / match self { [INFO] [stderr] 47 | | &JFObject::Array(ref v) => Some(v), [INFO] [stderr] 48 | | _ => None, [INFO] [stderr] 49 | | } [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] 46 | match *self { [INFO] [stderr] 47 | JFObject::Array(ref v) => Some(v), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:52:9 [INFO] [stderr] | [INFO] [stderr] 52 | / match self { [INFO] [stderr] 53 | | &JFObject::Null => true, [INFO] [stderr] 54 | | _ => false, [INFO] [stderr] 55 | | } [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] 52 | match *self { [INFO] [stderr] 53 | JFObject::Null => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | / match self { [INFO] [stderr] 59 | | &JFObject::True => true, [INFO] [stderr] 60 | | _ => false, [INFO] [stderr] 61 | | } [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] 58 | match *self { [INFO] [stderr] 59 | JFObject::True => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:64:9 [INFO] [stderr] | [INFO] [stderr] 64 | / match self { [INFO] [stderr] 65 | | &JFObject::False => true, [INFO] [stderr] 66 | | _ => false, [INFO] [stderr] 67 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 64 | match *self { [INFO] [stderr] 65 | JFObject::False => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:70:9 [INFO] [stderr] | [INFO] [stderr] 70 | / match self { [INFO] [stderr] 71 | | &JFObject::Array(_) => true, [INFO] [stderr] 72 | | _ => false, [INFO] [stderr] 73 | | } [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] 70 | match *self { [INFO] [stderr] 71 | JFObject::Array(_) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:76:9 [INFO] [stderr] | [INFO] [stderr] 76 | / match self { [INFO] [stderr] 77 | | &JFObject::Dictionary(_) => true, [INFO] [stderr] 78 | | _ => false, [INFO] [stderr] 79 | | } [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] 76 | match *self { [INFO] [stderr] 77 | JFObject::Dictionary(_) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:82:9 [INFO] [stderr] | [INFO] [stderr] 82 | / match self { [INFO] [stderr] 83 | | &JFObject::String(_) => true, [INFO] [stderr] 84 | | _ => false, [INFO] [stderr] 85 | | } [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] 82 | match *self { [INFO] [stderr] 83 | JFObject::String(_) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:88:9 [INFO] [stderr] | [INFO] [stderr] 88 | / match self { [INFO] [stderr] 89 | | &JFObject::Integer(_) => true, [INFO] [stderr] 90 | | _ => false, [INFO] [stderr] 91 | | } [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] 88 | match *self { [INFO] [stderr] 89 | JFObject::Integer(_) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:94:9 [INFO] [stderr] | [INFO] [stderr] 94 | / match self { [INFO] [stderr] 95 | | &JFObject::Float(_) => true, [INFO] [stderr] 96 | | _ => false, [INFO] [stderr] 97 | | } [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] 94 | match *self { [INFO] [stderr] 95 | JFObject::Float(_) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:102:9 [INFO] [stderr] | [INFO] [stderr] 102 | / match self { [INFO] [stderr] 103 | | &JFObject::String(ref v) => v, [INFO] [stderr] 104 | | _ => panic!(), [INFO] [stderr] 105 | | } [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] 102 | match *self { [INFO] [stderr] 103 | JFObject::String(ref v) => v, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:108:9 [INFO] [stderr] | [INFO] [stderr] 108 | / match self { [INFO] [stderr] 109 | | &JFObject::Integer(ref v) => v, [INFO] [stderr] 110 | | _ => panic!(), [INFO] [stderr] 111 | | } [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] 108 | match *self { [INFO] [stderr] 109 | JFObject::Integer(ref v) => v, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:114:9 [INFO] [stderr] | [INFO] [stderr] 114 | / match self { [INFO] [stderr] 115 | | &JFObject::Float(ref v) => v, [INFO] [stderr] 116 | | _ => panic!(), [INFO] [stderr] 117 | | } [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] 114 | match *self { [INFO] [stderr] 115 | JFObject::Float(ref v) => v, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:120:9 [INFO] [stderr] | [INFO] [stderr] 120 | / match self { [INFO] [stderr] 121 | | &JFObject::Dictionary(ref v) => v, [INFO] [stderr] 122 | | _ => panic!(), [INFO] [stderr] 123 | | } [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] 120 | match *self { [INFO] [stderr] 121 | JFObject::Dictionary(ref v) => v, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:126:9 [INFO] [stderr] | [INFO] [stderr] 126 | / match self { [INFO] [stderr] 127 | | &JFObject::Array(ref v) => v, [INFO] [stderr] 128 | | _ => panic!(), [INFO] [stderr] 129 | | } [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] 126 | match *self { [INFO] [stderr] 127 | JFObject::Array(ref v) => v, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:133:9 [INFO] [stderr] | [INFO] [stderr] 133 | / match self { [INFO] [stderr] 134 | | &JFObject::String(ref v) => format!("\"{}\"", v), [INFO] [stderr] 135 | | &JFObject::Integer(ref v) => v.to_string(), [INFO] [stderr] 136 | | &JFObject::Float(ref v) => v.to_string(), [INFO] [stderr] ... | [INFO] [stderr] 166 | | &JFObject::True => "true".to_owned(), [INFO] [stderr] 167 | | } [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] 133 | match *self { [INFO] [stderr] 134 | JFObject::String(ref v) => format!("\"{}\"", v), [INFO] [stderr] 135 | JFObject::Integer(ref v) => v.to_string(), [INFO] [stderr] 136 | JFObject::Float(ref v) => v.to_string(), [INFO] [stderr] 137 | JFObject::Dictionary(ref v) => { [INFO] [stderr] 138 | let mut string: String = "".to_owned(); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/json_flex.rs:220:5 [INFO] [stderr] | [INFO] [stderr] 220 | / fn index<'a>(&'a self, id: usize) -> &'a Self::Output { [INFO] [stderr] 221 | | self.into_vec().unwrap().get(id).unwrap() [INFO] [stderr] 222 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/json_flex.rs:227:5 [INFO] [stderr] | [INFO] [stderr] 227 | / fn index<'a>(&'a self, id: String) -> &'a Self::Output { [INFO] [stderr] 228 | | self.into_hashmap().unwrap().get(&id).unwrap() [INFO] [stderr] 229 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/json_flex.rs:247:20 [INFO] [stderr] | [INFO] [stderr] 247 | func: fn(&mut JFObject, [INFO] [stderr] | ____________________^ [INFO] [stderr] 248 | | Option, [INFO] [stderr] 249 | | Vec, [INFO] [stderr] 250 | | Vec, [INFO] [stderr] 251 | | i64, [INFO] [stderr] 252 | | i64, [INFO] [stderr] 253 | | char) [INFO] [stderr] | |___________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (10/7) [INFO] [stderr] --> src/json_flex.rs:240:1 [INFO] [stderr] | [INFO] [stderr] 240 | / fn recursive(v: &mut JFObject, [INFO] [stderr] 241 | | a_chain: Vec, [INFO] [stderr] 242 | | d_chain: Vec, [INFO] [stderr] 243 | | mut a_nest: i64, [INFO] [stderr] ... | [INFO] [stderr] 341 | | is_find [INFO] [stderr] 342 | | } [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: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/json_flex.rs:273:22 [INFO] [stderr] | [INFO] [stderr] 273 | let i = *a_chain.get(a_nest as usize).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `a_chain[a_nest 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] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/json_flex.rs:305:42 [INFO] [stderr] | [INFO] [stderr] 305 | let vvv = vv.get_mut(key.clone()); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 305 | let vvv = vv.get_mut(&(*key).clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 305 | let vvv = vv.get_mut(&std::string::String::clone(key)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 57 [INFO] [stderr] --> src/json_flex.rs:344:1 [INFO] [stderr] | [INFO] [stderr] 344 | / pub fn decode(text: String) -> Box { [INFO] [stderr] 345 | | [INFO] [stderr] 346 | | let mut ret = Box::new(JFObject::Null); [INFO] [stderr] 347 | | [INFO] [stderr] ... | [INFO] [stderr] 1680 | | ret [INFO] [stderr] 1681 | | } [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 if statement can be collapsed [INFO] [stderr] --> src/json_flex.rs:392:9 [INFO] [stderr] | [INFO] [stderr] 392 | / if DEBUG { [INFO] [stderr] 393 | | if c != ' ' { [INFO] [stderr] 394 | | println!("\x1b[32mc: {}\t -- l: {}\t -- c: {:?}\t -- ac: {:?}\t -- dc: {:?}\t -- \ [INFO] [stderr] 395 | | s: {}\t -- n: {} -- lac: {} -- t: {} -- f: {} -- 0: {}\x1b[0m", [INFO] [stderr] ... | [INFO] [stderr] 407 | | } [INFO] [stderr] 408 | | } [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] 392 | if DEBUG && c != ' ' { [INFO] [stderr] 393 | println!("\x1b[32mc: {}\t -- l: {}\t -- c: {:?}\t -- ac: {:?}\t -- dc: {:?}\t -- \ [INFO] [stderr] 394 | s: {}\t -- n: {} -- lac: {} -- t: {} -- f: {} -- 0: {}\x1b[0m", [INFO] [stderr] 395 | body[pos], [INFO] [stderr] 396 | last_chain, [INFO] [stderr] 397 | chain, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/json_flex.rs:1652:9 [INFO] [stderr] | [INFO] [stderr] 1652 | / if DEBUG { [INFO] [stderr] 1653 | | if c != ' ' { [INFO] [stderr] 1654 | | println!("\x1b[35mc: {}\t -- l: {}\t -- c: {:?}\t -- ac: {:?}\t -- dc: {:?}\t -- \ [INFO] [stderr] 1655 | | s: {}\t -- n: {} -- lac: {} -- t: {} -- f: {} -- 0: {}\x1b[0m", [INFO] [stderr] ... | [INFO] [stderr] 1667 | | } [INFO] [stderr] 1668 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [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] 1652 | if DEBUG && c != ' ' { [INFO] [stderr] 1653 | println!("\x1b[35mc: {}\t -- l: {}\t -- c: {:?}\t -- ac: {:?}\t -- dc: {:?}\t -- \ [INFO] [stderr] 1654 | s: {}\t -- n: {} -- lac: {} -- t: {} -- f: {} -- 0: {}\x1b[0m", [INFO] [stderr] 1655 | body[pos], [INFO] [stderr] 1656 | last_chain, [INFO] [stderr] 1657 | chain, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::File` [INFO] [stderr] --> src/test.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::fs::File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::prelude::*` [INFO] [stderr] --> src/test.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::io::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/json_flex.rs:471:36 [INFO] [stderr] | [INFO] [stderr] 471 | last_active_char = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [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/json_flex.rs:497:29 [INFO] [stderr] | [INFO] [stderr] 497 | / match *v { [INFO] [stderr] 498 | | JFObject::Array(ref mut vv) => { [INFO] [stderr] 499 | | vv.push(JFObject::True); [INFO] [stderr] 500 | | } [INFO] [stderr] 501 | | _ => {} [INFO] [stderr] 502 | | } [INFO] [stderr] | |_____________________________^ [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] help: try this [INFO] [stderr] | [INFO] [stderr] 497 | if let JFObject::Array(ref mut vv) = *v { [INFO] [stderr] 498 | vv.push(JFObject::True); [INFO] [stderr] 499 | } [INFO] [stderr] | [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/json_flex.rs:540:29 [INFO] [stderr] | [INFO] [stderr] 540 | / match *v { [INFO] [stderr] 541 | | JFObject::Array(ref mut vv) => { [INFO] [stderr] 542 | | vv.push(JFObject::False); [INFO] [stderr] 543 | | } [INFO] [stderr] 544 | | _ => {} [INFO] [stderr] 545 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 540 | if let JFObject::Array(ref mut vv) = *v { [INFO] [stderr] 541 | vv.push(JFObject::False); [INFO] [stderr] 542 | } [INFO] [stderr] | [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/json_flex.rs:584:29 [INFO] [stderr] | [INFO] [stderr] 584 | / match *v { [INFO] [stderr] 585 | | JFObject::Array(ref mut vv) => { [INFO] [stderr] 586 | | vv.push(JFObject::Null); [INFO] [stderr] 587 | | } [INFO] [stderr] 588 | | _ => {} [INFO] [stderr] 589 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 584 | if let JFObject::Array(ref mut vv) = *v { [INFO] [stderr] 585 | vv.push(JFObject::Null); [INFO] [stderr] 586 | } [INFO] [stderr] | [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/json_flex.rs:623:29 [INFO] [stderr] | [INFO] [stderr] 623 | / match *v { [INFO] [stderr] 624 | | JFObject::Array(ref mut vv) => { [INFO] [stderr] 625 | | [INFO] [stderr] 626 | | let mut new_num = value.unwrap().clone(); [INFO] [stderr] ... | [INFO] [stderr] 635 | | _ => {} [INFO] [stderr] 636 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 623 | if let JFObject::Array(ref mut vv) = *v { [INFO] [stderr] 624 | [INFO] [stderr] 625 | let mut new_num = value.unwrap().clone(); [INFO] [stderr] 626 | new_num.pop().unwrap(); [INFO] [stderr] 627 | new_num = new_num.trim().to_string(); [INFO] [stderr] 628 | [INFO] [stderr] ... [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/json_flex.rs:673:33 [INFO] [stderr] | [INFO] [stderr] 673 | / match *v { [INFO] [stderr] 674 | | JFObject::Array(ref mut vv) => { [INFO] [stderr] 675 | | vv.push(JFObject::Null); [INFO] [stderr] 676 | | } [INFO] [stderr] 677 | | _ => {} [INFO] [stderr] 678 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 673 | if let JFObject::Array(ref mut vv) = *v { [INFO] [stderr] 674 | vv.push(JFObject::Null); [INFO] [stderr] 675 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/json_flex.rs:701:36 [INFO] [stderr] | [INFO] [stderr] 701 | last_active_char = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/json_flex.rs:804:36 [INFO] [stderr] | [INFO] [stderr] 804 | last_active_char = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [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/json_flex.rs:838:33 [INFO] [stderr] | [INFO] [stderr] 838 | / match *v { [INFO] [stderr] 839 | | JFObject::Dictionary(ref mut vv) => { [INFO] [stderr] 840 | | let key = d_chain.last().unwrap().clone(); [INFO] [stderr] 841 | | vv.insert(key, JFObject::True); [INFO] [stderr] 842 | | } [INFO] [stderr] 843 | | _ => {} [INFO] [stderr] 844 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 838 | if let JFObject::Dictionary(ref mut vv) = *v { [INFO] [stderr] 839 | let key = d_chain.last().unwrap().clone(); [INFO] [stderr] 840 | vv.insert(key, JFObject::True); [INFO] [stderr] 841 | } [INFO] [stderr] | [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/json_flex.rs:887:33 [INFO] [stderr] | [INFO] [stderr] 887 | / match *v { [INFO] [stderr] 888 | | JFObject::Dictionary(ref mut vv) => { [INFO] [stderr] 889 | | let key = d_chain.last().unwrap().clone(); [INFO] [stderr] 890 | | vv.insert(key, JFObject::False); [INFO] [stderr] 891 | | } [INFO] [stderr] 892 | | _ => {} [INFO] [stderr] 893 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 887 | if let JFObject::Dictionary(ref mut vv) = *v { [INFO] [stderr] 888 | let key = d_chain.last().unwrap().clone(); [INFO] [stderr] 889 | vv.insert(key, JFObject::False); [INFO] [stderr] 890 | } [INFO] [stderr] | [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/json_flex.rs:938:33 [INFO] [stderr] | [INFO] [stderr] 938 | / match *v { [INFO] [stderr] 939 | | JFObject::Dictionary(ref mut vv) => { [INFO] [stderr] 940 | | let key = d_chain.last().unwrap().clone(); [INFO] [stderr] 941 | | vv.insert(key, JFObject::Null); [INFO] [stderr] 942 | | } [INFO] [stderr] 943 | | _ => {} [INFO] [stderr] 944 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 938 | if let JFObject::Dictionary(ref mut vv) = *v { [INFO] [stderr] 939 | let key = d_chain.last().unwrap().clone(); [INFO] [stderr] 940 | vv.insert(key, JFObject::Null); [INFO] [stderr] 941 | } [INFO] [stderr] | [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/json_flex.rs:981:33 [INFO] [stderr] | [INFO] [stderr] 981 | / match *v { [INFO] [stderr] 982 | | JFObject::Dictionary(ref mut vv) => { [INFO] [stderr] 983 | | let key = d_chain.last().unwrap().clone(); [INFO] [stderr] 984 | | let mut value = value.unwrap(); [INFO] [stderr] ... | [INFO] [stderr] 992 | | _ => {} [INFO] [stderr] 993 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 981 | if let JFObject::Dictionary(ref mut vv) = *v { [INFO] [stderr] 982 | let key = d_chain.last().unwrap().clone(); [INFO] [stderr] 983 | let mut value = value.unwrap(); [INFO] [stderr] 984 | value.pop().unwrap(); [INFO] [stderr] 985 | value = value.trim().to_string(); [INFO] [stderr] 986 | match value.find('.') { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/json_flex.rs:1025:36 [INFO] [stderr] | [INFO] [stderr] 1025 | last_active_char = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/json_flex.rs:1051:36 [INFO] [stderr] | [INFO] [stderr] 1051 | last_active_char = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [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/json_flex.rs:1255:33 [INFO] [stderr] | [INFO] [stderr] 1255 | / match *v { [INFO] [stderr] 1256 | | JFObject::Array(ref mut vv) => { [INFO] [stderr] 1257 | | vv.push(JFObject::Null); [INFO] [stderr] 1258 | | } [INFO] [stderr] 1259 | | _ => {} [INFO] [stderr] 1260 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1255 | if let JFObject::Array(ref mut vv) = *v { [INFO] [stderr] 1256 | vv.push(JFObject::Null); [INFO] [stderr] 1257 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/json_flex.rs:1365:36 [INFO] [stderr] | [INFO] [stderr] 1365 | last_active_char = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [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/json_flex.rs:1393:37 [INFO] [stderr] | [INFO] [stderr] 1393 | / match *v { [INFO] [stderr] 1394 | | JFObject::Dictionary(ref mut vv) => { [INFO] [stderr] 1395 | | let key = d_chain.last().unwrap().clone(); [INFO] [stderr] 1396 | | let mut value = value.unwrap(); [INFO] [stderr] ... | [INFO] [stderr] 1400 | | _ => {} [INFO] [stderr] 1401 | | } [INFO] [stderr] | |_____________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1393 | if let JFObject::Dictionary(ref mut vv) = *v { [INFO] [stderr] 1394 | let key = d_chain.last().unwrap().clone(); [INFO] [stderr] 1395 | let mut value = value.unwrap(); [INFO] [stderr] 1396 | value.pop().unwrap(); [INFO] [stderr] 1397 | vv.insert(key, JFObject::String(value.clone())); [INFO] [stderr] 1398 | } [INFO] [stderr] | [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/json_flex.rs:1435:41 [INFO] [stderr] | [INFO] [stderr] 1435 | / match *v { [INFO] [stderr] 1436 | | JFObject::Array(ref mut vv) => { [INFO] [stderr] 1437 | | vv.push(JFObject::String(value.unwrap() [INFO] [stderr] 1438 | | .clone())); [INFO] [stderr] 1439 | | } [INFO] [stderr] 1440 | | _ => {} [INFO] [stderr] 1441 | | } [INFO] [stderr] | |_________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1435 | if let JFObject::Array(ref mut vv) = *v { [INFO] [stderr] 1436 | vv.push(JFObject::String(value.unwrap() [INFO] [stderr] 1437 | .clone())); [INFO] [stderr] 1438 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/json_flex.rs:1467:36 [INFO] [stderr] | [INFO] [stderr] 1467 | last_active_char = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [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/json_flex.rs:1490:37 [INFO] [stderr] | [INFO] [stderr] 1490 | / match *v { [INFO] [stderr] 1491 | | JFObject::Dictionary(ref mut vv) => { [INFO] [stderr] 1492 | | let key = d_chain.last().unwrap().clone(); [INFO] [stderr] 1493 | | let mut value = value.unwrap(); [INFO] [stderr] ... | [INFO] [stderr] 1497 | | _ => {} [INFO] [stderr] 1498 | | } [INFO] [stderr] | |_____________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1490 | if let JFObject::Dictionary(ref mut vv) = *v { [INFO] [stderr] 1491 | let key = d_chain.last().unwrap().clone(); [INFO] [stderr] 1492 | let mut value = value.unwrap(); [INFO] [stderr] 1493 | value.pop().unwrap(); [INFO] [stderr] 1494 | vv.insert(key, JFObject::String(value.clone())); [INFO] [stderr] 1495 | } [INFO] [stderr] | [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/json_flex.rs:1533:41 [INFO] [stderr] | [INFO] [stderr] 1533 | / match *v { [INFO] [stderr] 1534 | | JFObject::Array(ref mut vv) => { [INFO] [stderr] 1535 | | vv.push(JFObject::String(value.unwrap() [INFO] [stderr] 1536 | | .clone())); [INFO] [stderr] 1537 | | } [INFO] [stderr] 1538 | | _ => {} [INFO] [stderr] 1539 | | } [INFO] [stderr] | |_________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1533 | if let JFObject::Array(ref mut vv) = *v { [INFO] [stderr] 1534 | vv.push(JFObject::String(value.unwrap() [INFO] [stderr] 1535 | .clone())); [INFO] [stderr] 1536 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/json_flex.rs:1563:36 [INFO] [stderr] | [INFO] [stderr] 1563 | last_active_char = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/json_flex.rs:1579:36 [INFO] [stderr] | [INFO] [stderr] 1579 | last_active_char = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/json_flex.rs:1595:36 [INFO] [stderr] | [INFO] [stderr] 1595 | last_active_char = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/json_flex.rs:1613:36 [INFO] [stderr] | [INFO] [stderr] 1613 | last_active_char = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/json_flex.rs:1629:36 [INFO] [stderr] | [INFO] [stderr] 1629 | last_active_char = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/json_flex.rs:1645:36 [INFO] [stderr] | [INFO] [stderr] 1645 | last_active_char = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/json_flex.rs:1675:18 [INFO] [stderr] | [INFO] [stderr] 1675 | last_c = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `json_flex`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/json_flex.rs:21:24 [INFO] [stderr] | [INFO] [stderr] 21 | pub fn into_string(&self) -> Option<&String> { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:22:9 [INFO] [stderr] | [INFO] [stderr] 22 | / match self { [INFO] [stderr] 23 | | &JFObject::String(ref v) => Some(v), [INFO] [stderr] 24 | | _ => None, [INFO] [stderr] 25 | | } [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] 22 | match *self { [INFO] [stderr] 23 | JFObject::String(ref v) => Some(v), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/json_flex.rs:27:21 [INFO] [stderr] | [INFO] [stderr] 27 | pub fn into_i64(&self) -> Option<&i64> { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:28:9 [INFO] [stderr] | [INFO] [stderr] 28 | / match self { [INFO] [stderr] 29 | | &JFObject::Integer(ref v) => Some(v), [INFO] [stderr] 30 | | _ => None, [INFO] [stderr] 31 | | } [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] 28 | match *self { [INFO] [stderr] 29 | JFObject::Integer(ref v) => Some(v), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/json_flex.rs:33:21 [INFO] [stderr] | [INFO] [stderr] 33 | pub fn into_f64(&self) -> Option<&f64> { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | / match self { [INFO] [stderr] 35 | | &JFObject::Float(ref v) => Some(v), [INFO] [stderr] 36 | | _ => None, [INFO] [stderr] 37 | | } [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] 34 | match *self { [INFO] [stderr] 35 | JFObject::Float(ref v) => Some(v), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/json_flex.rs:39:25 [INFO] [stderr] | [INFO] [stderr] 39 | pub fn into_hashmap(&self) -> Option<&HashMap> { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | / match self { [INFO] [stderr] 41 | | &JFObject::Dictionary(ref v) => Some(v), [INFO] [stderr] 42 | | _ => None, [INFO] [stderr] 43 | | } [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] 40 | match *self { [INFO] [stderr] 41 | JFObject::Dictionary(ref v) => Some(v), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/json_flex.rs:45:21 [INFO] [stderr] | [INFO] [stderr] 45 | pub fn into_vec(&self) -> Option<&Vec> { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 46 | / match self { [INFO] [stderr] 47 | | &JFObject::Array(ref v) => Some(v), [INFO] [stderr] 48 | | _ => None, [INFO] [stderr] 49 | | } [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] 46 | match *self { [INFO] [stderr] 47 | JFObject::Array(ref v) => Some(v), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:52:9 [INFO] [stderr] | [INFO] [stderr] 52 | / match self { [INFO] [stderr] 53 | | &JFObject::Null => true, [INFO] [stderr] 54 | | _ => false, [INFO] [stderr] 55 | | } [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] 52 | match *self { [INFO] [stderr] 53 | JFObject::Null => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | / match self { [INFO] [stderr] 59 | | &JFObject::True => true, [INFO] [stderr] 60 | | _ => false, [INFO] [stderr] 61 | | } [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] 58 | match *self { [INFO] [stderr] 59 | JFObject::True => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:64:9 [INFO] [stderr] | [INFO] [stderr] 64 | / match self { [INFO] [stderr] 65 | | &JFObject::False => true, [INFO] [stderr] 66 | | _ => false, [INFO] [stderr] 67 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 64 | match *self { [INFO] [stderr] 65 | JFObject::False => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:70:9 [INFO] [stderr] | [INFO] [stderr] 70 | / match self { [INFO] [stderr] 71 | | &JFObject::Array(_) => true, [INFO] [stderr] 72 | | _ => false, [INFO] [stderr] 73 | | } [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] 70 | match *self { [INFO] [stderr] 71 | JFObject::Array(_) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:76:9 [INFO] [stderr] | [INFO] [stderr] 76 | / match self { [INFO] [stderr] 77 | | &JFObject::Dictionary(_) => true, [INFO] [stderr] 78 | | _ => false, [INFO] [stderr] 79 | | } [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] 76 | match *self { [INFO] [stderr] 77 | JFObject::Dictionary(_) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:82:9 [INFO] [stderr] | [INFO] [stderr] 82 | / match self { [INFO] [stderr] 83 | | &JFObject::String(_) => true, [INFO] [stderr] 84 | | _ => false, [INFO] [stderr] 85 | | } [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] 82 | match *self { [INFO] [stderr] 83 | JFObject::String(_) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:88:9 [INFO] [stderr] | [INFO] [stderr] 88 | / match self { [INFO] [stderr] 89 | | &JFObject::Integer(_) => true, [INFO] [stderr] 90 | | _ => false, [INFO] [stderr] 91 | | } [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] 88 | match *self { [INFO] [stderr] 89 | JFObject::Integer(_) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:94:9 [INFO] [stderr] | [INFO] [stderr] 94 | / match self { [INFO] [stderr] 95 | | &JFObject::Float(_) => true, [INFO] [stderr] 96 | | _ => false, [INFO] [stderr] 97 | | } [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] 94 | match *self { [INFO] [stderr] 95 | JFObject::Float(_) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:102:9 [INFO] [stderr] | [INFO] [stderr] 102 | / match self { [INFO] [stderr] 103 | | &JFObject::String(ref v) => v, [INFO] [stderr] 104 | | _ => panic!(), [INFO] [stderr] 105 | | } [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] 102 | match *self { [INFO] [stderr] 103 | JFObject::String(ref v) => v, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:108:9 [INFO] [stderr] | [INFO] [stderr] 108 | / match self { [INFO] [stderr] 109 | | &JFObject::Integer(ref v) => v, [INFO] [stderr] 110 | | _ => panic!(), [INFO] [stderr] 111 | | } [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] 108 | match *self { [INFO] [stderr] 109 | JFObject::Integer(ref v) => v, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:114:9 [INFO] [stderr] | [INFO] [stderr] 114 | / match self { [INFO] [stderr] 115 | | &JFObject::Float(ref v) => v, [INFO] [stderr] 116 | | _ => panic!(), [INFO] [stderr] 117 | | } [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] 114 | match *self { [INFO] [stderr] 115 | JFObject::Float(ref v) => v, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:120:9 [INFO] [stderr] | [INFO] [stderr] 120 | / match self { [INFO] [stderr] 121 | | &JFObject::Dictionary(ref v) => v, [INFO] [stderr] 122 | | _ => panic!(), [INFO] [stderr] 123 | | } [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] 120 | match *self { [INFO] [stderr] 121 | JFObject::Dictionary(ref v) => v, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:126:9 [INFO] [stderr] | [INFO] [stderr] 126 | / match self { [INFO] [stderr] 127 | | &JFObject::Array(ref v) => v, [INFO] [stderr] 128 | | _ => panic!(), [INFO] [stderr] 129 | | } [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] 126 | match *self { [INFO] [stderr] 127 | JFObject::Array(ref v) => v, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/json_flex.rs:133:9 [INFO] [stderr] | [INFO] [stderr] 133 | / match self { [INFO] [stderr] 134 | | &JFObject::String(ref v) => format!("\"{}\"", v), [INFO] [stderr] 135 | | &JFObject::Integer(ref v) => v.to_string(), [INFO] [stderr] 136 | | &JFObject::Float(ref v) => v.to_string(), [INFO] [stderr] ... | [INFO] [stderr] 166 | | &JFObject::True => "true".to_owned(), [INFO] [stderr] 167 | | } [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] 133 | match *self { [INFO] [stderr] 134 | JFObject::String(ref v) => format!("\"{}\"", v), [INFO] [stderr] 135 | JFObject::Integer(ref v) => v.to_string(), [INFO] [stderr] 136 | JFObject::Float(ref v) => v.to_string(), [INFO] [stderr] 137 | JFObject::Dictionary(ref v) => { [INFO] [stderr] 138 | let mut string: String = "".to_owned(); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/json_flex.rs:220:5 [INFO] [stderr] | [INFO] [stderr] 220 | / fn index<'a>(&'a self, id: usize) -> &'a Self::Output { [INFO] [stderr] 221 | | self.into_vec().unwrap().get(id).unwrap() [INFO] [stderr] 222 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/json_flex.rs:227:5 [INFO] [stderr] | [INFO] [stderr] 227 | / fn index<'a>(&'a self, id: String) -> &'a Self::Output { [INFO] [stderr] 228 | | self.into_hashmap().unwrap().get(&id).unwrap() [INFO] [stderr] 229 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/json_flex.rs:247:20 [INFO] [stderr] | [INFO] [stderr] 247 | func: fn(&mut JFObject, [INFO] [stderr] | ____________________^ [INFO] [stderr] 248 | | Option, [INFO] [stderr] 249 | | Vec, [INFO] [stderr] 250 | | Vec, [INFO] [stderr] 251 | | i64, [INFO] [stderr] 252 | | i64, [INFO] [stderr] 253 | | char) [INFO] [stderr] | |___________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (10/7) [INFO] [stderr] --> src/json_flex.rs:240:1 [INFO] [stderr] | [INFO] [stderr] 240 | / fn recursive(v: &mut JFObject, [INFO] [stderr] 241 | | a_chain: Vec, [INFO] [stderr] 242 | | d_chain: Vec, [INFO] [stderr] 243 | | mut a_nest: i64, [INFO] [stderr] ... | [INFO] [stderr] 341 | | is_find [INFO] [stderr] 342 | | } [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: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/json_flex.rs:273:22 [INFO] [stderr] | [INFO] [stderr] 273 | let i = *a_chain.get(a_nest as usize).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `a_chain[a_nest 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] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/json_flex.rs:305:42 [INFO] [stderr] | [INFO] [stderr] 305 | let vvv = vv.get_mut(key.clone()); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 305 | let vvv = vv.get_mut(&(*key).clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 305 | let vvv = vv.get_mut(&std::string::String::clone(key)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 57 [INFO] [stderr] --> src/json_flex.rs:344:1 [INFO] [stderr] | [INFO] [stderr] 344 | / pub fn decode(text: String) -> Box { [INFO] [stderr] 345 | | [INFO] [stderr] 346 | | let mut ret = Box::new(JFObject::Null); [INFO] [stderr] 347 | | [INFO] [stderr] ... | [INFO] [stderr] 1680 | | ret [INFO] [stderr] 1681 | | } [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/json_flex.rs:471:36 [INFO] [stderr] | [INFO] [stderr] 471 | last_active_char = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [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/json_flex.rs:497:29 [INFO] [stderr] | [INFO] [stderr] 497 | / match *v { [INFO] [stderr] 498 | | JFObject::Array(ref mut vv) => { [INFO] [stderr] 499 | | vv.push(JFObject::True); [INFO] [stderr] 500 | | } [INFO] [stderr] 501 | | _ => {} [INFO] [stderr] 502 | | } [INFO] [stderr] | |_____________________________^ [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] help: try this [INFO] [stderr] | [INFO] [stderr] 497 | if let JFObject::Array(ref mut vv) = *v { [INFO] [stderr] 498 | vv.push(JFObject::True); [INFO] [stderr] 499 | } [INFO] [stderr] | [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/json_flex.rs:540:29 [INFO] [stderr] | [INFO] [stderr] 540 | / match *v { [INFO] [stderr] 541 | | JFObject::Array(ref mut vv) => { [INFO] [stderr] 542 | | vv.push(JFObject::False); [INFO] [stderr] 543 | | } [INFO] [stderr] 544 | | _ => {} [INFO] [stderr] 545 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 540 | if let JFObject::Array(ref mut vv) = *v { [INFO] [stderr] 541 | vv.push(JFObject::False); [INFO] [stderr] 542 | } [INFO] [stderr] | [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/json_flex.rs:584:29 [INFO] [stderr] | [INFO] [stderr] 584 | / match *v { [INFO] [stderr] 585 | | JFObject::Array(ref mut vv) => { [INFO] [stderr] 586 | | vv.push(JFObject::Null); [INFO] [stderr] 587 | | } [INFO] [stderr] 588 | | _ => {} [INFO] [stderr] 589 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 584 | if let JFObject::Array(ref mut vv) = *v { [INFO] [stderr] 585 | vv.push(JFObject::Null); [INFO] [stderr] 586 | } [INFO] [stderr] | [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/json_flex.rs:623:29 [INFO] [stderr] | [INFO] [stderr] 623 | / match *v { [INFO] [stderr] 624 | | JFObject::Array(ref mut vv) => { [INFO] [stderr] 625 | | [INFO] [stderr] 626 | | let mut new_num = value.unwrap().clone(); [INFO] [stderr] ... | [INFO] [stderr] 635 | | _ => {} [INFO] [stderr] 636 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 623 | if let JFObject::Array(ref mut vv) = *v { [INFO] [stderr] 624 | [INFO] [stderr] 625 | let mut new_num = value.unwrap().clone(); [INFO] [stderr] 626 | new_num.pop().unwrap(); [INFO] [stderr] 627 | new_num = new_num.trim().to_string(); [INFO] [stderr] 628 | [INFO] [stderr] ... [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/json_flex.rs:673:33 [INFO] [stderr] | [INFO] [stderr] 673 | / match *v { [INFO] [stderr] 674 | | JFObject::Array(ref mut vv) => { [INFO] [stderr] 675 | | vv.push(JFObject::Null); [INFO] [stderr] 676 | | } [INFO] [stderr] 677 | | _ => {} [INFO] [stderr] 678 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 673 | if let JFObject::Array(ref mut vv) = *v { [INFO] [stderr] 674 | vv.push(JFObject::Null); [INFO] [stderr] 675 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/json_flex.rs:701:36 [INFO] [stderr] | [INFO] [stderr] 701 | last_active_char = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/json_flex.rs:804:36 [INFO] [stderr] | [INFO] [stderr] 804 | last_active_char = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [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/json_flex.rs:838:33 [INFO] [stderr] | [INFO] [stderr] 838 | / match *v { [INFO] [stderr] 839 | | JFObject::Dictionary(ref mut vv) => { [INFO] [stderr] 840 | | let key = d_chain.last().unwrap().clone(); [INFO] [stderr] 841 | | vv.insert(key, JFObject::True); [INFO] [stderr] 842 | | } [INFO] [stderr] 843 | | _ => {} [INFO] [stderr] 844 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 838 | if let JFObject::Dictionary(ref mut vv) = *v { [INFO] [stderr] 839 | let key = d_chain.last().unwrap().clone(); [INFO] [stderr] 840 | vv.insert(key, JFObject::True); [INFO] [stderr] 841 | } [INFO] [stderr] | [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/json_flex.rs:887:33 [INFO] [stderr] | [INFO] [stderr] 887 | / match *v { [INFO] [stderr] 888 | | JFObject::Dictionary(ref mut vv) => { [INFO] [stderr] 889 | | let key = d_chain.last().unwrap().clone(); [INFO] [stderr] 890 | | vv.insert(key, JFObject::False); [INFO] [stderr] 891 | | } [INFO] [stderr] 892 | | _ => {} [INFO] [stderr] 893 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 887 | if let JFObject::Dictionary(ref mut vv) = *v { [INFO] [stderr] 888 | let key = d_chain.last().unwrap().clone(); [INFO] [stderr] 889 | vv.insert(key, JFObject::False); [INFO] [stderr] 890 | } [INFO] [stderr] | [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/json_flex.rs:938:33 [INFO] [stderr] | [INFO] [stderr] 938 | / match *v { [INFO] [stderr] 939 | | JFObject::Dictionary(ref mut vv) => { [INFO] [stderr] 940 | | let key = d_chain.last().unwrap().clone(); [INFO] [stderr] 941 | | vv.insert(key, JFObject::Null); [INFO] [stderr] 942 | | } [INFO] [stderr] 943 | | _ => {} [INFO] [stderr] 944 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 938 | if let JFObject::Dictionary(ref mut vv) = *v { [INFO] [stderr] 939 | let key = d_chain.last().unwrap().clone(); [INFO] [stderr] 940 | vv.insert(key, JFObject::Null); [INFO] [stderr] 941 | } [INFO] [stderr] | [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/json_flex.rs:981:33 [INFO] [stderr] | [INFO] [stderr] 981 | / match *v { [INFO] [stderr] 982 | | JFObject::Dictionary(ref mut vv) => { [INFO] [stderr] 983 | | let key = d_chain.last().unwrap().clone(); [INFO] [stderr] 984 | | let mut value = value.unwrap(); [INFO] [stderr] ... | [INFO] [stderr] 992 | | _ => {} [INFO] [stderr] 993 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 981 | if let JFObject::Dictionary(ref mut vv) = *v { [INFO] [stderr] 982 | let key = d_chain.last().unwrap().clone(); [INFO] [stderr] 983 | let mut value = value.unwrap(); [INFO] [stderr] 984 | value.pop().unwrap(); [INFO] [stderr] 985 | value = value.trim().to_string(); [INFO] [stderr] 986 | match value.find('.') { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/json_flex.rs:1025:36 [INFO] [stderr] | [INFO] [stderr] 1025 | last_active_char = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/json_flex.rs:1051:36 [INFO] [stderr] | [INFO] [stderr] 1051 | last_active_char = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [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/json_flex.rs:1255:33 [INFO] [stderr] | [INFO] [stderr] 1255 | / match *v { [INFO] [stderr] 1256 | | JFObject::Array(ref mut vv) => { [INFO] [stderr] 1257 | | vv.push(JFObject::Null); [INFO] [stderr] 1258 | | } [INFO] [stderr] 1259 | | _ => {} [INFO] [stderr] 1260 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1255 | if let JFObject::Array(ref mut vv) = *v { [INFO] [stderr] 1256 | vv.push(JFObject::Null); [INFO] [stderr] 1257 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/json_flex.rs:1365:36 [INFO] [stderr] | [INFO] [stderr] 1365 | last_active_char = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [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/json_flex.rs:1393:37 [INFO] [stderr] | [INFO] [stderr] 1393 | / match *v { [INFO] [stderr] 1394 | | JFObject::Dictionary(ref mut vv) => { [INFO] [stderr] 1395 | | let key = d_chain.last().unwrap().clone(); [INFO] [stderr] 1396 | | let mut value = value.unwrap(); [INFO] [stderr] ... | [INFO] [stderr] 1400 | | _ => {} [INFO] [stderr] 1401 | | } [INFO] [stderr] | |_____________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1393 | if let JFObject::Dictionary(ref mut vv) = *v { [INFO] [stderr] 1394 | let key = d_chain.last().unwrap().clone(); [INFO] [stderr] 1395 | let mut value = value.unwrap(); [INFO] [stderr] 1396 | value.pop().unwrap(); [INFO] [stderr] 1397 | vv.insert(key, JFObject::String(value.clone())); [INFO] [stderr] 1398 | } [INFO] [stderr] | [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/json_flex.rs:1435:41 [INFO] [stderr] | [INFO] [stderr] 1435 | / match *v { [INFO] [stderr] 1436 | | JFObject::Array(ref mut vv) => { [INFO] [stderr] 1437 | | vv.push(JFObject::String(value.unwrap() [INFO] [stderr] 1438 | | .clone())); [INFO] [stderr] 1439 | | } [INFO] [stderr] 1440 | | _ => {} [INFO] [stderr] 1441 | | } [INFO] [stderr] | |_________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1435 | if let JFObject::Array(ref mut vv) = *v { [INFO] [stderr] 1436 | vv.push(JFObject::String(value.unwrap() [INFO] [stderr] 1437 | .clone())); [INFO] [stderr] 1438 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/json_flex.rs:1467:36 [INFO] [stderr] | [INFO] [stderr] 1467 | last_active_char = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [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/json_flex.rs:1490:37 [INFO] [stderr] | [INFO] [stderr] 1490 | / match *v { [INFO] [stderr] 1491 | | JFObject::Dictionary(ref mut vv) => { [INFO] [stderr] 1492 | | let key = d_chain.last().unwrap().clone(); [INFO] [stderr] 1493 | | let mut value = value.unwrap(); [INFO] [stderr] ... | [INFO] [stderr] 1497 | | _ => {} [INFO] [stderr] 1498 | | } [INFO] [stderr] | |_____________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1490 | if let JFObject::Dictionary(ref mut vv) = *v { [INFO] [stderr] 1491 | let key = d_chain.last().unwrap().clone(); [INFO] [stderr] 1492 | let mut value = value.unwrap(); [INFO] [stderr] 1493 | value.pop().unwrap(); [INFO] [stderr] 1494 | vv.insert(key, JFObject::String(value.clone())); [INFO] [stderr] 1495 | } [INFO] [stderr] | [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/json_flex.rs:1533:41 [INFO] [stderr] | [INFO] [stderr] 1533 | / match *v { [INFO] [stderr] 1534 | | JFObject::Array(ref mut vv) => { [INFO] [stderr] 1535 | | vv.push(JFObject::String(value.unwrap() [INFO] [stderr] 1536 | | .clone())); [INFO] [stderr] 1537 | | } [INFO] [stderr] 1538 | | _ => {} [INFO] [stderr] 1539 | | } [INFO] [stderr] | |_________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1533 | if let JFObject::Array(ref mut vv) = *v { [INFO] [stderr] 1534 | vv.push(JFObject::String(value.unwrap() [INFO] [stderr] 1535 | .clone())); [INFO] [stderr] 1536 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/json_flex.rs:1563:36 [INFO] [stderr] | [INFO] [stderr] 1563 | last_active_char = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/json_flex.rs:1579:36 [INFO] [stderr] | [INFO] [stderr] 1579 | last_active_char = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/json_flex.rs:1595:36 [INFO] [stderr] | [INFO] [stderr] 1595 | last_active_char = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/json_flex.rs:1613:36 [INFO] [stderr] | [INFO] [stderr] 1613 | last_active_char = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/json_flex.rs:1629:36 [INFO] [stderr] | [INFO] [stderr] 1629 | last_active_char = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/json_flex.rs:1645:36 [INFO] [stderr] | [INFO] [stderr] 1645 | last_active_char = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/json_flex.rs:1675:18 [INFO] [stderr] | [INFO] [stderr] 1675 | last_c = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 113 [INFO] [stderr] --> src/test.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | / fn default() { [INFO] [stderr] 9 | | [INFO] [stderr] 10 | | // 1 [INFO] [stderr] 11 | | // ------------------------------------------------------------------------------- [INFO] [stderr] ... | [INFO] [stderr] 780 | | [INFO] [stderr] 781 | | } [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: this creates an owned instance just for comparison [INFO] [stderr] --> src/test.rs:17:20 [INFO] [stderr] | [INFO] [stderr] 17 | assert!(jft == r#"Array([String("a"), String("b"), String("c"), Array([String("a"), String("b"), String("c")]), String("d"), Array([String("ABC")]), Array([Integer(1), Integer(2)])])"#.to_owned()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `r#"Array([String("a"), String("b"), String("c"), Array([String("a"), String("b"), String("c")]), String("d"), Array([String("ABC")]), Array([Integer(1), Integer(2)])])"#` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/test.rs:28:20 [INFO] [stderr] | [INFO] [stderr] 28 | assert!(jft == r#"Array([Integer(1), Array([Integer(2), Array([Integer(3)])])])"#.to_owned()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `r#"Array([Integer(1), Array([Integer(2), Array([Integer(3)])])])"#` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/test.rs:39:20 [INFO] [stderr] | [INFO] [stderr] 39 | assert!(jft == r#"Array([Integer(1), Array([Integer(2), Array([Integer(3), Integer(4), Integer(5), Integer(6)])])])"#.to_owned()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `r#"Array([Integer(1), Array([Integer(2), Array([Integer(3), Integer(4), Integer(5), Integer(6)])])])"#` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/test.rs:50:20 [INFO] [stderr] | [INFO] [stderr] 50 | assert!(jft == r#"Array([String("1"), Array([String("2"), Array([String("3"), String("4"), String("5"), String("6")])])])"#.to_owned()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `r#"Array([String("1"), Array([String("2"), Array([String("3"), String("4"), String("5"), String("6")])])])"#` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/test.rs:61:20 [INFO] [stderr] | [INFO] [stderr] 61 | assert!(jft == r#"Array([Array([Integer(1)]), Array([Integer(2), Integer(3), Integer(4), Array([Integer(5), Integer(6), Integer(7), Array([Integer(8), Integer(9)]), Integer(11)]), Integer(12), Integer(13)]), Integer(14), Integer(15)])"#.to_owned()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `r#"Array([Array([Integer(1)]), Array([Integer(2), Integer(3), Integer(4), Array([Integer(5), Integer(6), Integer(7), Array([Integer(8), Integer(9)]), Integer(11)]), Integer(12), Integer(13)]), Integer(14), Integer(15)])"#` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/test.rs:73:20 [INFO] [stderr] | [INFO] [stderr] 73 | assert!(jft == r#"Array([String("a"), String("b"), String("c"), Array([String("a"), String("b"), String("c")]), String("d"), Array([String("ABC")]), Array([Integer(1), Integer(2)])])"#.to_owned()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `r#"Array([String("a"), String("b"), String("c"), Array([String("a"), String("b"), String("c")]), String("d"), Array([String("ABC")]), Array([Integer(1), Integer(2)])])"#` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: use of a blacklisted/placeholder name `foo` [INFO] [stderr] --> src/test.rs:500:9 [INFO] [stderr] | [INFO] [stderr] 500 | let foo: String = jf[0].clone().unwrap(); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::blacklisted_name)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#blacklisted_name [INFO] [stderr] [INFO] [stderr] warning: use of a blacklisted/placeholder name `foo` [INFO] [stderr] --> src/test.rs:509:9 [INFO] [stderr] | [INFO] [stderr] 509 | let foo: JFObject = jf[0].clone(); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#blacklisted_name [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `json_flex`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "e81b0598ccb70ff4ffad58d487c6552ebeaacec563c80da462e1ecea298521bd"` [INFO] running `"docker" "rm" "-f" "e81b0598ccb70ff4ffad58d487c6552ebeaacec563c80da462e1ecea298521bd"` [INFO] [stdout] e81b0598ccb70ff4ffad58d487c6552ebeaacec563c80da462e1ecea298521bd