[INFO] crate tinyexpr 0.1.1 is already in cache [INFO] extracting crate tinyexpr 0.1.1 into work/ex/clippy-test-run/sources/stable/reg/tinyexpr/0.1.1 [INFO] extracting crate tinyexpr 0.1.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/tinyexpr/0.1.1 [INFO] validating manifest of tinyexpr-0.1.1 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 tinyexpr-0.1.1 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 tinyexpr-0.1.1 [INFO] finished frobbing tinyexpr-0.1.1 [INFO] frobbed toml for tinyexpr-0.1.1 written to work/ex/clippy-test-run/sources/stable/reg/tinyexpr/0.1.1/Cargo.toml [INFO] started frobbing tinyexpr-0.1.1 [INFO] finished frobbing tinyexpr-0.1.1 [INFO] frobbed toml for tinyexpr-0.1.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/tinyexpr/0.1.1/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 tinyexpr-0.1.1 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/tinyexpr/0.1.1:/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] 6d20a2d618829133853e76ec3968bf0fd8cf254c14f5b49ae12c41e78d1a56c5 [INFO] running `"docker" "start" "-a" "6d20a2d618829133853e76ec3968bf0fd8cf254c14f5b49ae12c41e78d1a56c5"` [INFO] [stderr] Checking tinyexpr v0.1.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:179:13 [INFO] [stderr] | [INFO] [stderr] 179 | v_type: v_type, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `v_type` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:179:13 [INFO] [stderr] | [INFO] [stderr] 179 | v_type: v_type, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `v_type` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:61:30 [INFO] [stderr] | [INFO] [stderr] 61 | const T_MASK = 0x0000001F [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_001F` [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: unused macro definition [INFO] [stderr] --> src/lib.rs:69:1 [INFO] [stderr] | [INFO] [stderr] 69 | / macro_rules! is_pure { [INFO] [stderr] 70 | | ($x:expr) => (($x & TE_FLAG_PURE).bits() != 0) [INFO] [stderr] 71 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_macros)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/lib.rs:73:1 [INFO] [stderr] | [INFO] [stderr] 73 | / macro_rules! is_function { [INFO] [stderr] 74 | | ($x:expr) => (($x & TE_FUNCTION0).bits() != 0) [INFO] [stderr] 75 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/lib.rs:77:1 [INFO] [stderr] | [INFO] [stderr] 77 | / macro_rules! is_closure { [INFO] [stderr] 78 | | ($x:expr) => (($x & TE_CLOSURE0).bits() != 0) [INFO] [stderr] 79 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/lib.rs:86:20 [INFO] [stderr] | [INFO] [stderr] 86 | const FUNCTIONS: [&'static str; 21] = ["abs", "acos", "asin", "atan", "atan2", "ceil", "cos", [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:82:83 [INFO] [stderr] | [INFO] [stderr] 82 | ($x:expr) => (if($x & (TE_FUNCTION0 | TE_CLOSURE0)).bits() != 0 { $x.bits() & 0x00000007 } else { 0 }) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0007` [INFO] [stderr] ... [INFO] [stderr] 226 | let arity = arity!(e_type); [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#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:82:83 [INFO] [stderr] | [INFO] [stderr] 82 | ($x:expr) => (if($x & (TE_FUNCTION0 | TE_CLOSURE0)).bits() != 0 { $x.bits() & 0x00000007 } else { 0 }) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0007` [INFO] [stderr] ... [INFO] [stderr] 386 | let arity = arity!(s.s_type); [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#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:82:83 [INFO] [stderr] | [INFO] [stderr] 82 | ($x:expr) => (if($x & (TE_FUNCTION0 | TE_CLOSURE0)).bits() != 0 { $x.bits() & 0x00000007 } else { 0 }) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0007` [INFO] [stderr] ... [INFO] [stderr] 512 | let arity = arity!(n.e_type); [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#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:82:83 [INFO] [stderr] | [INFO] [stderr] 82 | ($x:expr) => (if($x & (TE_FUNCTION0 | TE_CLOSURE0)).bits() != 0 { $x.bits() & 0x00000007 } else { 0 }) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0007` [INFO] [stderr] ... [INFO] [stderr] 531 | arity!(s.s_type); [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#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:82:83 [INFO] [stderr] | [INFO] [stderr] 82 | ($x:expr) => (if($x & (TE_FUNCTION0 | TE_CLOSURE0)).bits() != 0 { $x.bits() & 0x00000007 } else { 0 }) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0007` [INFO] [stderr] ... [INFO] [stderr] 568 | match arity!(n.e_type) { [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#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:82:83 [INFO] [stderr] | [INFO] [stderr] 82 | ($x:expr) => (if($x & (TE_FUNCTION0 | TE_CLOSURE0)).bits() != 0 { $x.bits() & 0x00000007 } else { 0 }) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0007` [INFO] [stderr] ... [INFO] [stderr] 573 | _ => panic!("todo: add more f. pointers (type is {})", arity!(n.e_type)) [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#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:61:30 [INFO] [stderr] | [INFO] [stderr] 61 | const T_MASK = 0x0000001F [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_001F` [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: unused macro definition [INFO] [stderr] --> src/lib.rs:69:1 [INFO] [stderr] | [INFO] [stderr] 69 | / macro_rules! is_pure { [INFO] [stderr] 70 | | ($x:expr) => (($x & TE_FLAG_PURE).bits() != 0) [INFO] [stderr] 71 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_macros)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/lib.rs:73:1 [INFO] [stderr] | [INFO] [stderr] 73 | / macro_rules! is_function { [INFO] [stderr] 74 | | ($x:expr) => (($x & TE_FUNCTION0).bits() != 0) [INFO] [stderr] 75 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/lib.rs:77:1 [INFO] [stderr] | [INFO] [stderr] 77 | / macro_rules! is_closure { [INFO] [stderr] 78 | | ($x:expr) => (($x & TE_CLOSURE0).bits() != 0) [INFO] [stderr] 79 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/lib.rs:86:20 [INFO] [stderr] | [INFO] [stderr] 86 | const FUNCTIONS: [&'static str; 21] = ["abs", "acos", "asin", "atan", "atan2", "ceil", "cos", [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:82:83 [INFO] [stderr] | [INFO] [stderr] 82 | ($x:expr) => (if($x & (TE_FUNCTION0 | TE_CLOSURE0)).bits() != 0 { $x.bits() & 0x00000007 } else { 0 }) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0007` [INFO] [stderr] ... [INFO] [stderr] 226 | let arity = arity!(e_type); [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#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:82:83 [INFO] [stderr] | [INFO] [stderr] 82 | ($x:expr) => (if($x & (TE_FUNCTION0 | TE_CLOSURE0)).bits() != 0 { $x.bits() & 0x00000007 } else { 0 }) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0007` [INFO] [stderr] ... [INFO] [stderr] 386 | let arity = arity!(s.s_type); [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#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:82:83 [INFO] [stderr] | [INFO] [stderr] 82 | ($x:expr) => (if($x & (TE_FUNCTION0 | TE_CLOSURE0)).bits() != 0 { $x.bits() & 0x00000007 } else { 0 }) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0007` [INFO] [stderr] ... [INFO] [stderr] 512 | let arity = arity!(n.e_type); [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#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:82:83 [INFO] [stderr] | [INFO] [stderr] 82 | ($x:expr) => (if($x & (TE_FUNCTION0 | TE_CLOSURE0)).bits() != 0 { $x.bits() & 0x00000007 } else { 0 }) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0007` [INFO] [stderr] ... [INFO] [stderr] 531 | arity!(s.s_type); [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#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:82:83 [INFO] [stderr] | [INFO] [stderr] 82 | ($x:expr) => (if($x & (TE_FUNCTION0 | TE_CLOSURE0)).bits() != 0 { $x.bits() & 0x00000007 } else { 0 }) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0007` [INFO] [stderr] ... [INFO] [stderr] 568 | match arity!(n.e_type) { [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#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:82:83 [INFO] [stderr] | [INFO] [stderr] 82 | ($x:expr) => (if($x & (TE_FUNCTION0 | TE_CLOSURE0)).bits() != 0 { $x.bits() & 0x00000007 } else { 0 }) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0007` [INFO] [stderr] ... [INFO] [stderr] 573 | _ => panic!("todo: add more f. pointers (type is {})", arity!(n.e_type)) [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#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused variable: `arity` [INFO] [stderr] --> src/lib.rs:226:9 [INFO] [stderr] | [INFO] [stderr] 226 | let arity = arity!(e_type); [INFO] [stderr] | ^^^^^ help: consider using `_arity` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/lib.rs:397:21 [INFO] [stderr] | [INFO] [stderr] 397 | for i in 0..arity { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/lib.rs:514:13 [INFO] [stderr] | [INFO] [stderr] 514 | for i in 0..arity { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:511:13 [INFO] [stderr] | [INFO] [stderr] 511 | let mut known = 1; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `arity` [INFO] [stderr] --> src/lib.rs:226:9 [INFO] [stderr] | [INFO] [stderr] 226 | let arity = arity!(e_type); [INFO] [stderr] | ^^^^^ help: consider using `_arity` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/lib.rs:397:21 [INFO] [stderr] | [INFO] [stderr] 397 | for i in 0..arity { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/lib.rs:514:13 [INFO] [stderr] | [INFO] [stderr] 514 | for i in 0..arity { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/lib.rs:89:23 [INFO] [stderr] | [INFO] [stderr] 89 | const FUNCTION_TYPES: [(fn(f64, f64) -> f64, ExprType); 21] = [ (abs, TE_FUNCTION1), (acos, TE_FUNCTION1), (asin, TE_FUNCTION1), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/lib.rs:298:24 [INFO] [stderr] | [INFO] [stderr] 298 | if let None = var { [INFO] [stderr] | _________________- ^^^^ [INFO] [stderr] 299 | | var = find_builtin(&txt_str); [INFO] [stderr] 300 | | } [INFO] [stderr] | |_________________- help: try this: `if var.is_none()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:511:13 [INFO] [stderr] | [INFO] [stderr] 511 | let mut known = 1; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: casting i8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:565:24 [INFO] [stderr] | [INFO] [stderr] 565 | TE_VARIABLE => n.bound as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(n.bound)` [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/lib.rs:89:23 [INFO] [stderr] | [INFO] [stderr] 89 | const FUNCTION_TYPES: [(fn(f64, f64) -> f64, ExprType); 21] = [ (abs, TE_FUNCTION1), (acos, TE_FUNCTION1), (asin, TE_FUNCTION1), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/lib.rs:298:24 [INFO] [stderr] | [INFO] [stderr] 298 | if let None = var { [INFO] [stderr] | _________________- ^^^^ [INFO] [stderr] 299 | | var = find_builtin(&txt_str); [INFO] [stderr] 300 | | } [INFO] [stderr] | |_________________- help: try this: `if var.is_none()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: casting i8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:565:24 [INFO] [stderr] | [INFO] [stderr] 565 | TE_VARIABLE => n.bound as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(n.bound)` [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: long literal lacking separators [INFO] [stderr] --> tests/lib.rs:24:49 [INFO] [stderr] | [INFO] [stderr] 24 | assert_eq!(tinyexpr::interp("pi").unwrap(), 3.141592653589793); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider: `3.141_592_653_589_793` [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] --> tests/lib.rs:25:48 [INFO] [stderr] | [INFO] [stderr] 25 | assert_eq!(tinyexpr::interp("e").unwrap(), 2.718281828459045); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider: `2.718_281_828_459_045` [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] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/lib.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | assert_eq!(tinyexpr::interp("2*2").unwrap(), 4.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] --> tests/lib.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | assert_eq!(tinyexpr::interp("2*2").unwrap(), 4.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] --> tests/lib.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | assert_eq!(tinyexpr::interp("2+2").unwrap(), 4.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/lib.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | assert_eq!(tinyexpr::interp("2+2").unwrap(), 4.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] --> tests/lib.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | assert_eq!(tinyexpr::interp("3-2").unwrap(), 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/lib.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | assert_eq!(tinyexpr::interp("3-2").unwrap(), 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] --> tests/lib.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | assert_eq!(tinyexpr::interp("5%2").unwrap(), 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/lib.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | assert_eq!(tinyexpr::interp("5%2").unwrap(), 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] --> tests/lib.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | assert_eq!(tinyexpr::interp("5^2").unwrap(), 25.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/lib.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | assert_eq!(tinyexpr::interp("5^2").unwrap(), 25.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] --> tests/lib.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | assert_eq!(tinyexpr::interp("2+2*2").unwrap(), 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/lib.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | assert_eq!(tinyexpr::interp("2+2*2").unwrap(), 6.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] --> tests/lib.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | assert_eq!(tinyexpr::interp("(2+2)*2").unwrap(), 8.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/lib.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | assert_eq!(tinyexpr::interp("(2+2)*2").unwrap(), 8.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] --> tests/lib.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | assert_eq!(tinyexpr::interp("(2+2)*2/2").unwrap(), 4.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/lib.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | assert_eq!(tinyexpr::interp("(2+2)*2/2").unwrap(), 4.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] --> tests/lib.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | assert_eq!(tinyexpr::interp("abs(-1)").unwrap(), 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/lib.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | assert_eq!(tinyexpr::interp("abs(-1)").unwrap(), 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] --> tests/lib.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | assert_eq!(tinyexpr::interp("sqrt(728*728)").unwrap(), 728.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/lib.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | assert_eq!(tinyexpr::interp("sqrt(728*728)").unwrap(), 728.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] --> tests/lib.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | assert_eq!(tinyexpr::interp("pow(2.0, 3.0)").unwrap(), 8.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/lib.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | assert_eq!(tinyexpr::interp("pow(2.0, 3.0)").unwrap(), 8.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] --> tests/lib.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | assert_eq!(tinyexpr::interp("exp(1)").unwrap(), tinyexpr::interp("e").unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/lib.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | assert_eq!(tinyexpr::interp("exp(1)").unwrap(), tinyexpr::interp("e").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/lib.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | assert_eq!(tinyexpr::interp("floor(3.1415)").unwrap(), 3.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/lib.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | assert_eq!(tinyexpr::interp("floor(3.1415)").unwrap(), 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] --> tests/lib.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | assert_eq!(tinyexpr::interp("ceil(3.1415)*floor(3.1415)").unwrap(), 12.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/lib.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | assert_eq!(tinyexpr::interp("ceil(3.1415)*floor(3.1415)").unwrap(), 12.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] --> tests/lib.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | assert_eq!(tinyexpr::interp("5,2").unwrap(), 2.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/lib.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | assert_eq!(tinyexpr::interp("5,2").unwrap(), 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: approximate value of `f{32, 64}::consts::PI` found. Consider using it directly [INFO] [stderr] --> tests/lib.rs:24:49 [INFO] [stderr] | [INFO] [stderr] 24 | assert_eq!(tinyexpr::interp("pi").unwrap(), 3.141592653589793); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::approx_constant)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#approx_constant [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/lib.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | assert_eq!(tinyexpr::interp("pi").unwrap(), 3.141592653589793); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/lib.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | assert_eq!(tinyexpr::interp("pi").unwrap(), 3.141592653589793); [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: approximate value of `f{32, 64}::consts::E` found. Consider using it directly [INFO] [stderr] --> tests/lib.rs:25:48 [INFO] [stderr] | [INFO] [stderr] 25 | assert_eq!(tinyexpr::interp("e").unwrap(), 2.718281828459045); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#approx_constant [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/lib.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | assert_eq!(tinyexpr::interp("e").unwrap(), 2.718281828459045); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/lib.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | assert_eq!(tinyexpr::interp("e").unwrap(), 2.718281828459045); [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/lib.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | assert_eq!(tinyexpr::interp("ln(e)").unwrap(), 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/lib.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | assert_eq!(tinyexpr::interp("ln(e)").unwrap(), 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] --> tests/lib.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | assert_eq!(tinyexpr::interp("log(10)").unwrap(), 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/lib.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | assert_eq!(tinyexpr::interp("log(10)").unwrap(), 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] --> tests/lib.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | assert_eq!(tinyexpr::interp("log10(10)").unwrap(), 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/lib.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | assert_eq!(tinyexpr::interp("log10(10)").unwrap(), 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] --> tests/lib.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | assert_eq!(tinyexpr::interp("2*1/sin(3.14/2)").unwrap().round(), 2.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/lib.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | assert_eq!(tinyexpr::interp("2*1/sin(3.14/2)").unwrap().round(), 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] --> tests/lib.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | assert_eq!(tinyexpr::interp("asin(1)").unwrap(), tinyexpr::interp("pi/2").unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/lib.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | assert_eq!(tinyexpr::interp("asin(1)").unwrap(), tinyexpr::interp("pi/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/lib.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | assert_eq!(tinyexpr::interp("tan(pi)").unwrap().round(), 0.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/lib.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | assert_eq!(tinyexpr::interp("tan(pi)").unwrap().round(), 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] --> tests/lib.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | assert_eq!(tinyexpr::interp("atan(pi/2)").unwrap().round(), 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/lib.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | assert_eq!(tinyexpr::interp("atan(pi/2)").unwrap().round(), 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] --> tests/lib.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | assert_eq!(tinyexpr::interp("atan2(pi, 2)").unwrap().round(), 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/lib.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | assert_eq!(tinyexpr::interp("atan2(pi, 2)").unwrap().round(), 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] --> tests/lib.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | assert_eq!(tinyexpr::interp("cos(0)").unwrap().round(), 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/lib.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | assert_eq!(tinyexpr::interp("cos(0)").unwrap().round(), 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] --> tests/lib.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | assert_eq!(tinyexpr::interp("acos(1)").unwrap(), 0.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/lib.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | assert_eq!(tinyexpr::interp("acos(1)").unwrap(), 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] --> tests/lib.rs:49:5 [INFO] [stderr] | [INFO] [stderr] 49 | assert_eq!(tinyexpr::interp("sinh(0)").unwrap(), 0.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/lib.rs:49:5 [INFO] [stderr] | [INFO] [stderr] 49 | assert_eq!(tinyexpr::interp("sinh(0)").unwrap(), 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] --> tests/lib.rs:50:5 [INFO] [stderr] | [INFO] [stderr] 50 | assert_eq!(tinyexpr::interp("cosh(0)").unwrap(), 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/lib.rs:50:5 [INFO] [stderr] | [INFO] [stderr] 50 | assert_eq!(tinyexpr::interp("cosh(0)").unwrap(), 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] --> tests/lib.rs:51:5 [INFO] [stderr] | [INFO] [stderr] 51 | assert_eq!(tinyexpr::interp("tanh(10000)").unwrap(), 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/lib.rs:51:5 [INFO] [stderr] | [INFO] [stderr] 51 | assert_eq!(tinyexpr::interp("tanh(10000)").unwrap(), 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: aborting due to 32 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `tinyexpr`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "6d20a2d618829133853e76ec3968bf0fd8cf254c14f5b49ae12c41e78d1a56c5"` [INFO] running `"docker" "rm" "-f" "6d20a2d618829133853e76ec3968bf0fd8cf254c14f5b49ae12c41e78d1a56c5"` [INFO] [stdout] 6d20a2d618829133853e76ec3968bf0fd8cf254c14f5b49ae12c41e78d1a56c5