[INFO] crate tgff 0.1.10 is already in cache [INFO] extracting crate tgff 0.1.10 into work/ex/clippy-test-run/sources/stable/reg/tgff/0.1.10 [INFO] extracting crate tgff 0.1.10 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/tgff/0.1.10 [INFO] validating manifest of tgff-0.1.10 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 tgff-0.1.10 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 tgff-0.1.10 [INFO] finished frobbing tgff-0.1.10 [INFO] frobbed toml for tgff-0.1.10 written to work/ex/clippy-test-run/sources/stable/reg/tgff/0.1.10/Cargo.toml [INFO] started frobbing tgff-0.1.10 [INFO] finished frobbing tgff-0.1.10 [INFO] frobbed toml for tgff-0.1.10 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/tgff/0.1.10/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting tgff-0.1.10 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/reg/tgff/0.1.10:/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] 90fc12fa15d10f087353271db46f0992755fde527a713209d7f108faa65344c2 [INFO] running `"docker" "start" "-a" "90fc12fa15d10f087353271db46f0992755fde527a713209d7f108faa65344c2"` [INFO] [stderr] Checking tgff v0.1.10 (/opt/crater/workdir) [INFO] [stderr] Checking assert v0.7.4 [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/content.rs:93:9 [INFO] [stderr] | [INFO] [stderr] 93 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/content.rs:94:9 [INFO] [stderr] | [INFO] [stderr] 94 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/content.rs:104:12 [INFO] [stderr] | [INFO] [stderr] 104 | Task { id: id, kind: kind } [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/content.rs:104:20 [INFO] [stderr] | [INFO] [stderr] 104 | Task { id: id, kind: kind } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `kind` [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/content.rs:109:11 [INFO] [stderr] | [INFO] [stderr] 109 | Arc { id: id, from: from, to: to, kind: kind } [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/content.rs:109:19 [INFO] [stderr] | [INFO] [stderr] 109 | Arc { id: id, from: from, to: to, kind: kind } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `from` [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/content.rs:109:31 [INFO] [stderr] | [INFO] [stderr] 109 | Arc { id: id, from: from, to: to, kind: kind } [INFO] [stderr] | ^^^^^^ help: replace it with: `to` [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/content.rs:109:39 [INFO] [stderr] | [INFO] [stderr] 109 | Arc { id: id, from: from, to: to, kind: kind } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `kind` [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/content.rs:114:16 [INFO] [stderr] | [INFO] [stderr] 114 | Deadline { id: id, on: on, at: at } [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/content.rs:114:24 [INFO] [stderr] | [INFO] [stderr] 114 | Deadline { id: id, on: on, at: at } [INFO] [stderr] | ^^^^^^ help: replace it with: `on` [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/content.rs:114:32 [INFO] [stderr] | [INFO] [stderr] 114 | Deadline { id: id, on: on, at: at } [INFO] [stderr] | ^^^^^^ help: replace it with: `at` [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/content.rs:120:9 [INFO] [stderr] | [INFO] [stderr] 120 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/content.rs:121:9 [INFO] [stderr] | [INFO] [stderr] 121 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/content.rs:129:14 [INFO] [stderr] | [INFO] [stderr] 129 | Column { name: name, data: vec![] } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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: unused macro definition [INFO] [stderr] --> src/lib.rs:48:1 [INFO] [stderr] | [INFO] [stderr] 48 | / macro_rules! some( [INFO] [stderr] 49 | | ($parser:expr, $result:expr, $($arg:tt)*) => ( [INFO] [stderr] 50 | | match $result { [INFO] [stderr] 51 | | Some(result) => result, [INFO] [stderr] ... | [INFO] [stderr] 54 | | ); [INFO] [stderr] 55 | | ); [INFO] [stderr] | |__^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_macros)] on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `for` head expression [INFO] [stderr] --> src/lib.rs:189:22 [INFO] [stderr] | [INFO] [stderr] 189 | for i in (0..cols) { [INFO] [stderr] | ^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lib.rs:118:9 [INFO] [stderr] | [INFO] [stderr] 118 | / loop { [INFO] [stderr] 119 | | match self.read_token() { [INFO] [stderr] 120 | | Some(token) => match &*token { [INFO] [stderr] 121 | | "TASK" => { [INFO] [stderr] ... | [INFO] [stderr] 151 | | } [INFO] [stderr] 152 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(token) = self.read_token() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lib.rs:164:9 [INFO] [stderr] | [INFO] [stderr] 164 | / loop { [INFO] [stderr] 165 | | match self.read_token() { [INFO] [stderr] 166 | | Some(token) => names.push(token), [INFO] [stderr] 167 | | _ => break, [INFO] [stderr] 168 | | } [INFO] [stderr] 169 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(token) = self.read_token() { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lib.rs:177:9 [INFO] [stderr] | [INFO] [stderr] 177 | / loop { [INFO] [stderr] 178 | | match self.read_token() { [INFO] [stderr] 179 | | Some(name) => table.columns.push(content::new_column(name)), [INFO] [stderr] 180 | | _ => break, [INFO] [stderr] 181 | | } [INFO] [stderr] 182 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(name) = self.read_token() { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lib.rs:209:9 [INFO] [stderr] | [INFO] [stderr] 209 | / loop { [INFO] [stderr] 210 | | match self.peek() { [INFO] [stderr] 211 | | Some(c) => { [INFO] [stderr] 212 | | if !accept(count, c) { break; } [INFO] [stderr] ... | [INFO] [stderr] 217 | | } [INFO] [stderr] 218 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(c) = self.peek() { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [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/lib.rs:224:9 [INFO] [stderr] | [INFO] [stderr] 224 | / match self.next() { [INFO] [stderr] 225 | | Some(c) => { [INFO] [stderr] 226 | | if c == expected { [INFO] [stderr] 227 | | self.skip_void(); [INFO] [stderr] ... | [INFO] [stderr] 231 | | _ => {}, [INFO] [stderr] 232 | | } [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] 224 | if let Some(c) = self.next() { [INFO] [stderr] 225 | if c == expected { [INFO] [stderr] 226 | self.skip_void(); [INFO] [stderr] 227 | return Ok(()); [INFO] [stderr] 228 | } [INFO] [stderr] 229 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lib.rs:262:9 [INFO] [stderr] | [INFO] [stderr] 262 | / loop { [INFO] [stderr] 263 | | match self.peek() { [INFO] [stderr] 264 | | Some(c) => { [INFO] [stderr] 265 | | if !accept(count, c) { break; } [INFO] [stderr] ... | [INFO] [stderr] 271 | | } [INFO] [stderr] 272 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(c) = self.peek() { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/content.rs:93:9 [INFO] [stderr] | [INFO] [stderr] 93 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/content.rs:94:9 [INFO] [stderr] | [INFO] [stderr] 94 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/content.rs:104:12 [INFO] [stderr] | [INFO] [stderr] 104 | Task { id: id, kind: kind } [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/content.rs:104:20 [INFO] [stderr] | [INFO] [stderr] 104 | Task { id: id, kind: kind } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `kind` [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/content.rs:109:11 [INFO] [stderr] | [INFO] [stderr] 109 | Arc { id: id, from: from, to: to, kind: kind } [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/content.rs:109:19 [INFO] [stderr] | [INFO] [stderr] 109 | Arc { id: id, from: from, to: to, kind: kind } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `from` [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/content.rs:109:31 [INFO] [stderr] | [INFO] [stderr] 109 | Arc { id: id, from: from, to: to, kind: kind } [INFO] [stderr] | ^^^^^^ help: replace it with: `to` [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/content.rs:109:39 [INFO] [stderr] | [INFO] [stderr] 109 | Arc { id: id, from: from, to: to, kind: kind } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `kind` [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/content.rs:114:16 [INFO] [stderr] | [INFO] [stderr] 114 | Deadline { id: id, on: on, at: at } [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/content.rs:114:24 [INFO] [stderr] | [INFO] [stderr] 114 | Deadline { id: id, on: on, at: at } [INFO] [stderr] | ^^^^^^ help: replace it with: `on` [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/content.rs:114:32 [INFO] [stderr] | [INFO] [stderr] 114 | Deadline { id: id, on: on, at: at } [INFO] [stderr] | ^^^^^^ help: replace it with: `at` [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/content.rs:120:9 [INFO] [stderr] | [INFO] [stderr] 120 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/content.rs:121:9 [INFO] [stderr] | [INFO] [stderr] 121 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/content.rs:129:14 [INFO] [stderr] | [INFO] [stderr] 129 | Column { name: name, data: vec![] } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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] error[E0554]: #![feature] may not be used on the stable release channel [INFO] [stderr] --> benches/lib.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | #![feature(test)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0554`. [INFO] [stderr] error: Could not compile `tgff`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: unnecessary parentheses around `for` head expression [INFO] [stderr] --> tests/lib.rs:22:14 [INFO] [stderr] | [INFO] [stderr] 22 | for i in (0..2) { [INFO] [stderr] | ^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/lib.rs:48:1 [INFO] [stderr] | [INFO] [stderr] 48 | / macro_rules! some( [INFO] [stderr] 49 | | ($parser:expr, $result:expr, $($arg:tt)*) => ( [INFO] [stderr] 50 | | match $result { [INFO] [stderr] 51 | | Some(result) => result, [INFO] [stderr] ... | [INFO] [stderr] 54 | | ); [INFO] [stderr] 55 | | ); [INFO] [stderr] | |__^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_macros)] on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `for` head expression [INFO] [stderr] --> src/lib.rs:189:22 [INFO] [stderr] | [INFO] [stderr] 189 | for i in (0..cols) { [INFO] [stderr] | ^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `prices` [INFO] [stderr] --> tests/lib.rs:22:14 [INFO] [stderr] | [INFO] [stderr] 22 | for i in (0..2) { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 22 | for (i, ) in prices.iter().enumerate().take(2) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/lib.rs:26:9 [INFO] [stderr] | [INFO] [stderr] 26 | assert_eq!(table.attributes["price"] as f32, prices[i]); [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] --> tests/lib.rs:26:9 [INFO] [stderr] | [INFO] [stderr] 26 | assert_eq!(table.attributes["price"] as f32, prices[i]); [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] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `tgff`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lib.rs:118:9 [INFO] [stderr] | [INFO] [stderr] 118 | / loop { [INFO] [stderr] 119 | | match self.read_token() { [INFO] [stderr] 120 | | Some(token) => match &*token { [INFO] [stderr] 121 | | "TASK" => { [INFO] [stderr] ... | [INFO] [stderr] 151 | | } [INFO] [stderr] 152 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(token) = self.read_token() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lib.rs:164:9 [INFO] [stderr] | [INFO] [stderr] 164 | / loop { [INFO] [stderr] 165 | | match self.read_token() { [INFO] [stderr] 166 | | Some(token) => names.push(token), [INFO] [stderr] 167 | | _ => break, [INFO] [stderr] 168 | | } [INFO] [stderr] 169 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(token) = self.read_token() { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lib.rs:177:9 [INFO] [stderr] | [INFO] [stderr] 177 | / loop { [INFO] [stderr] 178 | | match self.read_token() { [INFO] [stderr] 179 | | Some(name) => table.columns.push(content::new_column(name)), [INFO] [stderr] 180 | | _ => break, [INFO] [stderr] 181 | | } [INFO] [stderr] 182 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(name) = self.read_token() { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lib.rs:209:9 [INFO] [stderr] | [INFO] [stderr] 209 | / loop { [INFO] [stderr] 210 | | match self.peek() { [INFO] [stderr] 211 | | Some(c) => { [INFO] [stderr] 212 | | if !accept(count, c) { break; } [INFO] [stderr] ... | [INFO] [stderr] 217 | | } [INFO] [stderr] 218 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(c) = self.peek() { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [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/lib.rs:224:9 [INFO] [stderr] | [INFO] [stderr] 224 | / match self.next() { [INFO] [stderr] 225 | | Some(c) => { [INFO] [stderr] 226 | | if c == expected { [INFO] [stderr] 227 | | self.skip_void(); [INFO] [stderr] ... | [INFO] [stderr] 231 | | _ => {}, [INFO] [stderr] 232 | | } [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] 224 | if let Some(c) = self.next() { [INFO] [stderr] 225 | if c == expected { [INFO] [stderr] 226 | self.skip_void(); [INFO] [stderr] 227 | return Ok(()); [INFO] [stderr] 228 | } [INFO] [stderr] 229 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lib.rs:262:9 [INFO] [stderr] | [INFO] [stderr] 262 | / loop { [INFO] [stderr] 263 | | match self.peek() { [INFO] [stderr] 264 | | Some(c) => { [INFO] [stderr] 265 | | if !accept(count, c) { break; } [INFO] [stderr] ... | [INFO] [stderr] 271 | | } [INFO] [stderr] 272 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(c) = self.peek() { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:402:17 [INFO] [stderr] | [INFO] [stderr] 402 | let ref task = parser.content.graphs[0].tasks[0]; [INFO] [stderr] | ----^^^^^^^^------------------------------------- help: try: `let task = &parser.content.graphs[0].tasks[0];` [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] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:410:17 [INFO] [stderr] | [INFO] [stderr] 410 | let ref arc = parser.content.graphs[0].arcs[0]; [INFO] [stderr] | ----^^^^^^^------------------------------------ help: try: `let arc = &parser.content.graphs[0].arcs[0];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:420:17 [INFO] [stderr] | [INFO] [stderr] 420 | let ref deadline = parser.content.graphs[0].deadlines[0]; [INFO] [stderr] | ----^^^^^^^^^^^^----------------------------------------- help: try: `let deadline = &parser.content.graphs[0].deadlines[0];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:431:13 [INFO] [stderr] | [INFO] [stderr] 431 | let ref table = parser.content.tables[0]; [INFO] [stderr] | ----^^^^^^^^^---------------------------- help: try: `let table = &parser.content.tables[0];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/lib.rs:432:9 [INFO] [stderr] | [INFO] [stderr] 432 | assert_eq!(table.attributes["foo"], 70.07); [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/lib.rs:432:9 [INFO] [stderr] | [INFO] [stderr] 432 | assert_eq!(table.attributes["foo"], 70.07); [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] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/lib.rs:496:9 [INFO] [stderr] | [INFO] [stderr] 496 | test!("-1", -1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/lib.rs:496:9 [INFO] [stderr] | [INFO] [stderr] 496 | test!("-1", -1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ in this macro invocation [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] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/lib.rs:497:9 [INFO] [stderr] | [INFO] [stderr] 497 | test!("0.1", 0.1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/lib.rs:497:9 [INFO] [stderr] | [INFO] [stderr] 497 | test!("0.1", 0.1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ in this macro invocation [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] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/lib.rs:498:9 [INFO] [stderr] | [INFO] [stderr] 498 | test!("1.2e3", 1.2e3); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/lib.rs:498:9 [INFO] [stderr] | [INFO] [stderr] 498 | test!("1.2e3", 1.2e3); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ in this macro invocation [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] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/lib.rs:499:9 [INFO] [stderr] | [INFO] [stderr] 499 | test!("1.2e+3", 1.2e3); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/lib.rs:499:9 [INFO] [stderr] | [INFO] [stderr] 499 | test!("1.2e+3", 1.2e3); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ in this macro invocation [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] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/lib.rs:500:9 [INFO] [stderr] | [INFO] [stderr] 500 | test!("-1.2e-3", -1.2e-3); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/lib.rs:500:9 [INFO] [stderr] | [INFO] [stderr] 500 | test!("-1.2e-3", -1.2e-3); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ in this macro invocation [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] error: aborting due to 6 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `tgff`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "90fc12fa15d10f087353271db46f0992755fde527a713209d7f108faa65344c2"` [INFO] running `"docker" "rm" "-f" "90fc12fa15d10f087353271db46f0992755fde527a713209d7f108faa65344c2"` [INFO] [stdout] 90fc12fa15d10f087353271db46f0992755fde527a713209d7f108faa65344c2