[INFO] crate toml-query 0.8.0 is already in cache [INFO] extracting crate toml-query 0.8.0 into work/ex/clippy-test-run/sources/stable/reg/toml-query/0.8.0 [INFO] extracting crate toml-query 0.8.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/toml-query/0.8.0 [INFO] validating manifest of toml-query-0.8.0 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 toml-query-0.8.0 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 toml-query-0.8.0 [INFO] finished frobbing toml-query-0.8.0 [INFO] frobbed toml for toml-query-0.8.0 written to work/ex/clippy-test-run/sources/stable/reg/toml-query/0.8.0/Cargo.toml [INFO] started frobbing toml-query-0.8.0 [INFO] finished frobbing toml-query-0.8.0 [INFO] frobbed toml for toml-query-0.8.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/toml-query/0.8.0/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 toml-query-0.8.0 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/toml-query/0.8.0:/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] ffdad49220328036ad42d212badddef05d24be9429f61ac7c81767e03b8cc15b [INFO] running `"docker" "start" "-a" "ffdad49220328036ad42d212badddef05d24be9429f61ac7c81767e03b8cc15b"` [INFO] [stderr] Checking toml-query v0.8.0 (/opt/crater/workdir) [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/delete.rs:91:36 [INFO] [stderr] | [INFO] [stderr] 91 | } else { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 92 | | if is_table(tab.get(&ident)) { [INFO] [stderr] 93 | | Err(Error::CannotDeleteNonEmptyTable(Some(ident.clone()))) [INFO] [stderr] 94 | | } else if is_array(tab.get(&ident)) { [INFO] [stderr] ... | [INFO] [stderr] 100 | | } [INFO] [stderr] 101 | | } [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] 91 | } else if is_table(tab.get(&ident)) { [INFO] [stderr] 92 | Err(Error::CannotDeleteNonEmptyTable(Some(ident.clone()))) [INFO] [stderr] 93 | } else if is_array(tab.get(&ident)) { [INFO] [stderr] 94 | Err(Error::CannotDeleteNonEmptyArray(Some(ident.clone()))) [INFO] [stderr] 95 | } else { [INFO] [stderr] 96 | let act = name_of_val(tab.get(&ident)); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/delete.rs:112:36 [INFO] [stderr] | [INFO] [stderr] 112 | } else { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 113 | | if is_table(Some(arr.index(idx))) { [INFO] [stderr] 114 | | Err(Error::CannotDeleteNonEmptyTable(None)) [INFO] [stderr] 115 | | } else if is_array(Some(arr.index(idx))) { [INFO] [stderr] ... | [INFO] [stderr] 121 | | } [INFO] [stderr] 122 | | } [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] 112 | } else if is_table(Some(arr.index(idx))) { [INFO] [stderr] 113 | Err(Error::CannotDeleteNonEmptyTable(None)) [INFO] [stderr] 114 | } else if is_array(Some(arr.index(idx))) { [INFO] [stderr] 115 | Err(Error::CannotDeleteNonEmptyArray(None)) [INFO] [stderr] 116 | } else { [INFO] [stderr] 117 | let act = name_of_val(Some(arr.index(idx))); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/delete.rs:144:36 [INFO] [stderr] | [INFO] [stderr] 144 | } else { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 145 | | if is_table(tab.get(ident)) { [INFO] [stderr] 146 | | Err(Error::CannotDeleteNonEmptyTable(Some(ident.clone()))) [INFO] [stderr] 147 | | } else if is_array(tab.get(ident)) { [INFO] [stderr] ... | [INFO] [stderr] 153 | | } [INFO] [stderr] 154 | | } [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] 144 | } else if is_table(tab.get(ident)) { [INFO] [stderr] 145 | Err(Error::CannotDeleteNonEmptyTable(Some(ident.clone()))) [INFO] [stderr] 146 | } else if is_array(tab.get(ident)) { [INFO] [stderr] 147 | Err(Error::CannotDeleteNonEmptyArray(Some(ident.clone()))) [INFO] [stderr] 148 | } else { [INFO] [stderr] 149 | let act = name_of_val(tab.get(ident)); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/delete.rs:168:36 [INFO] [stderr] | [INFO] [stderr] 168 | } else { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 169 | | if is_table(Some(&arr.index(idx))) { [INFO] [stderr] 170 | | Err(Error::CannotDeleteNonEmptyTable(None)) [INFO] [stderr] 171 | | } else if is_array(Some(&arr.index(idx))) { [INFO] [stderr] ... | [INFO] [stderr] 177 | | } [INFO] [stderr] 178 | | } [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] 168 | } else if is_table(Some(&arr.index(idx))) { [INFO] [stderr] 169 | Err(Error::CannotDeleteNonEmptyTable(None)) [INFO] [stderr] 170 | } else if is_array(Some(&arr.index(idx))) { [INFO] [stderr] 171 | Err(Error::CannotDeleteNonEmptyArray(None)) [INFO] [stderr] 172 | } else { [INFO] [stderr] 173 | let act = name_of_val(Some(arr.index(idx))); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:67:29 [INFO] [stderr] | [INFO] [stderr] 67 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:93:29 [INFO] [stderr] | [INFO] [stderr] 93 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:164:21 [INFO] [stderr] | [INFO] [stderr] 164 | None => return Err(Error::ArrayAccessWithoutIndex), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(Error::ArrayAccessWithoutIndex)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/resolver/mut_resolver.rs:22:29 [INFO] [stderr] | [INFO] [stderr] 22 | return Err(Error::IdentifierNotFoundInDocument(ident.to_owned())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(Error::IdentifierNotFoundInDocument(ident.to_owned()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/resolver/mut_creating_resolver.rs:57:28 [INFO] [stderr] | [INFO] [stderr] 57 | } else { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 58 | | if let Some(next) = tokens.next() { [INFO] [stderr] 59 | | match **next { [INFO] [stderr] 60 | | Token::Identifier { .. } => { [INFO] [stderr] ... | [INFO] [stderr] 71 | | } [INFO] [stderr] 72 | | } [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] 57 | } else if let Some(next) = tokens.next() { [INFO] [stderr] 58 | match **next { [INFO] [stderr] 59 | Token::Identifier { .. } => { [INFO] [stderr] 60 | ary.push(Value::Table(BTreeMap::new())); [INFO] [stderr] 61 | }, [INFO] [stderr] 62 | Token::Index { .. } => { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/resolver/non_mut_resolver.rs:22:29 [INFO] [stderr] | [INFO] [stderr] 22 | return Err(Error::IdentifierNotFoundInDocument(ident.to_owned())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(Error::IdentifierNotFoundInDocument(ident.to_owned()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/set.rs:63:17 [INFO] [stderr] | [INFO] [stderr] 63 | / match val { [INFO] [stderr] 64 | | &mut Value::Table(ref mut t) => { [INFO] [stderr] 65 | | Ok(t.insert(ident, value)) [INFO] [stderr] 66 | | }, [INFO] [stderr] 67 | | &mut Value::Array(_) => Err(Error::NoIdentifierInArray(ident)), [INFO] [stderr] 68 | | _ => Err(Error::QueryingValueAsTable(ident)), [INFO] [stderr] 69 | | } [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] 63 | match *val { [INFO] [stderr] 64 | Value::Table(ref mut t) => { [INFO] [stderr] 65 | Ok(t.insert(ident, value)) [INFO] [stderr] 66 | }, [INFO] [stderr] 67 | Value::Array(_) => Err(Error::NoIdentifierInArray(ident)), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/set.rs:73:17 [INFO] [stderr] | [INFO] [stderr] 73 | / match val { [INFO] [stderr] 74 | | &mut Value::Array(ref mut a) => { [INFO] [stderr] 75 | | if a.len() > idx { [INFO] [stderr] 76 | | let result = a.swap_remove(idx); [INFO] [stderr] ... | [INFO] [stderr] 85 | | _ => Err(Error::QueryingValueAsArray(idx)), [INFO] [stderr] 86 | | } [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] 73 | match *val { [INFO] [stderr] 74 | Value::Array(ref mut a) => { [INFO] [stderr] 75 | if a.len() > idx { [INFO] [stderr] 76 | let result = a.swap_remove(idx); [INFO] [stderr] 77 | a.insert(idx, value); [INFO] [stderr] 78 | Ok(Some(result)) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/insert.rs:113:17 [INFO] [stderr] | [INFO] [stderr] 113 | / match val { [INFO] [stderr] 114 | | &mut Value::Table(ref mut t) => { [INFO] [stderr] 115 | | Ok(t.insert(ident, value)) [INFO] [stderr] 116 | | }, [INFO] [stderr] 117 | | _ => Err(Error::NoIdentifierInArray(ident.clone())) [INFO] [stderr] 118 | | } [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] 113 | match *val { [INFO] [stderr] 114 | Value::Table(ref mut t) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/insert.rs:122:17 [INFO] [stderr] | [INFO] [stderr] 122 | / match val { [INFO] [stderr] 123 | | &mut Value::Array(ref mut a) => { [INFO] [stderr] 124 | | if a.len() > idx { [INFO] [stderr] 125 | | a.insert(idx, value); [INFO] [stderr] ... | [INFO] [stderr] 132 | | _ => Err(Error::NoIndexInTable(idx)) [INFO] [stderr] 133 | | } [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] 122 | match *val { [INFO] [stderr] 123 | Value::Array(ref mut a) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/delete.rs:61:25 [INFO] [stderr] | [INFO] [stderr] 61 | val.map(|v| match v { [INFO] [stderr] | _________________________^ [INFO] [stderr] 62 | | &Value::Table(ref tab) => tab.is_empty(), [INFO] [stderr] 63 | | &Value::Array(ref arr) => arr.is_empty(), [INFO] [stderr] 64 | | _ => default [INFO] [stderr] 65 | | }) [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] 61 | val.map(|v| match *v { [INFO] [stderr] 62 | Value::Table(ref tab) => tab.is_empty(), [INFO] [stderr] 63 | Value::Array(ref arr) => arr.is_empty(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/delete.rs:85:13 [INFO] [stderr] | [INFO] [stderr] 85 | / match self { [INFO] [stderr] 86 | | &mut Value::Table(ref mut tab) => { [INFO] [stderr] 87 | | match tokens { [INFO] [stderr] 88 | | Token::Identifier { ident, .. } => { [INFO] [stderr] ... | [INFO] [stderr] 132 | | } [INFO] [stderr] 133 | | } [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] 85 | match *self { [INFO] [stderr] 86 | Value::Table(ref mut tab) => { [INFO] [stderr] 87 | match tokens { [INFO] [stderr] 88 | Token::Identifier { ident, .. } => { [INFO] [stderr] 89 | if is_empty(tab.get(&ident), true) { [INFO] [stderr] 90 | Ok(tab.remove(&ident)) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/delete.rs:131:25 [INFO] [stderr] | [INFO] [stderr] 131 | Err(Error::from(kind)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider removing `Error::from()`: `kind` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/delete.rs:138:13 [INFO] [stderr] | [INFO] [stderr] 138 | / match val { [INFO] [stderr] 139 | | &mut Value::Table(ref mut tab) => { [INFO] [stderr] 140 | | match *last_token { [INFO] [stderr] 141 | | Token::Identifier { ref ident, .. } => { [INFO] [stderr] ... | [INFO] [stderr] 188 | | } [INFO] [stderr] 189 | | } [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] 138 | match *val { [INFO] [stderr] 139 | Value::Table(ref mut tab) => { [INFO] [stderr] 140 | match *last_token { [INFO] [stderr] 141 | Token::Identifier { ref ident, .. } => { [INFO] [stderr] 142 | if is_empty(tab.get(ident), true) { [INFO] [stderr] 143 | Ok(tab.remove(ident)) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/delete.rs:187:25 [INFO] [stderr] | [INFO] [stderr] 187 | Err(Error::from(kind)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider removing `Error::from()`: `kind` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/tokenizer.rs:20:34 [INFO] [stderr] | [INFO] [stderr] 20 | pub fn next(&self) -> Option<&Box> { [INFO] [stderr] | ^^^^^^^^^^^ help: try: `&Token` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::borrowed_box)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/tokenizer.rs:22:9 [INFO] [stderr] | [INFO] [stderr] 22 | / match self { [INFO] [stderr] 23 | | &Token::Identifier { ref next, .. } => next.as_ref(), [INFO] [stderr] 24 | | &Token::Index { ref next, .. } => next.as_ref(), [INFO] [stderr] 25 | | } [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] 22 | match *self { [INFO] [stderr] 23 | Token::Identifier { ref next, .. } => next.as_ref(), [INFO] [stderr] 24 | Token::Index { ref next, .. } => next.as_ref(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/tokenizer.rs:36:9 [INFO] [stderr] | [INFO] [stderr] 36 | / match self { [INFO] [stderr] 37 | | &mut Token::Identifier { ref mut next, .. } => *next = Some(Box::new(token)), [INFO] [stderr] 38 | | &mut Token::Index { ref mut next, .. } => *next = Some(Box::new(token)), [INFO] [stderr] 39 | | } [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] 36 | match *self { [INFO] [stderr] 37 | Token::Identifier { ref mut next, .. } => *next = Some(Box::new(token)), [INFO] [stderr] 38 | Token::Index { ref mut next, .. } => *next = Some(Box::new(token)), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/tokenizer.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 52 | / match self { [INFO] [stderr] 53 | | &mut Token::Identifier { ref mut next, .. } => { [INFO] [stderr] 54 | | trace!("self.pop_last(): self is Identifier"); [INFO] [stderr] 55 | | if next.is_some() { [INFO] [stderr] ... | [INFO] [stderr] 102 | | }, [INFO] [stderr] 103 | | } [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 | Token::Identifier { ref mut next, .. } => { [INFO] [stderr] 54 | trace!("self.pop_last(): self is Identifier"); [INFO] [stderr] 55 | if next.is_some() { [INFO] [stderr] 56 | trace!("self.pop_last(): next is Some(_)"); [INFO] [stderr] 57 | let mut n = next.take().unwrap(); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/tokenizer.rs:207:20 [INFO] [stderr] | [INFO] [stderr] 207 | if token.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `token.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/tokenizer.rs:235:16 [INFO] [stderr] | [INFO] [stderr] 235 | if token.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `token.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/tokenizer.rs:241:13 [INFO] [stderr] | [INFO] [stderr] 241 | let _ = try!(build_token_tree(&mut tokens, &mut tok)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_resolver.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | / match toml { [INFO] [stderr] 17 | | &mut Value::Table(ref mut t) => { [INFO] [stderr] 18 | | match tokens { [INFO] [stderr] 19 | | &Token::Identifier { ref ident, .. } => { [INFO] [stderr] ... | [INFO] [stderr] 54 | | } [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] 16 | match *toml { [INFO] [stderr] 17 | Value::Table(ref mut t) => { [INFO] [stderr] 18 | match tokens { [INFO] [stderr] 19 | &Token::Identifier { ref ident, .. } => { [INFO] [stderr] 20 | match t.get_mut(ident) { [INFO] [stderr] 21 | None => if error_if_not_found { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_resolver.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | / match tokens { [INFO] [stderr] 19 | | &Token::Identifier { ref ident, .. } => { [INFO] [stderr] 20 | | match t.get_mut(ident) { [INFO] [stderr] 21 | | None => if error_if_not_found { [INFO] [stderr] ... | [INFO] [stderr] 33 | | &Token::Index { idx, .. } => Err(Error::NoIndexInTable(idx)), [INFO] [stderr] 34 | | } [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] 18 | match *tokens { [INFO] [stderr] 19 | Token::Identifier { ref ident, .. } => { [INFO] [stderr] 20 | match t.get_mut(ident) { [INFO] [stderr] 21 | None => if error_if_not_found { [INFO] [stderr] 22 | return Err(Error::IdentifierNotFoundInDocument(ident.to_owned())) [INFO] [stderr] 23 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_resolver.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | / match tokens { [INFO] [stderr] 39 | | &Token::Index { idx, .. } => { [INFO] [stderr] 40 | | match tokens.next() { [INFO] [stderr] 41 | | Some(next) => resolve(ary.get_mut(idx).unwrap(), next, error_if_not_found), [INFO] [stderr] ... | [INFO] [stderr] 47 | | }, [INFO] [stderr] 48 | | } [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] 38 | match *tokens { [INFO] [stderr] 39 | Token::Index { idx, .. } => { [INFO] [stderr] 40 | match tokens.next() { [INFO] [stderr] 41 | Some(next) => resolve(ary.get_mut(idx).unwrap(), next, error_if_not_found), [INFO] [stderr] 42 | None => Ok(Some(ary.index_mut(idx))), [INFO] [stderr] 43 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: called `.get_mut().unwrap()` on a slice. Using `[]` is more clear and more concise [INFO] [stderr] --> src/resolver/mut_resolver.rs:41:47 [INFO] [stderr] | [INFO] [stderr] 41 | Some(next) => resolve(ary.get_mut(idx).unwrap(), next, error_if_not_found), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ary[idx]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_resolver.rs:51:14 [INFO] [stderr] | [INFO] [stderr] 51 | _ => match tokens { [INFO] [stderr] | ______________^ [INFO] [stderr] 52 | | &Token::Identifier { ref ident, .. } => Err(Error::QueryingValueAsTable(ident.clone())), [INFO] [stderr] 53 | | &Token::Index { idx, .. } => Err(Error::QueryingValueAsArray(idx)), [INFO] [stderr] 54 | | } [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] 51 | _ => match *tokens { [INFO] [stderr] 52 | Token::Identifier { ref ident, .. } => Err(Error::QueryingValueAsTable(ident.clone())), [INFO] [stderr] 53 | Token::Index { idx, .. } => Err(Error::QueryingValueAsArray(idx)), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_creating_resolver.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | / match toml { [INFO] [stderr] 28 | | &mut Value::Table(ref mut t) => { [INFO] [stderr] 29 | | if t.contains_key(ident) { [INFO] [stderr] 30 | | match tokens.next() { [INFO] [stderr] ... | [INFO] [stderr] 45 | | _ => unimplemented!() [INFO] [stderr] 46 | | } [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] 27 | match *toml { [INFO] [stderr] 28 | Value::Table(ref mut t) => { [INFO] [stderr] 29 | if t.contains_key(ident) { [INFO] [stderr] 30 | match tokens.next() { [INFO] [stderr] 31 | Some(next) => resolve(t.get_mut(ident).unwrap(), next), [INFO] [stderr] 32 | None => t.get_mut(ident).ok_or_else(|| unreachable!()), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/resolver/mut_creating_resolver.rs:37:69 [INFO] [stderr] | [INFO] [stderr] 37 | let subdoc = t.entry(ident.clone()).or_insert(Value::Table(BTreeMap::new())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(|| Value::Table(BTreeMap::new()))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/resolver/mut_creating_resolver.rs:40:63 [INFO] [stderr] | [INFO] [stderr] 40 | None => Ok(t.entry(ident.clone()).or_insert(Value::Table(BTreeMap::new()))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(|| Value::Table(BTreeMap::new()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_creating_resolver.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | / match toml { [INFO] [stderr] 50 | | &mut Value::Table(_) => Err(Error::NoIndexInTable(idx)), [INFO] [stderr] 51 | | &mut Value::Array(ref mut ary) => { [INFO] [stderr] 52 | | if ary.len() > idx { [INFO] [stderr] ... | [INFO] [stderr] 74 | | _ => unimplemented!() [INFO] [stderr] 75 | | } [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] 49 | match *toml { [INFO] [stderr] 50 | Value::Table(_) => Err(Error::NoIndexInTable(idx)), [INFO] [stderr] 51 | Value::Array(ref mut ary) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `.get_mut().unwrap()` on a slice. Using `[]` is more clear and more concise [INFO] [stderr] --> src/resolver/mut_creating_resolver.rs:54:51 [INFO] [stderr] | [INFO] [stderr] 54 | Some(next) => resolve(ary.get_mut(idx).unwrap(), next), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ary[idx]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/non_mut_resolver.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | / match toml { [INFO] [stderr] 17 | | &Value::Table(ref t) => { [INFO] [stderr] 18 | | match tokens { [INFO] [stderr] 19 | | &Token::Identifier { ref ident, .. } => { [INFO] [stderr] ... | [INFO] [stderr] 59 | | } [INFO] [stderr] 60 | | } [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] 16 | match *toml { [INFO] [stderr] 17 | Value::Table(ref t) => { [INFO] [stderr] 18 | match tokens { [INFO] [stderr] 19 | &Token::Identifier { ref ident, .. } => { [INFO] [stderr] 20 | match t.get(ident) { [INFO] [stderr] 21 | None => if error_if_not_found { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/non_mut_resolver.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | / match tokens { [INFO] [stderr] 19 | | &Token::Identifier { ref ident, .. } => { [INFO] [stderr] 20 | | match t.get(ident) { [INFO] [stderr] 21 | | None => if error_if_not_found { [INFO] [stderr] ... | [INFO] [stderr] 33 | | &Token::Index { idx, .. } => Err(Error::NoIndexInTable(idx)), [INFO] [stderr] 34 | | } [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] 18 | match *tokens { [INFO] [stderr] 19 | Token::Identifier { ref ident, .. } => { [INFO] [stderr] 20 | match t.get(ident) { [INFO] [stderr] 21 | None => if error_if_not_found { [INFO] [stderr] 22 | return Err(Error::IdentifierNotFoundInDocument(ident.to_owned())) [INFO] [stderr] 23 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/non_mut_resolver.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | / match tokens { [INFO] [stderr] 39 | | &Token::Index { idx, .. } => { [INFO] [stderr] 40 | | match tokens.next() { [INFO] [stderr] 41 | | Some(next) => resolve(ary.get(idx).unwrap(), next, error_if_not_found), [INFO] [stderr] ... | [INFO] [stderr] 47 | | }, [INFO] [stderr] 48 | | } [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] 38 | match *tokens { [INFO] [stderr] 39 | Token::Index { idx, .. } => { [INFO] [stderr] 40 | match tokens.next() { [INFO] [stderr] 41 | Some(next) => resolve(ary.get(idx).unwrap(), next, error_if_not_found), [INFO] [stderr] 42 | None => Ok(Some(ary.index(idx))), [INFO] [stderr] 43 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a slice. Using `[]` is more clear and more concise [INFO] [stderr] --> src/resolver/non_mut_resolver.rs:41:47 [INFO] [stderr] | [INFO] [stderr] 41 | Some(next) => resolve(ary.get(idx).unwrap(), next, error_if_not_found), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `ary[idx]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/non_mut_resolver.rs:51:14 [INFO] [stderr] | [INFO] [stderr] 51 | _ => match tokens { [INFO] [stderr] | ______________^ [INFO] [stderr] 52 | | &Token::Identifier { ref ident, .. } => { [INFO] [stderr] 53 | | Err(Error::QueryingValueAsTable(ident.clone())) [INFO] [stderr] 54 | | }, [INFO] [stderr] ... | [INFO] [stderr] 58 | | }, [INFO] [stderr] 59 | | } [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] 51 | _ => match *tokens { [INFO] [stderr] 52 | Token::Identifier { ref ident, .. } => { [INFO] [stderr] 53 | Err(Error::QueryingValueAsTable(ident.clone())) [INFO] [stderr] 54 | }, [INFO] [stderr] 55 | [INFO] [stderr] 56 | Token::Index { idx, .. } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/delete.rs:91:36 [INFO] [stderr] | [INFO] [stderr] 91 | } else { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 92 | | if is_table(tab.get(&ident)) { [INFO] [stderr] 93 | | Err(Error::CannotDeleteNonEmptyTable(Some(ident.clone()))) [INFO] [stderr] 94 | | } else if is_array(tab.get(&ident)) { [INFO] [stderr] ... | [INFO] [stderr] 100 | | } [INFO] [stderr] 101 | | } [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] 91 | } else if is_table(tab.get(&ident)) { [INFO] [stderr] 92 | Err(Error::CannotDeleteNonEmptyTable(Some(ident.clone()))) [INFO] [stderr] 93 | } else if is_array(tab.get(&ident)) { [INFO] [stderr] 94 | Err(Error::CannotDeleteNonEmptyArray(Some(ident.clone()))) [INFO] [stderr] 95 | } else { [INFO] [stderr] 96 | let act = name_of_val(tab.get(&ident)); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/delete.rs:112:36 [INFO] [stderr] | [INFO] [stderr] 112 | } else { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 113 | | if is_table(Some(arr.index(idx))) { [INFO] [stderr] 114 | | Err(Error::CannotDeleteNonEmptyTable(None)) [INFO] [stderr] 115 | | } else if is_array(Some(arr.index(idx))) { [INFO] [stderr] ... | [INFO] [stderr] 121 | | } [INFO] [stderr] 122 | | } [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] 112 | } else if is_table(Some(arr.index(idx))) { [INFO] [stderr] 113 | Err(Error::CannotDeleteNonEmptyTable(None)) [INFO] [stderr] 114 | } else if is_array(Some(arr.index(idx))) { [INFO] [stderr] 115 | Err(Error::CannotDeleteNonEmptyArray(None)) [INFO] [stderr] 116 | } else { [INFO] [stderr] 117 | let act = name_of_val(Some(arr.index(idx))); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/delete.rs:144:36 [INFO] [stderr] | [INFO] [stderr] 144 | } else { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 145 | | if is_table(tab.get(ident)) { [INFO] [stderr] 146 | | Err(Error::CannotDeleteNonEmptyTable(Some(ident.clone()))) [INFO] [stderr] 147 | | } else if is_array(tab.get(ident)) { [INFO] [stderr] ... | [INFO] [stderr] 153 | | } [INFO] [stderr] 154 | | } [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] 144 | } else if is_table(tab.get(ident)) { [INFO] [stderr] 145 | Err(Error::CannotDeleteNonEmptyTable(Some(ident.clone()))) [INFO] [stderr] 146 | } else if is_array(tab.get(ident)) { [INFO] [stderr] 147 | Err(Error::CannotDeleteNonEmptyArray(Some(ident.clone()))) [INFO] [stderr] 148 | } else { [INFO] [stderr] 149 | let act = name_of_val(tab.get(ident)); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/delete.rs:168:36 [INFO] [stderr] | [INFO] [stderr] 168 | } else { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 169 | | if is_table(Some(&arr.index(idx))) { [INFO] [stderr] 170 | | Err(Error::CannotDeleteNonEmptyTable(None)) [INFO] [stderr] 171 | | } else if is_array(Some(&arr.index(idx))) { [INFO] [stderr] ... | [INFO] [stderr] 177 | | } [INFO] [stderr] 178 | | } [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] 168 | } else if is_table(Some(&arr.index(idx))) { [INFO] [stderr] 169 | Err(Error::CannotDeleteNonEmptyTable(None)) [INFO] [stderr] 170 | } else if is_array(Some(&arr.index(idx))) { [INFO] [stderr] 171 | Err(Error::CannotDeleteNonEmptyArray(None)) [INFO] [stderr] 172 | } else { [INFO] [stderr] 173 | let act = name_of_val(Some(arr.index(idx))); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:67:29 [INFO] [stderr] | [INFO] [stderr] 67 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:93:29 [INFO] [stderr] | [INFO] [stderr] 93 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:164:21 [INFO] [stderr] | [INFO] [stderr] 164 | None => return Err(Error::ArrayAccessWithoutIndex), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(Error::ArrayAccessWithoutIndex)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/resolver/mut_resolver.rs:22:29 [INFO] [stderr] | [INFO] [stderr] 22 | return Err(Error::IdentifierNotFoundInDocument(ident.to_owned())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(Error::IdentifierNotFoundInDocument(ident.to_owned()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/resolver/mut_creating_resolver.rs:57:28 [INFO] [stderr] | [INFO] [stderr] 57 | } else { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 58 | | if let Some(next) = tokens.next() { [INFO] [stderr] 59 | | match **next { [INFO] [stderr] 60 | | Token::Identifier { .. } => { [INFO] [stderr] ... | [INFO] [stderr] 71 | | } [INFO] [stderr] 72 | | } [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] 57 | } else if let Some(next) = tokens.next() { [INFO] [stderr] 58 | match **next { [INFO] [stderr] 59 | Token::Identifier { .. } => { [INFO] [stderr] 60 | ary.push(Value::Table(BTreeMap::new())); [INFO] [stderr] 61 | }, [INFO] [stderr] 62 | Token::Index { .. } => { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/resolver/non_mut_resolver.rs:22:29 [INFO] [stderr] | [INFO] [stderr] 22 | return Err(Error::IdentifierNotFoundInDocument(ident.to_owned())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(Error::IdentifierNotFoundInDocument(ident.to_owned()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/read.rs:120:9 [INFO] [stderr] | [INFO] [stderr] 120 | / match val { [INFO] [stderr] 121 | | &Value::Table(ref t) => assert!(t.is_empty()), [INFO] [stderr] 122 | | _ => panic!("What just happened?"), [INFO] [stderr] 123 | | } [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] 120 | match *val { [INFO] [stderr] 121 | Value::Table(ref t) => assert!(t.is_empty()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/read.rs:202:9 [INFO] [stderr] | [INFO] [stderr] 202 | / match val { [INFO] [stderr] 203 | | &Value::Table(ref t) => assert!(t.is_empty()), [INFO] [stderr] 204 | | _ => panic!("What just happened?"), [INFO] [stderr] 205 | | } [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] 202 | match *val { [INFO] [stderr] 203 | Value::Table(ref t) => assert!(t.is_empty()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/set.rs:63:17 [INFO] [stderr] | [INFO] [stderr] 63 | / match val { [INFO] [stderr] 64 | | &mut Value::Table(ref mut t) => { [INFO] [stderr] 65 | | Ok(t.insert(ident, value)) [INFO] [stderr] 66 | | }, [INFO] [stderr] 67 | | &mut Value::Array(_) => Err(Error::NoIdentifierInArray(ident)), [INFO] [stderr] 68 | | _ => Err(Error::QueryingValueAsTable(ident)), [INFO] [stderr] 69 | | } [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] 63 | match *val { [INFO] [stderr] 64 | Value::Table(ref mut t) => { [INFO] [stderr] 65 | Ok(t.insert(ident, value)) [INFO] [stderr] 66 | }, [INFO] [stderr] 67 | Value::Array(_) => Err(Error::NoIdentifierInArray(ident)), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/set.rs:73:17 [INFO] [stderr] | [INFO] [stderr] 73 | / match val { [INFO] [stderr] 74 | | &mut Value::Array(ref mut a) => { [INFO] [stderr] 75 | | if a.len() > idx { [INFO] [stderr] 76 | | let result = a.swap_remove(idx); [INFO] [stderr] ... | [INFO] [stderr] 85 | | _ => Err(Error::QueryingValueAsArray(idx)), [INFO] [stderr] 86 | | } [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] 73 | match *val { [INFO] [stderr] 74 | Value::Array(ref mut a) => { [INFO] [stderr] 75 | if a.len() > idx { [INFO] [stderr] 76 | let result = a.swap_remove(idx); [INFO] [stderr] 77 | a.insert(idx, value); [INFO] [stderr] 78 | Ok(Some(result)) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/set.rs:126:17 [INFO] [stderr] | [INFO] [stderr] 126 | / match inner { [INFO] [stderr] 127 | | &Value::Table(ref t) => { [INFO] [stderr] 128 | | assert!(!t.is_empty()); [INFO] [stderr] 129 | | [INFO] [stderr] ... | [INFO] [stderr] 136 | | _ => panic!("What just happenend?"), [INFO] [stderr] 137 | | } [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 *inner { [INFO] [stderr] 127 | Value::Table(ref t) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/set.rs:166:17 [INFO] [stderr] | [INFO] [stderr] 166 | / match inner { [INFO] [stderr] 167 | | &Value::Table(ref t) => { [INFO] [stderr] 168 | | assert!(!t.is_empty()); [INFO] [stderr] 169 | | [INFO] [stderr] ... | [INFO] [stderr] 176 | | _ => panic!("What just happenend?"), [INFO] [stderr] 177 | | } [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] 166 | match *inner { [INFO] [stderr] 167 | Value::Table(ref t) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/set.rs:210:17 [INFO] [stderr] | [INFO] [stderr] 210 | / match inner { [INFO] [stderr] 211 | | &Value::Array(ref a) => { [INFO] [stderr] 212 | | assert!(!a.is_empty()); [INFO] [stderr] 213 | | assert!(is_match!(a.index(0), &Value::Integer(1))); [INFO] [stderr] 214 | | }, [INFO] [stderr] 215 | | _ => panic!("What just happenend?"), [INFO] [stderr] 216 | | } [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] 210 | match *inner { [INFO] [stderr] 211 | Value::Array(ref a) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/set.rs:247:17 [INFO] [stderr] | [INFO] [stderr] 247 | / match inner { [INFO] [stderr] 248 | | &Value::Array(ref a) => { [INFO] [stderr] 249 | | assert!(!a.is_empty()); [INFO] [stderr] 250 | | assert!(is_match!(a.index(0), &Value::Integer(1))); [INFO] [stderr] 251 | | }, [INFO] [stderr] 252 | | _ => panic!("What just happenend?"), [INFO] [stderr] 253 | | } [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] 247 | match *inner { [INFO] [stderr] 248 | Value::Array(ref a) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 27 [INFO] [stderr] --> src/set.rs:260:5 [INFO] [stderr] | [INFO] [stderr] 260 | / fn test_set_with_seperator_into_nested_table() { [INFO] [stderr] 261 | | let mut toml : Value = toml_from_str(r#" [INFO] [stderr] 262 | | [a.b.c] [INFO] [stderr] 263 | | d = 0 [INFO] [stderr] ... | [INFO] [stderr] 323 | | } [INFO] [stderr] 324 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/set.rs:285:17 [INFO] [stderr] | [INFO] [stderr] 285 | / match a { [INFO] [stderr] 286 | | &Value::Table(ref a) => { [INFO] [stderr] 287 | | assert!(!a.is_empty()); [INFO] [stderr] 288 | | [INFO] [stderr] ... | [INFO] [stderr] 319 | | _ => panic!("What just happenend?"), [INFO] [stderr] 320 | | } [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] 285 | match *a { [INFO] [stderr] 286 | Value::Table(ref a) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/set.rs:294:25 [INFO] [stderr] | [INFO] [stderr] 294 | / match b_tab { [INFO] [stderr] 295 | | &Value::Table(ref b) => { [INFO] [stderr] 296 | | assert!(!b.is_empty()); [INFO] [stderr] 297 | | [INFO] [stderr] ... | [INFO] [stderr] 316 | | _ => panic!("What just happenend?"), [INFO] [stderr] 317 | | } [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] 294 | match *b_tab { [INFO] [stderr] 295 | Value::Table(ref b) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/set.rs:303:33 [INFO] [stderr] | [INFO] [stderr] 303 | / match c_tab { [INFO] [stderr] 304 | | &Value::Table(ref c) => { [INFO] [stderr] 305 | | assert!(!c.is_empty()); [INFO] [stderr] 306 | | [INFO] [stderr] ... | [INFO] [stderr] 313 | | _ => panic!("What just happenend?"), [INFO] [stderr] 314 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 303 | match *c_tab { [INFO] [stderr] 304 | Value::Table(ref c) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/insert.rs:113:17 [INFO] [stderr] | [INFO] [stderr] 113 | / match val { [INFO] [stderr] 114 | | &mut Value::Table(ref mut t) => { [INFO] [stderr] 115 | | Ok(t.insert(ident, value)) [INFO] [stderr] 116 | | }, [INFO] [stderr] 117 | | _ => Err(Error::NoIdentifierInArray(ident.clone())) [INFO] [stderr] 118 | | } [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] 113 | match *val { [INFO] [stderr] 114 | Value::Table(ref mut t) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/insert.rs:122:17 [INFO] [stderr] | [INFO] [stderr] 122 | / match val { [INFO] [stderr] 123 | | &mut Value::Array(ref mut a) => { [INFO] [stderr] 124 | | if a.len() > idx { [INFO] [stderr] 125 | | a.insert(idx, value); [INFO] [stderr] ... | [INFO] [stderr] 132 | | _ => Err(Error::NoIndexInTable(idx)) [INFO] [stderr] 133 | | } [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] 122 | match *val { [INFO] [stderr] 123 | Value::Array(ref mut a) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/insert.rs:196:17 [INFO] [stderr] | [INFO] [stderr] 196 | / match table { [INFO] [stderr] 197 | | &Value::Table(ref t) => { [INFO] [stderr] 198 | | assert!(!t.is_empty()); [INFO] [stderr] 199 | | [INFO] [stderr] ... | [INFO] [stderr] 206 | | _ => panic!("What just happenend?"), [INFO] [stderr] 207 | | } [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] 196 | match *table { [INFO] [stderr] 197 | Value::Table(ref t) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/insert.rs:238:17 [INFO] [stderr] | [INFO] [stderr] 238 | / match array { [INFO] [stderr] 239 | | &Value::Array(ref a) => { [INFO] [stderr] 240 | | assert!(!a.is_empty()); [INFO] [stderr] 241 | | assert!(is_match!(a.index(0), &Value::Integer(1))); [INFO] [stderr] 242 | | }, [INFO] [stderr] 243 | | _ => panic!("What just happenend?"), [INFO] [stderr] 244 | | } [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] 238 | match *array { [INFO] [stderr] 239 | Value::Array(ref a) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/insert.rs:272:17 [INFO] [stderr] | [INFO] [stderr] 272 | / match a_tab { [INFO] [stderr] 273 | | &Value::Table(ref a) => { [INFO] [stderr] 274 | | assert!(!a.is_empty()); [INFO] [stderr] 275 | | [INFO] [stderr] ... | [INFO] [stderr] 306 | | _ => panic!("What just happenend?"), [INFO] [stderr] 307 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 272 | match *a_tab { [INFO] [stderr] 273 | Value::Table(ref a) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/insert.rs:281:25 [INFO] [stderr] | [INFO] [stderr] 281 | / match b_tab { [INFO] [stderr] 282 | | &Value::Table(ref b) => { [INFO] [stderr] 283 | | assert!(!b.is_empty()); [INFO] [stderr] 284 | | [INFO] [stderr] ... | [INFO] [stderr] 303 | | _ => panic!("What just happenend?"), [INFO] [stderr] 304 | | } [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] 281 | match *b_tab { [INFO] [stderr] 282 | Value::Table(ref b) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/insert.rs:290:33 [INFO] [stderr] | [INFO] [stderr] 290 | / match c_tab { [INFO] [stderr] 291 | | &Value::Table(ref c) => { [INFO] [stderr] 292 | | assert!(!c.is_empty()); [INFO] [stderr] 293 | | [INFO] [stderr] ... | [INFO] [stderr] 300 | | _ => panic!("What just happenend?"), [INFO] [stderr] 301 | | } [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] 290 | match *c_tab { [INFO] [stderr] 291 | Value::Table(ref c) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/insert.rs:366:17 [INFO] [stderr] | [INFO] [stderr] 366 | / match array { [INFO] [stderr] 367 | | &Value::Array(ref a) => { [INFO] [stderr] 368 | | assert!(!a.is_empty()); [INFO] [stderr] 369 | | assert!(is_match!(a.index(0), &Value::Integer(1))); [INFO] [stderr] ... | [INFO] [stderr] 376 | | _ => panic!("What just happenend?"), [INFO] [stderr] 377 | | } [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] 366 | match *array { [INFO] [stderr] 367 | Value::Array(ref a) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/insert.rs:405:17 [INFO] [stderr] | [INFO] [stderr] 405 | / match table { [INFO] [stderr] 406 | | &Value::Table(ref t) => { [INFO] [stderr] 407 | | assert!(!t.is_empty()); [INFO] [stderr] 408 | | [INFO] [stderr] ... | [INFO] [stderr] 415 | | _ => panic!("What just happenend?"), [INFO] [stderr] 416 | | } [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] 405 | match *table { [INFO] [stderr] 406 | Value::Table(ref t) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/delete.rs:61:25 [INFO] [stderr] | [INFO] [stderr] 61 | val.map(|v| match v { [INFO] [stderr] | _________________________^ [INFO] [stderr] 62 | | &Value::Table(ref tab) => tab.is_empty(), [INFO] [stderr] 63 | | &Value::Array(ref arr) => arr.is_empty(), [INFO] [stderr] 64 | | _ => default [INFO] [stderr] 65 | | }) [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] 61 | val.map(|v| match *v { [INFO] [stderr] 62 | Value::Table(ref tab) => tab.is_empty(), [INFO] [stderr] 63 | Value::Array(ref arr) => arr.is_empty(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/delete.rs:85:13 [INFO] [stderr] | [INFO] [stderr] 85 | / match self { [INFO] [stderr] 86 | | &mut Value::Table(ref mut tab) => { [INFO] [stderr] 87 | | match tokens { [INFO] [stderr] 88 | | Token::Identifier { ident, .. } => { [INFO] [stderr] ... | [INFO] [stderr] 132 | | } [INFO] [stderr] 133 | | } [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] 85 | match *self { [INFO] [stderr] 86 | Value::Table(ref mut tab) => { [INFO] [stderr] 87 | match tokens { [INFO] [stderr] 88 | Token::Identifier { ident, .. } => { [INFO] [stderr] 89 | if is_empty(tab.get(&ident), true) { [INFO] [stderr] 90 | Ok(tab.remove(&ident)) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/delete.rs:131:25 [INFO] [stderr] | [INFO] [stderr] 131 | Err(Error::from(kind)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider removing `Error::from()`: `kind` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/delete.rs:138:13 [INFO] [stderr] | [INFO] [stderr] 138 | / match val { [INFO] [stderr] 139 | | &mut Value::Table(ref mut tab) => { [INFO] [stderr] 140 | | match *last_token { [INFO] [stderr] 141 | | Token::Identifier { ref ident, .. } => { [INFO] [stderr] ... | [INFO] [stderr] 188 | | } [INFO] [stderr] 189 | | } [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] 138 | match *val { [INFO] [stderr] 139 | Value::Table(ref mut tab) => { [INFO] [stderr] 140 | match *last_token { [INFO] [stderr] 141 | Token::Identifier { ref ident, .. } => { [INFO] [stderr] 142 | if is_empty(tab.get(ident), true) { [INFO] [stderr] 143 | Ok(tab.remove(ident)) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/delete.rs:187:25 [INFO] [stderr] | [INFO] [stderr] 187 | Err(Error::from(kind)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider removing `Error::from()`: `kind` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/tokenizer.rs:20:34 [INFO] [stderr] | [INFO] [stderr] 20 | pub fn next(&self) -> Option<&Box> { [INFO] [stderr] | ^^^^^^^^^^^ help: try: `&Token` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::borrowed_box)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/tokenizer.rs:22:9 [INFO] [stderr] | [INFO] [stderr] 22 | / match self { [INFO] [stderr] 23 | | &Token::Identifier { ref next, .. } => next.as_ref(), [INFO] [stderr] 24 | | &Token::Index { ref next, .. } => next.as_ref(), [INFO] [stderr] 25 | | } [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] 22 | match *self { [INFO] [stderr] 23 | Token::Identifier { ref next, .. } => next.as_ref(), [INFO] [stderr] 24 | Token::Index { ref next, .. } => next.as_ref(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/tokenizer.rs:36:9 [INFO] [stderr] | [INFO] [stderr] 36 | / match self { [INFO] [stderr] 37 | | &mut Token::Identifier { ref mut next, .. } => *next = Some(Box::new(token)), [INFO] [stderr] 38 | | &mut Token::Index { ref mut next, .. } => *next = Some(Box::new(token)), [INFO] [stderr] 39 | | } [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] 36 | match *self { [INFO] [stderr] 37 | Token::Identifier { ref mut next, .. } => *next = Some(Box::new(token)), [INFO] [stderr] 38 | Token::Index { ref mut next, .. } => *next = Some(Box::new(token)), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/tokenizer.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 52 | / match self { [INFO] [stderr] 53 | | &mut Token::Identifier { ref mut next, .. } => { [INFO] [stderr] 54 | | trace!("self.pop_last(): self is Identifier"); [INFO] [stderr] 55 | | if next.is_some() { [INFO] [stderr] ... | [INFO] [stderr] 102 | | }, [INFO] [stderr] 103 | | } [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 | Token::Identifier { ref mut next, .. } => { [INFO] [stderr] 54 | trace!("self.pop_last(): self is Identifier"); [INFO] [stderr] 55 | if next.is_some() { [INFO] [stderr] 56 | trace!("self.pop_last(): next is Some(_)"); [INFO] [stderr] 57 | let mut n = next.take().unwrap(); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/tokenizer.rs:110:9 [INFO] [stderr] | [INFO] [stderr] 110 | / match self { [INFO] [stderr] 111 | | &Token::Identifier { ref ident, .. } => &ident, [INFO] [stderr] 112 | | _ => unreachable!(), [INFO] [stderr] 113 | | } [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] 110 | match *self { [INFO] [stderr] 111 | Token::Identifier { ref ident, .. } => &ident, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/tokenizer.rs:119:9 [INFO] [stderr] | [INFO] [stderr] 119 | / match self { [INFO] [stderr] 120 | | &Token::Index { idx: i, .. } => i, [INFO] [stderr] 121 | | _ => unreachable!(), [INFO] [stderr] 122 | | } [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] 119 | match *self { [INFO] [stderr] 120 | Token::Index { idx: i, .. } => i, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/tokenizer.rs:207:20 [INFO] [stderr] | [INFO] [stderr] 207 | if token.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `token.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/tokenizer.rs:235:16 [INFO] [stderr] | [INFO] [stderr] 235 | if token.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `token.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/tokenizer.rs:241:13 [INFO] [stderr] | [INFO] [stderr] 241 | let _ = try!(build_token_tree(&mut tokens, &mut tok)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/tokenizer.rs:325:17 [INFO] [stderr] | [INFO] [stderr] 325 | / match next.deref() { [INFO] [stderr] 326 | | &Token::Identifier { next: None, .. } => true, [INFO] [stderr] 327 | | _ => false [INFO] [stderr] 328 | | } [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] 325 | match *next.deref() { [INFO] [stderr] 326 | Token::Identifier { next: None, .. } => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/tokenizer.rs:344:17 [INFO] [stderr] | [INFO] [stderr] 344 | / match next.deref() { [INFO] [stderr] 345 | | &Token::Index { idx: 0, next: None } => true, [INFO] [stderr] 346 | | _ => false [INFO] [stderr] 347 | | } [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] 344 | match *next.deref() { [INFO] [stderr] 345 | Token::Index { idx: 0, next: None } => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_resolver.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | / match toml { [INFO] [stderr] 17 | | &mut Value::Table(ref mut t) => { [INFO] [stderr] 18 | | match tokens { [INFO] [stderr] 19 | | &Token::Identifier { ref ident, .. } => { [INFO] [stderr] ... | [INFO] [stderr] 54 | | } [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] 16 | match *toml { [INFO] [stderr] 17 | Value::Table(ref mut t) => { [INFO] [stderr] 18 | match tokens { [INFO] [stderr] 19 | &Token::Identifier { ref ident, .. } => { [INFO] [stderr] 20 | match t.get_mut(ident) { [INFO] [stderr] 21 | None => if error_if_not_found { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_resolver.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | / match tokens { [INFO] [stderr] 19 | | &Token::Identifier { ref ident, .. } => { [INFO] [stderr] 20 | | match t.get_mut(ident) { [INFO] [stderr] 21 | | None => if error_if_not_found { [INFO] [stderr] ... | [INFO] [stderr] 33 | | &Token::Index { idx, .. } => Err(Error::NoIndexInTable(idx)), [INFO] [stderr] 34 | | } [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] 18 | match *tokens { [INFO] [stderr] 19 | Token::Identifier { ref ident, .. } => { [INFO] [stderr] 20 | match t.get_mut(ident) { [INFO] [stderr] 21 | None => if error_if_not_found { [INFO] [stderr] 22 | return Err(Error::IdentifierNotFoundInDocument(ident.to_owned())) [INFO] [stderr] 23 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_resolver.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | / match tokens { [INFO] [stderr] 39 | | &Token::Index { idx, .. } => { [INFO] [stderr] 40 | | match tokens.next() { [INFO] [stderr] 41 | | Some(next) => resolve(ary.get_mut(idx).unwrap(), next, error_if_not_found), [INFO] [stderr] ... | [INFO] [stderr] 47 | | }, [INFO] [stderr] 48 | | } [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] 38 | match *tokens { [INFO] [stderr] 39 | Token::Index { idx, .. } => { [INFO] [stderr] 40 | match tokens.next() { [INFO] [stderr] 41 | Some(next) => resolve(ary.get_mut(idx).unwrap(), next, error_if_not_found), [INFO] [stderr] 42 | None => Ok(Some(ary.index_mut(idx))), [INFO] [stderr] 43 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: called `.get_mut().unwrap()` on a slice. Using `[]` is more clear and more concise [INFO] [stderr] --> src/resolver/mut_resolver.rs:41:47 [INFO] [stderr] | [INFO] [stderr] 41 | Some(next) => resolve(ary.get_mut(idx).unwrap(), next, error_if_not_found), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ary[idx]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_resolver.rs:51:14 [INFO] [stderr] | [INFO] [stderr] 51 | _ => match tokens { [INFO] [stderr] | ______________^ [INFO] [stderr] 52 | | &Token::Identifier { ref ident, .. } => Err(Error::QueryingValueAsTable(ident.clone())), [INFO] [stderr] 53 | | &Token::Index { idx, .. } => Err(Error::QueryingValueAsArray(idx)), [INFO] [stderr] 54 | | } [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] 51 | _ => match *tokens { [INFO] [stderr] 52 | Token::Identifier { ref ident, .. } => Err(Error::QueryingValueAsTable(ident.clone())), [INFO] [stderr] 53 | Token::Index { idx, .. } => Err(Error::QueryingValueAsArray(idx)), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_resolver.rs:132:9 [INFO] [stderr] | [INFO] [stderr] 132 | / match result { [INFO] [stderr] 133 | | &mut Value::String(ref s) => assert_eq!("string", s), [INFO] [stderr] 134 | | _ => panic!("What just happened?"), [INFO] [stderr] 135 | | } [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] 132 | match *result { [INFO] [stderr] 133 | Value::String(ref s) => assert_eq!("string", s), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_resolver.rs:150:9 [INFO] [stderr] | [INFO] [stderr] 150 | / match result { [INFO] [stderr] 151 | | &mut Value::Array(ref ary) => { [INFO] [stderr] 152 | | assert_eq!(ary[0], Value::Boolean(true)); [INFO] [stderr] 153 | | assert_eq!(ary[1], Value::Boolean(false)); [INFO] [stderr] 154 | | }, [INFO] [stderr] 155 | | _ => panic!("What just happened?"), [INFO] [stderr] 156 | | } [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] 150 | match *result { [INFO] [stderr] 151 | Value::Array(ref ary) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_resolver.rs:171:9 [INFO] [stderr] | [INFO] [stderr] 171 | / match result { [INFO] [stderr] 172 | | &mut Value::Array(ref ary) => { [INFO] [stderr] 173 | | assert_eq!(ary[0], Value::Integer(1)); [INFO] [stderr] 174 | | assert_eq!(ary[1], Value::Integer(1337)); [INFO] [stderr] 175 | | }, [INFO] [stderr] 176 | | _ => panic!("What just happened?"), [INFO] [stderr] 177 | | } [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] 171 | match *result { [INFO] [stderr] 172 | Value::Array(ref ary) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_resolver.rs:192:9 [INFO] [stderr] | [INFO] [stderr] 192 | / match result { [INFO] [stderr] 193 | | &mut Value::Array(ref ary) => { [INFO] [stderr] 194 | | assert!(is_match!(ary[0], Value::Float(_))); [INFO] [stderr] 195 | | assert_eq!(ary[0].as_float(), Some(1.0)); [INFO] [stderr] ... | [INFO] [stderr] 199 | | _ => panic!("What just happened?"), [INFO] [stderr] 200 | | } [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] 192 | match *result { [INFO] [stderr] 193 | Value::Array(ref ary) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_resolver.rs:284:9 [INFO] [stderr] | [INFO] [stderr] 284 | / match result { [INFO] [stderr] 285 | | &mut Value::Array(ref ary) => { [INFO] [stderr] 286 | | assert!(is_match!(ary[0], Value::Float(_))); [INFO] [stderr] 287 | | assert_eq!(ary[0].as_float(), Some(42.0)); [INFO] [stderr] ... | [INFO] [stderr] 291 | | _ => panic!("What just happened?"), [INFO] [stderr] 292 | | } [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] 284 | match *result { [INFO] [stderr] 285 | Value::Array(ref ary) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_resolver.rs:333:9 [INFO] [stderr] | [INFO] [stderr] 333 | / match result { [INFO] [stderr] 334 | | &mut Value::String(ref s) => assert_eq!("Foo", s), [INFO] [stderr] 335 | | _ => panic!("What just happened?"), [INFO] [stderr] 336 | | } [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] 333 | match *result { [INFO] [stderr] 334 | Value::String(ref s) => assert_eq!("Foo", s), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_resolver.rs:367:9 [INFO] [stderr] | [INFO] [stderr] 367 | / match result { [INFO] [stderr] 368 | | &mut Value::String(ref s) => assert_eq!("apple", s), [INFO] [stderr] 369 | | _ => panic!("What just happened?"), [INFO] [stderr] 370 | | } [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] 367 | match *result { [INFO] [stderr] 368 | Value::String(ref s) => assert_eq!("apple", s), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_resolver.rs:385:9 [INFO] [stderr] | [INFO] [stderr] 385 | / match result { [INFO] [stderr] 386 | | &mut Value::Table(ref tab) => { [INFO] [stderr] 387 | | match tab.get("color") { [INFO] [stderr] 388 | | Some(&Value::String(ref s)) => assert_eq!("red", s), [INFO] [stderr] ... | [INFO] [stderr] 396 | | _ => panic!("What just happened?"), [INFO] [stderr] 397 | | } [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] 385 | match *result { [INFO] [stderr] 386 | Value::Table(ref tab) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_resolver.rs:421:9 [INFO] [stderr] | [INFO] [stderr] 421 | / match result { [INFO] [stderr] 422 | | &mut Value::String(ref s) => assert_eq!("yellow", s), [INFO] [stderr] 423 | | _ => panic!("What just happened?"), [INFO] [stderr] 424 | | } [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] 421 | match *result { [INFO] [stderr] 422 | Value::String(ref s) => assert_eq!("yellow", s), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_resolver.rs:441:9 [INFO] [stderr] | [INFO] [stderr] 441 | / match result { [INFO] [stderr] 442 | | &mut Value::Table(ref t) => assert!(t.is_empty()), [INFO] [stderr] 443 | | _ => panic!("What just happened?"), [INFO] [stderr] 444 | | } [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] 441 | match *result { [INFO] [stderr] 442 | Value::Table(ref t) => assert!(t.is_empty()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_creating_resolver.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | / match toml { [INFO] [stderr] 28 | | &mut Value::Table(ref mut t) => { [INFO] [stderr] 29 | | if t.contains_key(ident) { [INFO] [stderr] 30 | | match tokens.next() { [INFO] [stderr] ... | [INFO] [stderr] 45 | | _ => unimplemented!() [INFO] [stderr] 46 | | } [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] 27 | match *toml { [INFO] [stderr] 28 | Value::Table(ref mut t) => { [INFO] [stderr] 29 | if t.contains_key(ident) { [INFO] [stderr] 30 | match tokens.next() { [INFO] [stderr] 31 | Some(next) => resolve(t.get_mut(ident).unwrap(), next), [INFO] [stderr] 32 | None => t.get_mut(ident).ok_or_else(|| unreachable!()), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/resolver/mut_creating_resolver.rs:37:69 [INFO] [stderr] | [INFO] [stderr] 37 | let subdoc = t.entry(ident.clone()).or_insert(Value::Table(BTreeMap::new())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(|| Value::Table(BTreeMap::new()))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/resolver/mut_creating_resolver.rs:40:63 [INFO] [stderr] | [INFO] [stderr] 40 | None => Ok(t.entry(ident.clone()).or_insert(Value::Table(BTreeMap::new()))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(|| Value::Table(BTreeMap::new()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_creating_resolver.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | / match toml { [INFO] [stderr] 50 | | &mut Value::Table(_) => Err(Error::NoIndexInTable(idx)), [INFO] [stderr] 51 | | &mut Value::Array(ref mut ary) => { [INFO] [stderr] 52 | | if ary.len() > idx { [INFO] [stderr] ... | [INFO] [stderr] 74 | | _ => unimplemented!() [INFO] [stderr] 75 | | } [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] 49 | match *toml { [INFO] [stderr] 50 | Value::Table(_) => Err(Error::NoIndexInTable(idx)), [INFO] [stderr] 51 | Value::Array(ref mut ary) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `.get_mut().unwrap()` on a slice. Using `[]` is more clear and more concise [INFO] [stderr] --> src/resolver/mut_creating_resolver.rs:54:51 [INFO] [stderr] | [INFO] [stderr] 54 | Some(next) => resolve(ary.get_mut(idx).unwrap(), next), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ary[idx]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_creating_resolver.rs:101:9 [INFO] [stderr] | [INFO] [stderr] 101 | / match result { [INFO] [stderr] 102 | | &mut Value::Table(ref tab) => assert!(tab.is_empty()), [INFO] [stderr] 103 | | _ => assert!(false, "Expected Table, got something else"), [INFO] [stderr] 104 | | } [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] 101 | match *result { [INFO] [stderr] 102 | Value::Table(ref tab) => assert!(tab.is_empty()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_creating_resolver.rs:150:9 [INFO] [stderr] | [INFO] [stderr] 150 | / match result { [INFO] [stderr] 151 | | &mut Value::String(ref s) => assert_eq!("string", s), [INFO] [stderr] 152 | | _ => panic!("What just happened?"), [INFO] [stderr] 153 | | } [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] 150 | match *result { [INFO] [stderr] 151 | Value::String(ref s) => assert_eq!("string", s), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_creating_resolver.rs:165:9 [INFO] [stderr] | [INFO] [stderr] 165 | / match result { [INFO] [stderr] 166 | | &mut Value::Array(ref ary) => { [INFO] [stderr] 167 | | assert_eq!(ary[0], Value::Boolean(true)); [INFO] [stderr] 168 | | assert_eq!(ary[1], Value::Boolean(false)); [INFO] [stderr] 169 | | }, [INFO] [stderr] 170 | | _ => panic!("What just happened?"), [INFO] [stderr] 171 | | } [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] 165 | match *result { [INFO] [stderr] 166 | Value::Array(ref ary) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_creating_resolver.rs:183:9 [INFO] [stderr] | [INFO] [stderr] 183 | / match result { [INFO] [stderr] 184 | | &mut Value::Array(ref ary) => { [INFO] [stderr] 185 | | assert_eq!(ary[0], Value::Integer(1)); [INFO] [stderr] 186 | | assert_eq!(ary[1], Value::Integer(1337)); [INFO] [stderr] 187 | | }, [INFO] [stderr] 188 | | _ => panic!("What just happened?"), [INFO] [stderr] 189 | | } [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] 183 | match *result { [INFO] [stderr] 184 | Value::Array(ref ary) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_creating_resolver.rs:201:9 [INFO] [stderr] | [INFO] [stderr] 201 | / match result { [INFO] [stderr] 202 | | &mut Value::Array(ref ary) => { [INFO] [stderr] 203 | | assert!(is_match!(ary[0], Value::Float(_))); [INFO] [stderr] 204 | | assert_eq!(ary[0].as_float(), Some(1.0)); [INFO] [stderr] ... | [INFO] [stderr] 208 | | _ => panic!("What just happened?"), [INFO] [stderr] 209 | | } [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] 201 | match *result { [INFO] [stderr] 202 | Value::Array(ref ary) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_creating_resolver.rs:278:9 [INFO] [stderr] | [INFO] [stderr] 278 | / match result { [INFO] [stderr] 279 | | &mut Value::Array(ref ary) => { [INFO] [stderr] 280 | | assert!(is_match!(ary[0], Value::Float(_))); [INFO] [stderr] 281 | | assert_eq!(ary[0].as_float(), Some(42.0)); [INFO] [stderr] ... | [INFO] [stderr] 285 | | _ => panic!("What just happened?"), [INFO] [stderr] 286 | | } [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] 278 | match *result { [INFO] [stderr] 279 | Value::Array(ref ary) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_creating_resolver.rs:321:9 [INFO] [stderr] | [INFO] [stderr] 321 | / match result { [INFO] [stderr] 322 | | &mut Value::String(ref s) => assert_eq!("Foo", s), [INFO] [stderr] 323 | | _ => panic!("What just happened?"), [INFO] [stderr] 324 | | } [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] 321 | match *result { [INFO] [stderr] 322 | Value::String(ref s) => assert_eq!("Foo", s), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_creating_resolver.rs:352:9 [INFO] [stderr] | [INFO] [stderr] 352 | / match result { [INFO] [stderr] 353 | | &mut Value::String(ref s) => assert_eq!("apple", s), [INFO] [stderr] 354 | | _ => panic!("What just happened?"), [INFO] [stderr] 355 | | } [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] 352 | match *result { [INFO] [stderr] 353 | Value::String(ref s) => assert_eq!("apple", s), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_creating_resolver.rs:367:9 [INFO] [stderr] | [INFO] [stderr] 367 | / match result { [INFO] [stderr] 368 | | &mut Value::Table(ref tab) => { [INFO] [stderr] 369 | | match tab.get("color") { [INFO] [stderr] 370 | | Some(&Value::String(ref s)) => assert_eq!("red", s), [INFO] [stderr] ... | [INFO] [stderr] 378 | | _ => panic!("What just happened?"), [INFO] [stderr] 379 | | } [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] 367 | match *result { [INFO] [stderr] 368 | Value::Table(ref tab) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_creating_resolver.rs:397:9 [INFO] [stderr] | [INFO] [stderr] 397 | / match result { [INFO] [stderr] 398 | | &mut Value::String(ref s) => assert_eq!("yellow", s), [INFO] [stderr] 399 | | _ => panic!("What just happened?"), [INFO] [stderr] 400 | | } [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] 397 | match *result { [INFO] [stderr] 398 | Value::String(ref s) => assert_eq!("yellow", s), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_creating_resolver.rs:414:9 [INFO] [stderr] | [INFO] [stderr] 414 | / match result { [INFO] [stderr] 415 | | &mut Value::Table(ref t) => assert!(t.is_empty()), [INFO] [stderr] 416 | | _ => panic!("What just happened?"), [INFO] [stderr] 417 | | } [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] 414 | match *result { [INFO] [stderr] 415 | Value::Table(ref t) => assert!(t.is_empty()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_creating_resolver.rs:428:9 [INFO] [stderr] | [INFO] [stderr] 428 | / match result { [INFO] [stderr] 429 | | &mut Value::Table(ref t) => assert!(t.is_empty()), [INFO] [stderr] 430 | | _ => panic!("What just happened?"), [INFO] [stderr] 431 | | } [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] 428 | match *result { [INFO] [stderr] 429 | Value::Table(ref t) => assert!(t.is_empty()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_creating_resolver.rs:460:9 [INFO] [stderr] | [INFO] [stderr] 460 | / match result { [INFO] [stderr] 461 | | &mut Value::Table(ref t) => assert!(t.is_empty()), [INFO] [stderr] 462 | | _ => panic!("What just happened?"), [INFO] [stderr] 463 | | } [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] 460 | match *result { [INFO] [stderr] 461 | Value::Table(ref t) => assert!(t.is_empty()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/mut_creating_resolver.rs:474:9 [INFO] [stderr] | [INFO] [stderr] 474 | / match result { [INFO] [stderr] 475 | | &mut Value::Table(ref t) => assert!(t.is_empty()), [INFO] [stderr] 476 | | _ => panic!("What just happened?"), [INFO] [stderr] 477 | | } [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] 474 | match *result { [INFO] [stderr] 475 | Value::Table(ref t) => assert!(t.is_empty()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/non_mut_resolver.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | / match toml { [INFO] [stderr] 17 | | &Value::Table(ref t) => { [INFO] [stderr] 18 | | match tokens { [INFO] [stderr] 19 | | &Token::Identifier { ref ident, .. } => { [INFO] [stderr] ... | [INFO] [stderr] 59 | | } [INFO] [stderr] 60 | | } [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] 16 | match *toml { [INFO] [stderr] 17 | Value::Table(ref t) => { [INFO] [stderr] 18 | match tokens { [INFO] [stderr] 19 | &Token::Identifier { ref ident, .. } => { [INFO] [stderr] 20 | match t.get(ident) { [INFO] [stderr] 21 | None => if error_if_not_found { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/non_mut_resolver.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | / match tokens { [INFO] [stderr] 19 | | &Token::Identifier { ref ident, .. } => { [INFO] [stderr] 20 | | match t.get(ident) { [INFO] [stderr] 21 | | None => if error_if_not_found { [INFO] [stderr] ... | [INFO] [stderr] 33 | | &Token::Index { idx, .. } => Err(Error::NoIndexInTable(idx)), [INFO] [stderr] 34 | | } [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] 18 | match *tokens { [INFO] [stderr] 19 | Token::Identifier { ref ident, .. } => { [INFO] [stderr] 20 | match t.get(ident) { [INFO] [stderr] 21 | None => if error_if_not_found { [INFO] [stderr] 22 | return Err(Error::IdentifierNotFoundInDocument(ident.to_owned())) [INFO] [stderr] 23 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/non_mut_resolver.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | / match tokens { [INFO] [stderr] 39 | | &Token::Index { idx, .. } => { [INFO] [stderr] 40 | | match tokens.next() { [INFO] [stderr] 41 | | Some(next) => resolve(ary.get(idx).unwrap(), next, error_if_not_found), [INFO] [stderr] ... | [INFO] [stderr] 47 | | }, [INFO] [stderr] 48 | | } [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] 38 | match *tokens { [INFO] [stderr] 39 | Token::Index { idx, .. } => { [INFO] [stderr] 40 | match tokens.next() { [INFO] [stderr] 41 | Some(next) => resolve(ary.get(idx).unwrap(), next, error_if_not_found), [INFO] [stderr] 42 | None => Ok(Some(ary.index(idx))), [INFO] [stderr] 43 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a slice. Using `[]` is more clear and more concise [INFO] [stderr] --> src/resolver/non_mut_resolver.rs:41:47 [INFO] [stderr] | [INFO] [stderr] 41 | Some(next) => resolve(ary.get(idx).unwrap(), next, error_if_not_found), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `ary[idx]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/non_mut_resolver.rs:51:14 [INFO] [stderr] | [INFO] [stderr] 51 | _ => match tokens { [INFO] [stderr] | ______________^ [INFO] [stderr] 52 | | &Token::Identifier { ref ident, .. } => { [INFO] [stderr] 53 | | Err(Error::QueryingValueAsTable(ident.clone())) [INFO] [stderr] 54 | | }, [INFO] [stderr] ... | [INFO] [stderr] 58 | | }, [INFO] [stderr] 59 | | } [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] 51 | _ => match *tokens { [INFO] [stderr] 52 | Token::Identifier { ref ident, .. } => { [INFO] [stderr] 53 | Err(Error::QueryingValueAsTable(ident.clone())) [INFO] [stderr] 54 | }, [INFO] [stderr] 55 | [INFO] [stderr] 56 | Token::Index { idx, .. } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/non_mut_resolver.rs:143:9 [INFO] [stderr] | [INFO] [stderr] 143 | / match result { [INFO] [stderr] 144 | | &Value::String(ref s) => assert_eq!("string", s), [INFO] [stderr] 145 | | _ => panic!("What just happened?"), [INFO] [stderr] 146 | | } [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] 143 | match *result { [INFO] [stderr] 144 | Value::String(ref s) => assert_eq!("string", s), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/non_mut_resolver.rs:161:9 [INFO] [stderr] | [INFO] [stderr] 161 | / match result { [INFO] [stderr] 162 | | &Value::Array(ref ary) => { [INFO] [stderr] 163 | | assert_eq!(ary[0], Value::Boolean(true)); [INFO] [stderr] 164 | | assert_eq!(ary[1], Value::Boolean(false)); [INFO] [stderr] 165 | | }, [INFO] [stderr] 166 | | _ => panic!("What just happened?"), [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] 161 | match *result { [INFO] [stderr] 162 | Value::Array(ref ary) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/non_mut_resolver.rs:182:9 [INFO] [stderr] | [INFO] [stderr] 182 | / match result { [INFO] [stderr] 183 | | &Value::Array(ref ary) => { [INFO] [stderr] 184 | | assert_eq!(ary[0], Value::Integer(1)); [INFO] [stderr] 185 | | assert_eq!(ary[1], Value::Integer(1337)); [INFO] [stderr] 186 | | }, [INFO] [stderr] 187 | | _ => panic!("What just happened?"), [INFO] [stderr] 188 | | } [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] 182 | match *result { [INFO] [stderr] 183 | Value::Array(ref ary) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/non_mut_resolver.rs:203:9 [INFO] [stderr] | [INFO] [stderr] 203 | / match result { [INFO] [stderr] 204 | | &Value::Array(ref ary) => { [INFO] [stderr] 205 | | assert!(is_match!(ary[0], Value::Float(_))); [INFO] [stderr] 206 | | assert_eq!(ary[0].as_float(), Some(1.0)); [INFO] [stderr] ... | [INFO] [stderr] 210 | | _ => panic!("What just happened?"), [INFO] [stderr] 211 | | } [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] 203 | match *result { [INFO] [stderr] 204 | Value::Array(ref ary) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/non_mut_resolver.rs:295:9 [INFO] [stderr] | [INFO] [stderr] 295 | / match result { [INFO] [stderr] 296 | | &Value::Array(ref ary) => { [INFO] [stderr] 297 | | assert!(is_match!(ary[0], Value::Float(_))); [INFO] [stderr] 298 | | assert_eq!(ary[0].as_float(), Some(42.0)); [INFO] [stderr] ... | [INFO] [stderr] 302 | | _ => panic!("What just happened?"), [INFO] [stderr] 303 | | } [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] 295 | match *result { [INFO] [stderr] 296 | Value::Array(ref ary) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/non_mut_resolver.rs:344:9 [INFO] [stderr] | [INFO] [stderr] 344 | / match result { [INFO] [stderr] 345 | | &Value::String(ref s) => assert_eq!("Foo", s), [INFO] [stderr] 346 | | _ => panic!("What just happened?"), [INFO] [stderr] 347 | | } [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] 344 | match *result { [INFO] [stderr] 345 | Value::String(ref s) => assert_eq!("Foo", s), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/non_mut_resolver.rs:378:9 [INFO] [stderr] | [INFO] [stderr] 378 | / match result { [INFO] [stderr] 379 | | &Value::String(ref s) => assert_eq!("apple", s), [INFO] [stderr] 380 | | _ => panic!("What just happened?"), [INFO] [stderr] 381 | | } [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] 378 | match *result { [INFO] [stderr] 379 | Value::String(ref s) => assert_eq!("apple", s), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/non_mut_resolver.rs:396:9 [INFO] [stderr] | [INFO] [stderr] 396 | / match result { [INFO] [stderr] 397 | | &Value::Table(ref tab) => { [INFO] [stderr] 398 | | match tab.get("color") { [INFO] [stderr] 399 | | Some(&Value::String(ref s)) => assert_eq!("red", s), [INFO] [stderr] ... | [INFO] [stderr] 407 | | _ => panic!("What just happened?"), [INFO] [stderr] 408 | | } [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] 396 | match *result { [INFO] [stderr] 397 | Value::Table(ref tab) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/non_mut_resolver.rs:432:9 [INFO] [stderr] | [INFO] [stderr] 432 | / match result { [INFO] [stderr] 433 | | &Value::String(ref s) => assert_eq!("yellow", s), [INFO] [stderr] 434 | | _ => panic!("What just happened?"), [INFO] [stderr] 435 | | } [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] 432 | match *result { [INFO] [stderr] 433 | Value::String(ref s) => assert_eq!("yellow", s), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/resolver/non_mut_resolver.rs:452:9 [INFO] [stderr] | [INFO] [stderr] 452 | / match result { [INFO] [stderr] 453 | | &Value::Table(ref t) => assert!(t.is_empty()), [INFO] [stderr] 454 | | _ => panic!("What just happened?"), [INFO] [stderr] 455 | | } [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] 452 | match *result { [INFO] [stderr] 453 | Value::Table(ref t) => assert!(t.is_empty()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 4.27s [INFO] running `"docker" "inspect" "ffdad49220328036ad42d212badddef05d24be9429f61ac7c81767e03b8cc15b"` [INFO] running `"docker" "rm" "-f" "ffdad49220328036ad42d212badddef05d24be9429f61ac7c81767e03b8cc15b"` [INFO] [stdout] ffdad49220328036ad42d212badddef05d24be9429f61ac7c81767e03b8cc15b