[INFO] updating cached repository yytian/bignum [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/yytian/bignum [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/yytian/bignum" "work/ex/clippy-test-run/sources/stable/gh/yytian/bignum"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/yytian/bignum'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/yytian/bignum" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/yytian/bignum"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/yytian/bignum'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 37c385fe34cf457179194f70f21eaf3fcb5da381 [INFO] sha for GitHub repo yytian/bignum: 37c385fe34cf457179194f70f21eaf3fcb5da381 [INFO] validating manifest of yytian/bignum 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 yytian/bignum 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 yytian/bignum [INFO] finished frobbing yytian/bignum [INFO] frobbed toml for yytian/bignum written to work/ex/clippy-test-run/sources/stable/gh/yytian/bignum/Cargo.toml [INFO] started frobbing yytian/bignum [INFO] finished frobbing yytian/bignum [INFO] frobbed toml for yytian/bignum written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/yytian/bignum/Cargo.toml [INFO] crate yytian/bignum has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting yytian/bignum against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/yytian/bignum:/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] bf450e1a3d3882d908c2554d07adaf018ee8c4fb70a7ba6a6c1da38ed2d51165 [INFO] running `"docker" "start" "-a" "bf450e1a3d3882d908c2554d07adaf018ee8c4fb70a7ba6a6c1da38ed2d51165"` [INFO] [stderr] Checking libc v0.2.16 [INFO] [stderr] Checking thread-id v2.0.0 [INFO] [stderr] Checking memchr v0.1.11 [INFO] [stderr] Checking rand v0.3.14 [INFO] [stderr] Checking num_cpus v1.1.0 [INFO] [stderr] Checking thread_local v0.2.7 [INFO] [stderr] Checking aho-corasick v0.5.3 [INFO] [stderr] Checking regex v0.1.80 [INFO] [stderr] Checking deque v0.3.1 [INFO] [stderr] Checking rayon v0.5.0 [INFO] [stderr] Checking env_logger v0.3.5 [INFO] [stderr] Checking quickcheck v0.4.1 [INFO] [stderr] Checking bignum v0.4.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/types.rs:150:13 [INFO] [stderr] | [INFO] [stderr] 150 | parts: parts, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `parts` [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/types.rs:156:13 [INFO] [stderr] | [INFO] [stderr] 156 | parts: parts, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `parts` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/basic_ops.rs:99:9 [INFO] [stderr] | [INFO] [stderr] 99 | sign: sign, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `sign` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/karatsuba.rs:20:9 [INFO] [stderr] | [INFO] [stderr] 20 | sign: sign, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `sign` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/karatsuba.rs:45:9 [INFO] [stderr] | [INFO] [stderr] 45 | let m = divide_round_up(cmp::max(p, q), 2); [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: 6th binding whose name is just one char [INFO] [stderr] --> src/karatsuba.rs:50:13 [INFO] [stderr] | [INFO] [stderr] 50 | let mut c; [INFO] [stderr] | ^ [INFO] [stderr] | [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: 7th binding whose name is just one char [INFO] [stderr] --> src/karatsuba.rs:51:9 [INFO] [stderr] | [INFO] [stderr] 51 | let d; [INFO] [stderr] | ^ [INFO] [stderr] | [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: 8th binding whose name is just one char [INFO] [stderr] --> src/karatsuba.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 52 | let mut e; [INFO] [stderr] | ^ [INFO] [stderr] | [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/karatsuba.rs:91:9 [INFO] [stderr] | [INFO] [stderr] 91 | let m = divide_round_up(cmp::max(p, q), 2); [INFO] [stderr] | ^ [INFO] [stderr] | [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: 6th binding whose name is just one char [INFO] [stderr] --> src/karatsuba.rs:96:13 [INFO] [stderr] | [INFO] [stderr] 96 | let mut c; [INFO] [stderr] | ^ [INFO] [stderr] | [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: 7th binding whose name is just one char [INFO] [stderr] --> src/karatsuba.rs:97:9 [INFO] [stderr] | [INFO] [stderr] 97 | let d; [INFO] [stderr] | ^ [INFO] [stderr] | [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: 8th binding whose name is just one char [INFO] [stderr] --> src/karatsuba.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | let mut e; [INFO] [stderr] | ^ [INFO] [stderr] | [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: long literal lacking separators [INFO] [stderr] --> src/types.rs:23:23 [INFO] [stderr] | [INFO] [stderr] 23 | pub const BASE: u32 = 2000000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `2_000_000_000` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/types.rs:24:22 [INFO] [stderr] | [INFO] [stderr] 24 | pub const BASE_STR: &'static str = "2000000000"; [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: unneeded return statement [INFO] [stderr] --> src/basic_ops.rs:15:9 [INFO] [stderr] | [INFO] [stderr] 15 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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: an inclusive range would be more readable [INFO] [stderr] --> src/types.rs:65:14 [INFO] [stderr] | [INFO] [stderr] 65 | for i in 1..max+1 { [INFO] [stderr] | ^^^^^^^^ help: use: `1..=max` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/types.rs:76:27 [INFO] [stderr] | [INFO] [stderr] 76 | let result: u64 = (l_digit + r_digit + carry) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(l_digit + r_digit + carry)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/types.rs:107:14 [INFO] [stderr] | [INFO] [stderr] 107 | for i in 1..min+1 { [INFO] [stderr] | ^^^^^^^^ help: use: `1..=min` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/types.rs:110:18 [INFO] [stderr] | [INFO] [stderr] 110 | for j in 1..max+1 { [INFO] [stderr] | ^^^^^^^^ help: use: `1..=max` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/types.rs:121:31 [INFO] [stderr] | [INFO] [stderr] 121 | let result: u64 = (top_digit * bot_digit + carry) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(top_digit * bot_digit + carry)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/types.rs:128:13 [INFO] [stderr] | [INFO] [stderr] 128 | carry = carry / 10; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `carry /= 10` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/types.rs:148:35 [INFO] [stderr] | [INFO] [stderr] 148 | else if input_str.starts_with("-") { [INFO] [stderr] | ^^^ help: try using a char instead: `'-'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/types.rs:175:34 [INFO] [stderr] | [INFO] [stderr] 175 | carry = carry * 10 + digit as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(digit)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/types.rs:178:46 [INFO] [stderr] | [INFO] [stderr] 178 | next.push(digit_to_char((carry / BASE as u64) as u32)); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(BASE)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/types.rs:179:13 [INFO] [stderr] | [INFO] [stderr] 179 | carry = carry % BASE as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `carry %= BASE as u64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/types.rs:179:29 [INFO] [stderr] | [INFO] [stderr] 179 | carry = carry % BASE as u64; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(BASE)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/basic_ops.rs:190:31 [INFO] [stderr] | [INFO] [stderr] 190 | let result: u64 = product.parts[a_i + b_i] as u64 + a.parts[a_i] as u64 * b.parts[b_i] as u64 + carry; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(product.parts[a_i + b_i])` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/basic_ops.rs:190:65 [INFO] [stderr] | [INFO] [stderr] 190 | let result: u64 = product.parts[a_i + b_i] as u64 + a.parts[a_i] as u64 * b.parts[b_i] as u64 + carry; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(a.parts[a_i])` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/basic_ops.rs:190:87 [INFO] [stderr] | [INFO] [stderr] 190 | let result: u64 = product.parts[a_i + b_i] as u64 + a.parts[a_i] as u64 * b.parts[b_i] as u64 + carry; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(b.parts[b_i])` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/basic_ops.rs:191:30 [INFO] [stderr] | [INFO] [stderr] 191 | carry = result / BASE as u64; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(BASE)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/basic_ops.rs:192:50 [INFO] [stderr] | [INFO] [stderr] 192 | product.parts[a_i + b_i] = (result % BASE as u64) as u32; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(BASE)` [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: redundant field names in struct initialization [INFO] [stderr] --> tests/integration_test.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | parts: parts, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `parts` [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/types.rs:150:13 [INFO] [stderr] | [INFO] [stderr] 150 | parts: parts, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `parts` [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/types.rs:156:13 [INFO] [stderr] | [INFO] [stderr] 156 | parts: parts, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `parts` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/basic_ops.rs:99:9 [INFO] [stderr] | [INFO] [stderr] 99 | sign: sign, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `sign` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/karatsuba.rs:20:9 [INFO] [stderr] | [INFO] [stderr] 20 | sign: sign, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `sign` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/karatsuba.rs:45:9 [INFO] [stderr] | [INFO] [stderr] 45 | let m = divide_round_up(cmp::max(p, q), 2); [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: 6th binding whose name is just one char [INFO] [stderr] --> src/karatsuba.rs:50:13 [INFO] [stderr] | [INFO] [stderr] 50 | let mut c; [INFO] [stderr] | ^ [INFO] [stderr] | [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: 7th binding whose name is just one char [INFO] [stderr] --> src/karatsuba.rs:51:9 [INFO] [stderr] | [INFO] [stderr] 51 | let d; [INFO] [stderr] | ^ [INFO] [stderr] | [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: 8th binding whose name is just one char [INFO] [stderr] --> src/karatsuba.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 52 | let mut e; [INFO] [stderr] | ^ [INFO] [stderr] | [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/karatsuba.rs:91:9 [INFO] [stderr] | [INFO] [stderr] 91 | let m = divide_round_up(cmp::max(p, q), 2); [INFO] [stderr] | ^ [INFO] [stderr] | [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: 6th binding whose name is just one char [INFO] [stderr] --> src/karatsuba.rs:96:13 [INFO] [stderr] | [INFO] [stderr] 96 | let mut c; [INFO] [stderr] | ^ [INFO] [stderr] | [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: 7th binding whose name is just one char [INFO] [stderr] --> src/karatsuba.rs:97:9 [INFO] [stderr] | [INFO] [stderr] 97 | let d; [INFO] [stderr] | ^ [INFO] [stderr] | [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: 8th binding whose name is just one char [INFO] [stderr] --> src/karatsuba.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | let mut e; [INFO] [stderr] | ^ [INFO] [stderr] | [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: #[test] attribute should not be used on macros. Use #[cfg(test)] instead. [INFO] [stderr] --> tests/quickcheck.rs:34:1 [INFO] [stderr] | [INFO] [stderr] 34 | / quickcheck! { [INFO] [stderr] 35 | | fn long_mult_same_as_karatsuba( [INFO] [stderr] 36 | | parts1: Vec, [INFO] [stderr] 37 | | parts2: Vec, [INFO] [stderr] ... | [INFO] [stderr] 54 | | } [INFO] [stderr] 55 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] error[E0554]: #![feature] may not be used on the stable release channel [INFO] [stderr] --> benches/nines.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | #![feature(test)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0554`. [INFO] [stderr] error: Could not compile `bignum`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/types.rs:23:23 [INFO] [stderr] | [INFO] [stderr] 23 | pub const BASE: u32 = 2000000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `2_000_000_000` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/types.rs:24:22 [INFO] [stderr] | [INFO] [stderr] 24 | pub const BASE_STR: &'static str = "2000000000"; [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: unneeded return statement [INFO] [stderr] --> src/basic_ops.rs:15:9 [INFO] [stderr] | [INFO] [stderr] 15 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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: an inclusive range would be more readable [INFO] [stderr] --> src/types.rs:65:14 [INFO] [stderr] | [INFO] [stderr] 65 | for i in 1..max+1 { [INFO] [stderr] | ^^^^^^^^ help: use: `1..=max` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/types.rs:76:27 [INFO] [stderr] | [INFO] [stderr] 76 | let result: u64 = (l_digit + r_digit + carry) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(l_digit + r_digit + carry)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/types.rs:107:14 [INFO] [stderr] | [INFO] [stderr] 107 | for i in 1..min+1 { [INFO] [stderr] | ^^^^^^^^ help: use: `1..=min` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/types.rs:110:18 [INFO] [stderr] | [INFO] [stderr] 110 | for j in 1..max+1 { [INFO] [stderr] | ^^^^^^^^ help: use: `1..=max` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/types.rs:121:31 [INFO] [stderr] | [INFO] [stderr] 121 | let result: u64 = (top_digit * bot_digit + carry) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(top_digit * bot_digit + carry)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/types.rs:128:13 [INFO] [stderr] | [INFO] [stderr] 128 | carry = carry / 10; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `carry /= 10` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/types.rs:148:35 [INFO] [stderr] | [INFO] [stderr] 148 | else if input_str.starts_with("-") { [INFO] [stderr] | ^^^ help: try using a char instead: `'-'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/types.rs:175:34 [INFO] [stderr] | [INFO] [stderr] 175 | carry = carry * 10 + digit as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(digit)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/types.rs:178:46 [INFO] [stderr] | [INFO] [stderr] 178 | next.push(digit_to_char((carry / BASE as u64) as u32)); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(BASE)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/types.rs:179:13 [INFO] [stderr] | [INFO] [stderr] 179 | carry = carry % BASE as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `carry %= BASE as u64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/types.rs:179:29 [INFO] [stderr] | [INFO] [stderr] 179 | carry = carry % BASE as u64; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(BASE)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/basic_ops.rs:190:31 [INFO] [stderr] | [INFO] [stderr] 190 | let result: u64 = product.parts[a_i + b_i] as u64 + a.parts[a_i] as u64 * b.parts[b_i] as u64 + carry; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(product.parts[a_i + b_i])` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/basic_ops.rs:190:65 [INFO] [stderr] | [INFO] [stderr] 190 | let result: u64 = product.parts[a_i + b_i] as u64 + a.parts[a_i] as u64 * b.parts[b_i] as u64 + carry; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(a.parts[a_i])` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/basic_ops.rs:190:87 [INFO] [stderr] | [INFO] [stderr] 190 | let result: u64 = product.parts[a_i + b_i] as u64 + a.parts[a_i] as u64 * b.parts[b_i] as u64 + carry; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(b.parts[b_i])` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/basic_ops.rs:191:30 [INFO] [stderr] | [INFO] [stderr] 191 | carry = result / BASE as u64; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(BASE)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/basic_ops.rs:192:50 [INFO] [stderr] | [INFO] [stderr] 192 | product.parts[a_i + b_i] = (result % BASE as u64) as u32; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(BASE)` [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] error: build failed [INFO] running `"docker" "inspect" "bf450e1a3d3882d908c2554d07adaf018ee8c4fb70a7ba6a6c1da38ed2d51165"` [INFO] running `"docker" "rm" "-f" "bf450e1a3d3882d908c2554d07adaf018ee8c4fb70a7ba6a6c1da38ed2d51165"` [INFO] [stdout] bf450e1a3d3882d908c2554d07adaf018ee8c4fb70a7ba6a6c1da38ed2d51165