[INFO] crate kilac 0.2.0 is already in cache [INFO] extracting crate kilac 0.2.0 into work/ex/clippy-test-run/sources/stable/reg/kilac/0.2.0 [INFO] extracting crate kilac 0.2.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/kilac/0.2.0 [INFO] validating manifest of kilac-0.2.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 kilac-0.2.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 kilac-0.2.0 [INFO] finished frobbing kilac-0.2.0 [INFO] frobbed toml for kilac-0.2.0 written to work/ex/clippy-test-run/sources/stable/reg/kilac/0.2.0/Cargo.toml [INFO] started frobbing kilac-0.2.0 [INFO] finished frobbing kilac-0.2.0 [INFO] frobbed toml for kilac-0.2.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/kilac/0.2.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 kilac-0.2.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/kilac/0.2.0:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 015d444ade5fb3084b7e6f24ee0262065c39844cfebab9fa5de4eed9b0c15176 [INFO] running `"docker" "start" "-a" "015d444ade5fb3084b7e6f24ee0262065c39844cfebab9fa5de4eed9b0c15176"` [INFO] [stderr] Checking kilac v0.2.0 (/opt/crater/workdir) [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/calc/parser/applicators.rs:69:28 [INFO] [stderr] | [INFO] [stderr] 69 | Ok(l) => l, [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/calc/parser/applicators.rs:69:28 [INFO] [stderr] | [INFO] [stderr] 69 | Ok(l) => l, [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/kipac/mod.rs:129:9 [INFO] [stderr] | [INFO] [stderr] 129 | return (a[(ln / 2)] + a[(ln / 2) - 1]) / 2.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(a[(ln / 2)] + a[(ln / 2) - 1]) / 2.0` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/calc/parser/applicators.rs:18:24 [INFO] [stderr] | [INFO] [stderr] 18 | Ast::Get(_) => return true, [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/calc/parser/applicators.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | / return match eval(Ast::Node(nodes.clone(), fun), c) { [INFO] [stderr] 27 | | Ok(Value::Num(n)) => Ast::Leaf(n), [INFO] [stderr] 28 | | _ => Ast::Node(nodes, fun), [INFO] [stderr] 29 | | }; [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] 26 | match eval(Ast::Node(nodes.clone(), fun), c) { [INFO] [stderr] 27 | Ok(Value::Num(n)) => Ast::Leaf(n), [INFO] [stderr] 28 | _ => Ast::Node(nodes, fun), [INFO] [stderr] 29 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/calc/parser/applicators.rs:35:5 [INFO] [stderr] | [INFO] [stderr] 35 | / return if fun == Fun::Mul && has_get(nodes.clone()) { [INFO] [stderr] 36 | | let a = nodes.pop()?; [INFO] [stderr] 37 | | let b = nodes.pop()?; [INFO] [stderr] 38 | | if a == Ast::Get("muk".into()) && is_get(b.clone()) || [INFO] [stderr] ... | [INFO] [stderr] 52 | | None [INFO] [stderr] 53 | | }; [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] 35 | if fun == Fun::Mul && has_get(nodes.clone()) { [INFO] [stderr] 36 | let a = nodes.pop()?; [INFO] [stderr] 37 | let b = nodes.pop()?; [INFO] [stderr] 38 | if a == Ast::Get("muk".into()) && is_get(b.clone()) || [INFO] [stderr] 39 | b == Ast::Get("muk".into()) && is_get(a.clone()) [INFO] [stderr] 40 | { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/calc/parser/applicators.rs:64:5 [INFO] [stderr] | [INFO] [stderr] 64 | / return match t { [INFO] [stderr] 65 | | Some(n) => { [INFO] [stderr] 66 | | match n { [INFO] [stderr] 67 | | Ast::Get(s) => { [INFO] [stderr] ... | [INFO] [stderr] 78 | | } [INFO] [stderr] 79 | | }; [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] 64 | match t { [INFO] [stderr] 65 | Some(n) => { [INFO] [stderr] 66 | match n { [INFO] [stderr] 67 | Ast::Get(s) => { [INFO] [stderr] 68 | match c.get(s.clone()) { [INFO] [stderr] 69 | Ok(l) => l, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/calc/parser/mod.rs:94:9 [INFO] [stderr] | [INFO] [stderr] 94 | / return match token { [INFO] [stderr] 95 | | Token::Abs => Fun::Abs, [INFO] [stderr] 96 | | Token::Add => Fun::Add, [INFO] [stderr] 97 | | Token::Aikainterp => Fun::Aikainterp, [INFO] [stderr] ... | [INFO] [stderr] 133 | | _ => Fun::Empty, [INFO] [stderr] 134 | | }; [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] 94 | match token { [INFO] [stderr] 95 | Token::Abs => Fun::Abs, [INFO] [stderr] 96 | Token::Add => Fun::Add, [INFO] [stderr] 97 | Token::Aikainterp => Fun::Aikainterp, [INFO] [stderr] 98 | Token::Aikavali => Fun::Aikavali, [INFO] [stderr] 99 | Token::Arccos => Fun::Arccos, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/calc/parser/mod.rs:267:5 [INFO] [stderr] | [INFO] [stderr] 267 | return Ok(node.pop().unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(node.pop().unwrap())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/calc/mod.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | / return match eval(parsed, c) { [INFO] [stderr] 69 | | Ok(p) => { [INFO] [stderr] 70 | | match p { [INFO] [stderr] 71 | | Value::Num(n) => Ok(n), [INFO] [stderr] ... | [INFO] [stderr] 75 | | Err(p) => Err(p), [INFO] [stderr] 76 | | }; [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] 68 | match eval(parsed, c) { [INFO] [stderr] 69 | Ok(p) => { [INFO] [stderr] 70 | match p { [INFO] [stderr] 71 | Value::Num(n) => Ok(n), [INFO] [stderr] 72 | Value::Vec(n) => Err(format!("Got Vector instead of number: {:#?}", n)), [INFO] [stderr] 73 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/calc/mod.rs:82:5 [INFO] [stderr] | [INFO] [stderr] 82 | / return match eval(parsed, self::ctx::EmptyCtx).ok().unwrap() { [INFO] [stderr] 83 | | Value::Num(n) => n, [INFO] [stderr] 84 | | Value::Vec(n) => panic!("Got Vector instead of number: {:#?}", n), [INFO] [stderr] 85 | | }; [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] 82 | match eval(parsed, self::ctx::EmptyCtx).ok().unwrap() { [INFO] [stderr] 83 | Value::Num(n) => n, [INFO] [stderr] 84 | Value::Vec(n) => panic!("Got Vector instead of number: {:#?}", n), [INFO] [stderr] 85 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/calc/mod.rs:93:5 [INFO] [stderr] | [INFO] [stderr] 93 | / return match ast { [INFO] [stderr] 94 | | Ast::Empty => panic!("Met empty abstract syntax tree node {:?}", ast), [INFO] [stderr] 95 | | Ast::Leaf(num) => value!(Num, num), [INFO] [stderr] 96 | | Ast::Node(vec, fun) => { [INFO] [stderr] ... | [INFO] [stderr] 157 | | }, [INFO] [stderr] 158 | | }; [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] 93 | match ast { [INFO] [stderr] 94 | Ast::Empty => panic!("Met empty abstract syntax tree node {:?}", ast), [INFO] [stderr] 95 | Ast::Leaf(num) => value!(Num, num), [INFO] [stderr] 96 | Ast::Node(vec, fun) => { [INFO] [stderr] 97 | let mut res: Vec = Vec::new(); [INFO] [stderr] 98 | for i in vec { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `/` [INFO] [stderr] --> src/kipac/mod.rs:108:28 [INFO] [stderr] | [INFO] [stderr] 108 | x.iter().cloned().fold(0. / 0., f64::min) [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::eq_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] warning: constant division of 0.0 with 0.0 will always result in NaN [INFO] [stderr] --> src/kipac/mod.rs:108:28 [INFO] [stderr] | [INFO] [stderr] 108 | x.iter().cloned().fold(0. / 0., f64::min) [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::zero_divided_by_zero)] on by default [INFO] [stderr] = help: Consider using `std::f64::NAN` if you would like a constant representing NaN [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_divided_by_zero [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `/` [INFO] [stderr] --> src/kipac/mod.rs:112:28 [INFO] [stderr] | [INFO] [stderr] 112 | x.iter().cloned().fold(0. / 0., f64::max) [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] warning: constant division of 0.0 with 0.0 will always result in NaN [INFO] [stderr] --> src/kipac/mod.rs:112:28 [INFO] [stderr] | [INFO] [stderr] 112 | x.iter().cloned().fold(0. / 0., f64::max) [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using `std::f64::NAN` if you would like a constant representing NaN [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_divided_by_zero [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/kipac/mod.rs:129:9 [INFO] [stderr] | [INFO] [stderr] 129 | return (a[(ln / 2)] + a[(ln / 2) - 1]) / 2.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(a[(ln / 2)] + a[(ln / 2) - 1]) / 2.0` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/kipac/mod.rs:163:20 [INFO] [stderr] | [INFO] [stderr] 163 | assert_eq!(0.6989700043360189, log(5.0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0.698_970_004_336_018_9` [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] warning: long literal lacking separators [INFO] [stderr] --> src/kipac/mod.rs:169:20 [INFO] [stderr] | [INFO] [stderr] 169 | assert_eq!(1.6094379124341003, ln(5.0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `1.609_437_912_434_100_3` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/calc/parser/applicators.rs:18:24 [INFO] [stderr] | [INFO] [stderr] 18 | Ast::Get(_) => return true, [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/calc/parser/applicators.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | / return match eval(Ast::Node(nodes.clone(), fun), c) { [INFO] [stderr] 27 | | Ok(Value::Num(n)) => Ast::Leaf(n), [INFO] [stderr] 28 | | _ => Ast::Node(nodes, fun), [INFO] [stderr] 29 | | }; [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] 26 | match eval(Ast::Node(nodes.clone(), fun), c) { [INFO] [stderr] 27 | Ok(Value::Num(n)) => Ast::Leaf(n), [INFO] [stderr] 28 | _ => Ast::Node(nodes, fun), [INFO] [stderr] 29 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/calc/parser/applicators.rs:35:5 [INFO] [stderr] | [INFO] [stderr] 35 | / return if fun == Fun::Mul && has_get(nodes.clone()) { [INFO] [stderr] 36 | | let a = nodes.pop()?; [INFO] [stderr] 37 | | let b = nodes.pop()?; [INFO] [stderr] 38 | | if a == Ast::Get("muk".into()) && is_get(b.clone()) || [INFO] [stderr] ... | [INFO] [stderr] 52 | | None [INFO] [stderr] 53 | | }; [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] 35 | if fun == Fun::Mul && has_get(nodes.clone()) { [INFO] [stderr] 36 | let a = nodes.pop()?; [INFO] [stderr] 37 | let b = nodes.pop()?; [INFO] [stderr] 38 | if a == Ast::Get("muk".into()) && is_get(b.clone()) || [INFO] [stderr] 39 | b == Ast::Get("muk".into()) && is_get(a.clone()) [INFO] [stderr] 40 | { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/calc/parser/applicators.rs:64:5 [INFO] [stderr] | [INFO] [stderr] 64 | / return match t { [INFO] [stderr] 65 | | Some(n) => { [INFO] [stderr] 66 | | match n { [INFO] [stderr] 67 | | Ast::Get(s) => { [INFO] [stderr] ... | [INFO] [stderr] 78 | | } [INFO] [stderr] 79 | | }; [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] 64 | match t { [INFO] [stderr] 65 | Some(n) => { [INFO] [stderr] 66 | match n { [INFO] [stderr] 67 | Ast::Get(s) => { [INFO] [stderr] 68 | match c.get(s.clone()) { [INFO] [stderr] 69 | Ok(l) => l, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/calc/parser/applicators.rs:8:9 [INFO] [stderr] | [INFO] [stderr] 8 | / match t { [INFO] [stderr] 9 | | Ast::Get(_) => return true, [INFO] [stderr] 10 | | _ => (), [INFO] [stderr] 11 | | } [INFO] [stderr] | |_________^ help: try this: `if let Ast::Get(_) = t { return true }` [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] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/calc/parser/mod.rs:94:9 [INFO] [stderr] | [INFO] [stderr] 94 | / return match token { [INFO] [stderr] 95 | | Token::Abs => Fun::Abs, [INFO] [stderr] 96 | | Token::Add => Fun::Add, [INFO] [stderr] 97 | | Token::Aikainterp => Fun::Aikainterp, [INFO] [stderr] ... | [INFO] [stderr] 133 | | _ => Fun::Empty, [INFO] [stderr] 134 | | }; [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] 94 | match token { [INFO] [stderr] 95 | Token::Abs => Fun::Abs, [INFO] [stderr] 96 | Token::Add => Fun::Add, [INFO] [stderr] 97 | Token::Aikainterp => Fun::Aikainterp, [INFO] [stderr] 98 | Token::Aikavali => Fun::Aikavali, [INFO] [stderr] 99 | Token::Arccos => Fun::Arccos, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/calc/parser/mod.rs:267:5 [INFO] [stderr] | [INFO] [stderr] 267 | return Ok(node.pop().unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(node.pop().unwrap())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/calc/mod.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | / return match eval(parsed, c) { [INFO] [stderr] 69 | | Ok(p) => { [INFO] [stderr] 70 | | match p { [INFO] [stderr] 71 | | Value::Num(n) => Ok(n), [INFO] [stderr] ... | [INFO] [stderr] 75 | | Err(p) => Err(p), [INFO] [stderr] 76 | | }; [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] 68 | match eval(parsed, c) { [INFO] [stderr] 69 | Ok(p) => { [INFO] [stderr] 70 | match p { [INFO] [stderr] 71 | Value::Num(n) => Ok(n), [INFO] [stderr] 72 | Value::Vec(n) => Err(format!("Got Vector instead of number: {:#?}", n)), [INFO] [stderr] 73 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/calc/mod.rs:82:5 [INFO] [stderr] | [INFO] [stderr] 82 | / return match eval(parsed, self::ctx::EmptyCtx).ok().unwrap() { [INFO] [stderr] 83 | | Value::Num(n) => n, [INFO] [stderr] 84 | | Value::Vec(n) => panic!("Got Vector instead of number: {:#?}", n), [INFO] [stderr] 85 | | }; [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] 82 | match eval(parsed, self::ctx::EmptyCtx).ok().unwrap() { [INFO] [stderr] 83 | Value::Num(n) => n, [INFO] [stderr] 84 | Value::Vec(n) => panic!("Got Vector instead of number: {:#?}", n), [INFO] [stderr] 85 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/calc/mod.rs:93:5 [INFO] [stderr] | [INFO] [stderr] 93 | / return match ast { [INFO] [stderr] 94 | | Ast::Empty => panic!("Met empty abstract syntax tree node {:?}", ast), [INFO] [stderr] 95 | | Ast::Leaf(num) => value!(Num, num), [INFO] [stderr] 96 | | Ast::Node(vec, fun) => { [INFO] [stderr] ... | [INFO] [stderr] 157 | | }, [INFO] [stderr] 158 | | }; [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] 93 | match ast { [INFO] [stderr] 94 | Ast::Empty => panic!("Met empty abstract syntax tree node {:?}", ast), [INFO] [stderr] 95 | Ast::Leaf(num) => value!(Num, num), [INFO] [stderr] 96 | Ast::Node(vec, fun) => { [INFO] [stderr] 97 | let mut res: Vec = Vec::new(); [INFO] [stderr] 98 | for i in vec { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 41 [INFO] [stderr] --> src/calc/parser/mod.rs:93:5 [INFO] [stderr] | [INFO] [stderr] 93 | / fn from(token: Token) -> Self { [INFO] [stderr] 94 | | return match token { [INFO] [stderr] 95 | | Token::Abs => Fun::Abs, [INFO] [stderr] 96 | | Token::Add => Fun::Add, [INFO] [stderr] ... | [INFO] [stderr] 134 | | }; [INFO] [stderr] 135 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `for` loop [INFO] [stderr] --> src/calc/parser/mod.rs:157:25 [INFO] [stderr] | [INFO] [stderr] 157 | while let Some(t) = iter.next() { [INFO] [stderr] | ^^^^^^^^^^^ help: try: `for t in iter { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_on_iterator)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/calc/parser/mod.rs:161:40 [INFO] [stderr] | [INFO] [stderr] 161 | Token::Empty => return Err(format!("Got empty")), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Got empty".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/calc/parser/mod.rs:219:53 [INFO] [stderr] | [INFO] [stderr] 219 | _ => return Err(format!("Shouldn't happen. Unary operator")), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Shouldn't happen. Unary operator".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/calc/parser/mod.rs:228:45 [INFO] [stderr] | [INFO] [stderr] 228 | _ => return Err(format!("Shouldn't happen. Unary operator")), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Shouldn't happen. Unary operator".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 51 [INFO] [stderr] --> src/calc/mod.rs:92:1 [INFO] [stderr] | [INFO] [stderr] 92 | / pub fn eval(ast: Ast, c: C) -> Result { [INFO] [stderr] 93 | | return match ast { [INFO] [stderr] 94 | | Ast::Empty => panic!("Met empty abstract syntax tree node {:?}", ast), [INFO] [stderr] 95 | | Ast::Leaf(num) => value!(Num, num), [INFO] [stderr] ... | [INFO] [stderr] 158 | | }; [INFO] [stderr] 159 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/calc/mod.rs:138:46 [INFO] [stderr] | [INFO] [stderr] 138 | Fun::Eq => value!(Num, cond!(res[0] == res[1])), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(res[0] - res[1]).abs() < error` [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/calc/mod.rs:138:46 [INFO] [stderr] | [INFO] [stderr] 138 | Fun::Eq => value!(Num, cond!(res[0] == res[1])), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/calc/mod.rs:139:47 [INFO] [stderr] | [INFO] [stderr] 139 | Fun::Neq => value!(Num, cond!(res[0] != res[1])), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(res[0] - res[1]).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/calc/mod.rs:139:47 [INFO] [stderr] | [INFO] [stderr] 139 | Fun::Neq => value!(Num, cond!(res[0] != res[1])), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: aborting due to 4 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `kilac`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: equal expressions as operands to `/` [INFO] [stderr] --> src/kipac/mod.rs:108:28 [INFO] [stderr] | [INFO] [stderr] 108 | x.iter().cloned().fold(0. / 0., f64::min) [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::eq_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] warning: constant division of 0.0 with 0.0 will always result in NaN [INFO] [stderr] --> src/kipac/mod.rs:108:28 [INFO] [stderr] | [INFO] [stderr] 108 | x.iter().cloned().fold(0. / 0., f64::min) [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::zero_divided_by_zero)] on by default [INFO] [stderr] = help: Consider using `std::f64::NAN` if you would like a constant representing NaN [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_divided_by_zero [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `/` [INFO] [stderr] --> src/kipac/mod.rs:112:28 [INFO] [stderr] | [INFO] [stderr] 112 | x.iter().cloned().fold(0. / 0., f64::max) [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] warning: constant division of 0.0 with 0.0 will always result in NaN [INFO] [stderr] --> src/kipac/mod.rs:112:28 [INFO] [stderr] | [INFO] [stderr] 112 | x.iter().cloned().fold(0. / 0., f64::max) [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using `std::f64::NAN` if you would like a constant representing NaN [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_divided_by_zero [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/kipac/mod.rs:148:9 [INFO] [stderr] | [INFO] [stderr] 148 | assert_eq!(5.0, aikavali(5.0, 10.0)); [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/kipac/mod.rs:148:9 [INFO] [stderr] | [INFO] [stderr] 148 | assert_eq!(5.0, aikavali(5.0, 10.0)); [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/kipac/mod.rs:149:9 [INFO] [stderr] | [INFO] [stderr] 149 | assert_eq!(0.0, aikavali(10.0, 10.0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:149:9 [INFO] [stderr] | [INFO] [stderr] 149 | assert_eq!(0.0, aikavali(10.0, 10.0)); [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/kipac/mod.rs:150:9 [INFO] [stderr] | [INFO] [stderr] 150 | assert_eq!(100.0, aikavali(86400.0, 100.0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:150:9 [INFO] [stderr] | [INFO] [stderr] 150 | assert_eq!(100.0, aikavali(86400.0, 100.0)); [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/kipac/mod.rs:154:9 [INFO] [stderr] | [INFO] [stderr] 154 | assert_eq!(5.0, abs(-5.0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:154:9 [INFO] [stderr] | [INFO] [stderr] 154 | assert_eq!(5.0, abs(-5.0)); [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/kipac/mod.rs:155:9 [INFO] [stderr] | [INFO] [stderr] 155 | assert_eq!(5.0, abs(5.0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:155:9 [INFO] [stderr] | [INFO] [stderr] 155 | assert_eq!(5.0, abs(5.0)); [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/kipac/mod.rs:156:9 [INFO] [stderr] | [INFO] [stderr] 156 | assert_eq!(25.5555, abs(25.5555)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:156:9 [INFO] [stderr] | [INFO] [stderr] 156 | assert_eq!(25.5555, abs(25.5555)); [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/kipac/mod.rs:157:9 [INFO] [stderr] | [INFO] [stderr] 157 | assert_eq!(25.50, abs(-25.50)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:157:9 [INFO] [stderr] | [INFO] [stderr] 157 | assert_eq!(25.50, abs(-25.50)); [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/kipac/mod.rs:161:9 [INFO] [stderr] | [INFO] [stderr] 161 | assert_eq!(0.0, log(1.0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:161:9 [INFO] [stderr] | [INFO] [stderr] 161 | assert_eq!(0.0, log(1.0)); [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/kipac/mod.rs:162:9 [INFO] [stderr] | [INFO] [stderr] 162 | assert_eq!(1.0, log(10.0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:162:9 [INFO] [stderr] | [INFO] [stderr] 162 | assert_eq!(1.0, log(10.0)); [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/kipac/mod.rs:163:9 [INFO] [stderr] | [INFO] [stderr] 163 | assert_eq!(0.6989700043360189, log(5.0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:163:9 [INFO] [stderr] | [INFO] [stderr] 163 | assert_eq!(0.6989700043360189, log(5.0)); [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/kipac/mod.rs:167:9 [INFO] [stderr] | [INFO] [stderr] 167 | assert_eq!(0.0, ln(1.0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:167:9 [INFO] [stderr] | [INFO] [stderr] 167 | assert_eq!(0.0, ln(1.0)); [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/kipac/mod.rs:168:9 [INFO] [stderr] | [INFO] [stderr] 168 | assert_eq!(1.0, ln(E)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:168:9 [INFO] [stderr] | [INFO] [stderr] 168 | assert_eq!(1.0, ln(E)); [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/kipac/mod.rs:169:9 [INFO] [stderr] | [INFO] [stderr] 169 | assert_eq!(1.6094379124341003, ln(5.0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:169:9 [INFO] [stderr] | [INFO] [stderr] 169 | assert_eq!(1.6094379124341003, ln(5.0)); [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/kipac/mod.rs:173:9 [INFO] [stderr] | [INFO] [stderr] 173 | assert_eq!(1.0, floor(1.0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:173:9 [INFO] [stderr] | [INFO] [stderr] 173 | assert_eq!(1.0, floor(1.0)); [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/kipac/mod.rs:174:9 [INFO] [stderr] | [INFO] [stderr] 174 | assert_eq!(1.0, floor(1.6)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:174:9 [INFO] [stderr] | [INFO] [stderr] 174 | assert_eq!(1.0, floor(1.6)); [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/kipac/mod.rs:175:9 [INFO] [stderr] | [INFO] [stderr] 175 | assert_eq!(1.0, floor(1.999)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:175:9 [INFO] [stderr] | [INFO] [stderr] 175 | assert_eq!(1.0, floor(1.999)); [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/kipac/mod.rs:176:9 [INFO] [stderr] | [INFO] [stderr] 176 | assert_eq!(1.0, floor(1.5)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:176:9 [INFO] [stderr] | [INFO] [stderr] 176 | assert_eq!(1.0, floor(1.5)); [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/kipac/mod.rs:177:9 [INFO] [stderr] | [INFO] [stderr] 177 | assert_eq!(-1.0, floor(-0.4)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:177:9 [INFO] [stderr] | [INFO] [stderr] 177 | assert_eq!(-1.0, floor(-0.4)); [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/kipac/mod.rs:181:9 [INFO] [stderr] | [INFO] [stderr] 181 | assert_eq!(1.0, ceil(1.0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:181:9 [INFO] [stderr] | [INFO] [stderr] 181 | assert_eq!(1.0, ceil(1.0)); [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/kipac/mod.rs:182:9 [INFO] [stderr] | [INFO] [stderr] 182 | assert_eq!(2.0, ceil(1.6)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:182:9 [INFO] [stderr] | [INFO] [stderr] 182 | assert_eq!(2.0, ceil(1.6)); [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/kipac/mod.rs:183:9 [INFO] [stderr] | [INFO] [stderr] 183 | assert_eq!(2.0, ceil(1.999)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:183:9 [INFO] [stderr] | [INFO] [stderr] 183 | assert_eq!(2.0, ceil(1.999)); [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/kipac/mod.rs:184:9 [INFO] [stderr] | [INFO] [stderr] 184 | assert_eq!(2.0, ceil(1.5)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:184:9 [INFO] [stderr] | [INFO] [stderr] 184 | assert_eq!(2.0, ceil(1.5)); [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/kipac/mod.rs:185:9 [INFO] [stderr] | [INFO] [stderr] 185 | assert_eq!(-1.0, ceil(-1.4)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:185:9 [INFO] [stderr] | [INFO] [stderr] 185 | assert_eq!(-1.0, ceil(-1.4)); [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/kipac/mod.rs:191:9 [INFO] [stderr] | [INFO] [stderr] 191 | assert_eq!(E, exp(1.0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:191:9 [INFO] [stderr] | [INFO] [stderr] 191 | assert_eq!(E, exp(1.0)); [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/kipac/mod.rs:192:9 [INFO] [stderr] | [INFO] [stderr] 192 | assert_eq!(1.0, exp(0.0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:192:9 [INFO] [stderr] | [INFO] [stderr] 192 | assert_eq!(1.0, exp(0.0)); [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/kipac/mod.rs:196:9 [INFO] [stderr] | [INFO] [stderr] 196 | assert_eq!(0.0, kmod(4.0, 2.0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:196:9 [INFO] [stderr] | [INFO] [stderr] 196 | assert_eq!(0.0, kmod(4.0, 2.0)); [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/kipac/mod.rs:197:9 [INFO] [stderr] | [INFO] [stderr] 197 | assert_eq!(1.0, kmod(3.0, 2.0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:197:9 [INFO] [stderr] | [INFO] [stderr] 197 | assert_eq!(1.0, kmod(3.0, 2.0)); [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/kipac/mod.rs:201:9 [INFO] [stderr] | [INFO] [stderr] 201 | assert_eq!(4.0, pow(2.0, 2.0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:201:9 [INFO] [stderr] | [INFO] [stderr] 201 | assert_eq!(4.0, pow(2.0, 2.0)); [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/kipac/mod.rs:202:9 [INFO] [stderr] | [INFO] [stderr] 202 | assert_eq!(8.0, pow(2.0, 3.0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:202:9 [INFO] [stderr] | [INFO] [stderr] 202 | assert_eq!(8.0, pow(2.0, 3.0)); [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/kipac/mod.rs:203:9 [INFO] [stderr] | [INFO] [stderr] 203 | assert_eq!(-8.0, pow(-2.0, 3.0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:203:9 [INFO] [stderr] | [INFO] [stderr] 203 | assert_eq!(-8.0, pow(-2.0, 3.0)); [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/kipac/mod.rs:204:9 [INFO] [stderr] | [INFO] [stderr] 204 | assert_eq!(2.0, pow(4.0, 0.5)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:204:9 [INFO] [stderr] | [INFO] [stderr] 204 | assert_eq!(2.0, pow(4.0, 0.5)); [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/kipac/mod.rs:205:9 [INFO] [stderr] | [INFO] [stderr] 205 | assert_eq!(0.03125, pow(4.0, -2.5)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:205:9 [INFO] [stderr] | [INFO] [stderr] 205 | assert_eq!(0.03125, pow(4.0, -2.5)); [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/kipac/mod.rs:212:9 [INFO] [stderr] | [INFO] [stderr] 212 | assert_eq!(5.0, max(vec![5.0, 1.0, -10.0, 4.99999, 2.5])) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:212:9 [INFO] [stderr] | [INFO] [stderr] 212 | assert_eq!(5.0, max(vec![5.0, 1.0, -10.0, 4.99999, 2.5])) [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/kipac/mod.rs:216:9 [INFO] [stderr] | [INFO] [stderr] 216 | assert_eq!(-10.0, min(vec![5.0, 1.0, -10.0, 4.99999, 2.5])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:216:9 [INFO] [stderr] | [INFO] [stderr] 216 | assert_eq!(-10.0, min(vec![5.0, 1.0, -10.0, 4.99999, 2.5])); [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/kipac/mod.rs:217:9 [INFO] [stderr] | [INFO] [stderr] 217 | assert_eq!(0.0, min(vec![0.0, 1.0])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:217:9 [INFO] [stderr] | [INFO] [stderr] 217 | assert_eq!(0.0, min(vec![0.0, 1.0])); [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/kipac/mod.rs:221:9 [INFO] [stderr] | [INFO] [stderr] 221 | assert_eq!(2.0, mean(vec![1.0, 2.0, 3.0])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:221:9 [INFO] [stderr] | [INFO] [stderr] 221 | assert_eq!(2.0, mean(vec![1.0, 2.0, 3.0])); [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/kipac/mod.rs:225:9 [INFO] [stderr] | [INFO] [stderr] 225 | assert_eq!(2.0, median(vec![1.0, 2.0, 3.0])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/kipac/mod.rs:225:9 [INFO] [stderr] | [INFO] [stderr] 225 | assert_eq!(2.0, median(vec![1.0, 2.0, 3.0])); [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/calc/parser/applicators.rs:8:9 [INFO] [stderr] | [INFO] [stderr] 8 | / match t { [INFO] [stderr] 9 | | Ast::Get(_) => return true, [INFO] [stderr] 10 | | _ => (), [INFO] [stderr] 11 | | } [INFO] [stderr] | |_________^ help: try this: `if let Ast::Get(_) = t { return true }` [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] [INFO] [stderr] warning: the function has a cyclomatic complexity of 41 [INFO] [stderr] --> src/calc/parser/mod.rs:93:5 [INFO] [stderr] | [INFO] [stderr] 93 | / fn from(token: Token) -> Self { [INFO] [stderr] 94 | | return match token { [INFO] [stderr] 95 | | Token::Abs => Fun::Abs, [INFO] [stderr] 96 | | Token::Add => Fun::Add, [INFO] [stderr] ... | [INFO] [stderr] 134 | | }; [INFO] [stderr] 135 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `for` loop [INFO] [stderr] --> src/calc/parser/mod.rs:157:25 [INFO] [stderr] | [INFO] [stderr] 157 | while let Some(t) = iter.next() { [INFO] [stderr] | ^^^^^^^^^^^ help: try: `for t in iter { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_on_iterator)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/calc/parser/mod.rs:161:40 [INFO] [stderr] | [INFO] [stderr] 161 | Token::Empty => return Err(format!("Got empty")), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Got empty".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/calc/parser/mod.rs:219:53 [INFO] [stderr] | [INFO] [stderr] 219 | _ => return Err(format!("Shouldn't happen. Unary operator")), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Shouldn't happen. Unary operator".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/calc/parser/mod.rs:228:45 [INFO] [stderr] | [INFO] [stderr] 228 | _ => return Err(format!("Shouldn't happen. Unary operator")), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Shouldn't happen. Unary operator".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/calc/parser/mod.rs:289:22 [INFO] [stderr] | [INFO] [stderr] 289 | parse_fn(lex(s.into()), applicators::empty, EmptyCtx).ok().unwrap() [INFO] [stderr] | ^^^^^^^^ help: consider removing `.into()`: `s` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/calc/parser/mod.rs:284:23 [INFO] [stderr] | [INFO] [stderr] 284 | Ast::Leaf($e as f64) [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(5)` [INFO] [stderr] ... [INFO] [stderr] 293 | assert_eq!(node!(Add, leaf!(5), leaf!(7)), parse_test("5+7")); [INFO] [stderr] | -------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/calc/parser/mod.rs:284:23 [INFO] [stderr] | [INFO] [stderr] 284 | Ast::Leaf($e as f64) [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(7)` [INFO] [stderr] ... [INFO] [stderr] 293 | assert_eq!(node!(Add, leaf!(5), leaf!(7)), parse_test("5+7")); [INFO] [stderr] | -------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/calc/parser/mod.rs:284:23 [INFO] [stderr] | [INFO] [stderr] 284 | Ast::Leaf($e as f64) [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(12)` [INFO] [stderr] ... [INFO] [stderr] 294 | assert_eq!(leaf!(12), parse(lex("5+7".into()), EmptyCtx).ok().unwrap()); [INFO] [stderr] | --------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/calc/parser/mod.rs:294:41 [INFO] [stderr] | [INFO] [stderr] 294 | assert_eq!(leaf!(12), parse(lex("5+7".into()), EmptyCtx).ok().unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^ help: consider removing `.into()`: `"5+7"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 51 [INFO] [stderr] --> src/calc/mod.rs:92:1 [INFO] [stderr] | [INFO] [stderr] 92 | / pub fn eval(ast: Ast, c: C) -> Result { [INFO] [stderr] 93 | | return match ast { [INFO] [stderr] 94 | | Ast::Empty => panic!("Met empty abstract syntax tree node {:?}", ast), [INFO] [stderr] 95 | | Ast::Leaf(num) => value!(Num, num), [INFO] [stderr] ... | [INFO] [stderr] 158 | | }; [INFO] [stderr] 159 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/calc/mod.rs:138:46 [INFO] [stderr] | [INFO] [stderr] 138 | Fun::Eq => value!(Num, cond!(res[0] == res[1])), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(res[0] - res[1]).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/calc/mod.rs:138:46 [INFO] [stderr] | [INFO] [stderr] 138 | Fun::Eq => value!(Num, cond!(res[0] == res[1])), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/calc/mod.rs:139:47 [INFO] [stderr] | [INFO] [stderr] 139 | Fun::Neq => value!(Num, cond!(res[0] != res[1])), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(res[0] - res[1]).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/calc/mod.rs:139:47 [INFO] [stderr] | [INFO] [stderr] 139 | Fun::Neq => value!(Num, cond!(res[0] != res[1])), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/calc/mod.rs:168:9 [INFO] [stderr] | [INFO] [stderr] 168 | assert_eq!(11.0, calculate(s.into())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/calc/mod.rs:168:9 [INFO] [stderr] | [INFO] [stderr] 168 | assert_eq!(11.0, calculate(s.into())); [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/calc/mod.rs:173:9 [INFO] [stderr] | [INFO] [stderr] 173 | assert_eq!(10.0, calculate(s.into())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/calc/mod.rs:173:9 [INFO] [stderr] | [INFO] [stderr] 173 | assert_eq!(10.0, calculate(s.into())); [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/calc/mod.rs:178:9 [INFO] [stderr] | [INFO] [stderr] 178 | assert_eq!(6.0, calculate(s.into())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/calc/mod.rs:178:9 [INFO] [stderr] | [INFO] [stderr] 178 | assert_eq!(6.0, calculate(s.into())); [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/calc/mod.rs:183:9 [INFO] [stderr] | [INFO] [stderr] 183 | assert_eq!(24.0, calculate(s.into())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/calc/mod.rs:183:9 [INFO] [stderr] | [INFO] [stderr] 183 | assert_eq!(24.0, calculate(s.into())); [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/calc/mod.rs:188:9 [INFO] [stderr] | [INFO] [stderr] 188 | assert_eq!(0.0, calculate(s.into())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/calc/mod.rs:188:9 [INFO] [stderr] | [INFO] [stderr] 188 | assert_eq!(0.0, calculate(s.into())); [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/calc/mod.rs:189:9 [INFO] [stderr] | [INFO] [stderr] 189 | assert_eq!(2.0, calculate("12%5".into())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/calc/mod.rs:189:9 [INFO] [stderr] | [INFO] [stderr] 189 | assert_eq!(2.0, calculate("12%5".into())); [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/calc/mod.rs:190:9 [INFO] [stderr] | [INFO] [stderr] 190 | assert_eq!(2.0, calculate("17%5".into())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/calc/mod.rs:190:9 [INFO] [stderr] | [INFO] [stderr] 190 | assert_eq!(2.0, calculate("17%5".into())); [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/calc/mod.rs:191:9 [INFO] [stderr] | [INFO] [stderr] 191 | assert_eq!(2.0, calculate("14%4".into())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/calc/mod.rs:191:9 [INFO] [stderr] | [INFO] [stderr] 191 | assert_eq!(2.0, calculate("14%4".into())); [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/calc/mod.rs:196:9 [INFO] [stderr] | [INFO] [stderr] 196 | assert_eq!(4.0, calculate(s.into())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/calc/mod.rs:196:9 [INFO] [stderr] | [INFO] [stderr] 196 | assert_eq!(4.0, calculate(s.into())); [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/calc/mod.rs:201:9 [INFO] [stderr] | [INFO] [stderr] 201 | assert_eq!(-26.0, calculate(s.into())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/calc/mod.rs:201:9 [INFO] [stderr] | [INFO] [stderr] 201 | assert_eq!(-26.0, calculate(s.into())); [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/calc/mod.rs:205:9 [INFO] [stderr] | [INFO] [stderr] 205 | assert_eq!(2.0, calculate("min(5, 10, 2)".into())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/calc/mod.rs:205:9 [INFO] [stderr] | [INFO] [stderr] 205 | assert_eq!(2.0, calculate("min(5, 10, 2)".into())); [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/calc/mod.rs:206:9 [INFO] [stderr] | [INFO] [stderr] 206 | assert_eq!(-10.0, calculate("min(5, -10, 2)".into())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/calc/mod.rs:206:9 [INFO] [stderr] | [INFO] [stderr] 206 | assert_eq!(-10.0, calculate("min(5, -10, 2)".into())); [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/calc/mod.rs:210:9 [INFO] [stderr] | [INFO] [stderr] 210 | assert_eq!(-10.0, calculate("-5*2".into())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/calc/mod.rs:210:9 [INFO] [stderr] | [INFO] [stderr] 210 | assert_eq!(-10.0, calculate("-5*2".into())); [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 54 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `kilac`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "015d444ade5fb3084b7e6f24ee0262065c39844cfebab9fa5de4eed9b0c15176"` [INFO] running `"docker" "rm" "-f" "015d444ade5fb3084b7e6f24ee0262065c39844cfebab9fa5de4eed9b0c15176"` [INFO] [stdout] 015d444ade5fb3084b7e6f24ee0262065c39844cfebab9fa5de4eed9b0c15176