[INFO] updating cached repository donut-lang/donut [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/donut-lang/donut [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/donut-lang/donut" "work/ex/clippy-test-run/sources/stable/gh/donut-lang/donut"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/donut-lang/donut'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/donut-lang/donut" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/donut-lang/donut"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/donut-lang/donut'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] c1b3643ef19808e6e11c7dfb63b48652d8bd9012 [INFO] sha for GitHub repo donut-lang/donut: c1b3643ef19808e6e11c7dfb63b48652d8bd9012 [INFO] validating manifest of donut-lang/donut 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 donut-lang/donut 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 donut-lang/donut [INFO] finished frobbing donut-lang/donut [INFO] frobbed toml for donut-lang/donut written to work/ex/clippy-test-run/sources/stable/gh/donut-lang/donut/Cargo.toml [INFO] started frobbing donut-lang/donut [INFO] finished frobbing donut-lang/donut [INFO] frobbed toml for donut-lang/donut written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/donut-lang/donut/Cargo.toml [INFO] crate donut-lang/donut 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 donut-lang/donut against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-3/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/donut-lang/donut:/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] 7aac8a1190590055c2ba1ee05887e2467099b9313bdd809c87ba7aef3511ca98 [INFO] running `"docker" "start" "-a" "7aac8a1190590055c2ba1ee05887e2467099b9313bdd809c87ba7aef3511ca98"` [INFO] [stderr] Checking libc v0.2.40 [INFO] [stderr] Checking memchr v2.0.1 [INFO] [stderr] Checking combine v3.1.0 [INFO] [stderr] Checking donut v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/value/mod.rs:18:7 [INFO] [stderr] | [INFO] [stderr] 18 | now: now, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `now` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/value/mod.rs:58:7 [INFO] [stderr] | [INFO] [stderr] 58 | clock: clock, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `clock` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/value/mod.rs:18:7 [INFO] [stderr] | [INFO] [stderr] 18 | now: now, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `now` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/value/mod.rs:58:7 [INFO] [stderr] | [INFO] [stderr] 58 | clock: clock, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `clock` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/parser/mod.rs:55:1 [INFO] [stderr] | [INFO] [stderr] 55 | / parser! { [INFO] [stderr] 56 | | pub fn program[I](src_name: String)(I) -> ast::Program [INFO] [stderr] 57 | | where [I: Stream] { [INFO] [stderr] 58 | | many(expr()).skip(eof()) [INFO] [stderr] 59 | | .map(|exprs: Vec| ast::Program::new(src_name.clone(), exprs)) [INFO] [stderr] 60 | | } [INFO] [stderr] 61 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unneeded_field_pattern)] on by default [INFO] [stderr] = help: Try with `program { ref mut $ arg, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/parser/mod.rs:55:1 [INFO] [stderr] | [INFO] [stderr] 55 | / parser! { [INFO] [stderr] 56 | | pub fn program[I](src_name: String)(I) -> ast::Program [INFO] [stderr] 57 | | where [I: Stream] { [INFO] [stderr] 58 | | many(expr()).skip(eof()) [INFO] [stderr] 59 | | .map(|exprs: Vec| ast::Program::new(src_name.clone(), exprs)) [INFO] [stderr] 60 | | } [INFO] [stderr] 61 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `program { ref mut $ arg, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:67:1 [INFO] [stderr] | [INFO] [stderr] 67 | / parser! { [INFO] [stderr] 68 | | pub fn array[I]()(I) -> ast::Expr [INFO] [stderr] 69 | | where [I: Stream] { [INFO] [stderr] 70 | | let internal = sep_end_by(expr(), (spaces(), char(','), spaces())); [INFO] [stderr] ... | [INFO] [stderr] 75 | | } [INFO] [stderr] 76 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `array { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:67:1 [INFO] [stderr] | [INFO] [stderr] 67 | / parser! { [INFO] [stderr] 68 | | pub fn array[I]()(I) -> ast::Expr [INFO] [stderr] 69 | | where [I: Stream] { [INFO] [stderr] 70 | | let internal = sep_end_by(expr(), (spaces(), char(','), spaces())); [INFO] [stderr] ... | [INFO] [stderr] 75 | | } [INFO] [stderr] 76 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `array { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:102:1 [INFO] [stderr] | [INFO] [stderr] 102 | / parser! { [INFO] [stderr] 103 | | pub fn expr[I]()(I) -> ast::Expr [INFO] [stderr] 104 | | where [I: Stream] { [INFO] [stderr] 105 | | literal().or(array()).or(object()) [INFO] [stderr] 106 | | } [INFO] [stderr] 107 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `expr { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:102:1 [INFO] [stderr] | [INFO] [stderr] 102 | / parser! { [INFO] [stderr] 103 | | pub fn expr[I]()(I) -> ast::Expr [INFO] [stderr] 104 | | where [I: Stream] { [INFO] [stderr] 105 | | literal().or(array()).or(object()) [INFO] [stderr] 106 | | } [INFO] [stderr] 107 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `expr { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:113:1 [INFO] [stderr] | [INFO] [stderr] 113 | / parser! { [INFO] [stderr] 114 | | pub fn ident[I]()(I) -> ast::Ident [INFO] [stderr] 115 | | where [I: Stream] { [INFO] [stderr] 116 | | let ident_parser = letter().and(many(alpha_num().or(one_of("!?*".chars())))) [INFO] [stderr] ... | [INFO] [stderr] 125 | | } [INFO] [stderr] 126 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `ident { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:113:1 [INFO] [stderr] | [INFO] [stderr] 113 | / parser! { [INFO] [stderr] 114 | | pub fn ident[I]()(I) -> ast::Ident [INFO] [stderr] 115 | | where [I: Stream] { [INFO] [stderr] 116 | | let ident_parser = letter().and(many(alpha_num().or(one_of("!?*".chars())))) [INFO] [stderr] ... | [INFO] [stderr] 125 | | } [INFO] [stderr] 126 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `ident { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:148:1 [INFO] [stderr] | [INFO] [stderr] 148 | / parser!{ [INFO] [stderr] 149 | | pub fn literal[I]()(I) -> ast::Expr [INFO] [stderr] 150 | | where [I: Stream] { [INFO] [stderr] 151 | | let float_parser = (position(), float_literal(), position()) [INFO] [stderr] ... | [INFO] [stderr] 164 | | } [INFO] [stderr] 165 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `literal { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:148:1 [INFO] [stderr] | [INFO] [stderr] 148 | / parser!{ [INFO] [stderr] 149 | | pub fn literal[I]()(I) -> ast::Expr [INFO] [stderr] 150 | | where [I: Stream] { [INFO] [stderr] 151 | | let float_parser = (position(), float_literal(), position()) [INFO] [stderr] ... | [INFO] [stderr] 164 | | } [INFO] [stderr] 165 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `literal { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:179:1 [INFO] [stderr] | [INFO] [stderr] 179 | / parser!{ [INFO] [stderr] 180 | | pub fn string_literal[I]()(I) -> String [INFO] [stderr] 181 | | where [I: Stream] { [INFO] [stderr] 182 | | let quoted_single = many::(satisfy(|s| s != '"').then(|c| { [INFO] [stderr] ... | [INFO] [stderr] 217 | | } [INFO] [stderr] 218 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `string_literal { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:179:1 [INFO] [stderr] | [INFO] [stderr] 179 | / parser!{ [INFO] [stderr] 180 | | pub fn string_literal[I]()(I) -> String [INFO] [stderr] 181 | | where [I: Stream] { [INFO] [stderr] 182 | | let quoted_single = many::(satisfy(|s| s != '"').then(|c| { [INFO] [stderr] ... | [INFO] [stderr] 217 | | } [INFO] [stderr] 218 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `string_literal { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:232:1 [INFO] [stderr] | [INFO] [stderr] 232 | / parser! { [INFO] [stderr] 233 | | pub fn float_literal[I]()(I) -> f64 [INFO] [stderr] 234 | | where [I: Stream] { [INFO] [stderr] 235 | | many1(digit()).skip(char('.')) [INFO] [stderr] ... | [INFO] [stderr] 243 | | } [INFO] [stderr] 244 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `float_literal { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:232:1 [INFO] [stderr] | [INFO] [stderr] 232 | / parser! { [INFO] [stderr] 233 | | pub fn float_literal[I]()(I) -> f64 [INFO] [stderr] 234 | | where [I: Stream] { [INFO] [stderr] 235 | | many1(digit()).skip(char('.')) [INFO] [stderr] ... | [INFO] [stderr] 243 | | } [INFO] [stderr] 244 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `float_literal { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:257:1 [INFO] [stderr] | [INFO] [stderr] 257 | / parser! { [INFO] [stderr] 258 | | pub fn number_literal[I]()(I) -> i32 [INFO] [stderr] 259 | | where [I: Stream] { [INFO] [stderr] 260 | | let hex_literal = [INFO] [stderr] ... | [INFO] [stderr] 276 | | } [INFO] [stderr] 277 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `number_literal { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:257:1 [INFO] [stderr] | [INFO] [stderr] 257 | / parser! { [INFO] [stderr] 258 | | pub fn number_literal[I]()(I) -> i32 [INFO] [stderr] 259 | | where [I: Stream] { [INFO] [stderr] 260 | | let hex_literal = [INFO] [stderr] ... | [INFO] [stderr] 276 | | } [INFO] [stderr] 277 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `number_literal { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:305:1 [INFO] [stderr] | [INFO] [stderr] 305 | / parser! { [INFO] [stderr] 306 | | pub fn bool_literal[I]()(I) -> bool [INFO] [stderr] 307 | | where [I: Stream] { [INFO] [stderr] 308 | | (string("true").map(|_| true)).or(string("false").map(|_| false)) [INFO] [stderr] 309 | | } [INFO] [stderr] 310 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `bool_literal { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:305:1 [INFO] [stderr] | [INFO] [stderr] 305 | / parser! { [INFO] [stderr] 306 | | pub fn bool_literal[I]()(I) -> bool [INFO] [stderr] 307 | | where [I: Stream] { [INFO] [stderr] 308 | | (string("true").map(|_| true)).or(string("false").map(|_| false)) [INFO] [stderr] 309 | | } [INFO] [stderr] 310 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `bool_literal { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:331:1 [INFO] [stderr] | [INFO] [stderr] 331 | / parser!{ [INFO] [stderr] 332 | | pub fn object[I]()(I) -> ast::Expr [INFO] [stderr] 333 | | where [I: Stream] { [INFO] [stderr] 334 | | let item = ident().skip((spaces(), char(':'), spaces())).and(expr()); [INFO] [stderr] ... | [INFO] [stderr] 340 | | } [INFO] [stderr] 341 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `object { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:331:1 [INFO] [stderr] | [INFO] [stderr] 331 | / parser!{ [INFO] [stderr] 332 | | pub fn object[I]()(I) -> ast::Expr [INFO] [stderr] 333 | | where [I: Stream] { [INFO] [stderr] 334 | | let item = ident().skip((spaces(), char(':'), spaces())).and(expr()); [INFO] [stderr] ... | [INFO] [stderr] 340 | | } [INFO] [stderr] 341 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `object { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/value/mod.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | / return Clock:: { [INFO] [stderr] 18 | | now: now, [INFO] [stderr] 19 | | context_type: PhantomData::{} [INFO] [stderr] 20 | | }; [INFO] [stderr] | |______^ [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] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 17 | Clock:: { [INFO] [stderr] 18 | now: now, [INFO] [stderr] 19 | context_type: PhantomData::{} [INFO] [stderr] 20 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/value/mod.rs:56:5 [INFO] [stderr] | [INFO] [stderr] 56 | / return Value::<'b, V, T>{ [INFO] [stderr] 57 | | values: vs, [INFO] [stderr] 58 | | clock: clock, [INFO] [stderr] 59 | | }; [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] 56 | Value::<'b, V, T>{ [INFO] [stderr] 57 | values: vs, [INFO] [stderr] 58 | clock: clock, [INFO] [stderr] 59 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/parser/mod.rs:55:1 [INFO] [stderr] | [INFO] [stderr] 55 | / parser! { [INFO] [stderr] 56 | | pub fn program[I](src_name: String)(I) -> ast::Program [INFO] [stderr] 57 | | where [I: Stream] { [INFO] [stderr] 58 | | many(expr()).skip(eof()) [INFO] [stderr] 59 | | .map(|exprs: Vec| ast::Program::new(src_name.clone(), exprs)) [INFO] [stderr] 60 | | } [INFO] [stderr] 61 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unneeded_field_pattern)] on by default [INFO] [stderr] = help: Try with `program { ref mut $ arg, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/parser/mod.rs:55:1 [INFO] [stderr] | [INFO] [stderr] 55 | / parser! { [INFO] [stderr] 56 | | pub fn program[I](src_name: String)(I) -> ast::Program [INFO] [stderr] 57 | | where [I: Stream] { [INFO] [stderr] 58 | | many(expr()).skip(eof()) [INFO] [stderr] 59 | | .map(|exprs: Vec| ast::Program::new(src_name.clone(), exprs)) [INFO] [stderr] 60 | | } [INFO] [stderr] 61 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `program { ref mut $ arg, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:67:1 [INFO] [stderr] | [INFO] [stderr] 67 | / parser! { [INFO] [stderr] 68 | | pub fn array[I]()(I) -> ast::Expr [INFO] [stderr] 69 | | where [I: Stream] { [INFO] [stderr] 70 | | let internal = sep_end_by(expr(), (spaces(), char(','), spaces())); [INFO] [stderr] ... | [INFO] [stderr] 75 | | } [INFO] [stderr] 76 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `array { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:67:1 [INFO] [stderr] | [INFO] [stderr] 67 | / parser! { [INFO] [stderr] 68 | | pub fn array[I]()(I) -> ast::Expr [INFO] [stderr] 69 | | where [I: Stream] { [INFO] [stderr] 70 | | let internal = sep_end_by(expr(), (spaces(), char(','), spaces())); [INFO] [stderr] ... | [INFO] [stderr] 75 | | } [INFO] [stderr] 76 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `array { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:102:1 [INFO] [stderr] | [INFO] [stderr] 102 | / parser! { [INFO] [stderr] 103 | | pub fn expr[I]()(I) -> ast::Expr [INFO] [stderr] 104 | | where [I: Stream] { [INFO] [stderr] 105 | | literal().or(array()).or(object()) [INFO] [stderr] 106 | | } [INFO] [stderr] 107 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `expr { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:102:1 [INFO] [stderr] | [INFO] [stderr] 102 | / parser! { [INFO] [stderr] 103 | | pub fn expr[I]()(I) -> ast::Expr [INFO] [stderr] 104 | | where [I: Stream] { [INFO] [stderr] 105 | | literal().or(array()).or(object()) [INFO] [stderr] 106 | | } [INFO] [stderr] 107 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `expr { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:113:1 [INFO] [stderr] | [INFO] [stderr] 113 | / parser! { [INFO] [stderr] 114 | | pub fn ident[I]()(I) -> ast::Ident [INFO] [stderr] 115 | | where [I: Stream] { [INFO] [stderr] 116 | | let ident_parser = letter().and(many(alpha_num().or(one_of("!?*".chars())))) [INFO] [stderr] ... | [INFO] [stderr] 125 | | } [INFO] [stderr] 126 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `ident { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:113:1 [INFO] [stderr] | [INFO] [stderr] 113 | / parser! { [INFO] [stderr] 114 | | pub fn ident[I]()(I) -> ast::Ident [INFO] [stderr] 115 | | where [I: Stream] { [INFO] [stderr] 116 | | let ident_parser = letter().and(many(alpha_num().or(one_of("!?*".chars())))) [INFO] [stderr] ... | [INFO] [stderr] 125 | | } [INFO] [stderr] 126 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `ident { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:148:1 [INFO] [stderr] | [INFO] [stderr] 148 | / parser!{ [INFO] [stderr] 149 | | pub fn literal[I]()(I) -> ast::Expr [INFO] [stderr] 150 | | where [I: Stream] { [INFO] [stderr] 151 | | let float_parser = (position(), float_literal(), position()) [INFO] [stderr] ... | [INFO] [stderr] 164 | | } [INFO] [stderr] 165 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `literal { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:148:1 [INFO] [stderr] | [INFO] [stderr] 148 | / parser!{ [INFO] [stderr] 149 | | pub fn literal[I]()(I) -> ast::Expr [INFO] [stderr] 150 | | where [I: Stream] { [INFO] [stderr] 151 | | let float_parser = (position(), float_literal(), position()) [INFO] [stderr] ... | [INFO] [stderr] 164 | | } [INFO] [stderr] 165 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `literal { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:179:1 [INFO] [stderr] | [INFO] [stderr] 179 | / parser!{ [INFO] [stderr] 180 | | pub fn string_literal[I]()(I) -> String [INFO] [stderr] 181 | | where [I: Stream] { [INFO] [stderr] 182 | | let quoted_single = many::(satisfy(|s| s != '"').then(|c| { [INFO] [stderr] ... | [INFO] [stderr] 217 | | } [INFO] [stderr] 218 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `string_literal { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:179:1 [INFO] [stderr] | [INFO] [stderr] 179 | / parser!{ [INFO] [stderr] 180 | | pub fn string_literal[I]()(I) -> String [INFO] [stderr] 181 | | where [I: Stream] { [INFO] [stderr] 182 | | let quoted_single = many::(satisfy(|s| s != '"').then(|c| { [INFO] [stderr] ... | [INFO] [stderr] 217 | | } [INFO] [stderr] 218 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `string_literal { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:232:1 [INFO] [stderr] | [INFO] [stderr] 232 | / parser! { [INFO] [stderr] 233 | | pub fn float_literal[I]()(I) -> f64 [INFO] [stderr] 234 | | where [I: Stream] { [INFO] [stderr] 235 | | many1(digit()).skip(char('.')) [INFO] [stderr] ... | [INFO] [stderr] 243 | | } [INFO] [stderr] 244 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `float_literal { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:232:1 [INFO] [stderr] | [INFO] [stderr] 232 | / parser! { [INFO] [stderr] 233 | | pub fn float_literal[I]()(I) -> f64 [INFO] [stderr] 234 | | where [I: Stream] { [INFO] [stderr] 235 | | many1(digit()).skip(char('.')) [INFO] [stderr] ... | [INFO] [stderr] 243 | | } [INFO] [stderr] 244 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `float_literal { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:257:1 [INFO] [stderr] | [INFO] [stderr] 257 | / parser! { [INFO] [stderr] 258 | | pub fn number_literal[I]()(I) -> i32 [INFO] [stderr] 259 | | where [I: Stream] { [INFO] [stderr] 260 | | let hex_literal = [INFO] [stderr] ... | [INFO] [stderr] 276 | | } [INFO] [stderr] 277 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `number_literal { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:257:1 [INFO] [stderr] | [INFO] [stderr] 257 | / parser! { [INFO] [stderr] 258 | | pub fn number_literal[I]()(I) -> i32 [INFO] [stderr] 259 | | where [I: Stream] { [INFO] [stderr] 260 | | let hex_literal = [INFO] [stderr] ... | [INFO] [stderr] 276 | | } [INFO] [stderr] 277 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `number_literal { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:305:1 [INFO] [stderr] | [INFO] [stderr] 305 | / parser! { [INFO] [stderr] 306 | | pub fn bool_literal[I]()(I) -> bool [INFO] [stderr] 307 | | where [I: Stream] { [INFO] [stderr] 308 | | (string("true").map(|_| true)).or(string("false").map(|_| false)) [INFO] [stderr] 309 | | } [INFO] [stderr] 310 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `bool_literal { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:305:1 [INFO] [stderr] | [INFO] [stderr] 305 | / parser! { [INFO] [stderr] 306 | | pub fn bool_literal[I]()(I) -> bool [INFO] [stderr] 307 | | where [I: Stream] { [INFO] [stderr] 308 | | (string("true").map(|_| true)).or(string("false").map(|_| false)) [INFO] [stderr] 309 | | } [INFO] [stderr] 310 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `bool_literal { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:331:1 [INFO] [stderr] | [INFO] [stderr] 331 | / parser!{ [INFO] [stderr] 332 | | pub fn object[I]()(I) -> ast::Expr [INFO] [stderr] 333 | | where [I: Stream] { [INFO] [stderr] 334 | | let item = ident().skip((spaces(), char(':'), spaces())).and(expr()); [INFO] [stderr] ... | [INFO] [stderr] 340 | | } [INFO] [stderr] 341 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `object { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser/mod.rs:331:1 [INFO] [stderr] | [INFO] [stderr] 331 | / parser!{ [INFO] [stderr] 332 | | pub fn object[I]()(I) -> ast::Expr [INFO] [stderr] 333 | | where [I: Stream] { [INFO] [stderr] 334 | | let item = ident().skip((spaces(), char(':'), spaces())).and(expr()); [INFO] [stderr] ... | [INFO] [stderr] 340 | | } [INFO] [stderr] 341 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `object { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/value/mod.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | / return Clock:: { [INFO] [stderr] 18 | | now: now, [INFO] [stderr] 19 | | context_type: PhantomData::{} [INFO] [stderr] 20 | | }; [INFO] [stderr] | |______^ [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] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 17 | Clock:: { [INFO] [stderr] 18 | now: now, [INFO] [stderr] 19 | context_type: PhantomData::{} [INFO] [stderr] 20 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/value/mod.rs:56:5 [INFO] [stderr] | [INFO] [stderr] 56 | / return Value::<'b, V, T>{ [INFO] [stderr] 57 | | values: vs, [INFO] [stderr] 58 | | clock: clock, [INFO] [stderr] 59 | | }; [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] 56 | Value::<'b, V, T>{ [INFO] [stderr] 57 | values: vs, [INFO] [stderr] 58 | clock: clock, [INFO] [stderr] 59 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused variable: `consumed` [INFO] [stderr] --> src/parser/test.rs:36:29 [INFO] [stderr] | [INFO] [stderr] 36 | Result::Ok((result, consumed)) => { [INFO] [stderr] | ^^^^^^^^ help: consider using `_consumed` instead [INFO] [stderr] | [INFO] [stderr] ::: src/parser/mod.rs:81:3 [INFO] [stderr] | [INFO] [stderr] 81 | parse_err!(array(), ["test", "0"]); [INFO] [stderr] | ----------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/parser/test.rs:39:21 [INFO] [stderr] | [INFO] [stderr] 39 | Result::Err(err) => { [INFO] [stderr] | ^^^ help: consider using `_err` instead [INFO] [stderr] | [INFO] [stderr] ::: src/parser/mod.rs:81:3 [INFO] [stderr] | [INFO] [stderr] 81 | parse_err!(array(), ["test", "0"]); [INFO] [stderr] | ----------------------------------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unused variable: `consumed` [INFO] [stderr] --> src/parser/test.rs:36:29 [INFO] [stderr] | [INFO] [stderr] 36 | Result::Ok((result, consumed)) => { [INFO] [stderr] | ^^^^^^^^ help: consider using `_consumed` instead [INFO] [stderr] | [INFO] [stderr] ::: src/parser/mod.rs:81:3 [INFO] [stderr] | [INFO] [stderr] 81 | parse_err!(array(), ["test", "0"]); [INFO] [stderr] | ----------------------------------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unused variable: `consumed` [INFO] [stderr] --> src/parser/test.rs:14:23 [INFO] [stderr] | [INFO] [stderr] 14 | Result::Ok(($r, consumed)) => { [INFO] [stderr] | ^^^^^^^^ help: consider using `_consumed` instead [INFO] [stderr] | [INFO] [stderr] ::: src/parser/mod.rs:83:3 [INFO] [stderr] | [INFO] [stderr] 83 | / parse_ok!(array(), r, [INFO] [stderr] 84 | | ["[\"test\"]", { [INFO] [stderr] 85 | | match r { [INFO] [stderr] 86 | | ast::Expr::Array(_,_,r) => assert_eq!(r.len(), 1), [INFO] [stderr] ... | [INFO] [stderr] 94 | | } [INFO] [stderr] 95 | | }]); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unused variable: `consumed` [INFO] [stderr] --> src/parser/test.rs:36:29 [INFO] [stderr] | [INFO] [stderr] 36 | Result::Ok((result, consumed)) => { [INFO] [stderr] | ^^^^^^^^ help: consider using `_consumed` instead [INFO] [stderr] | [INFO] [stderr] ::: src/parser/mod.rs:130:3 [INFO] [stderr] | [INFO] [stderr] 130 | parse_err!(ident(), ["1test"]); [INFO] [stderr] | ------------------------------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/parser/test.rs:39:21 [INFO] [stderr] | [INFO] [stderr] 39 | Result::Err(err) => { [INFO] [stderr] | ^^^ help: consider using `_err` instead [INFO] [stderr] | [INFO] [stderr] ::: src/parser/mod.rs:130:3 [INFO] [stderr] | [INFO] [stderr] 130 | parse_err!(ident(), ["1test"]); [INFO] [stderr] | ------------------------------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unused variable: `consumed` [INFO] [stderr] --> src/parser/test.rs:14:23 [INFO] [stderr] | [INFO] [stderr] 14 | Result::Ok(($r, consumed)) => { [INFO] [stderr] | ^^^^^^^^ help: consider using `_consumed` instead [INFO] [stderr] | [INFO] [stderr] ::: src/parser/mod.rs:132:3 [INFO] [stderr] | [INFO] [stderr] 132 | / parse_ok!(ident(), r, [INFO] [stderr] 133 | | ["test", { [INFO] [stderr] 134 | | assert_eq!(r.name, "test"); [INFO] [stderr] 135 | | }], [INFO] [stderr] ... | [INFO] [stderr] 140 | | assert_eq!(r.name, "test!!?test!*"); [INFO] [stderr] 141 | | }]); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unused variable: `consumed` [INFO] [stderr] --> src/parser/test.rs:14:23 [INFO] [stderr] | [INFO] [stderr] 14 | Result::Ok(($r, consumed)) => { [INFO] [stderr] | ^^^^^^^^ help: consider using `_consumed` instead [INFO] [stderr] | [INFO] [stderr] ::: src/parser/mod.rs:169:3 [INFO] [stderr] | [INFO] [stderr] 169 | / parse_ok!(literal(), r, [INFO] [stderr] 170 | | ["0.123", { [INFO] [stderr] 171 | | assert_eq!(r.as_float().unwrap(), 0.123); [INFO] [stderr] 172 | | }], [INFO] [stderr] 173 | | ["123", { [INFO] [stderr] 174 | | assert_eq!(r.as_int().unwrap(), 123); [INFO] [stderr] 175 | | }]); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unused variable: `consumed` [INFO] [stderr] --> src/parser/test.rs:36:29 [INFO] [stderr] | [INFO] [stderr] 36 | Result::Ok((result, consumed)) => { [INFO] [stderr] | ^^^^^^^^ help: consider using `_consumed` instead [INFO] [stderr] | [INFO] [stderr] ::: src/parser/mod.rs:222:3 [INFO] [stderr] | [INFO] [stderr] 222 | parse_err!(string_literal(), ["test", "\"test"]); [INFO] [stderr] | ------------------------------------------------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/parser/test.rs:39:21 [INFO] [stderr] | [INFO] [stderr] 39 | Result::Err(err) => { [INFO] [stderr] | ^^^ help: consider using `_err` instead [INFO] [stderr] | [INFO] [stderr] ::: src/parser/mod.rs:222:3 [INFO] [stderr] | [INFO] [stderr] 222 | parse_err!(string_literal(), ["test", "\"test"]); [INFO] [stderr] | ------------------------------------------------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unused variable: `consumed` [INFO] [stderr] --> src/parser/test.rs:14:23 [INFO] [stderr] | [INFO] [stderr] 14 | Result::Ok(($r, consumed)) => { [INFO] [stderr] | ^^^^^^^^ help: consider using `_consumed` instead [INFO] [stderr] | [INFO] [stderr] ::: src/parser/mod.rs:223:3 [INFO] [stderr] | [INFO] [stderr] 223 | / parse_ok!(string_literal(), r, [INFO] [stderr] 224 | | ["\"test\"", { [INFO] [stderr] 225 | | assert_eq!(r, "test"); [INFO] [stderr] 226 | | }], [INFO] [stderr] 227 | | ["\"te\\\"st\"", { [INFO] [stderr] 228 | | assert_eq!(r, "te\"st"); [INFO] [stderr] 229 | | }]); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unused variable: `consumed` [INFO] [stderr] --> src/parser/test.rs:36:29 [INFO] [stderr] | [INFO] [stderr] 36 | Result::Ok((result, consumed)) => { [INFO] [stderr] | ^^^^^^^^ help: consider using `_consumed` instead [INFO] [stderr] | [INFO] [stderr] ::: src/parser/mod.rs:248:3 [INFO] [stderr] | [INFO] [stderr] 248 | parse_err!(float_literal(), ["x","0xxx", "True"]); [INFO] [stderr] | -------------------------------------------------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/parser/test.rs:39:21 [INFO] [stderr] | [INFO] [stderr] 39 | Result::Err(err) => { [INFO] [stderr] | ^^^ help: consider using `_err` instead [INFO] [stderr] | [INFO] [stderr] ::: src/parser/mod.rs:248:3 [INFO] [stderr] | [INFO] [stderr] 248 | parse_err!(float_literal(), ["x","0xxx", "True"]); [INFO] [stderr] | -------------------------------------------------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unused variable: `consumed` [INFO] [stderr] --> src/parser/test.rs:14:23 [INFO] [stderr] | [INFO] [stderr] 14 | Result::Ok(($r, consumed)) => { [INFO] [stderr] | ^^^^^^^^ help: consider using `_consumed` instead [INFO] [stderr] | [INFO] [stderr] ::: src/parser/mod.rs:250:3 [INFO] [stderr] | [INFO] [stderr] 250 | / parse_ok!(float_literal(), r, [INFO] [stderr] 251 | | ["0.123", { [INFO] [stderr] 252 | | assert_eq!(r, 0.123); [INFO] [stderr] 253 | | }]); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unused variable: `consumed` [INFO] [stderr] --> src/parser/test.rs:36:29 [INFO] [stderr] | [INFO] [stderr] 36 | Result::Ok((result, consumed)) => { [INFO] [stderr] | ^^^^^^^^ help: consider using `_consumed` instead [INFO] [stderr] | [INFO] [stderr] ::: src/parser/mod.rs:281:3 [INFO] [stderr] | [INFO] [stderr] 281 | parse_err!(bool_literal(), ["x","0xxx", "True"]); [INFO] [stderr] | ------------------------------------------------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/parser/test.rs:39:21 [INFO] [stderr] | [INFO] [stderr] 39 | Result::Err(err) => { [INFO] [stderr] | ^^^ help: consider using `_err` instead [INFO] [stderr] | [INFO] [stderr] ::: src/parser/mod.rs:281:3 [INFO] [stderr] | [INFO] [stderr] 281 | parse_err!(bool_literal(), ["x","0xxx", "True"]); [INFO] [stderr] | ------------------------------------------------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unused variable: `consumed` [INFO] [stderr] --> src/parser/test.rs:14:23 [INFO] [stderr] | [INFO] [stderr] 14 | Result::Ok(($r, consumed)) => { [INFO] [stderr] | ^^^^^^^^ help: consider using `_consumed` instead [INFO] [stderr] | [INFO] [stderr] ::: src/parser/mod.rs:284:3 [INFO] [stderr] | [INFO] [stderr] 284 | / parse_ok!(number_literal(), r, [INFO] [stderr] 285 | | ["0xcc", { [INFO] [stderr] 286 | | assert_eq!(r, 0xcc); [INFO] [stderr] 287 | | }]); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unused variable: `consumed` [INFO] [stderr] --> src/parser/test.rs:14:23 [INFO] [stderr] | [INFO] [stderr] 14 | Result::Ok(($r, consumed)) => { [INFO] [stderr] | ^^^^^^^^ help: consider using `_consumed` instead [INFO] [stderr] | [INFO] [stderr] ::: src/parser/mod.rs:290:3 [INFO] [stderr] | [INFO] [stderr] 290 | / parse_ok!(number_literal(), r, [INFO] [stderr] 291 | | ["0123", { [INFO] [stderr] 292 | | assert_eq!(r, 83); [INFO] [stderr] 293 | | }], [INFO] [stderr] 294 | | ["0", { [INFO] [stderr] 295 | | assert_eq!(r, 0); [INFO] [stderr] 296 | | }]); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unused variable: `consumed` [INFO] [stderr] --> src/parser/test.rs:14:23 [INFO] [stderr] | [INFO] [stderr] 14 | Result::Ok(($r, consumed)) => { [INFO] [stderr] | ^^^^^^^^ help: consider using `_consumed` instead [INFO] [stderr] | [INFO] [stderr] ::: src/parser/mod.rs:299:3 [INFO] [stderr] | [INFO] [stderr] 299 | / parse_ok!(number_literal(), r, [INFO] [stderr] 300 | | ["123", { [INFO] [stderr] 301 | | assert_eq!(r, 123); [INFO] [stderr] 302 | | }]); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unused variable: `consumed` [INFO] [stderr] --> src/parser/test.rs:36:29 [INFO] [stderr] | [INFO] [stderr] 36 | Result::Ok((result, consumed)) => { [INFO] [stderr] | ^^^^^^^^ help: consider using `_consumed` instead [INFO] [stderr] | [INFO] [stderr] ::: src/parser/mod.rs:314:3 [INFO] [stderr] | [INFO] [stderr] 314 | parse_err!(bool_literal(), ["x","0xxx", "True"]); [INFO] [stderr] | ------------------------------------------------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/parser/test.rs:39:21 [INFO] [stderr] | [INFO] [stderr] 39 | Result::Err(err) => { [INFO] [stderr] | ^^^ help: consider using `_err` instead [INFO] [stderr] | [INFO] [stderr] ::: src/parser/mod.rs:314:3 [INFO] [stderr] | [INFO] [stderr] 314 | parse_err!(bool_literal(), ["x","0xxx", "True"]); [INFO] [stderr] | ------------------------------------------------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unused variable: `consumed` [INFO] [stderr] --> src/parser/test.rs:14:23 [INFO] [stderr] | [INFO] [stderr] 14 | Result::Ok(($r, consumed)) => { [INFO] [stderr] | ^^^^^^^^ help: consider using `_consumed` instead [INFO] [stderr] | [INFO] [stderr] ::: src/parser/mod.rs:318:3 [INFO] [stderr] | [INFO] [stderr] 318 | / parse_ok!(bool_literal(), r, [INFO] [stderr] 319 | | ["true", { [INFO] [stderr] 320 | | assert_eq!(r, true); [INFO] [stderr] 321 | | }], [INFO] [stderr] 322 | | ["false", { [INFO] [stderr] 323 | | assert_eq!(r, false); [INFO] [stderr] 324 | | }]); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unused variable: `consumed` [INFO] [stderr] --> src/parser/test.rs:14:23 [INFO] [stderr] | [INFO] [stderr] 14 | Result::Ok(($r, consumed)) => { [INFO] [stderr] | ^^^^^^^^ help: consider using `_consumed` instead [INFO] [stderr] | [INFO] [stderr] ::: src/parser/mod.rs:345:3 [INFO] [stderr] | [INFO] [stderr] 345 | / parse_ok!(object(), r, [INFO] [stderr] 346 | | ["{test:\"test\"}", { [INFO] [stderr] 347 | | match r { [INFO] [stderr] 348 | | ast::Expr::Object(_,_,r) => assert_eq!(r.len(), 1), [INFO] [stderr] ... | [INFO] [stderr] 356 | | } [INFO] [stderr] 357 | | }]); [INFO] [stderr] | |______- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_float` [INFO] [stderr] --> src/ast/mod.rs:19:3 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn as_float(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_int` [INFO] [stderr] --> src/ast/mod.rs:25:3 [INFO] [stderr] | [INFO] [stderr] 25 | pub fn as_int(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_string` [INFO] [stderr] --> src/ast/mod.rs:31:3 [INFO] [stderr] | [INFO] [stderr] 31 | pub fn as_string(&self) -> Option<&str> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_bool` [INFO] [stderr] --> src/ast/mod.rs:37:3 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn as_bool(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse` [INFO] [stderr] --> src/parser/mod.rs:42:1 [INFO] [stderr] | [INFO] [stderr] 42 | / pub fn parse<'a>(src: &'a str, src_name: &'a str) [INFO] [stderr] 43 | | -> Result<(ast::Program, &'a str), Consumed>> [INFO] [stderr] 44 | | { [INFO] [stderr] 45 | | let mut input = State::new(src); [INFO] [stderr] ... | [INFO] [stderr] 48 | | .map(|r| (r.0, input.input)) [INFO] [stderr] 49 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Clock` [INFO] [stderr] --> src/value/mod.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | pub struct Clock { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Value` [INFO] [stderr] --> src/value/mod.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | pub struct Value<'a, V, T : 'a> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/value/mod.rs:16:3 [INFO] [stderr] | [INFO] [stderr] 16 | pub fn new(now : u32) -> Clock { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_value` [INFO] [stderr] --> src/value/mod.rs:22:3 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn new_value<'a, V>(&'a self, v : V) -> Value<'a, V, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `tick` [INFO] [stderr] --> src/value/mod.rs:25:3 [INFO] [stderr] | [INFO] [stderr] 25 | pub fn tick(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `leap` [INFO] [stderr] --> src/value/mod.rs:28:3 [INFO] [stderr] | [INFO] [stderr] 28 | pub fn leap(&mut self, to: u32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get` [INFO] [stderr] --> src/value/mod.rs:34:3 [INFO] [stderr] | [INFO] [stderr] 34 | pub fn get(&self) -> &V { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `find` [INFO] [stderr] --> src/value/mod.rs:44:3 [INFO] [stderr] | [INFO] [stderr] 44 | fn find(&self, time: u32) -> Option<&V> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/value/mod.rs:53:3 [INFO] [stderr] | [INFO] [stderr] 53 | pub fn new<'b>(init_value : V, clock : &'b Clock) -> Value<'b, V, T>{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/mod.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | / match self { [INFO] [stderr] 21 | | &Expr::Float(_, _, v) => Some(v), [INFO] [stderr] 22 | | _ => None [INFO] [stderr] 23 | | } [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] 20 | match *self { [INFO] [stderr] 21 | Expr::Float(_, _, v) => Some(v), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/mod.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | / match self { [INFO] [stderr] 27 | | &Expr::Int(_, _, v) => Some(v), [INFO] [stderr] 28 | | _ => None [INFO] [stderr] 29 | | } [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] 26 | match *self { [INFO] [stderr] 27 | Expr::Int(_, _, v) => Some(v), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/mod.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | / match self { [INFO] [stderr] 33 | | &Expr::String(_, _, ref v) => Some(v.as_str()), [INFO] [stderr] 34 | | _ => None [INFO] [stderr] 35 | | } [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] 32 | match *self { [INFO] [stderr] 33 | Expr::String(_, _, ref v) => Some(v.as_str()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/mod.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | / match self { [INFO] [stderr] 39 | | &Expr::Bool(_, _, v) => Some(v), [INFO] [stderr] 40 | | _ => None [INFO] [stderr] 41 | | } [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 *self { [INFO] [stderr] 39 | Expr::Bool(_, _, v) => Some(v), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/parser/mod.rs:55:1 [INFO] [stderr] | [INFO] [stderr] 55 | / parser! { [INFO] [stderr] 56 | | pub fn program[I](src_name: String)(I) -> ast::Program [INFO] [stderr] 57 | | where [I: Stream] { [INFO] [stderr] 58 | | many(expr()).skip(eof()) [INFO] [stderr] 59 | | .map(|exprs: Vec| ast::Program::new(src_name.clone(), exprs)) [INFO] [stderr] 60 | | } [INFO] [stderr] 61 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/parser/mod.rs:67:1 [INFO] [stderr] | [INFO] [stderr] 67 | / parser! { [INFO] [stderr] 68 | | pub fn array[I]()(I) -> ast::Expr [INFO] [stderr] 69 | | where [I: Stream] { [INFO] [stderr] 70 | | let internal = sep_end_by(expr(), (spaces(), char(','), spaces())); [INFO] [stderr] ... | [INFO] [stderr] 75 | | } [INFO] [stderr] 76 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/parser/mod.rs:102:1 [INFO] [stderr] | [INFO] [stderr] 102 | / parser! { [INFO] [stderr] 103 | | pub fn expr[I]()(I) -> ast::Expr [INFO] [stderr] 104 | | where [I: Stream] { [INFO] [stderr] 105 | | literal().or(array()).or(object()) [INFO] [stderr] 106 | | } [INFO] [stderr] 107 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/parser/mod.rs:113:1 [INFO] [stderr] | [INFO] [stderr] 113 | / parser! { [INFO] [stderr] 114 | | pub fn ident[I]()(I) -> ast::Ident [INFO] [stderr] 115 | | where [I: Stream] { [INFO] [stderr] 116 | | let ident_parser = letter().and(many(alpha_num().or(one_of("!?*".chars())))) [INFO] [stderr] ... | [INFO] [stderr] 125 | | } [INFO] [stderr] 126 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/parser/mod.rs:148:1 [INFO] [stderr] | [INFO] [stderr] 148 | / parser!{ [INFO] [stderr] 149 | | pub fn literal[I]()(I) -> ast::Expr [INFO] [stderr] 150 | | where [I: Stream] { [INFO] [stderr] 151 | | let float_parser = (position(), float_literal(), position()) [INFO] [stderr] ... | [INFO] [stderr] 164 | | } [INFO] [stderr] 165 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/parser/mod.rs:179:1 [INFO] [stderr] | [INFO] [stderr] 179 | / parser!{ [INFO] [stderr] 180 | | pub fn string_literal[I]()(I) -> String [INFO] [stderr] 181 | | where [I: Stream] { [INFO] [stderr] 182 | | let quoted_single = many::(satisfy(|s| s != '"').then(|c| { [INFO] [stderr] ... | [INFO] [stderr] 217 | | } [INFO] [stderr] 218 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/parser/mod.rs:232:1 [INFO] [stderr] | [INFO] [stderr] 232 | / parser! { [INFO] [stderr] 233 | | pub fn float_literal[I]()(I) -> f64 [INFO] [stderr] 234 | | where [I: Stream] { [INFO] [stderr] 235 | | many1(digit()).skip(char('.')) [INFO] [stderr] ... | [INFO] [stderr] 243 | | } [INFO] [stderr] 244 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/parser/mod.rs:257:1 [INFO] [stderr] | [INFO] [stderr] 257 | / parser! { [INFO] [stderr] 258 | | pub fn number_literal[I]()(I) -> i32 [INFO] [stderr] 259 | | where [I: Stream] { [INFO] [stderr] 260 | | let hex_literal = [INFO] [stderr] ... | [INFO] [stderr] 276 | | } [INFO] [stderr] 277 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parser/mod.rs:266:12 [INFO] [stderr] | [INFO] [stderr] 266 | if s.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!s.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/parser/mod.rs:266:12 [INFO] [stderr] | [INFO] [stderr] 266 | if s.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!s.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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/parser/mod.rs:305:1 [INFO] [stderr] | [INFO] [stderr] 305 | / parser! { [INFO] [stderr] 306 | | pub fn bool_literal[I]()(I) -> bool [INFO] [stderr] 307 | | where [I: Stream] { [INFO] [stderr] 308 | | (string("true").map(|_| true)).or(string("false").map(|_| false)) [INFO] [stderr] 309 | | } [INFO] [stderr] 310 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/parser/mod.rs:331:1 [INFO] [stderr] | [INFO] [stderr] 331 | / parser!{ [INFO] [stderr] 332 | | pub fn object[I]()(I) -> ast::Expr [INFO] [stderr] 333 | | where [I: Stream] { [INFO] [stderr] 334 | | let item = ident().skip((spaces(), char(':'), spaces())).and(expr()); [INFO] [stderr] ... | [INFO] [stderr] 340 | | } [INFO] [stderr] 341 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/value/mod.rs:22:3 [INFO] [stderr] | [INFO] [stderr] 22 | / pub fn new_value<'a, V>(&'a self, v : V) -> Value<'a, V, T> { [INFO] [stderr] 23 | | Value::new(v, self) [INFO] [stderr] 24 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/value/mod.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | self.now = self.now + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.now += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/value/mod.rs:47:25 [INFO] [stderr] | [INFO] [stderr] 47 | let (_, ref v) = *self.values.get(r.unwrap()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `self.values[r.unwrap()]` [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: method is never used: `as_string` [INFO] [stderr] --> src/ast/mod.rs:31:3 [INFO] [stderr] | [INFO] [stderr] 31 | pub fn as_string(&self) -> Option<&str> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_bool` [INFO] [stderr] --> src/ast/mod.rs:37:3 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn as_bool(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse` [INFO] [stderr] --> src/parser/mod.rs:42:1 [INFO] [stderr] | [INFO] [stderr] 42 | / pub fn parse<'a>(src: &'a str, src_name: &'a str) [INFO] [stderr] 43 | | -> Result<(ast::Program, &'a str), Consumed>> [INFO] [stderr] 44 | | { [INFO] [stderr] 45 | | let mut input = State::new(src); [INFO] [stderr] ... | [INFO] [stderr] 48 | | .map(|r| (r.0, input.input)) [INFO] [stderr] 49 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Clock` [INFO] [stderr] --> src/value/mod.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | pub struct Clock { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Value` [INFO] [stderr] --> src/value/mod.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | pub struct Value<'a, V, T : 'a> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/value/mod.rs:16:3 [INFO] [stderr] | [INFO] [stderr] 16 | pub fn new(now : u32) -> Clock { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_value` [INFO] [stderr] --> src/value/mod.rs:22:3 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn new_value<'a, V>(&'a self, v : V) -> Value<'a, V, T> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `tick` [INFO] [stderr] --> src/value/mod.rs:25:3 [INFO] [stderr] | [INFO] [stderr] 25 | pub fn tick(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `leap` [INFO] [stderr] --> src/value/mod.rs:28:3 [INFO] [stderr] | [INFO] [stderr] 28 | pub fn leap(&mut self, to: u32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get` [INFO] [stderr] --> src/value/mod.rs:34:3 [INFO] [stderr] | [INFO] [stderr] 34 | pub fn get(&self) -> &V { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `find` [INFO] [stderr] --> src/value/mod.rs:44:3 [INFO] [stderr] | [INFO] [stderr] 44 | fn find(&self, time: u32) -> Option<&V> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/value/mod.rs:53:3 [INFO] [stderr] | [INFO] [stderr] 53 | pub fn new<'b>(init_value : V, clock : &'b Clock) -> Value<'b, V, T>{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/mod.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | / match self { [INFO] [stderr] 21 | | &Expr::Float(_, _, v) => Some(v), [INFO] [stderr] 22 | | _ => None [INFO] [stderr] 23 | | } [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] 20 | match *self { [INFO] [stderr] 21 | Expr::Float(_, _, v) => Some(v), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/mod.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | / match self { [INFO] [stderr] 27 | | &Expr::Int(_, _, v) => Some(v), [INFO] [stderr] 28 | | _ => None [INFO] [stderr] 29 | | } [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] 26 | match *self { [INFO] [stderr] 27 | Expr::Int(_, _, v) => Some(v), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/mod.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | / match self { [INFO] [stderr] 33 | | &Expr::String(_, _, ref v) => Some(v.as_str()), [INFO] [stderr] 34 | | _ => None [INFO] [stderr] 35 | | } [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] 32 | match *self { [INFO] [stderr] 33 | Expr::String(_, _, ref v) => Some(v.as_str()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/mod.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | / match self { [INFO] [stderr] 39 | | &Expr::Bool(_, _, v) => Some(v), [INFO] [stderr] 40 | | _ => None [INFO] [stderr] 41 | | } [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 *self { [INFO] [stderr] 39 | Expr::Bool(_, _, v) => Some(v), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/parser/mod.rs:55:1 [INFO] [stderr] | [INFO] [stderr] 55 | / parser! { [INFO] [stderr] 56 | | pub fn program[I](src_name: String)(I) -> ast::Program [INFO] [stderr] 57 | | where [I: Stream] { [INFO] [stderr] 58 | | many(expr()).skip(eof()) [INFO] [stderr] 59 | | .map(|exprs: Vec| ast::Program::new(src_name.clone(), exprs)) [INFO] [stderr] 60 | | } [INFO] [stderr] 61 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/parser/mod.rs:67:1 [INFO] [stderr] | [INFO] [stderr] 67 | / parser! { [INFO] [stderr] 68 | | pub fn array[I]()(I) -> ast::Expr [INFO] [stderr] 69 | | where [I: Stream] { [INFO] [stderr] 70 | | let internal = sep_end_by(expr(), (spaces(), char(','), spaces())); [INFO] [stderr] ... | [INFO] [stderr] 75 | | } [INFO] [stderr] 76 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/parser/mod.rs:102:1 [INFO] [stderr] | [INFO] [stderr] 102 | / parser! { [INFO] [stderr] 103 | | pub fn expr[I]()(I) -> ast::Expr [INFO] [stderr] 104 | | where [I: Stream] { [INFO] [stderr] 105 | | literal().or(array()).or(object()) [INFO] [stderr] 106 | | } [INFO] [stderr] 107 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/parser/mod.rs:113:1 [INFO] [stderr] | [INFO] [stderr] 113 | / parser! { [INFO] [stderr] 114 | | pub fn ident[I]()(I) -> ast::Ident [INFO] [stderr] 115 | | where [I: Stream] { [INFO] [stderr] 116 | | let ident_parser = letter().and(many(alpha_num().or(one_of("!?*".chars())))) [INFO] [stderr] ... | [INFO] [stderr] 125 | | } [INFO] [stderr] 126 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/parser/mod.rs:148:1 [INFO] [stderr] | [INFO] [stderr] 148 | / parser!{ [INFO] [stderr] 149 | | pub fn literal[I]()(I) -> ast::Expr [INFO] [stderr] 150 | | where [I: Stream] { [INFO] [stderr] 151 | | let float_parser = (position(), float_literal(), position()) [INFO] [stderr] ... | [INFO] [stderr] 164 | | } [INFO] [stderr] 165 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/parser/mod.rs:171:5 [INFO] [stderr] | [INFO] [stderr] 171 | assert_eq!(r.as_float().unwrap(), 0.123); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/parser/mod.rs:171:5 [INFO] [stderr] | [INFO] [stderr] 171 | assert_eq!(r.as_float().unwrap(), 0.123); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/parser/mod.rs:179:1 [INFO] [stderr] | [INFO] [stderr] 179 | / parser!{ [INFO] [stderr] 180 | | pub fn string_literal[I]()(I) -> String [INFO] [stderr] 181 | | where [I: Stream] { [INFO] [stderr] 182 | | let quoted_single = many::(satisfy(|s| s != '"').then(|c| { [INFO] [stderr] ... | [INFO] [stderr] 217 | | } [INFO] [stderr] 218 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/parser/mod.rs:232:1 [INFO] [stderr] | [INFO] [stderr] 232 | / parser! { [INFO] [stderr] 233 | | pub fn float_literal[I]()(I) -> f64 [INFO] [stderr] 234 | | where [I: Stream] { [INFO] [stderr] 235 | | many1(digit()).skip(char('.')) [INFO] [stderr] ... | [INFO] [stderr] 243 | | } [INFO] [stderr] 244 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/parser/mod.rs:252:5 [INFO] [stderr] | [INFO] [stderr] 252 | assert_eq!(r, 0.123); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/parser/mod.rs:252:5 [INFO] [stderr] | [INFO] [stderr] 252 | assert_eq!(r, 0.123); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/parser/mod.rs:257:1 [INFO] [stderr] | [INFO] [stderr] 257 | / parser! { [INFO] [stderr] 258 | | pub fn number_literal[I]()(I) -> i32 [INFO] [stderr] 259 | | where [I: Stream] { [INFO] [stderr] 260 | | let hex_literal = [INFO] [stderr] ... | [INFO] [stderr] 276 | | } [INFO] [stderr] 277 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parser/mod.rs:266:12 [INFO] [stderr] | [INFO] [stderr] 266 | if s.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!s.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/parser/mod.rs:266:12 [INFO] [stderr] | [INFO] [stderr] 266 | if s.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!s.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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/parser/mod.rs:305:1 [INFO] [stderr] | [INFO] [stderr] 305 | / parser! { [INFO] [stderr] 306 | | pub fn bool_literal[I]()(I) -> bool [INFO] [stderr] 307 | | where [I: Stream] { [INFO] [stderr] 308 | | (string("true").map(|_| true)).or(string("false").map(|_| false)) [INFO] [stderr] 309 | | } [INFO] [stderr] 310 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/parser/mod.rs:331:1 [INFO] [stderr] | [INFO] [stderr] 331 | / parser!{ [INFO] [stderr] 332 | | pub fn object[I]()(I) -> ast::Expr [INFO] [stderr] 333 | | where [I: Stream] { [INFO] [stderr] 334 | | let item = ident().skip((spaces(), char(':'), spaces())).and(expr()); [INFO] [stderr] ... | [INFO] [stderr] 340 | | } [INFO] [stderr] 341 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/value/mod.rs:22:3 [INFO] [stderr] | [INFO] [stderr] 22 | / pub fn new_value<'a, V>(&'a self, v : V) -> Value<'a, V, T> { [INFO] [stderr] 23 | | Value::new(v, self) [INFO] [stderr] 24 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/value/mod.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | self.now = self.now + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.now += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/value/mod.rs:47:25 [INFO] [stderr] | [INFO] [stderr] 47 | let (_, ref v) = *self.values.get(r.unwrap()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `self.values[r.unwrap()]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `donut`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "7aac8a1190590055c2ba1ee05887e2467099b9313bdd809c87ba7aef3511ca98"` [INFO] running `"docker" "rm" "-f" "7aac8a1190590055c2ba1ee05887e2467099b9313bdd809c87ba7aef3511ca98"` [INFO] [stdout] 7aac8a1190590055c2ba1ee05887e2467099b9313bdd809c87ba7aef3511ca98