[INFO] crate wikibase 0.2.0 is already in cache [INFO] extracting crate wikibase 0.2.0 into work/ex/clippy-test-run/sources/stable/reg/wikibase/0.2.0 [INFO] extracting crate wikibase 0.2.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/wikibase/0.2.0 [INFO] validating manifest of wikibase-0.2.0 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of wikibase-0.2.0 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing wikibase-0.2.0 [INFO] finished frobbing wikibase-0.2.0 [INFO] frobbed toml for wikibase-0.2.0 written to work/ex/clippy-test-run/sources/stable/reg/wikibase/0.2.0/Cargo.toml [INFO] started frobbing wikibase-0.2.0 [INFO] finished frobbing wikibase-0.2.0 [INFO] frobbed toml for wikibase-0.2.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/wikibase/0.2.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting wikibase-0.2.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/wikibase/0.2.0:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 0504e5c437b9b1c261779644107b2456a24eff6119b9f6386cf811f36e89128c [INFO] running `"docker" "start" "-a" "0504e5c437b9b1c261779644107b2456a24eff6119b9f6386cf811f36e89128c"` [INFO] [stderr] Compiling libz-sys v1.0.25 [INFO] [stderr] Compiling curl-sys v0.4.16 [INFO] [stderr] Checking socket2 v0.3.8 [INFO] [stderr] Checking curl v0.4.19 [INFO] [stderr] Checking wikibase v0.2.0 (/opt/crater/workdir) [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/lib.rs:30:25 [INFO] [stderr] | [INFO] [stderr] 30 | const USER_AGENT_BASE: &'static str = "Wikibase-RS/0.2.0"; [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/lib.rs:30:25 [INFO] [stderr] | [INFO] [stderr] 30 | const USER_AGENT_BASE: &'static str = "Wikibase-RS/0.2.0"; [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: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/validate.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | / match string.parse::() { [INFO] [stderr] 25 | | Ok(_) => true, [INFO] [stderr] 26 | | Err(_) => false [INFO] [stderr] 27 | | } [INFO] [stderr] | |_____^ help: try this: `string.parse::().is_ok()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/validate.rs:40:8 [INFO] [stderr] | [INFO] [stderr] 40 | if number_is_integer(&entity_id[1..]) == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!number_is_integer(&entity_id[1..])` [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: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:54:5 [INFO] [stderr] | [INFO] [stderr] 54 | / match &item_object["id"].as_str() { [INFO] [stderr] 55 | | &Some(value) => entity.set_id(value.to_string()), [INFO] [stderr] 56 | | &None => return Err(WikibaseError::Serialization("ID missing".to_string())) [INFO] [stderr] 57 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 54 | match item_object["id"].as_str() { [INFO] [stderr] 55 | Some(value) => entity.set_id(value.to_string()), [INFO] [stderr] 56 | None => return Err(WikibaseError::Serialization("ID missing".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | / match &item_object.get("missing") { [INFO] [stderr] 60 | | &Some(_) => { [INFO] [stderr] 61 | | entity.set_missing(true); [INFO] [stderr] 62 | | return Ok(entity) [INFO] [stderr] 63 | | } [INFO] [stderr] 64 | | &None => {} [INFO] [stderr] 65 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 59 | match item_object.get("missing") { [INFO] [stderr] 60 | Some(_) => { [INFO] [stderr] 61 | entity.set_missing(true); [INFO] [stderr] 62 | return Ok(entity) [INFO] [stderr] 63 | } [INFO] [stderr] 64 | None => {} [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:81:24 [INFO] [stderr] | [INFO] [stderr] 81 | let results_json = match &json["search"].as_array() { [INFO] [stderr] | ________________________^ [INFO] [stderr] 82 | | &Some(value) => value, [INFO] [stderr] 83 | | &None => return Err(WikibaseError::Serialization("No search results".to_string())) [INFO] [stderr] 84 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 81 | let results_json = match json["search"].as_array() { [INFO] [stderr] 82 | Some(value) => value, [INFO] [stderr] 83 | None => return Err(WikibaseError::Serialization("No search results".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:179:24 [INFO] [stderr] | [INFO] [stderr] 179 | let claim_object = match &json_claim.as_object() { [INFO] [stderr] | ________________________^ [INFO] [stderr] 180 | | &Some(value) => value, [INFO] [stderr] 181 | | &None => return Err(WikibaseError::Serialization("Claim".to_string())) [INFO] [stderr] 182 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 179 | let claim_object = match json_claim.as_object() { [INFO] [stderr] 180 | Some(value) => value, [INFO] [stderr] 181 | None => return Err(WikibaseError::Serialization("Claim".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:194:21 [INFO] [stderr] | [INFO] [stderr] 194 | let main_snak = match &claim_object["mainsnak"].as_object() { [INFO] [stderr] | _____________________^ [INFO] [stderr] 195 | | &Some(snak_json) => { [INFO] [stderr] 196 | | snak_from_json(snak_json)? [INFO] [stderr] 197 | | } [INFO] [stderr] 198 | | &None => return Err(WikibaseError::Serialization("Main snak".to_string())) [INFO] [stderr] 199 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 194 | let main_snak = match claim_object["mainsnak"].as_object() { [INFO] [stderr] 195 | Some(snak_json) => { [INFO] [stderr] 196 | snak_from_json(snak_json)? [INFO] [stderr] 197 | } [INFO] [stderr] 198 | None => return Err(WikibaseError::Serialization("Main snak".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:203:5 [INFO] [stderr] | [INFO] [stderr] 203 | / match &claim_object.get("qualifiers") { [INFO] [stderr] 204 | | // Qualifiers are an object with property keys that contain [INFO] [stderr] 205 | | // an array of snaks. {"P817": [], ...} [INFO] [stderr] 206 | | &Some(qualifiers) => { [INFO] [stderr] ... | [INFO] [stderr] 209 | | &None => {} [INFO] [stderr] 210 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 203 | match claim_object.get("qualifiers") { [INFO] [stderr] 204 | // Qualifiers are an object with property keys that contain [INFO] [stderr] 205 | // an array of snaks. {"P817": [], ...} [INFO] [stderr] 206 | Some(qualifiers) => { [INFO] [stderr] 207 | claim.set_qualifier_snaks(snaks_object_from_json(&qualifiers)?); [INFO] [stderr] 208 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:212:5 [INFO] [stderr] | [INFO] [stderr] 212 | / match &claim_object.get("references") { [INFO] [stderr] 213 | | &Some(references_array_json) => { [INFO] [stderr] 214 | | claim.set_references(reference_array_from_json(&references_array_json)?); [INFO] [stderr] 215 | | } [INFO] [stderr] 216 | | &None => {} [INFO] [stderr] 217 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 212 | match claim_object.get("references") { [INFO] [stderr] 213 | Some(references_array_json) => { [INFO] [stderr] 214 | claim.set_references(reference_array_from_json(&references_array_json)?); [INFO] [stderr] 215 | } [INFO] [stderr] 216 | None => {} [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:252:23 [INFO] [stderr] | [INFO] [stderr] 252 | let lang_object = match &item[key].as_object() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 253 | | &Some(value) => value, [INFO] [stderr] 254 | | &None => return Err(WikibaseError::Serialization("Locale object".to_string())) [INFO] [stderr] 255 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 252 | let lang_object = match item[key].as_object() { [INFO] [stderr] 253 | Some(value) => value, [INFO] [stderr] 254 | None => return Err(WikibaseError::Serialization("Locale object".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:286:24 [INFO] [stderr] | [INFO] [stderr] 286 | let label_object = match &item.get(key) { [INFO] [stderr] | ________________________^ [INFO] [stderr] 287 | | &Some(value) => { [INFO] [stderr] 288 | | match value.as_object() { [INFO] [stderr] 289 | | Some(object) => object, [INFO] [stderr] ... | [INFO] [stderr] 293 | | &None => return Err(WikibaseError::Serialization(format!("Key \"{}\" not found in object", key))) [INFO] [stderr] 294 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 286 | let label_object = match item.get(key) { [INFO] [stderr] 287 | Some(value) => { [INFO] [stderr] 288 | match value.as_object() { [INFO] [stderr] 289 | Some(object) => object, [INFO] [stderr] 290 | None => return Err(WikibaseError::Serialization("Locale string object not valid".to_string())) [INFO] [stderr] 291 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:310:24 [INFO] [stderr] | [INFO] [stderr] 310 | let claims_array = match &item["claims"].as_object() { [INFO] [stderr] | ________________________^ [INFO] [stderr] 311 | | &Some(value) => value, [INFO] [stderr] 312 | | &None => return Err(WikibaseError::Serialization("Key \"claims\" missing in json object".to_string())) [INFO] [stderr] 313 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 310 | let claims_array = match item["claims"].as_object() { [INFO] [stderr] 311 | Some(value) => value, [INFO] [stderr] 312 | None => return Err(WikibaseError::Serialization("Key \"claims\" missing in json object".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:318:37 [INFO] [stderr] | [INFO] [stderr] 318 | let property_claims_array = match &property_claims.as_array() { [INFO] [stderr] | _____________________________________^ [INFO] [stderr] 319 | | &Some(value) => value, [INFO] [stderr] 320 | | &None => return Err(WikibaseError::Serialization("Claim array".to_string())) [INFO] [stderr] 321 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 318 | let property_claims_array = match property_claims.as_array() { [INFO] [stderr] 319 | Some(value) => value, [INFO] [stderr] 320 | None => return Err(WikibaseError::Serialization("Claim array".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:444:24 [INFO] [stderr] | [INFO] [stderr] 444 | let snaks_object = match &snaks_object_json.as_object() { [INFO] [stderr] | ________________________^ [INFO] [stderr] 445 | | &Some(value) => value, [INFO] [stderr] 446 | | &None => return Err(WikibaseError::Serialization("Can't serialize snaks object".to_string())) [INFO] [stderr] 447 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 444 | let snaks_object = match snaks_object_json.as_object() { [INFO] [stderr] 445 | Some(value) => value, [INFO] [stderr] 446 | None => return Err(WikibaseError::Serialization("Can't serialize snaks object".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:451:26 [INFO] [stderr] | [INFO] [stderr] 451 | let snak_array = match &property_snaks.as_array() { [INFO] [stderr] | __________________________^ [INFO] [stderr] 452 | | &Some(value) => value, [INFO] [stderr] 453 | | &None => return Err(WikibaseError::Serialization("Can't serialize snak array".to_string())) [INFO] [stderr] 454 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 451 | let snak_array = match property_snaks.as_array() { [INFO] [stderr] 452 | Some(value) => value, [INFO] [stderr] 453 | None => return Err(WikibaseError::Serialization("Can't serialize snak array".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:458:31 [INFO] [stderr] | [INFO] [stderr] 458 | let snak_object = match &snak_json.as_object() { [INFO] [stderr] | _______________________________^ [INFO] [stderr] 459 | | &Some(value) => value, [INFO] [stderr] 460 | | &None => return Err(WikibaseError::Serialization("Can't serialize snak object".to_string())) [INFO] [stderr] 461 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 458 | let snak_object = match snak_json.as_object() { [INFO] [stderr] 459 | Some(value) => value, [INFO] [stderr] 460 | None => return Err(WikibaseError::Serialization("Can't serialize snak object".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:479:27 [INFO] [stderr] | [INFO] [stderr] 479 | let reference_array = match &references_array_json.as_array() { [INFO] [stderr] | ___________________________^ [INFO] [stderr] 480 | | &Some(value) => value, [INFO] [stderr] 481 | | &None => return Err(WikibaseError::Serialization("Reference array".to_string())) [INFO] [stderr] 482 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 479 | let reference_array = match references_array_json.as_array() { [INFO] [stderr] 480 | Some(value) => value, [INFO] [stderr] 481 | None => return Err(WikibaseError::Serialization("Reference array".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:485:32 [INFO] [stderr] | [INFO] [stderr] 485 | let reference_object = match &references_object_json.as_object() { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 486 | | &Some(value) => value, [INFO] [stderr] 487 | | &None => return Err(WikibaseError::Serialization("Reference object".to_string())) [INFO] [stderr] 488 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 485 | let reference_object = match references_object_json.as_object() { [INFO] [stderr] 486 | Some(value) => value, [INFO] [stderr] 487 | None => return Err(WikibaseError::Serialization("Reference object".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:490:27 [INFO] [stderr] | [INFO] [stderr] 490 | let snaks_array = match &reference_object.get("snaks") { [INFO] [stderr] | ___________________________^ [INFO] [stderr] 491 | | &Some(value) => value, [INFO] [stderr] 492 | | &None => return Err(WikibaseError::Serialization("Reference snak object".to_string())) [INFO] [stderr] 493 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 490 | let snaks_array = match reference_object.get("snaks") { [INFO] [stderr] 491 | Some(value) => value, [INFO] [stderr] 492 | None => return Err(WikibaseError::Serialization("Reference snak object".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/from_json.rs:505:41 [INFO] [stderr] | [INFO] [stderr] 505 | fn string_vector_from_json(json_values: &Vec) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[serde_json::Value]` [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 don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:529:27 [INFO] [stderr] | [INFO] [stderr] 529 | let sitelinks_array = match &item.get("sitelinks") { [INFO] [stderr] | ___________________________^ [INFO] [stderr] 530 | | &Some(value) => { [INFO] [stderr] 531 | | match value.as_object() { [INFO] [stderr] 532 | | Some(value_object) => value_object, [INFO] [stderr] ... | [INFO] [stderr] 536 | | &None => return Ok(None) [INFO] [stderr] 537 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 529 | let sitelinks_array = match item.get("sitelinks") { [INFO] [stderr] 530 | Some(value) => { [INFO] [stderr] 531 | match value.as_object() { [INFO] [stderr] 532 | Some(value_object) => value_object, [INFO] [stderr] 533 | None => return Err(WikibaseError::Serialization("Key \"sitelinks\" missing in json object".to_string())) [INFO] [stderr] 534 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:542:31 [INFO] [stderr] | [INFO] [stderr] 542 | let sitelink_object = match &sitelink_object_json.as_object() { [INFO] [stderr] | _______________________________^ [INFO] [stderr] 543 | | &Some(value) => value, [INFO] [stderr] 544 | | &None => return Err(WikibaseError::Serialization("Error serializing sitelink object".to_string())) [INFO] [stderr] 545 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 542 | let sitelink_object = match sitelink_object_json.as_object() { [INFO] [stderr] 543 | Some(value) => value, [INFO] [stderr] 544 | None => return Err(WikibaseError::Serialization("Error serializing sitelink object".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:547:21 [INFO] [stderr] | [INFO] [stderr] 547 | let title = match &sitelink_object["title"].as_str() { [INFO] [stderr] | _____________________^ [INFO] [stderr] 548 | | &Some(value) => value, [INFO] [stderr] 549 | | &None => return Err(WikibaseError::Serialization("Error serializing sitelink title".to_string())) [INFO] [stderr] 550 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 547 | let title = match sitelink_object["title"].as_str() { [INFO] [stderr] 548 | Some(value) => value, [INFO] [stderr] 549 | None => return Err(WikibaseError::Serialization("Error serializing sitelink title".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:552:22 [INFO] [stderr] | [INFO] [stderr] 552 | let badges = match &sitelink_object["badges"].as_array() { [INFO] [stderr] | ______________________^ [INFO] [stderr] 553 | | &Some(value) => { [INFO] [stderr] 554 | | string_vector_from_json(value)? [INFO] [stderr] 555 | | } [INFO] [stderr] 556 | | &None => return Err(WikibaseError::Serialization("Error serializing badges array".to_string())) [INFO] [stderr] 557 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 552 | let badges = match sitelink_object["badges"].as_array() { [INFO] [stderr] 553 | Some(value) => { [INFO] [stderr] 554 | string_vector_from_json(value)? [INFO] [stderr] 555 | } [INFO] [stderr] 556 | None => return Err(WikibaseError::Serialization("Error serializing badges array".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/lib.rs:179:12 [INFO] [stderr] | [INFO] [stderr] 179 | if object["altitude"].is_null() == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!object["altitude"].is_null()` [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/lib.rs:203:12 [INFO] [stderr] | [INFO] [stderr] 203 | if object["precision"].is_null() == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!object["precision"].is_null()` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:556:9 [INFO] [stderr] | [INFO] [stderr] 556 | / match self { [INFO] [stderr] 557 | | &SnakType::Value => { [INFO] [stderr] 558 | | &"Value" [INFO] [stderr] 559 | | } [INFO] [stderr] ... | [INFO] [stderr] 565 | | } [INFO] [stderr] 566 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 556 | match *self { [INFO] [stderr] 557 | SnakType::Value => { [INFO] [stderr] 558 | &"Value" [INFO] [stderr] 559 | } [INFO] [stderr] 560 | SnakType::NoValue => { [INFO] [stderr] 561 | &"No Value" [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/validate.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | / match string.parse::() { [INFO] [stderr] 25 | | Ok(_) => true, [INFO] [stderr] 26 | | Err(_) => false [INFO] [stderr] 27 | | } [INFO] [stderr] | |_____^ help: try this: `string.parse::().is_ok()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/validate.rs:40:8 [INFO] [stderr] | [INFO] [stderr] 40 | if number_is_integer(&entity_id[1..]) == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!number_is_integer(&entity_id[1..])` [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: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:54:5 [INFO] [stderr] | [INFO] [stderr] 54 | / match &item_object["id"].as_str() { [INFO] [stderr] 55 | | &Some(value) => entity.set_id(value.to_string()), [INFO] [stderr] 56 | | &None => return Err(WikibaseError::Serialization("ID missing".to_string())) [INFO] [stderr] 57 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 54 | match item_object["id"].as_str() { [INFO] [stderr] 55 | Some(value) => entity.set_id(value.to_string()), [INFO] [stderr] 56 | None => return Err(WikibaseError::Serialization("ID missing".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | / match &item_object.get("missing") { [INFO] [stderr] 60 | | &Some(_) => { [INFO] [stderr] 61 | | entity.set_missing(true); [INFO] [stderr] 62 | | return Ok(entity) [INFO] [stderr] 63 | | } [INFO] [stderr] 64 | | &None => {} [INFO] [stderr] 65 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 59 | match item_object.get("missing") { [INFO] [stderr] 60 | Some(_) => { [INFO] [stderr] 61 | entity.set_missing(true); [INFO] [stderr] 62 | return Ok(entity) [INFO] [stderr] 63 | } [INFO] [stderr] 64 | None => {} [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `Claim` [INFO] [stderr] --> src/lib.rs:1163:5 [INFO] [stderr] | [INFO] [stderr] 1163 | / pub fn new() -> Claim { [INFO] [stderr] 1164 | | Self { [INFO] [stderr] 1165 | | claim_type: "".to_string(), [INFO] [stderr] 1166 | | rank: "".to_string(), [INFO] [stderr] ... | [INFO] [stderr] 1170 | | } [INFO] [stderr] 1171 | | } [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] 396 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:81:24 [INFO] [stderr] | [INFO] [stderr] 81 | let results_json = match &json["search"].as_array() { [INFO] [stderr] | ________________________^ [INFO] [stderr] 82 | | &Some(value) => value, [INFO] [stderr] 83 | | &None => return Err(WikibaseError::Serialization("No search results".to_string())) [INFO] [stderr] 84 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 81 | let results_json = match json["search"].as_array() { [INFO] [stderr] 82 | Some(value) => value, [INFO] [stderr] 83 | None => return Err(WikibaseError::Serialization("No search results".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:179:24 [INFO] [stderr] | [INFO] [stderr] 179 | let claim_object = match &json_claim.as_object() { [INFO] [stderr] | ________________________^ [INFO] [stderr] 180 | | &Some(value) => value, [INFO] [stderr] 181 | | &None => return Err(WikibaseError::Serialization("Claim".to_string())) [INFO] [stderr] 182 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 179 | let claim_object = match json_claim.as_object() { [INFO] [stderr] 180 | Some(value) => value, [INFO] [stderr] 181 | None => return Err(WikibaseError::Serialization("Claim".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:194:21 [INFO] [stderr] | [INFO] [stderr] 194 | let main_snak = match &claim_object["mainsnak"].as_object() { [INFO] [stderr] | _____________________^ [INFO] [stderr] 195 | | &Some(snak_json) => { [INFO] [stderr] 196 | | snak_from_json(snak_json)? [INFO] [stderr] 197 | | } [INFO] [stderr] 198 | | &None => return Err(WikibaseError::Serialization("Main snak".to_string())) [INFO] [stderr] 199 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 194 | let main_snak = match claim_object["mainsnak"].as_object() { [INFO] [stderr] 195 | Some(snak_json) => { [INFO] [stderr] 196 | snak_from_json(snak_json)? [INFO] [stderr] 197 | } [INFO] [stderr] 198 | None => return Err(WikibaseError::Serialization("Main snak".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:203:5 [INFO] [stderr] | [INFO] [stderr] 203 | / match &claim_object.get("qualifiers") { [INFO] [stderr] 204 | | // Qualifiers are an object with property keys that contain [INFO] [stderr] 205 | | // an array of snaks. {"P817": [], ...} [INFO] [stderr] 206 | | &Some(qualifiers) => { [INFO] [stderr] ... | [INFO] [stderr] 209 | | &None => {} [INFO] [stderr] 210 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 203 | match claim_object.get("qualifiers") { [INFO] [stderr] 204 | // Qualifiers are an object with property keys that contain [INFO] [stderr] 205 | // an array of snaks. {"P817": [], ...} [INFO] [stderr] 206 | Some(qualifiers) => { [INFO] [stderr] 207 | claim.set_qualifier_snaks(snaks_object_from_json(&qualifiers)?); [INFO] [stderr] 208 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:212:5 [INFO] [stderr] | [INFO] [stderr] 212 | / match &claim_object.get("references") { [INFO] [stderr] 213 | | &Some(references_array_json) => { [INFO] [stderr] 214 | | claim.set_references(reference_array_from_json(&references_array_json)?); [INFO] [stderr] 215 | | } [INFO] [stderr] 216 | | &None => {} [INFO] [stderr] 217 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 212 | match claim_object.get("references") { [INFO] [stderr] 213 | Some(references_array_json) => { [INFO] [stderr] 214 | claim.set_references(reference_array_from_json(&references_array_json)?); [INFO] [stderr] 215 | } [INFO] [stderr] 216 | None => {} [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:252:23 [INFO] [stderr] | [INFO] [stderr] 252 | let lang_object = match &item[key].as_object() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 253 | | &Some(value) => value, [INFO] [stderr] 254 | | &None => return Err(WikibaseError::Serialization("Locale object".to_string())) [INFO] [stderr] 255 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 252 | let lang_object = match item[key].as_object() { [INFO] [stderr] 253 | Some(value) => value, [INFO] [stderr] 254 | None => return Err(WikibaseError::Serialization("Locale object".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:286:24 [INFO] [stderr] | [INFO] [stderr] 286 | let label_object = match &item.get(key) { [INFO] [stderr] | ________________________^ [INFO] [stderr] 287 | | &Some(value) => { [INFO] [stderr] 288 | | match value.as_object() { [INFO] [stderr] 289 | | Some(object) => object, [INFO] [stderr] ... | [INFO] [stderr] 293 | | &None => return Err(WikibaseError::Serialization(format!("Key \"{}\" not found in object", key))) [INFO] [stderr] 294 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 286 | let label_object = match item.get(key) { [INFO] [stderr] 287 | Some(value) => { [INFO] [stderr] 288 | match value.as_object() { [INFO] [stderr] 289 | Some(object) => object, [INFO] [stderr] 290 | None => return Err(WikibaseError::Serialization("Locale string object not valid".to_string())) [INFO] [stderr] 291 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:310:24 [INFO] [stderr] | [INFO] [stderr] 310 | let claims_array = match &item["claims"].as_object() { [INFO] [stderr] | ________________________^ [INFO] [stderr] 311 | | &Some(value) => value, [INFO] [stderr] 312 | | &None => return Err(WikibaseError::Serialization("Key \"claims\" missing in json object".to_string())) [INFO] [stderr] 313 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 310 | let claims_array = match item["claims"].as_object() { [INFO] [stderr] 311 | Some(value) => value, [INFO] [stderr] 312 | None => return Err(WikibaseError::Serialization("Key \"claims\" missing in json object".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:318:37 [INFO] [stderr] | [INFO] [stderr] 318 | let property_claims_array = match &property_claims.as_array() { [INFO] [stderr] | _____________________________________^ [INFO] [stderr] 319 | | &Some(value) => value, [INFO] [stderr] 320 | | &None => return Err(WikibaseError::Serialization("Claim array".to_string())) [INFO] [stderr] 321 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 318 | let property_claims_array = match property_claims.as_array() { [INFO] [stderr] 319 | Some(value) => value, [INFO] [stderr] 320 | None => return Err(WikibaseError::Serialization("Claim array".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:444:24 [INFO] [stderr] | [INFO] [stderr] 444 | let snaks_object = match &snaks_object_json.as_object() { [INFO] [stderr] | ________________________^ [INFO] [stderr] 445 | | &Some(value) => value, [INFO] [stderr] 446 | | &None => return Err(WikibaseError::Serialization("Can't serialize snaks object".to_string())) [INFO] [stderr] 447 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 444 | let snaks_object = match snaks_object_json.as_object() { [INFO] [stderr] 445 | Some(value) => value, [INFO] [stderr] 446 | None => return Err(WikibaseError::Serialization("Can't serialize snaks object".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:451:26 [INFO] [stderr] | [INFO] [stderr] 451 | let snak_array = match &property_snaks.as_array() { [INFO] [stderr] | __________________________^ [INFO] [stderr] 452 | | &Some(value) => value, [INFO] [stderr] 453 | | &None => return Err(WikibaseError::Serialization("Can't serialize snak array".to_string())) [INFO] [stderr] 454 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 451 | let snak_array = match property_snaks.as_array() { [INFO] [stderr] 452 | Some(value) => value, [INFO] [stderr] 453 | None => return Err(WikibaseError::Serialization("Can't serialize snak array".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:458:31 [INFO] [stderr] | [INFO] [stderr] 458 | let snak_object = match &snak_json.as_object() { [INFO] [stderr] | _______________________________^ [INFO] [stderr] 459 | | &Some(value) => value, [INFO] [stderr] 460 | | &None => return Err(WikibaseError::Serialization("Can't serialize snak object".to_string())) [INFO] [stderr] 461 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 458 | let snak_object = match snak_json.as_object() { [INFO] [stderr] 459 | Some(value) => value, [INFO] [stderr] 460 | None => return Err(WikibaseError::Serialization("Can't serialize snak object".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:479:27 [INFO] [stderr] | [INFO] [stderr] 479 | let reference_array = match &references_array_json.as_array() { [INFO] [stderr] | ___________________________^ [INFO] [stderr] 480 | | &Some(value) => value, [INFO] [stderr] 481 | | &None => return Err(WikibaseError::Serialization("Reference array".to_string())) [INFO] [stderr] 482 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 479 | let reference_array = match references_array_json.as_array() { [INFO] [stderr] 480 | Some(value) => value, [INFO] [stderr] 481 | None => return Err(WikibaseError::Serialization("Reference array".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:485:32 [INFO] [stderr] | [INFO] [stderr] 485 | let reference_object = match &references_object_json.as_object() { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 486 | | &Some(value) => value, [INFO] [stderr] 487 | | &None => return Err(WikibaseError::Serialization("Reference object".to_string())) [INFO] [stderr] 488 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 485 | let reference_object = match references_object_json.as_object() { [INFO] [stderr] 486 | Some(value) => value, [INFO] [stderr] 487 | None => return Err(WikibaseError::Serialization("Reference object".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:490:27 [INFO] [stderr] | [INFO] [stderr] 490 | let snaks_array = match &reference_object.get("snaks") { [INFO] [stderr] | ___________________________^ [INFO] [stderr] 491 | | &Some(value) => value, [INFO] [stderr] 492 | | &None => return Err(WikibaseError::Serialization("Reference snak object".to_string())) [INFO] [stderr] 493 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 490 | let snaks_array = match reference_object.get("snaks") { [INFO] [stderr] 491 | Some(value) => value, [INFO] [stderr] 492 | None => return Err(WikibaseError::Serialization("Reference snak object".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/from_json.rs:505:41 [INFO] [stderr] | [INFO] [stderr] 505 | fn string_vector_from_json(json_values: &Vec) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[serde_json::Value]` [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 don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:529:27 [INFO] [stderr] | [INFO] [stderr] 529 | let sitelinks_array = match &item.get("sitelinks") { [INFO] [stderr] | ___________________________^ [INFO] [stderr] 530 | | &Some(value) => { [INFO] [stderr] 531 | | match value.as_object() { [INFO] [stderr] 532 | | Some(value_object) => value_object, [INFO] [stderr] ... | [INFO] [stderr] 536 | | &None => return Ok(None) [INFO] [stderr] 537 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 529 | let sitelinks_array = match item.get("sitelinks") { [INFO] [stderr] 530 | Some(value) => { [INFO] [stderr] 531 | match value.as_object() { [INFO] [stderr] 532 | Some(value_object) => value_object, [INFO] [stderr] 533 | None => return Err(WikibaseError::Serialization("Key \"sitelinks\" missing in json object".to_string())) [INFO] [stderr] 534 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:542:31 [INFO] [stderr] | [INFO] [stderr] 542 | let sitelink_object = match &sitelink_object_json.as_object() { [INFO] [stderr] | _______________________________^ [INFO] [stderr] 543 | | &Some(value) => value, [INFO] [stderr] 544 | | &None => return Err(WikibaseError::Serialization("Error serializing sitelink object".to_string())) [INFO] [stderr] 545 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 542 | let sitelink_object = match sitelink_object_json.as_object() { [INFO] [stderr] 543 | Some(value) => value, [INFO] [stderr] 544 | None => return Err(WikibaseError::Serialization("Error serializing sitelink object".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:547:21 [INFO] [stderr] | [INFO] [stderr] 547 | let title = match &sitelink_object["title"].as_str() { [INFO] [stderr] | _____________________^ [INFO] [stderr] 548 | | &Some(value) => value, [INFO] [stderr] 549 | | &None => return Err(WikibaseError::Serialization("Error serializing sitelink title".to_string())) [INFO] [stderr] 550 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 547 | let title = match sitelink_object["title"].as_str() { [INFO] [stderr] 548 | Some(value) => value, [INFO] [stderr] 549 | None => return Err(WikibaseError::Serialization("Error serializing sitelink title".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/from_json.rs:552:22 [INFO] [stderr] | [INFO] [stderr] 552 | let badges = match &sitelink_object["badges"].as_array() { [INFO] [stderr] | ______________________^ [INFO] [stderr] 553 | | &Some(value) => { [INFO] [stderr] 554 | | string_vector_from_json(value)? [INFO] [stderr] 555 | | } [INFO] [stderr] 556 | | &None => return Err(WikibaseError::Serialization("Error serializing badges array".to_string())) [INFO] [stderr] 557 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 552 | let badges = match sitelink_object["badges"].as_array() { [INFO] [stderr] 553 | Some(value) => { [INFO] [stderr] 554 | string_vector_from_json(value)? [INFO] [stderr] 555 | } [INFO] [stderr] 556 | None => return Err(WikibaseError::Serialization("Error serializing badges array".to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/lib.rs:179:12 [INFO] [stderr] | [INFO] [stderr] 179 | if object["altitude"].is_null() == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!object["altitude"].is_null()` [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/lib.rs:203:12 [INFO] [stderr] | [INFO] [stderr] 203 | if object["precision"].is_null() == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!object["precision"].is_null()` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:556:9 [INFO] [stderr] | [INFO] [stderr] 556 | / match self { [INFO] [stderr] 557 | | &SnakType::Value => { [INFO] [stderr] 558 | | &"Value" [INFO] [stderr] 559 | | } [INFO] [stderr] ... | [INFO] [stderr] 565 | | } [INFO] [stderr] 566 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 556 | match *self { [INFO] [stderr] 557 | SnakType::Value => { [INFO] [stderr] 558 | &"Value" [INFO] [stderr] 559 | } [INFO] [stderr] 560 | SnakType::NoValue => { [INFO] [stderr] 561 | &"No Value" [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `Claim` [INFO] [stderr] --> src/lib.rs:1163:5 [INFO] [stderr] | [INFO] [stderr] 1163 | / pub fn new() -> Claim { [INFO] [stderr] 1164 | | Self { [INFO] [stderr] 1165 | | claim_type: "".to_string(), [INFO] [stderr] 1166 | | rank: "".to_string(), [INFO] [stderr] ... | [INFO] [stderr] 1170 | | } [INFO] [stderr] 1171 | | } [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] 396 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> tests/test_datatypes.rs:32:30 [INFO] [stderr] | [INFO] [stderr] 32 | coordinate.set_longitude(47.153333333333); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider: `47.153_333_333_333` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> tests/test_datatypes.rs:33:29 [INFO] [stderr] | [INFO] [stderr] 33 | coordinate.set_latitude(9.8219444444444); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider: `9.821_944_444_444_4` [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] --> tests/test_datatypes.rs:38:16 [INFO] [stderr] | [INFO] [stderr] 38 | assert_eq!(47.153333333333, *coordinate.longitude()); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider: `47.153_333_333_333` [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] --> tests/test_datatypes.rs:39:16 [INFO] [stderr] | [INFO] [stderr] 39 | assert_eq!(9.8219444444444, *coordinate.latitude()); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider: `9.821_944_444_444_4` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/test_datatypes.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | assert_eq!(100f64, coordinate.altitude().unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/test_datatypes.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | assert_eq!(100f64, coordinate.altitude().unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/test_datatypes.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | assert_eq!(6f64, *coordinate.longitude()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/test_datatypes.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | assert_eq!(6f64, *coordinate.longitude()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/test_datatypes.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | assert_eq!(12f64, *coordinate.latitude()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/test_datatypes.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | assert_eq!(12f64, *coordinate.latitude()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/test_datatypes.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | assert_eq!(0f64, coordinate.precision().unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/test_datatypes.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | assert_eq!(0f64, coordinate.precision().unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/test_datatypes.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | assert_eq!(200f64, coordinate.altitude().unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/test_datatypes.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | assert_eq!(200f64, coordinate.altitude().unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/test_datatypes.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | assert_eq!(47.153333333333, *coordinate.longitude()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/test_datatypes.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | assert_eq!(47.153333333333, *coordinate.longitude()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/test_datatypes.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | assert_eq!(9.8219444444444, *coordinate.latitude()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/test_datatypes.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | assert_eq!(9.8219444444444, *coordinate.latitude()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/test_datatypes.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | assert_eq!(10f64, coordinate.precision().unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/test_datatypes.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | assert_eq!(10f64, coordinate.precision().unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/test_datatypes.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | assert_eq!(3f64, *quantity.amount()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/test_datatypes.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | assert_eq!(3f64, *quantity.amount()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/test_datatypes.rs:69:5 [INFO] [stderr] | [INFO] [stderr] 69 | assert_eq!(1f64, quantity.lower_bound().unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/test_datatypes.rs:69:5 [INFO] [stderr] | [INFO] [stderr] 69 | assert_eq!(1f64, quantity.lower_bound().unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/test_datatypes.rs:71:5 [INFO] [stderr] | [INFO] [stderr] 71 | assert_eq!(5f64, quantity.upper_bound().unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/test_datatypes.rs:71:5 [INFO] [stderr] | [INFO] [stderr] 71 | assert_eq!(5f64, quantity.upper_bound().unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/test_datatypes.rs:78:5 [INFO] [stderr] | [INFO] [stderr] 78 | assert_eq!(150f64, *quantity.amount()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/test_datatypes.rs:78:5 [INFO] [stderr] | [INFO] [stderr] 78 | assert_eq!(150f64, *quantity.amount()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/test_datatypes.rs:79:5 [INFO] [stderr] | [INFO] [stderr] 79 | assert_eq!(100f64, quantity.lower_bound().unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/test_datatypes.rs:79:5 [INFO] [stderr] | [INFO] [stderr] 79 | assert_eq!(100f64, quantity.lower_bound().unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> tests/test_datatypes.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | assert_eq!(200f64, quantity.upper_bound().unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> tests/test_datatypes.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | assert_eq!(200f64, quantity.upper_bound().unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> tests/test_datatypes.rs:126:5 [INFO] [stderr] | [INFO] [stderr] 126 | / match data_value.value() { [INFO] [stderr] 127 | | &wikibase::Value::MonoLingual(ref returned_monolingual) => { [INFO] [stderr] 128 | | assert_eq!("Helsinki", returned_monolingual.text()); [INFO] [stderr] 129 | | assert_eq!("fi", returned_monolingual.language()); [INFO] [stderr] 130 | | } [INFO] [stderr] 131 | | _ => {} [INFO] [stderr] 132 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 126 | if let &wikibase::Value::MonoLingual(ref returned_monolingual) = data_value.value() { [INFO] [stderr] 127 | assert_eq!("Helsinki", returned_monolingual.text()); [INFO] [stderr] 128 | assert_eq!("fi", returned_monolingual.language()); [INFO] [stderr] 129 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> tests/test_datatypes.rs:126:5 [INFO] [stderr] | [INFO] [stderr] 126 | / match data_value.value() { [INFO] [stderr] 127 | | &wikibase::Value::MonoLingual(ref returned_monolingual) => { [INFO] [stderr] 128 | | assert_eq!("Helsinki", returned_monolingual.text()); [INFO] [stderr] 129 | | assert_eq!("fi", returned_monolingual.language()); [INFO] [stderr] 130 | | } [INFO] [stderr] 131 | | _ => {} [INFO] [stderr] 132 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 126 | match *data_value.value() { [INFO] [stderr] 127 | wikibase::Value::MonoLingual(ref returned_monolingual) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> tests/test_datatypes.rs:139:5 [INFO] [stderr] | [INFO] [stderr] 139 | / match data_value.value() { [INFO] [stderr] 140 | | &wikibase::Value::StringValue(ref string_value) => { [INFO] [stderr] 141 | | assert_eq!("София", string_value); [INFO] [stderr] 142 | | } [INFO] [stderr] 143 | | _ => {} [INFO] [stderr] 144 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 139 | if let &wikibase::Value::StringValue(ref string_value) = data_value.value() { [INFO] [stderr] 140 | assert_eq!("София", string_value); [INFO] [stderr] 141 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> tests/test_datatypes.rs:139:5 [INFO] [stderr] | [INFO] [stderr] 139 | / match data_value.value() { [INFO] [stderr] 140 | | &wikibase::Value::StringValue(ref string_value) => { [INFO] [stderr] 141 | | assert_eq!("София", string_value); [INFO] [stderr] 142 | | } [INFO] [stderr] 143 | | _ => {} [INFO] [stderr] 144 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 139 | match *data_value.value() { [INFO] [stderr] 140 | wikibase::Value::StringValue(ref string_value) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: aborting due to 14 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `wikibase`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: build failed [INFO] running `"docker" "inspect" "0504e5c437b9b1c261779644107b2456a24eff6119b9f6386cf811f36e89128c"` [INFO] running `"docker" "rm" "-f" "0504e5c437b9b1c261779644107b2456a24eff6119b9f6386cf811f36e89128c"` [INFO] [stdout] 0504e5c437b9b1c261779644107b2456a24eff6119b9f6386cf811f36e89128c