[INFO] crate rustyard 0.6.0 is already in cache [INFO] extracting crate rustyard 0.6.0 into work/ex/clippy-test-run/sources/stable/reg/rustyard/0.6.0 [INFO] extracting crate rustyard 0.6.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rustyard/0.6.0 [INFO] validating manifest of rustyard-0.6.0 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of rustyard-0.6.0 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing rustyard-0.6.0 [INFO] finished frobbing rustyard-0.6.0 [INFO] frobbed toml for rustyard-0.6.0 written to work/ex/clippy-test-run/sources/stable/reg/rustyard/0.6.0/Cargo.toml [INFO] started frobbing rustyard-0.6.0 [INFO] finished frobbing rustyard-0.6.0 [INFO] frobbed toml for rustyard-0.6.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rustyard/0.6.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting rustyard-0.6.0 against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rustyard/0.6.0:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dclippy::into_iter_on_array" "-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] 27cfd7ad8dcc9fe23db7794f521604e00aa7a524972025e8f9a21ed48f4ca3aa [INFO] running `"docker" "start" "-a" "27cfd7ad8dcc9fe23db7794f521604e00aa7a524972025e8f9a21ed48f4ca3aa"` [INFO] [stderr] Checking rustyard v0.6.0 (/opt/crater/workdir) [INFO] [stderr] warning: you should consider adding a `Default` implementation for `shunting_yard::ShuntingYard<'a>` [INFO] [stderr] --> src/shunting_yard.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | / pub fn new() -> ShuntingYard<'a> { [INFO] [stderr] 22 | | ShuntingYard { [INFO] [stderr] 23 | | lexer: lexer::Lexer::new(), [INFO] [stderr] 24 | | output_queue: vec![], [INFO] [stderr] ... | [INFO] [stderr] 27 | | } [INFO] [stderr] 28 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 20 | impl Default for shunting_yard::ShuntingYard<'a> { [INFO] [stderr] 21 | fn default() -> Self { [INFO] [stderr] 22 | Self::new() [INFO] [stderr] 23 | } [INFO] [stderr] 24 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/shunting_yard.rs:50:12 [INFO] [stderr] | [INFO] [stderr] 50 | if self.errors.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.errors.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/shunting_yard.rs:69:27 [INFO] [stderr] | [INFO] [stderr] 69 | while self.stack.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.stack.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: length comparison to zero [INFO] [stderr] --> src/shunting_yard.rs:127:15 [INFO] [stderr] | [INFO] [stderr] 127 | while self.stack.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.stack.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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lexer.rs:134:9 [INFO] [stderr] | [INFO] [stderr] 134 | / match last_op { [INFO] [stderr] 135 | | Some(token::Token::Operator(o, _, _)) => { [INFO] [stderr] 136 | | if o == '+' || o == '-' { [INFO] [stderr] 137 | | // Pop the operator (because its not an operator .. its indicating the numbers' [INFO] [stderr] ... | [INFO] [stderr] 143 | | _ => () [INFO] [stderr] 144 | | } [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] 134 | if let Some(token::Token::Operator(o, _, _)) = last_op { [INFO] [stderr] 135 | if o == '+' || o == '-' { [INFO] [stderr] 136 | // Pop the operator (because its not an operator .. its indicating the numbers' [INFO] [stderr] 137 | // sign) and store our sign [INFO] [stderr] 138 | self.ast.pop(); [INFO] [stderr] 139 | self.sign = Some(o); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/rpn_calculator.rs:6:25 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn calculate(input: &Vec) -> Result> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change this to [INFO] [stderr] | [INFO] [stderr] 6 | pub fn calculate(input: &[token::Token]) -> Result> { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: change `input.clone()` to [INFO] [stderr] | [INFO] [stderr] 7 | let mut input = input.to_owned(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/rpn_calculator.rs:125:8 [INFO] [stderr] | [INFO] [stderr] 125 | if errors.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!errors.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: you should consider adding a `Default` implementation for `shunting_yard::ShuntingYard<'a>` [INFO] [stderr] --> src/shunting_yard.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | / pub fn new() -> ShuntingYard<'a> { [INFO] [stderr] 22 | | ShuntingYard { [INFO] [stderr] 23 | | lexer: lexer::Lexer::new(), [INFO] [stderr] 24 | | output_queue: vec![], [INFO] [stderr] ... | [INFO] [stderr] 27 | | } [INFO] [stderr] 28 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 20 | impl Default for shunting_yard::ShuntingYard<'a> { [INFO] [stderr] 21 | fn default() -> Self { [INFO] [stderr] 22 | Self::new() [INFO] [stderr] 23 | } [INFO] [stderr] 24 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/shunting_yard.rs:50:12 [INFO] [stderr] | [INFO] [stderr] 50 | if self.errors.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.errors.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/shunting_yard.rs:69:27 [INFO] [stderr] | [INFO] [stderr] 69 | while self.stack.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.stack.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: length comparison to zero [INFO] [stderr] --> src/shunting_yard.rs:127:15 [INFO] [stderr] | [INFO] [stderr] 127 | while self.stack.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.stack.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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lexer.rs:134:9 [INFO] [stderr] | [INFO] [stderr] 134 | / match last_op { [INFO] [stderr] 135 | | Some(token::Token::Operator(o, _, _)) => { [INFO] [stderr] 136 | | if o == '+' || o == '-' { [INFO] [stderr] 137 | | // Pop the operator (because its not an operator .. its indicating the numbers' [INFO] [stderr] ... | [INFO] [stderr] 143 | | _ => () [INFO] [stderr] 144 | | } [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] 134 | if let Some(token::Token::Operator(o, _, _)) = last_op { [INFO] [stderr] 135 | if o == '+' || o == '-' { [INFO] [stderr] 136 | // Pop the operator (because its not an operator .. its indicating the numbers' [INFO] [stderr] 137 | // sign) and store our sign [INFO] [stderr] 138 | self.ast.pop(); [INFO] [stderr] 139 | self.sign = Some(o); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/rpn_calculator.rs:6:25 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn calculate(input: &Vec) -> Result> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change this to [INFO] [stderr] | [INFO] [stderr] 6 | pub fn calculate(input: &[token::Token]) -> Result> { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: change `input.clone()` to [INFO] [stderr] | [INFO] [stderr] 7 | let mut input = input.to_owned(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/rpn_calculator.rs:125:8 [INFO] [stderr] | [INFO] [stderr] 125 | if errors.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!errors.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: long literal lacking separators [INFO] [stderr] --> tests/wikipedia.rs:11:16 [INFO] [stderr] | [INFO] [stderr] 11 | assert_eq!(3.0001220703125f64, yard.calculate("3 + 4 * 2 / ( 1 - 5 ) ^ 2 ^ 3").unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `3.000_122_070_312_5f64` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/wikipedia.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | assert_eq!(3.0001220703125f64, yard.calculate("3 + 4 * 2 / ( 1 - 5 ) ^ 2 ^ 3").unwrap()); [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/wikipedia.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | assert_eq!(3.0001220703125f64, yard.calculate("3 + 4 * 2 / ( 1 - 5 ) ^ 2 ^ 3").unwrap()); [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 `rustyard`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/powers.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | assert_eq!(8f64, yard.calculate("2 ^ 3").unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/multiplication.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | assert_eq!(45f64, yard.calculate("5 * 9").unwrap()); [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/multiplication.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | assert_eq!(45f64, yard.calculate("5 * 9").unwrap()); [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] --> tests/multiplication.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | assert_eq!(4.6875f64, yard.calculate("3.75 * 1.25").unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/multiplication.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | assert_eq!(4.6875f64, yard.calculate("3.75 * 1.25").unwrap()); [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 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `rustyard`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [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/powers.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | assert_eq!(8f64, yard.calculate("2 ^ 3").unwrap()); [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: strict comparison of f32 or f64 [INFO] [stderr] --> tests/order_of_operations.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | assert_eq!(14f64, yard.calculate("2 + 4 * 3").unwrap()); [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/order_of_operations.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | assert_eq!(14f64, yard.calculate("2 + 4 * 3").unwrap()); [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: Could not compile `rustyard`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/order_of_operations.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | assert_eq!(18f64, yard.calculate("(2 + 4) * 3").unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/order_of_operations.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | assert_eq!(18f64, yard.calculate("(2 + 4) * 3").unwrap()); [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] --> tests/order_of_operations.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | assert_eq!(-10f64, yard.calculate("2 - 4 * 3").unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/order_of_operations.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | assert_eq!(-10f64, yard.calculate("2 - 4 * 3").unwrap()); [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] --> tests/order_of_operations.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | assert_eq!(-6f64, yard.calculate("(2 - 4) * 3").unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/order_of_operations.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | assert_eq!(-6f64, yard.calculate("(2 - 4) * 3").unwrap()); [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] --> tests/order_of_operations.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | assert_eq!(7f64, yard.calculate("2 + 20 / 4").unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/order_of_operations.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | assert_eq!(7f64, yard.calculate("2 + 20 / 4").unwrap()); [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] --> tests/order_of_operations.rs:56:5 [INFO] [stderr] | [INFO] [stderr] 56 | assert_eq!(6f64, yard.calculate("(4 + 20) / 4").unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/order_of_operations.rs:56:5 [INFO] [stderr] | [INFO] [stderr] 56 | assert_eq!(6f64, yard.calculate("(4 + 20) / 4").unwrap()); [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] --> tests/order_of_operations.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | assert_eq!(-3f64, yard.calculate("2 - 20 / 4").unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/order_of_operations.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | assert_eq!(-3f64, yard.calculate("2 - 20 / 4").unwrap()); [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] --> tests/negative_numbers.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | assert_eq!(-4f64, yard.calculate("-2 + -2").unwrap()); [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/negative_numbers.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | assert_eq!(-4f64, yard.calculate("-2 + -2").unwrap()); [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] --> tests/order_of_operations.rs:74:5 [INFO] [stderr] | [INFO] [stderr] 74 | assert_eq!(4f64, yard.calculate("(20 - 4) / 4").unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/order_of_operations.rs:74:5 [INFO] [stderr] | [INFO] [stderr] 74 | assert_eq!(4f64, yard.calculate("(20 - 4) / 4").unwrap()); [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] --> tests/negative_numbers.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | assert_eq!(0f64, yard.calculate("-2 - -2").unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/negative_numbers.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | assert_eq!(0f64, yard.calculate("-2 - -2").unwrap()); [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] --> tests/order_of_operations.rs:83:5 [INFO] [stderr] | [INFO] [stderr] 83 | assert_eq!(55f64, yard.calculate("1 + 2 * 3 ^ 3").unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/order_of_operations.rs:83:5 [INFO] [stderr] | [INFO] [stderr] 83 | assert_eq!(55f64, yard.calculate("1 + 2 * 3 ^ 3").unwrap()); [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] --> tests/negative_numbers.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | assert_eq!(4f64, yard.calculate("-2 * -2").unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/negative_numbers.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | assert_eq!(4f64, yard.calculate("-2 * -2").unwrap()); [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] --> tests/order_of_operations.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | assert_eq!(217f64, yard.calculate("1 + (2 * 3) ^ 3").unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/order_of_operations.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | assert_eq!(217f64, yard.calculate("1 + (2 * 3) ^ 3").unwrap()); [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] --> tests/negative_numbers.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | assert_eq!(10f64, yard.calculate("-20 / -2").unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/negative_numbers.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | assert_eq!(10f64, yard.calculate("-20 / -2").unwrap()); [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 10 previous errors [INFO] [stderr] [INFO] [stderr] error: aborting due to 4 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `rustyard`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: Could not compile `rustyard`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/addition.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | assert_eq!(4f64, yard.calculate("2 + 2").unwrap()); [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/addition.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | assert_eq!(4f64, yard.calculate("2 + 2").unwrap()); [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] --> tests/addition.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | assert_eq!(5f64, yard.calculate("2.5 + 2.5").unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/addition.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | assert_eq!(5f64, yard.calculate("2.5 + 2.5").unwrap()); [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 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `rustyard`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/division.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | assert_eq!(5f64, yard.calculate("100 / 20").unwrap()); [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/division.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | assert_eq!(5f64, yard.calculate("100 / 20").unwrap()); [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] --> tests/division.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | assert_eq!(7.6f64, yard.calculate("9.5 / 1.25").unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/division.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | assert_eq!(7.6f64, yard.calculate("9.5 / 1.25").unwrap()); [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] --> tests/multi-expression.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | assert_eq!(4f64, yard.calculate("2 + 2").unwrap()); [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/multi-expression.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | assert_eq!(4f64, yard.calculate("2 + 2").unwrap()); [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 2 previous errors [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/multi-expression.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | assert_eq!(-4f64, yard.calculate("2 * -2").unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/multi-expression.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | assert_eq!(-4f64, yard.calculate("2 * -2").unwrap()); [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: Could not compile `rustyard`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `rustyard`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "27cfd7ad8dcc9fe23db7794f521604e00aa7a524972025e8f9a21ed48f4ca3aa"` [INFO] running `"docker" "rm" "-f" "27cfd7ad8dcc9fe23db7794f521604e00aa7a524972025e8f9a21ed48f4ca3aa"` [INFO] [stdout] 27cfd7ad8dcc9fe23db7794f521604e00aa7a524972025e8f9a21ed48f4ca3aa