[INFO] crate valid_toml 0.0.2 is already in cache [INFO] extracting crate valid_toml 0.0.2 into work/ex/clippy-test-run/sources/stable/reg/valid_toml/0.0.2 [INFO] extracting crate valid_toml 0.0.2 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/valid_toml/0.0.2 [INFO] validating manifest of valid_toml-0.0.2 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 valid_toml-0.0.2 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 valid_toml-0.0.2 [INFO] finished frobbing valid_toml-0.0.2 [INFO] frobbed toml for valid_toml-0.0.2 written to work/ex/clippy-test-run/sources/stable/reg/valid_toml/0.0.2/Cargo.toml [INFO] started frobbing valid_toml-0.0.2 [INFO] finished frobbing valid_toml-0.0.2 [INFO] frobbed toml for valid_toml-0.0.2 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/valid_toml/0.0.2/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 valid_toml-0.0.2 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/valid_toml/0.0.2:/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] dcd78128541d92012d4180724c92e10ab7950f2e0409ef4845b0165fa99bf886 [INFO] running `"docker" "start" "-a" "dcd78128541d92012d4180724c92e10ab7950f2e0409ef4845b0165fa99bf886"` [INFO] [stderr] Checking shareable v0.1.1 [INFO] [stderr] Checking toml v0.1.30 [INFO] [stderr] Checking valid_toml v0.0.2 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/toml_data.rs:39:13 [INFO] [stderr] | [INFO] [stderr] 39 | warnings : warnings, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `warnings` [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/toml_data.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | data : data [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `data` [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/toml_data.rs:39:13 [INFO] [stderr] | [INFO] [stderr] 39 | warnings : warnings, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `warnings` [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/toml_data.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | data : data [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `data` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/test_macros.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | / macro_rules! assert_duration { [INFO] [stderr] 14 | | ($result:expr, $val:expr) => {{ [INFO] [stderr] 15 | | let result = $result; [INFO] [stderr] 16 | | [INFO] [stderr] ... | [INFO] [stderr] 44 | | }; [INFO] [stderr] 45 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_macros)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/test_macros.rs:47:1 [INFO] [stderr] | [INFO] [stderr] 47 | / macro_rules! assert_i64 { [INFO] [stderr] 48 | | ($result:expr, $val:expr) => {{ [INFO] [stderr] 49 | | let result = $result; [INFO] [stderr] 50 | | [INFO] [stderr] ... | [INFO] [stderr] 62 | | }}; [INFO] [stderr] 63 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/test_macros.rs:65:1 [INFO] [stderr] | [INFO] [stderr] 65 | / macro_rules! assert_string { [INFO] [stderr] 66 | | ($result:expr, $val:expr) => {{ [INFO] [stderr] 67 | | let result = $result; [INFO] [stderr] 68 | | [INFO] [stderr] ... | [INFO] [stderr] 80 | | }}; [INFO] [stderr] 81 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/test_macros.rs:83:1 [INFO] [stderr] | [INFO] [stderr] 83 | / macro_rules! assert_u16 { [INFO] [stderr] 84 | | ($result:expr, $val:expr) => {{ [INFO] [stderr] 85 | | let result = $result; [INFO] [stderr] 86 | | [INFO] [stderr] ... | [INFO] [stderr] 98 | | }}; [INFO] [stderr] 99 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/test_macros.rs:101:1 [INFO] [stderr] | [INFO] [stderr] 101 | / macro_rules! assert_usize { [INFO] [stderr] 102 | | ($result:expr, $val:expr) => {{ [INFO] [stderr] 103 | | let result = $result; [INFO] [stderr] 104 | | [INFO] [stderr] ... | [INFO] [stderr] 116 | | }}; [INFO] [stderr] 117 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/test_macros.rs:122:1 [INFO] [stderr] | [INFO] [stderr] 122 | / macro_rules! assert_cannot_parse { [INFO] [stderr] 123 | | ($result:expr) => {{ [INFO] [stderr] 124 | | let result = $result; [INFO] [stderr] 125 | | [INFO] [stderr] ... | [INFO] [stderr] 136 | | }} [INFO] [stderr] 137 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/test_macros.rs:140:1 [INFO] [stderr] | [INFO] [stderr] 140 | / macro_rules! assert_duration_overflow { [INFO] [stderr] 141 | | ($result:expr, $max:expr) => {{ [INFO] [stderr] 142 | | let result = $result; [INFO] [stderr] 143 | | [INFO] [stderr] ... | [INFO] [stderr] 177 | | }} [INFO] [stderr] 178 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/test_macros.rs:180:1 [INFO] [stderr] | [INFO] [stderr] 180 | / macro_rules! assert_duration_overflow { [INFO] [stderr] 181 | | ($result:expr, $max:expr) => {{ [INFO] [stderr] 182 | | let result = $result; [INFO] [stderr] 183 | | [INFO] [stderr] ... | [INFO] [stderr] 217 | | }} [INFO] [stderr] 218 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/test_macros.rs:220:1 [INFO] [stderr] | [INFO] [stderr] 220 | / macro_rules! assert_duration_underrun { [INFO] [stderr] 221 | | ($result:expr, $min:expr) => {{ [INFO] [stderr] 222 | | let result = $result; [INFO] [stderr] 223 | | [INFO] [stderr] ... | [INFO] [stderr] 257 | | }} [INFO] [stderr] 258 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/test_macros.rs:260:1 [INFO] [stderr] | [INFO] [stderr] 260 | / macro_rules! assert_incorrect_type { [INFO] [stderr] 261 | | ($result:expr) => {{ [INFO] [stderr] 262 | | let result = $result; [INFO] [stderr] 263 | | [INFO] [stderr] ... | [INFO] [stderr] 274 | | }} [INFO] [stderr] 275 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/test_macros.rs:277:1 [INFO] [stderr] | [INFO] [stderr] 277 | / macro_rules! assert_long { [INFO] [stderr] 278 | | ($result:expr, $max:expr) => {{ [INFO] [stderr] 279 | | let result = $result; [INFO] [stderr] 280 | | [INFO] [stderr] ... | [INFO] [stderr] 314 | | }} [INFO] [stderr] 315 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/test_macros.rs:317:1 [INFO] [stderr] | [INFO] [stderr] 317 | / macro_rules! assert_overflow { [INFO] [stderr] 318 | | ($result:expr, $max:expr) => {{ [INFO] [stderr] 319 | | let result = $result; [INFO] [stderr] 320 | | [INFO] [stderr] ... | [INFO] [stderr] 354 | | }} [INFO] [stderr] 355 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/test_macros.rs:357:1 [INFO] [stderr] | [INFO] [stderr] 357 | / macro_rules! assert_short { [INFO] [stderr] 358 | | ($result:expr, $min:expr) => {{ [INFO] [stderr] 359 | | let result = $result; [INFO] [stderr] 360 | | [INFO] [stderr] ... | [INFO] [stderr] 394 | | }} [INFO] [stderr] 395 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/test_macros.rs:397:1 [INFO] [stderr] | [INFO] [stderr] 397 | / macro_rules! assert_underrun { [INFO] [stderr] 398 | | ($result:expr, $min:expr) => {{ [INFO] [stderr] 399 | | let result = $result; [INFO] [stderr] 400 | | [INFO] [stderr] ... | [INFO] [stderr] 434 | | }} [INFO] [stderr] 435 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/data/duration_decoder.rs:89:16 [INFO] [stderr] | [INFO] [stderr] 89 | if self.negative == false [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.negative` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/data/duration_decoder.rs:121:21 [INFO] [stderr] | [INFO] [stderr] 121 | let digit = by.to_digit(10).unwrap() as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(by.to_digit(10).unwrap())` [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: equality checks against true are unnecessary [INFO] [stderr] --> src/data/duration_decoder.rs:157:17 [INFO] [stderr] | [INFO] [stderr] 157 | else if ch.is_digit(10) == true [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `ch.is_digit(10)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/data/duration_decoder.rs:180:12 [INFO] [stderr] | [INFO] [stderr] 180 | if ch.is_digit(10) == true [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `ch.is_digit(10)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/data/duration_decoder.rs:208:16 [INFO] [stderr] | [INFO] [stderr] 208 | if self.incorporate_current() == true [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `self.incorporate_current()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/data/duration_decoder.rs:269:16 [INFO] [stderr] | [INFO] [stderr] 269 | if self.process(ch) == false [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.process(ch)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/data/duration_decoder.rs:277:39 [INFO] [stderr] | [INFO] [stderr] 277 | if (self.current.is_some() || self.unit.len() > 0) && self.incorporate_current() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.unit.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/data/item_duration.rs:286:26 [INFO] [stderr] | [INFO] [stderr] 286 | self.default.map(|x|ItemValue::Duration(x)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `ItemValue::Duration` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_str.rs:173:49 [INFO] [stderr] | [INFO] [stderr] 173 | return ExtractResult::short(self.min.clone(), self.max.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.min` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_str.rs:173:67 [INFO] [stderr] | [INFO] [stderr] 173 | return ExtractResult::short(self.min.clone(), self.max.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.max` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_str.rs:183:48 [INFO] [stderr] | [INFO] [stderr] 183 | return ExtractResult::long(self.min.clone(), self.max.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.min` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_str.rs:183:66 [INFO] [stderr] | [INFO] [stderr] 183 | return ExtractResult::long(self.min.clone(), self.max.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.max` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/data/item_u16.rs:113:22 [INFO] [stderr] | [INFO] [stderr] 113 | if max < min as i64 [INFO] [stderr] | ^^^^^^^^^^ help: try: `i64::from(min)` [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 u16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/data/item_u16.rs:119:25 [INFO] [stderr] | [INFO] [stderr] 119 | self.min = Some(min as i64); [INFO] [stderr] | ^^^^^^^^^^ help: try: `i64::from(min)` [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 u16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/data/item_u16.rs:137:22 [INFO] [stderr] | [INFO] [stderr] 137 | if min > max as i64 [INFO] [stderr] | ^^^^^^^^^^ help: try: `i64::from(max)` [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 u16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/data/item_u16.rs:143:25 [INFO] [stderr] | [INFO] [stderr] 143 | self.max = Some(max as i64); [INFO] [stderr] | ^^^^^^^^^^ help: try: `i64::from(max)` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_u16.rs:199:52 [INFO] [stderr] | [INFO] [stderr] 199 | return ExtractResult::underrun(self.min.clone(), self.max.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.min` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_u16.rs:199:70 [INFO] [stderr] | [INFO] [stderr] 199 | return ExtractResult::underrun(self.min.clone(), self.max.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.max` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/data/item_u16.rs:202:29 [INFO] [stderr] | [INFO] [stderr] 202 | else if value < std::u16::MIN as i64 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(std::u16::MIN)` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_u16.rs:204:57 [INFO] [stderr] | [INFO] [stderr] 204 | return ExtractResult::underrun(Some(0), self.max.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.max` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_u16.rs:213:51 [INFO] [stderr] | [INFO] [stderr] 213 | return ExtractResult::overrun(self.min.clone(), self.max.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.min` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_u16.rs:213:69 [INFO] [stderr] | [INFO] [stderr] 213 | return ExtractResult::overrun(self.min.clone(), self.max.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.max` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/data/item_u16.rs:216:29 [INFO] [stderr] | [INFO] [stderr] 216 | else if value > std::u16::MAX as i64 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(std::u16::MAX)` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_u16.rs:218:47 [INFO] [stderr] | [INFO] [stderr] 218 | return ExtractResult::overrun(self.min.clone(), Some(std::u16::MAX as i64)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.min` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/data/item_u16.rs:218:70 [INFO] [stderr] | [INFO] [stderr] 218 | return ExtractResult::overrun(self.min.clone(), Some(std::u16::MAX as i64)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(std::u16::MAX)` [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 closure found [INFO] [stderr] --> src/data/item_u16.rs:244:26 [INFO] [stderr] | [INFO] [stderr] 244 | self.default.map(|x|ItemValue::U16(x)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `ItemValue::U16` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_usize.rs:223:52 [INFO] [stderr] | [INFO] [stderr] 223 | return ExtractResult::underrun(self.min.clone(), self.max.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.min` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_usize.rs:223:70 [INFO] [stderr] | [INFO] [stderr] 223 | return ExtractResult::underrun(self.min.clone(), self.max.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.max` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_usize.rs:228:57 [INFO] [stderr] | [INFO] [stderr] 228 | return ExtractResult::underrun(Some(0), self.max.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.max` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_usize.rs:237:51 [INFO] [stderr] | [INFO] [stderr] 237 | return ExtractResult::overrun(self.min.clone(), self.max.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.min` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_usize.rs:237:69 [INFO] [stderr] | [INFO] [stderr] 237 | return ExtractResult::overrun(self.min.clone(), self.max.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.max` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `value::i64_value::I64Value` [INFO] [stderr] --> src/value/i64_value.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | / pub fn new() -> I64Value [INFO] [stderr] 30 | | { [INFO] [stderr] 31 | | I64Value { [INFO] [stderr] 32 | | value : SharedI64::new(0) [INFO] [stderr] 33 | | } [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 25 | impl Default for value::i64_value::I64Value { [INFO] [stderr] 26 | fn default() -> Self { [INFO] [stderr] 27 | Self::new() [INFO] [stderr] 28 | } [INFO] [stderr] 29 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `value::string_value::StringValue` [INFO] [stderr] --> src/value/string_value.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | / pub fn new() -> StringValue [INFO] [stderr] 30 | | { [INFO] [stderr] 31 | | StringValue { [INFO] [stderr] 32 | | value : SharedObject::new(String::from("")) [INFO] [stderr] 33 | | } [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 25 | impl Default for value::string_value::StringValue { [INFO] [stderr] 26 | fn default() -> Self { [INFO] [stderr] 27 | Self::new() [INFO] [stderr] 28 | } [INFO] [stderr] 29 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `value::u16_value::U16Value` [INFO] [stderr] --> src/value/u16_value.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | / pub fn new() -> U16Value [INFO] [stderr] 30 | | { [INFO] [stderr] 31 | | U16Value { [INFO] [stderr] 32 | | value : SharedU16::new(0) [INFO] [stderr] 33 | | } [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 25 | impl Default for value::u16_value::U16Value { [INFO] [stderr] 26 | fn default() -> Self { [INFO] [stderr] 27 | Self::new() [INFO] [stderr] 28 | } [INFO] [stderr] 29 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `value::usize_value::UsizeValue` [INFO] [stderr] --> src/value/usize_value.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | / pub fn new() -> UsizeValue [INFO] [stderr] 30 | | { [INFO] [stderr] 31 | | UsizeValue { [INFO] [stderr] 32 | | value : SharedUsize::new(0) [INFO] [stderr] 33 | | } [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 25 | impl Default for value::usize_value::UsizeValue { [INFO] [stderr] 26 | fn default() -> Self { [INFO] [stderr] 27 | Self::new() [INFO] [stderr] 28 | } [INFO] [stderr] 29 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `issues::Issues` [INFO] [stderr] --> src/issues.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | / pub fn new() -> Issues [INFO] [stderr] 31 | | { [INFO] [stderr] 32 | | Issues { [INFO] [stderr] 33 | | errors : LinkedList::new(), [INFO] [stderr] 34 | | warnings : LinkedList::new() [INFO] [stderr] 35 | | } [INFO] [stderr] 36 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 15 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/issues.rs:42:9 [INFO] [stderr] | [INFO] [stderr] 42 | self.errors.len() > 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.errors.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/toml_builder.rs:55:12 [INFO] [stderr] | [INFO] [stderr] 55 | if self.issues.has_errors() == false [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.issues.has_errors()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/toml_builder.rs:79:12 [INFO] [stderr] | [INFO] [stderr] 79 | if self.group.len() > 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.group.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/toml_builder.rs:113:25 [INFO] [stderr] | [INFO] [stderr] 113 | notify : Option<&Box> [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `&Notify` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::borrowed_box)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/toml_builder.rs:157:12 [INFO] [stderr] | [INFO] [stderr] 157 | if optional == false [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!optional` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/toml_data.rs:196:5 [INFO] [stderr] | [INFO] [stderr] 196 | / pub fn optional_str<'a, T:AsRef>( [INFO] [stderr] 197 | | &'a self, [INFO] [stderr] 198 | | name : T [INFO] [stderr] 199 | | ) -> Option<&'a str> [INFO] [stderr] ... | [INFO] [stderr] 221 | | } [INFO] [stderr] 222 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/toml_data.rs:342:5 [INFO] [stderr] | [INFO] [stderr] 342 | / pub fn get_str<'a, T:AsRef>( [INFO] [stderr] 343 | | &'a self, [INFO] [stderr] 344 | | name : T [INFO] [stderr] 345 | | ) -> &'a str [INFO] [stderr] ... | [INFO] [stderr] 356 | | } [INFO] [stderr] 357 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `toml_def::TomlDef` [INFO] [stderr] --> src/toml_def.rs:87:5 [INFO] [stderr] | [INFO] [stderr] 87 | / pub fn new() -> TomlDef [INFO] [stderr] 88 | | { [INFO] [stderr] 89 | | TomlDef { [INFO] [stderr] 90 | | name : String::from(""), [INFO] [stderr] ... | [INFO] [stderr] 94 | | } [INFO] [stderr] 95 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 64 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: defining a method called `add` on this type; consider implementing the `std::ops::Add` trait or choosing a less ambiguous name [INFO] [stderr] --> src/toml_def.rs:151:5 [INFO] [stderr] | [INFO] [stderr] 151 | / pub fn add( [INFO] [stderr] 152 | | mut self, [INFO] [stderr] 153 | | item : T [INFO] [stderr] 154 | | ) -> Self [INFO] [stderr] ... | [INFO] [stderr] 158 | | self [INFO] [stderr] 159 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::should_implement_trait)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/toml_iter.rs:45:37 [INFO] [stderr] | [INFO] [stderr] 45 | NextItem(&'a String, &'a Value, &'b Box, Option<&'c Box>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `&'b ItemDef` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/toml_iter.rs:45:62 [INFO] [stderr] | [INFO] [stderr] 45 | NextItem(&'a String, &'a Value, &'b Box, Option<&'c Box>), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `&'c Notify` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/toml_iter.rs:53:30 [INFO] [stderr] | [INFO] [stderr] 53 | MissingInput(&'b String, &'b Box, Option<&'c Box>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `&'b ItemDef` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/toml_iter.rs:53:55 [INFO] [stderr] | [INFO] [stderr] 53 | MissingInput(&'b String, &'b Box, Option<&'c Box>), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `&'c Notify` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/toml_iter.rs:153:16 [INFO] [stderr] | [INFO] [stderr] 153 | name : &String [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/toml_iter.rs:154:21 [INFO] [stderr] | [INFO] [stderr] 154 | ) -> Option<&'c Box> [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `&'c Notify` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/test_macros.rs:47:1 [INFO] [stderr] | [INFO] [stderr] 47 | / macro_rules! assert_i64 { [INFO] [stderr] 48 | | ($result:expr, $val:expr) => {{ [INFO] [stderr] 49 | | let result = $result; [INFO] [stderr] 50 | | [INFO] [stderr] ... | [INFO] [stderr] 62 | | }}; [INFO] [stderr] 63 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_macros)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/test_macros.rs:140:1 [INFO] [stderr] | [INFO] [stderr] 140 | / macro_rules! assert_duration_overflow { [INFO] [stderr] 141 | | ($result:expr, $max:expr) => {{ [INFO] [stderr] 142 | | let result = $result; [INFO] [stderr] 143 | | [INFO] [stderr] ... | [INFO] [stderr] 177 | | }} [INFO] [stderr] 178 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:120:45 [INFO] [stderr] | [INFO] [stderr] 120 | assert_eq!(data.get_usize("large"), 123456789); [INFO] [stderr] | ^^^^^^^^^ help: consider: `123_456_789` [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/lib.rs:147:52 [INFO] [stderr] | [INFO] [stderr] 147 | .add(ItemUsize::with_name("large").max(200000000)) [INFO] [stderr] | ^^^^^^^^^ help: consider: `200_000_000` [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:152:56 [INFO] [stderr] | [INFO] [stderr] 152 | .add(ItemUsize::with_name("large").min(300000000))) [INFO] [stderr] | ^^^^^^^^^ help: consider: `300_000_000` [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:160:45 [INFO] [stderr] | [INFO] [stderr] 160 | assert_eq!(data.get_usize("large"), 123456789); [INFO] [stderr] | ^^^^^^^^^ help: consider: `123_456_789` [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:165:49 [INFO] [stderr] | [INFO] [stderr] 165 | assert_eq!(data.get_usize("dup.large"), 987654321); [INFO] [stderr] | ^^^^^^^^^ help: consider: `987_654_321` [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:189:52 [INFO] [stderr] | [INFO] [stderr] 189 | .add(ItemUsize::with_name("large").max(200000000)) [INFO] [stderr] | ^^^^^^^^^ help: consider: `200_000_000` [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:194:56 [INFO] [stderr] | [INFO] [stderr] 194 | .add(ItemUsize::with_name("large").min(300000000).optional())) [INFO] [stderr] | ^^^^^^^^^ help: consider: `300_000_000` [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:202:45 [INFO] [stderr] | [INFO] [stderr] 202 | assert_eq!(data.get_usize("large"), 123456789); [INFO] [stderr] | ^^^^^^^^^ help: consider: `123_456_789` [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:236:52 [INFO] [stderr] | [INFO] [stderr] 236 | .add(ItemUsize::with_name("large").max(200000000)) [INFO] [stderr] | ^^^^^^^^^ help: consider: `200_000_000` [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:241:56 [INFO] [stderr] | [INFO] [stderr] 241 | .add(ItemUsize::with_name("large").min(300000000).optional())) [INFO] [stderr] | ^^^^^^^^^ help: consider: `300_000_000` [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:249:45 [INFO] [stderr] | [INFO] [stderr] 249 | assert_eq!(data.get_usize("large"), 123456789); [INFO] [stderr] | ^^^^^^^^^ help: consider: `123_456_789` [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:254:63 [INFO] [stderr] | [INFO] [stderr] 254 | assert_eq!(data.optional_usize("dup.large").unwrap(), 987654321); [INFO] [stderr] | ^^^^^^^^^ help: consider: `987_654_321` [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:278:52 [INFO] [stderr] | [INFO] [stderr] 278 | .add(ItemUsize::with_name("large").max(200000000)) [INFO] [stderr] | ^^^^^^^^^ help: consider: `200_000_000` [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:283:56 [INFO] [stderr] | [INFO] [stderr] 283 | .add(ItemUsize::with_name("large").min(300000000).default(987654321))) [INFO] [stderr] | ^^^^^^^^^ help: consider: `300_000_000` [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:283:75 [INFO] [stderr] | [INFO] [stderr] 283 | .add(ItemUsize::with_name("large").min(300000000).default(987654321))) [INFO] [stderr] | ^^^^^^^^^ help: consider: `987_654_321` [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:291:45 [INFO] [stderr] | [INFO] [stderr] 291 | assert_eq!(data.get_usize("large"), 123456789); [INFO] [stderr] | ^^^^^^^^^ help: consider: `123_456_789` [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:296:49 [INFO] [stderr] | [INFO] [stderr] 296 | assert_eq!(data.get_usize("dup.large"), 987654321); [INFO] [stderr] | ^^^^^^^^^ help: consider: `987_654_321` [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: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/data/duration_decoder.rs:89:16 [INFO] [stderr] | [INFO] [stderr] 89 | if self.negative == false [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.negative` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/data/duration_decoder.rs:121:21 [INFO] [stderr] | [INFO] [stderr] 121 | let digit = by.to_digit(10).unwrap() as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(by.to_digit(10).unwrap())` [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: equality checks against true are unnecessary [INFO] [stderr] --> src/data/duration_decoder.rs:157:17 [INFO] [stderr] | [INFO] [stderr] 157 | else if ch.is_digit(10) == true [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `ch.is_digit(10)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/data/duration_decoder.rs:180:12 [INFO] [stderr] | [INFO] [stderr] 180 | if ch.is_digit(10) == true [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `ch.is_digit(10)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/data/duration_decoder.rs:208:16 [INFO] [stderr] | [INFO] [stderr] 208 | if self.incorporate_current() == true [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `self.incorporate_current()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/data/duration_decoder.rs:269:16 [INFO] [stderr] | [INFO] [stderr] 269 | if self.process(ch) == false [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.process(ch)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/data/duration_decoder.rs:277:39 [INFO] [stderr] | [INFO] [stderr] 277 | if (self.current.is_some() || self.unit.len() > 0) && self.incorporate_current() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.unit.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/data/item_duration.rs:286:26 [INFO] [stderr] | [INFO] [stderr] 286 | self.default.map(|x|ItemValue::Duration(x)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `ItemValue::Duration` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_str.rs:173:49 [INFO] [stderr] | [INFO] [stderr] 173 | return ExtractResult::short(self.min.clone(), self.max.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.min` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_str.rs:173:67 [INFO] [stderr] | [INFO] [stderr] 173 | return ExtractResult::short(self.min.clone(), self.max.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.max` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_str.rs:183:48 [INFO] [stderr] | [INFO] [stderr] 183 | return ExtractResult::long(self.min.clone(), self.max.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.min` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_str.rs:183:66 [INFO] [stderr] | [INFO] [stderr] 183 | return ExtractResult::long(self.min.clone(), self.max.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.max` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/data/item_u16.rs:113:22 [INFO] [stderr] | [INFO] [stderr] 113 | if max < min as i64 [INFO] [stderr] | ^^^^^^^^^^ help: try: `i64::from(min)` [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 u16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/data/item_u16.rs:119:25 [INFO] [stderr] | [INFO] [stderr] 119 | self.min = Some(min as i64); [INFO] [stderr] | ^^^^^^^^^^ help: try: `i64::from(min)` [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 u16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/data/item_u16.rs:137:22 [INFO] [stderr] | [INFO] [stderr] 137 | if min > max as i64 [INFO] [stderr] | ^^^^^^^^^^ help: try: `i64::from(max)` [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 u16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/data/item_u16.rs:143:25 [INFO] [stderr] | [INFO] [stderr] 143 | self.max = Some(max as i64); [INFO] [stderr] | ^^^^^^^^^^ help: try: `i64::from(max)` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_u16.rs:199:52 [INFO] [stderr] | [INFO] [stderr] 199 | return ExtractResult::underrun(self.min.clone(), self.max.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.min` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_u16.rs:199:70 [INFO] [stderr] | [INFO] [stderr] 199 | return ExtractResult::underrun(self.min.clone(), self.max.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.max` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/data/item_u16.rs:202:29 [INFO] [stderr] | [INFO] [stderr] 202 | else if value < std::u16::MIN as i64 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(std::u16::MIN)` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_u16.rs:204:57 [INFO] [stderr] | [INFO] [stderr] 204 | return ExtractResult::underrun(Some(0), self.max.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.max` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_u16.rs:213:51 [INFO] [stderr] | [INFO] [stderr] 213 | return ExtractResult::overrun(self.min.clone(), self.max.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.min` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_u16.rs:213:69 [INFO] [stderr] | [INFO] [stderr] 213 | return ExtractResult::overrun(self.min.clone(), self.max.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.max` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/data/item_u16.rs:216:29 [INFO] [stderr] | [INFO] [stderr] 216 | else if value > std::u16::MAX as i64 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(std::u16::MAX)` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_u16.rs:218:47 [INFO] [stderr] | [INFO] [stderr] 218 | return ExtractResult::overrun(self.min.clone(), Some(std::u16::MAX as i64)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.min` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/data/item_u16.rs:218:70 [INFO] [stderr] | [INFO] [stderr] 218 | return ExtractResult::overrun(self.min.clone(), Some(std::u16::MAX as i64)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(std::u16::MAX)` [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 closure found [INFO] [stderr] --> src/data/item_u16.rs:244:26 [INFO] [stderr] | [INFO] [stderr] 244 | self.default.map(|x|ItemValue::U16(x)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `ItemValue::U16` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/data/item_u16.rs:317:50 [INFO] [stderr] | [INFO] [stderr] 317 | assert_u16!(test.extract(&Value::Integer(std::u16::MIN as i64)), std::u16::MIN); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(std::u16::MIN)` [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 u16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/data/item_u16.rs:318:50 [INFO] [stderr] | [INFO] [stderr] 318 | assert_u16!(test.extract(&Value::Integer(std::u16::MAX as i64)), std::u16::MAX); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(std::u16::MAX)` [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 u16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/data/item_u16.rs:319:38 [INFO] [stderr] | [INFO] [stderr] 319 | assert_underrun!(test!(test, std::u16::MIN as i64 - 1), std::u16::MIN as i64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(std::u16::MIN)` [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 u16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/data/item_u16.rs:319:65 [INFO] [stderr] | [INFO] [stderr] 319 | assert_underrun!(test!(test, std::u16::MIN as i64 - 1), std::u16::MIN as i64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(std::u16::MIN)` [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 u16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/data/item_u16.rs:320:38 [INFO] [stderr] | [INFO] [stderr] 320 | assert_overflow!(test!(test, std::u16::MAX as i64 + 1), std::u16::MAX as i64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(std::u16::MAX)` [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 u16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/data/item_u16.rs:320:65 [INFO] [stderr] | [INFO] [stderr] 320 | assert_overflow!(test!(test, std::u16::MAX as i64 + 1), std::u16::MAX as i64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(std::u16::MAX)` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_usize.rs:223:52 [INFO] [stderr] | [INFO] [stderr] 223 | return ExtractResult::underrun(self.min.clone(), self.max.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.min` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_usize.rs:223:70 [INFO] [stderr] | [INFO] [stderr] 223 | return ExtractResult::underrun(self.min.clone(), self.max.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.max` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_usize.rs:228:57 [INFO] [stderr] | [INFO] [stderr] 228 | return ExtractResult::underrun(Some(0), self.max.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.max` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_usize.rs:237:51 [INFO] [stderr] | [INFO] [stderr] 237 | return ExtractResult::overrun(self.min.clone(), self.max.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.min` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/data/item_usize.rs:237:69 [INFO] [stderr] | [INFO] [stderr] 237 | return ExtractResult::overrun(self.min.clone(), self.max.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.max` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `value::i64_value::I64Value` [INFO] [stderr] --> src/value/i64_value.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | / pub fn new() -> I64Value [INFO] [stderr] 30 | | { [INFO] [stderr] 31 | | I64Value { [INFO] [stderr] 32 | | value : SharedI64::new(0) [INFO] [stderr] 33 | | } [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 25 | impl Default for value::i64_value::I64Value { [INFO] [stderr] 26 | fn default() -> Self { [INFO] [stderr] 27 | Self::new() [INFO] [stderr] 28 | } [INFO] [stderr] 29 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `value::string_value::StringValue` [INFO] [stderr] --> src/value/string_value.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | / pub fn new() -> StringValue [INFO] [stderr] 30 | | { [INFO] [stderr] 31 | | StringValue { [INFO] [stderr] 32 | | value : SharedObject::new(String::from("")) [INFO] [stderr] 33 | | } [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 25 | impl Default for value::string_value::StringValue { [INFO] [stderr] 26 | fn default() -> Self { [INFO] [stderr] 27 | Self::new() [INFO] [stderr] 28 | } [INFO] [stderr] 29 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `value::u16_value::U16Value` [INFO] [stderr] --> src/value/u16_value.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | / pub fn new() -> U16Value [INFO] [stderr] 30 | | { [INFO] [stderr] 31 | | U16Value { [INFO] [stderr] 32 | | value : SharedU16::new(0) [INFO] [stderr] 33 | | } [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 25 | impl Default for value::u16_value::U16Value { [INFO] [stderr] 26 | fn default() -> Self { [INFO] [stderr] 27 | Self::new() [INFO] [stderr] 28 | } [INFO] [stderr] 29 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `value::usize_value::UsizeValue` [INFO] [stderr] --> src/value/usize_value.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | / pub fn new() -> UsizeValue [INFO] [stderr] 30 | | { [INFO] [stderr] 31 | | UsizeValue { [INFO] [stderr] 32 | | value : SharedUsize::new(0) [INFO] [stderr] 33 | | } [INFO] [stderr] 34 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 25 | impl Default for value::usize_value::UsizeValue { [INFO] [stderr] 26 | fn default() -> Self { [INFO] [stderr] 27 | Self::new() [INFO] [stderr] 28 | } [INFO] [stderr] 29 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `issues::Issues` [INFO] [stderr] --> src/issues.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | / pub fn new() -> Issues [INFO] [stderr] 31 | | { [INFO] [stderr] 32 | | Issues { [INFO] [stderr] 33 | | errors : LinkedList::new(), [INFO] [stderr] 34 | | warnings : LinkedList::new() [INFO] [stderr] 35 | | } [INFO] [stderr] 36 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 15 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/issues.rs:42:9 [INFO] [stderr] | [INFO] [stderr] 42 | self.errors.len() > 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.errors.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/toml_builder.rs:55:12 [INFO] [stderr] | [INFO] [stderr] 55 | if self.issues.has_errors() == false [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.issues.has_errors()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/toml_builder.rs:79:12 [INFO] [stderr] | [INFO] [stderr] 79 | if self.group.len() > 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.group.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/toml_builder.rs:113:25 [INFO] [stderr] | [INFO] [stderr] 113 | notify : Option<&Box> [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `&Notify` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::borrowed_box)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/toml_builder.rs:157:12 [INFO] [stderr] | [INFO] [stderr] 157 | if optional == false [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!optional` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/toml_data.rs:196:5 [INFO] [stderr] | [INFO] [stderr] 196 | / pub fn optional_str<'a, T:AsRef>( [INFO] [stderr] 197 | | &'a self, [INFO] [stderr] 198 | | name : T [INFO] [stderr] 199 | | ) -> Option<&'a str> [INFO] [stderr] ... | [INFO] [stderr] 221 | | } [INFO] [stderr] 222 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/toml_data.rs:342:5 [INFO] [stderr] | [INFO] [stderr] 342 | / pub fn get_str<'a, T:AsRef>( [INFO] [stderr] 343 | | &'a self, [INFO] [stderr] 344 | | name : T [INFO] [stderr] 345 | | ) -> &'a str [INFO] [stderr] ... | [INFO] [stderr] 356 | | } [INFO] [stderr] 357 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `toml_def::TomlDef` [INFO] [stderr] --> src/toml_def.rs:87:5 [INFO] [stderr] | [INFO] [stderr] 87 | / pub fn new() -> TomlDef [INFO] [stderr] 88 | | { [INFO] [stderr] 89 | | TomlDef { [INFO] [stderr] 90 | | name : String::from(""), [INFO] [stderr] ... | [INFO] [stderr] 94 | | } [INFO] [stderr] 95 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 64 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: defining a method called `add` on this type; consider implementing the `std::ops::Add` trait or choosing a less ambiguous name [INFO] [stderr] --> src/toml_def.rs:151:5 [INFO] [stderr] | [INFO] [stderr] 151 | / pub fn add( [INFO] [stderr] 152 | | mut self, [INFO] [stderr] 153 | | item : T [INFO] [stderr] 154 | | ) -> Self [INFO] [stderr] ... | [INFO] [stderr] 158 | | self [INFO] [stderr] 159 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::should_implement_trait)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/toml_iter.rs:45:37 [INFO] [stderr] | [INFO] [stderr] 45 | NextItem(&'a String, &'a Value, &'b Box, Option<&'c Box>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `&'b ItemDef` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/toml_iter.rs:45:62 [INFO] [stderr] | [INFO] [stderr] 45 | NextItem(&'a String, &'a Value, &'b Box, Option<&'c Box>), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `&'c Notify` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/toml_iter.rs:53:30 [INFO] [stderr] | [INFO] [stderr] 53 | MissingInput(&'b String, &'b Box, Option<&'c Box>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `&'b ItemDef` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/toml_iter.rs:53:55 [INFO] [stderr] | [INFO] [stderr] 53 | MissingInput(&'b String, &'b Box, Option<&'c Box>), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `&'c Notify` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/toml_iter.rs:153:16 [INFO] [stderr] | [INFO] [stderr] 153 | name : &String [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/toml_iter.rs:154:21 [INFO] [stderr] | [INFO] [stderr] 154 | ) -> Option<&'c Box> [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `&'c Notify` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/toml_iter.rs:301:14 [INFO] [stderr] | [INFO] [stderr] 301 | ) -> (BTreeMap, BTreeMap>, BTreeMap>) [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: the function has a cyclomatic complexity of 30 [INFO] [stderr] --> src/toml_iter.rs:320:5 [INFO] [stderr] | [INFO] [stderr] 320 | / fn normal() [INFO] [stderr] 321 | | { [INFO] [stderr] 322 | | let (input, define, notify) = generate(vec![("a", 1), ("b", 2), ("c", 3), ("d", 4)]); [INFO] [stderr] 323 | | let mut test = super::TomlIter::new(&input, &define, ¬ify); [INFO] [stderr] ... | [INFO] [stderr] 329 | | assert!(test.next().is_none()); [INFO] [stderr] 330 | | } [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: the function has a cyclomatic complexity of 30 [INFO] [stderr] --> src/toml_iter.rs:335:5 [INFO] [stderr] | [INFO] [stderr] 335 | / fn no_notify() [INFO] [stderr] 336 | | { [INFO] [stderr] 337 | | let (input, define, _) = generate(vec![("a", 1), ("b", 2), ("c", 3), ("d", 4)]); [INFO] [stderr] 338 | | let notify = BTreeMap::new(); [INFO] [stderr] ... | [INFO] [stderr] 345 | | assert!(test.next().is_none()); [INFO] [stderr] 346 | | } [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] warning: the function has a cyclomatic complexity of 26 [INFO] [stderr] --> src/toml_iter.rs:368:5 [INFO] [stderr] | [INFO] [stderr] 368 | / fn no_values() [INFO] [stderr] 369 | | { [INFO] [stderr] 370 | | let (_, define, notify) = generate(vec![("a", 1), ("b", 2), ("c", 3), ("d", 4)]); [INFO] [stderr] 371 | | let input = BTreeMap::new(); [INFO] [stderr] ... | [INFO] [stderr] 378 | | assert!(test.next().is_none()); [INFO] [stderr] 379 | | } [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] warning: the function has a cyclomatic complexity of 29 [INFO] [stderr] --> src/toml_iter.rs:384:5 [INFO] [stderr] | [INFO] [stderr] 384 | / fn missing_first() [INFO] [stderr] 385 | | { [INFO] [stderr] 386 | | let (mut input, define, notify) = generate(vec![("a", 1), ("b", 2), ("c", 3), ("d", 4)]); [INFO] [stderr] 387 | | [INFO] [stderr] ... | [INFO] [stderr] 396 | | assert!(test.next().is_none()); [INFO] [stderr] 397 | | } [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] warning: the function has a cyclomatic complexity of 29 [INFO] [stderr] --> src/toml_iter.rs:402:5 [INFO] [stderr] | [INFO] [stderr] 402 | / fn missing_middle() [INFO] [stderr] 403 | | { [INFO] [stderr] 404 | | let (mut input, define, notify) = generate(vec![("a", 1), ("b", 2), ("c", 3), ("d", 4)]); [INFO] [stderr] 405 | | [INFO] [stderr] ... | [INFO] [stderr] 414 | | assert!(test.next().is_none()); [INFO] [stderr] 415 | | } [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] warning: the function has a cyclomatic complexity of 29 [INFO] [stderr] --> src/toml_iter.rs:420:5 [INFO] [stderr] | [INFO] [stderr] 420 | / fn missing_last() [INFO] [stderr] 421 | | { [INFO] [stderr] 422 | | let (mut input, define, notify) = generate(vec![("a", 1), ("b", 2), ("c", 3), ("d", 4)]); [INFO] [stderr] 423 | | [INFO] [stderr] ... | [INFO] [stderr] 432 | | assert!(test.next().is_none()); [INFO] [stderr] 433 | | } [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] warning: the function has a cyclomatic complexity of 26 [INFO] [stderr] --> src/toml_iter.rs:438:5 [INFO] [stderr] | [INFO] [stderr] 438 | / fn undefined_first() [INFO] [stderr] 439 | | { [INFO] [stderr] 440 | | let (input, mut define, mut notify) = generate(vec![("a", 1), ("b", 2), ("c", 3), ("d", 4)]); [INFO] [stderr] 441 | | [INFO] [stderr] ... | [INFO] [stderr] 451 | | assert!(test.next().is_none()); [INFO] [stderr] 452 | | } [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] warning: the function has a cyclomatic complexity of 26 [INFO] [stderr] --> src/toml_iter.rs:457:5 [INFO] [stderr] | [INFO] [stderr] 457 | / fn undefined_middle() [INFO] [stderr] 458 | | { [INFO] [stderr] 459 | | let (input, mut define, mut notify) = generate(vec![("a", 1), ("b", 2), ("c", 3), ("d", 4)]); [INFO] [stderr] 460 | | [INFO] [stderr] ... | [INFO] [stderr] 470 | | assert!(test.next().is_none()); [INFO] [stderr] 471 | | } [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] warning: the function has a cyclomatic complexity of 26 [INFO] [stderr] --> src/toml_iter.rs:476:5 [INFO] [stderr] | [INFO] [stderr] 476 | / fn undefined_last() [INFO] [stderr] 477 | | { [INFO] [stderr] 478 | | let (input, mut define, mut notify) = generate(vec![("a", 1), ("b", 2), ("c", 3), ("d", 4)]); [INFO] [stderr] 479 | | [INFO] [stderr] ... | [INFO] [stderr] 489 | | assert!(test.next().is_none()); [INFO] [stderr] 490 | | } [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] Finished dev [unoptimized + debuginfo] target(s) in 5.35s [INFO] running `"docker" "inspect" "dcd78128541d92012d4180724c92e10ab7950f2e0409ef4845b0165fa99bf886"` [INFO] running `"docker" "rm" "-f" "dcd78128541d92012d4180724c92e10ab7950f2e0409ef4845b0165fa99bf886"` [INFO] [stdout] dcd78128541d92012d4180724c92e10ab7950f2e0409ef4845b0165fa99bf886