[INFO] updating cached repository jaemk/risp [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/jaemk/risp [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/jaemk/risp" "work/ex/clippy-test-run/sources/stable/gh/jaemk/risp"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/jaemk/risp'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/jaemk/risp" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/jaemk/risp"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/jaemk/risp'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 40d348f0a7f14e62cb55ce038eab99317425f9cb [INFO] sha for GitHub repo jaemk/risp: 40d348f0a7f14e62cb55ce038eab99317425f9cb [INFO] validating manifest of jaemk/risp 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 jaemk/risp 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 jaemk/risp [INFO] finished frobbing jaemk/risp [INFO] frobbed toml for jaemk/risp written to work/ex/clippy-test-run/sources/stable/gh/jaemk/risp/Cargo.toml [INFO] started frobbing jaemk/risp [INFO] finished frobbing jaemk/risp [INFO] frobbed toml for jaemk/risp written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/jaemk/risp/Cargo.toml [INFO] crate jaemk/risp has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting jaemk/risp against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/jaemk/risp:/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] abc2206eb21f9a6aa0df68f138ee1790c2d3c67086e1d66d8afbc7fdb72585f2 [INFO] running `"docker" "start" "-a" "abc2206eb21f9a6aa0df68f138ee1790c2d3c67086e1d66d8afbc7fdb72585f2"` [INFO] [stderr] Compiling backtrace-sys v0.1.6 [INFO] [stderr] Checking num-bigint v0.1.35 [INFO] [stderr] Checking num-rational v0.1.35 [INFO] [stderr] Checking num v0.1.36 [INFO] [stderr] Checking fraction v0.3.4 [INFO] [stderr] Checking backtrace v0.3.0 [INFO] [stderr] Checking error-chain v0.8.1 [INFO] [stderr] Checking risp v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:164:9 [INFO] [stderr] | [INFO] [stderr] 164 | return Ok(Atom::ident(s.into())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Atom::ident(s.into()))` [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/main.rs:215:9 [INFO] [stderr] | [INFO] [stderr] 215 | / return Ok( [INFO] [stderr] 216 | | match self { [INFO] [stderr] 217 | | &Value::sequence(ref seq) => { [INFO] [stderr] 218 | | match seq { [INFO] [stderr] ... | [INFO] [stderr] 226 | | } [INFO] [stderr] 227 | | ) [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 215 | Ok( [INFO] [stderr] 216 | match self { [INFO] [stderr] 217 | &Value::sequence(ref seq) => { [INFO] [stderr] 218 | match seq { [INFO] [stderr] 219 | &Sequence::sexp(ref sexp) => { [INFO] [stderr] 220 | sexp.eval().chain_err(|| "Error parsing sexp")? [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:294:5 [INFO] [stderr] | [INFO] [stderr] 294 | return Ok(seq_val); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(seq_val)` [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/main.rs:164:9 [INFO] [stderr] | [INFO] [stderr] 164 | return Ok(Atom::ident(s.into())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Atom::ident(s.into()))` [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/main.rs:215:9 [INFO] [stderr] | [INFO] [stderr] 215 | / return Ok( [INFO] [stderr] 216 | | match self { [INFO] [stderr] 217 | | &Value::sequence(ref seq) => { [INFO] [stderr] 218 | | match seq { [INFO] [stderr] ... | [INFO] [stderr] 226 | | } [INFO] [stderr] 227 | | ) [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 215 | Ok( [INFO] [stderr] 216 | match self { [INFO] [stderr] 217 | &Value::sequence(ref seq) => { [INFO] [stderr] 218 | match seq { [INFO] [stderr] 219 | &Sequence::sexp(ref sexp) => { [INFO] [stderr] 220 | sexp.eval().chain_err(|| "Error parsing sexp")? [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:294:5 [INFO] [stderr] | [INFO] [stderr] 294 | return Ok(seq_val); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(seq_val)` [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: method is never used: `to_list` [INFO] [stderr] --> src/main.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | fn to_list(self) -> List { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_empty` [INFO] [stderr] --> src/main.rs:80:5 [INFO] [stderr] | [INFO] [stderr] 80 | fn is_empty(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `pop_front` [INFO] [stderr] --> src/main.rs:86:5 [INFO] [stderr] | [INFO] [stderr] 86 | fn pop_front(&mut self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `vec` [INFO] [stderr] --> src/main.rs:173:5 [INFO] [stderr] | [INFO] [stderr] 173 | vec(Vector), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `map` [INFO] [stderr] --> src/main.rs:174:5 [INFO] [stderr] | [INFO] [stderr] 174 | map(Map), [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `set` [INFO] [stderr] --> src/main.rs:175:5 [INFO] [stderr] | [INFO] [stderr] 175 | set(Set), [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/main.rs:59:16 [INFO] [stderr] | [INFO] [stderr] 59 | fn to_list(self) -> List { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: variant `small` should have a camel case name such as `Small` [INFO] [stderr] --> src/main.rs:116:5 [INFO] [stderr] | [INFO] [stderr] 116 | small(Fraction), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_camel_case_types)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant `number` should have a camel case name such as `Number` [INFO] [stderr] --> src/main.rs:122:5 [INFO] [stderr] | [INFO] [stderr] 122 | number(Number), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `ident` should have a camel case name such as `Ident` [INFO] [stderr] --> src/main.rs:123:5 [INFO] [stderr] | [INFO] [stderr] 123 | ident(String), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `string` should have a camel case name such as `String` [INFO] [stderr] --> src/main.rs:124:5 [INFO] [stderr] | [INFO] [stderr] 124 | string(String), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `keyword` should have a camel case name such as `Keyword` [INFO] [stderr] --> src/main.rs:125:5 [INFO] [stderr] | [INFO] [stderr] 125 | keyword(String), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `nil` should have a camel case name such as `Nil` [INFO] [stderr] --> src/main.rs:126:5 [INFO] [stderr] | [INFO] [stderr] 126 | nil, [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:148:9 [INFO] [stderr] | [INFO] [stderr] 148 | / match s.parse::() { [INFO] [stderr] 149 | | Ok(n) => return Ok( [INFO] [stderr] 150 | | Atom::number( [INFO] [stderr] 151 | | Number::small(Fraction::from(n)))), [INFO] [stderr] 152 | | Err(_) => (), [INFO] [stderr] 153 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 148 | if let Ok(n) = s.parse::() { return Ok( [INFO] [stderr] 149 | Atom::number( [INFO] [stderr] 150 | Number::small(Fraction::from(n)))) }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:156:9 [INFO] [stderr] | [INFO] [stderr] 156 | / match s.parse::() { [INFO] [stderr] 157 | | Ok(f) => return Ok( [INFO] [stderr] 158 | | Atom::number( [INFO] [stderr] 159 | | Number::small(Fraction::from(f)))), [INFO] [stderr] 160 | | Err(_) => (), [INFO] [stderr] 161 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 156 | if let Ok(f) = s.parse::() { return Ok( [INFO] [stderr] 157 | Atom::number( [INFO] [stderr] 158 | Number::small(Fraction::from(f)))) } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: variant `sexp` should have a camel case name such as `Sexp` [INFO] [stderr] --> src/main.rs:171:5 [INFO] [stderr] | [INFO] [stderr] 171 | sexp(Sexp), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `list` should have a camel case name such as `List` [INFO] [stderr] --> src/main.rs:172:5 [INFO] [stderr] | [INFO] [stderr] 172 | list(List), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `vec` should have a camel case name such as `Vec` [INFO] [stderr] --> src/main.rs:173:5 [INFO] [stderr] | [INFO] [stderr] 173 | vec(Vector), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `map` should have a camel case name such as `Map` [INFO] [stderr] --> src/main.rs:174:5 [INFO] [stderr] | [INFO] [stderr] 174 | map(Map), [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `set` should have a camel case name such as `Set` [INFO] [stderr] --> src/main.rs:175:5 [INFO] [stderr] | [INFO] [stderr] 175 | set(Set), [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:180:9 [INFO] [stderr] | [INFO] [stderr] 180 | / match self { [INFO] [stderr] 181 | | &mut sexp(ref mut s) => { [INFO] [stderr] 182 | | s.add(v); [INFO] [stderr] 183 | | }, [INFO] [stderr] ... | [INFO] [stderr] 187 | | _ => unimplemented!(), [INFO] [stderr] 188 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] warning: method is never used: `to_list` [INFO] [stderr] --> src/main.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | fn to_list(self) -> List { [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_empty` [INFO] [stderr] --> src/main.rs:80:5 [INFO] [stderr] | [INFO] [stderr] 80 | fn is_empty(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `pop_front` [INFO] [stderr] --> src/main.rs:86:5 [INFO] [stderr] | [INFO] [stderr] 86 | fn pop_front(&mut self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `vec` [INFO] [stderr] --> src/main.rs:173:5 [INFO] [stderr] | [INFO] [stderr] 173 | vec(Vector), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `map` [INFO] [stderr] --> src/main.rs:174:5 [INFO] [stderr] | [INFO] [stderr] 174 | map(Map), [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `set` [INFO] [stderr] --> src/main.rs:175:5 [INFO] [stderr] | [INFO] [stderr] 175 | set(Set), [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 180 | match *self { [INFO] [stderr] 181 | sexp(ref mut s) => { [INFO] [stderr] 182 | s.add(v); [INFO] [stderr] 183 | }, [INFO] [stderr] 184 | list(ref mut l) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:192:9 [INFO] [stderr] | [INFO] [stderr] 192 | / match self { [INFO] [stderr] 193 | | &mut Sequence::list(ref mut list) => { [INFO] [stderr] 194 | | list.push_back(v); [INFO] [stderr] 195 | | } [INFO] [stderr] 196 | | _ => unimplemented!(), [INFO] [stderr] 197 | | } [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 *self { [INFO] [stderr] 193 | Sequence::list(ref mut list) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: variant `atom` should have a camel case name such as `Atom` [INFO] [stderr] --> src/main.rs:204:5 [INFO] [stderr] | [INFO] [stderr] 204 | atom(Atom), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `sequence` should have a camel case name such as `Sequence` [INFO] [stderr] --> src/main.rs:205:5 [INFO] [stderr] | [INFO] [stderr] 205 | sequence(Sequence), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:209:9 [INFO] [stderr] | [INFO] [stderr] 209 | / match self { [INFO] [stderr] 210 | | &mut Value::sequence(ref mut seq) => seq.add(v), [INFO] [stderr] 211 | | _ => unreachable!(), [INFO] [stderr] 212 | | } [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] 209 | match *self { [INFO] [stderr] 210 | Value::sequence(ref mut seq) => seq.add(v), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:216:13 [INFO] [stderr] | [INFO] [stderr] 216 | / match self { [INFO] [stderr] 217 | | &Value::sequence(ref seq) => { [INFO] [stderr] 218 | | match seq { [INFO] [stderr] 219 | | &Sequence::sexp(ref sexp) => { [INFO] [stderr] ... | [INFO] [stderr] 225 | | _ => bail!("unimplemented!"), [INFO] [stderr] 226 | | } [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] 216 | match *self { [INFO] [stderr] 217 | Value::sequence(ref seq) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:218:21 [INFO] [stderr] | [INFO] [stderr] 218 | / match seq { [INFO] [stderr] 219 | | &Sequence::sexp(ref sexp) => { [INFO] [stderr] 220 | | sexp.eval().chain_err(|| "Error parsing sexp")? [INFO] [stderr] 221 | | } [INFO] [stderr] 222 | | _ => bail!("unimplemented!"), [INFO] [stderr] 223 | | } [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] 218 | match *seq { [INFO] [stderr] 219 | Sequence::sexp(ref sexp) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the `t @ _` pattern can be written as just `t` [INFO] [stderr] --> src/main.rs:287:13 [INFO] [stderr] | [INFO] [stderr] 287 | t @ _ => { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/main.rs:59:16 [INFO] [stderr] | [INFO] [stderr] 59 | fn to_list(self) -> List { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: variant `small` should have a camel case name such as `Small` [INFO] [stderr] --> src/main.rs:116:5 [INFO] [stderr] | [INFO] [stderr] 116 | small(Fraction), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_camel_case_types)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant `number` should have a camel case name such as `Number` [INFO] [stderr] --> src/main.rs:122:5 [INFO] [stderr] | [INFO] [stderr] 122 | number(Number), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `ident` should have a camel case name such as `Ident` [INFO] [stderr] --> src/main.rs:123:5 [INFO] [stderr] | [INFO] [stderr] 123 | ident(String), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `string` should have a camel case name such as `String` [INFO] [stderr] --> src/main.rs:124:5 [INFO] [stderr] | [INFO] [stderr] 124 | string(String), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `keyword` should have a camel case name such as `Keyword` [INFO] [stderr] --> src/main.rs:125:5 [INFO] [stderr] | [INFO] [stderr] 125 | keyword(String), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `nil` should have a camel case name such as `Nil` [INFO] [stderr] --> src/main.rs:126:5 [INFO] [stderr] | [INFO] [stderr] 126 | nil, [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:148:9 [INFO] [stderr] | [INFO] [stderr] 148 | / match s.parse::() { [INFO] [stderr] 149 | | Ok(n) => return Ok( [INFO] [stderr] 150 | | Atom::number( [INFO] [stderr] 151 | | Number::small(Fraction::from(n)))), [INFO] [stderr] 152 | | Err(_) => (), [INFO] [stderr] 153 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 148 | if let Ok(n) = s.parse::() { return Ok( [INFO] [stderr] 149 | Atom::number( [INFO] [stderr] 150 | Number::small(Fraction::from(n)))) }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:156:9 [INFO] [stderr] | [INFO] [stderr] 156 | / match s.parse::() { [INFO] [stderr] 157 | | Ok(f) => return Ok( [INFO] [stderr] 158 | | Atom::number( [INFO] [stderr] 159 | | Number::small(Fraction::from(f)))), [INFO] [stderr] 160 | | Err(_) => (), [INFO] [stderr] 161 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 156 | if let Ok(f) = s.parse::() { return Ok( [INFO] [stderr] 157 | Atom::number( [INFO] [stderr] 158 | Number::small(Fraction::from(f)))) } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: variant `sexp` should have a camel case name such as `Sexp` [INFO] [stderr] --> src/main.rs:171:5 [INFO] [stderr] | [INFO] [stderr] 171 | sexp(Sexp), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `list` should have a camel case name such as `List` [INFO] [stderr] --> src/main.rs:172:5 [INFO] [stderr] | [INFO] [stderr] 172 | list(List), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `vec` should have a camel case name such as `Vec` [INFO] [stderr] --> src/main.rs:173:5 [INFO] [stderr] | [INFO] [stderr] 173 | vec(Vector), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `map` should have a camel case name such as `Map` [INFO] [stderr] --> src/main.rs:174:5 [INFO] [stderr] | [INFO] [stderr] 174 | map(Map), [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `set` should have a camel case name such as `Set` [INFO] [stderr] --> src/main.rs:175:5 [INFO] [stderr] | [INFO] [stderr] 175 | set(Set), [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:180:9 [INFO] [stderr] | [INFO] [stderr] 180 | / match self { [INFO] [stderr] 181 | | &mut sexp(ref mut s) => { [INFO] [stderr] 182 | | s.add(v); [INFO] [stderr] 183 | | }, [INFO] [stderr] ... | [INFO] [stderr] 187 | | _ => unimplemented!(), [INFO] [stderr] 188 | | } [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] 180 | match *self { [INFO] [stderr] 181 | sexp(ref mut s) => { [INFO] [stderr] 182 | s.add(v); [INFO] [stderr] 183 | }, [INFO] [stderr] 184 | list(ref mut l) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:192:9 [INFO] [stderr] | [INFO] [stderr] 192 | / match self { [INFO] [stderr] 193 | | &mut Sequence::list(ref mut list) => { [INFO] [stderr] 194 | | list.push_back(v); [INFO] [stderr] 195 | | } [INFO] [stderr] 196 | | _ => unimplemented!(), [INFO] [stderr] 197 | | } [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 *self { [INFO] [stderr] 193 | Sequence::list(ref mut list) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: variant `atom` should have a camel case name such as `Atom` [INFO] [stderr] --> src/main.rs:204:5 [INFO] [stderr] | [INFO] [stderr] 204 | atom(Atom), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `sequence` should have a camel case name such as `Sequence` [INFO] [stderr] --> src/main.rs:205:5 [INFO] [stderr] | [INFO] [stderr] 205 | sequence(Sequence), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:209:9 [INFO] [stderr] | [INFO] [stderr] 209 | / match self { [INFO] [stderr] 210 | | &mut Value::sequence(ref mut seq) => seq.add(v), [INFO] [stderr] 211 | | _ => unreachable!(), [INFO] [stderr] 212 | | } [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] 209 | match *self { [INFO] [stderr] 210 | Value::sequence(ref mut seq) => seq.add(v), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:216:13 [INFO] [stderr] | [INFO] [stderr] 216 | / match self { [INFO] [stderr] 217 | | &Value::sequence(ref seq) => { [INFO] [stderr] 218 | | match seq { [INFO] [stderr] 219 | | &Sequence::sexp(ref sexp) => { [INFO] [stderr] ... | [INFO] [stderr] 225 | | _ => bail!("unimplemented!"), [INFO] [stderr] 226 | | } [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] 216 | match *self { [INFO] [stderr] 217 | Value::sequence(ref seq) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:218:21 [INFO] [stderr] | [INFO] [stderr] 218 | / match seq { [INFO] [stderr] 219 | | &Sequence::sexp(ref sexp) => { [INFO] [stderr] 220 | | sexp.eval().chain_err(|| "Error parsing sexp")? [INFO] [stderr] 221 | | } [INFO] [stderr] 222 | | _ => bail!("unimplemented!"), [INFO] [stderr] 223 | | } [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] 218 | match *seq { [INFO] [stderr] 219 | Sequence::sexp(ref sexp) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the `t @ _` pattern can be written as just `t` [INFO] [stderr] --> src/main.rs:287:13 [INFO] [stderr] | [INFO] [stderr] 287 | t @ _ => { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 20.86s [INFO] running `"docker" "inspect" "abc2206eb21f9a6aa0df68f138ee1790c2d3c67086e1d66d8afbc7fdb72585f2"` [INFO] running `"docker" "rm" "-f" "abc2206eb21f9a6aa0df68f138ee1790c2d3c67086e1d66d8afbc7fdb72585f2"` [INFO] [stdout] abc2206eb21f9a6aa0df68f138ee1790c2d3c67086e1d66d8afbc7fdb72585f2