[INFO] crate rusoto_codegen 0.8.0 is already in cache [INFO] extracting crate rusoto_codegen 0.8.0 into work/ex/clippy-test-run/sources/stable/reg/rusoto_codegen/0.8.0 [INFO] extracting crate rusoto_codegen 0.8.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rusoto_codegen/0.8.0 [INFO] validating manifest of rusoto_codegen-0.8.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 rusoto_codegen-0.8.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 rusoto_codegen-0.8.0 [INFO] finished frobbing rusoto_codegen-0.8.0 [INFO] frobbed toml for rusoto_codegen-0.8.0 written to work/ex/clippy-test-run/sources/stable/reg/rusoto_codegen/0.8.0/Cargo.toml [INFO] started frobbing rusoto_codegen-0.8.0 [INFO] finished frobbing rusoto_codegen-0.8.0 [INFO] frobbed toml for rusoto_codegen-0.8.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rusoto_codegen/0.8.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 rusoto_codegen-0.8.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/rusoto_codegen/0.8.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] b49008f2de002724a2fe1ff4547ff3a98c01c46e722abf6dce0183be2c5b47be [INFO] running `"docker" "start" "-a" "b49008f2de002724a2fe1ff4547ff3a98c01c46e722abf6dce0183be2c5b47be"` [INFO] [stderr] Checking Inflector v0.7.0 [INFO] [stderr] Checking rusoto_codegen v0.8.0 (/opt/crater/workdir) [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/generator/tests.rs:11:28 [INFO] [stderr] | [INFO] [stderr] 11 | const BOTOCORE_TESTS_DIR: &'static str = concat!(env!("CARGO_MANIFEST_DIR"), [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/generator/tests.rs:13:23 [INFO] [stderr] | [INFO] [stderr] 13 | const OUR_TESTS_DIR: &'static str = concat!(env!("CARGO_MANIFEST_DIR"), "/tests/unit/responses/"); [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [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:27:22 [INFO] [stderr] | [INFO] [stderr] 27 | const BOTOCORE_DIR: &'static str = concat!(env!("CARGO_MANIFEST_DIR"), "/botocore/botocore/data/"); [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:52:5 [INFO] [stderr] | [INFO] [stderr] 52 | return 1; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/generator/tests.rs:11:28 [INFO] [stderr] | [INFO] [stderr] 11 | const BOTOCORE_TESTS_DIR: &'static str = concat!(env!("CARGO_MANIFEST_DIR"), [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/generator/tests.rs:13:23 [INFO] [stderr] | [INFO] [stderr] 13 | const OUR_TESTS_DIR: &'static str = concat!(env!("CARGO_MANIFEST_DIR"), "/tests/unit/responses/"); [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [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:27:22 [INFO] [stderr] | [INFO] [stderr] 27 | const BOTOCORE_DIR: &'static str = concat!(env!("CARGO_MANIFEST_DIR"), "/botocore/botocore/data/"); [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:52:5 [INFO] [stderr] | [INFO] [stderr] 52 | return 1; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/generator/error_types.rs:74:23 [INFO] [stderr] | [INFO] [stderr] 74 | .unwrap_or(String::from("")), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| String::from(""))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/generator/error_types.rs:77:27 [INFO] [stderr] | [INFO] [stderr] 77 | .unwrap_or(String::from(""))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| String::from(""))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/generator/json.rs:36:72 [INFO] [stderr] | [INFO] [stderr] 36 | documentation = generate_documentation(operation).unwrap_or("".to_owned()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_owned())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/generator/json.rs:41:27 [INFO] [stderr] | [INFO] [stderr] 41 | .unwrap_or("".to_owned()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_owned())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/generator/query.rs:305:47 [INFO] [stderr] | [INFO] [stderr] 305 | fn serialize_primitive_expression(shape_type: &ShapeType, var_name: &str) -> String { [INFO] [stderr] | ^^^^^^^^^^ help: consider passing by value instead: `ShapeType` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/generator/rest_json.rs:75:67 [INFO] [stderr] | [INFO] [stderr] 75 | documentation = generate_documentation(operation).unwrap_or("".to_owned()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_owned())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/generator/rest_json.rs:78:82 [INFO] [stderr] | [INFO] [stderr] 78 | modify_endpoint_prefix = generate_endpoint_modification(service).unwrap_or("".to_owned()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_owned())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/generator/tests.rs:24:56 [INFO] [stderr] | [INFO] [stderr] 24 | tests_body = generate_tests_body(service).unwrap_or("".to_string())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_string())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/generator/tests.rs:30:40 [INFO] [stderr] | [INFO] [stderr] 30 | let our_responses: Vec = responses.values() [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 31 | | .into_iter() [INFO] [stderr] | |____________________^ help: consider removing `.into_iter()`: `responses.values()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/generator/tests.rs:58:5 [INFO] [stderr] | [INFO] [stderr] 58 | / if maybe_operation.is_none() { [INFO] [stderr] 59 | | return None; [INFO] [stderr] 60 | | } [INFO] [stderr] | |_____^ help: replace_it_with: `maybe_operation?;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::question_mark)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/generator/rest_xml.rs:63:27 [INFO] [stderr] | [INFO] [stderr] 63 | .unwrap_or("".to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_string())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/generator/rest_xml.rs:65:27 [INFO] [stderr] | [INFO] [stderr] 65 | .unwrap_or("".to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_string())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/generator/rest_xml.rs:66:73 [INFO] [stderr] | [INFO] [stderr] 66 | set_headers = generate_headers(service, operation).unwrap_or("".to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_string())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/generator/rest_xml.rs:68:27 [INFO] [stderr] | [INFO] [stderr] 68 | .unwrap_or("".to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_string())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/generator/rest_xml.rs:163:5 [INFO] [stderr] | [INFO] [stderr] 163 | / if operation.input.is_none() { [INFO] [stderr] 164 | | return None; [INFO] [stderr] 165 | | } [INFO] [stderr] | |_____^ help: replace_it_with: `operation.input?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: statement with no effect [INFO] [stderr] --> src/generator/rest_xml.rs:166:5 [INFO] [stderr] | [INFO] [stderr] 166 | "let mut payload: Option> = None;"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::no_effect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/generator/rest_xml.rs:185:5 [INFO] [stderr] | [INFO] [stderr] 185 | / if operation.input.is_none() { [INFO] [stderr] 186 | | return None; [INFO] [stderr] 187 | | } [INFO] [stderr] | |_____^ help: replace_it_with: `operation.input?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/generator/rest_xml.rs:192:9 [INFO] [stderr] | [INFO] [stderr] 192 | / if member.location.is_none() { [INFO] [stderr] 193 | | return None; [INFO] [stderr] 194 | | } [INFO] [stderr] | |_________^ help: replace_it_with: `member.location?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/generator/rest_xml.rs:214:5 [INFO] [stderr] | [INFO] [stderr] 214 | / if operation.input.is_none() { [INFO] [stderr] 215 | | return None; [INFO] [stderr] 216 | | } [INFO] [stderr] | |_____^ help: replace_it_with: `operation.input?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/generator/rest_xml.rs:221:9 [INFO] [stderr] | [INFO] [stderr] 221 | / if member.location.is_none() { [INFO] [stderr] 222 | | return None; [INFO] [stderr] 223 | | } [INFO] [stderr] | |_________^ help: replace_it_with: `member.location?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/generator/rest_xml.rs:246:5 [INFO] [stderr] | [INFO] [stderr] 246 | / if operation.input.is_none() { [INFO] [stderr] 247 | | return None; [INFO] [stderr] 248 | | } [INFO] [stderr] | |_____^ help: replace_it_with: `operation.input?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/generator/xml_payload_parser.rs:81:23 [INFO] [stderr] | [INFO] [stderr] 81 | let deserialize = match result_wrapper { [INFO] [stderr] | _______________________^ [INFO] [stderr] 82 | | &Some(ref tag_name) => { [INFO] [stderr] 83 | | format!("try!(start_element(&actual_tag_name, &mut stack)); [INFO] [stderr] 84 | | result = try!({output_shape}Deserializer::deserialize(\"{tag_name}\", &mut stack)); [INFO] [stderr] ... | [INFO] [stderr] 93 | | } [INFO] [stderr] 94 | | }; [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] 81 | let deserialize = match *result_wrapper { [INFO] [stderr] 82 | Some(ref tag_name) => { [INFO] [stderr] 83 | format!("try!(start_element(&actual_tag_name, &mut stack)); [INFO] [stderr] 84 | result = try!({output_shape}Deserializer::deserialize(\"{tag_name}\", &mut stack)); [INFO] [stderr] 85 | skip_tree(&mut stack); [INFO] [stderr] 86 | try!(end_element(&actual_tag_name, &mut stack));", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/generator/xml_payload_parser.rs:118:5 [INFO] [stderr] | [INFO] [stderr] 118 | / match (&service.metadata.endpoint_prefix[..], name) { [INFO] [stderr] 119 | | ("s3", "GetBucketLocationOutput") => { [INFO] [stderr] 120 | | // override custom deserializer [INFO] [stderr] 121 | | let struct_field_deserializers = shape.members [INFO] [stderr] ... | [INFO] [stderr] 141 | | _ => {}, [INFO] [stderr] 142 | | } [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] 118 | if let ("s3", "GetBucketLocationOutput") = (&service.metadata.endpoint_prefix[..], name) { [INFO] [stderr] 119 | // override custom deserializer [INFO] [stderr] 120 | let struct_field_deserializers = shape.members [INFO] [stderr] 121 | .as_ref() [INFO] [stderr] 122 | .unwrap() [INFO] [stderr] 123 | .iter() [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `.filter_map` can be written more simply using `.map` [INFO] [stderr] --> src/generator/xml_payload_parser.rs:121:46 [INFO] [stderr] | [INFO] [stderr] 121 | let struct_field_deserializers = shape.members [INFO] [stderr] | ______________________________________________^ [INFO] [stderr] 122 | | .as_ref() [INFO] [stderr] 123 | | .unwrap() [INFO] [stderr] 124 | | .iter() [INFO] [stderr] ... | [INFO] [stderr] 131 | | &member_name.to_string()))) [INFO] [stderr] 132 | | }) [INFO] [stderr] | |__________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_filter_map)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_filter_map [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/generator/xml_payload_parser.rs:394:58 [INFO] [stderr] | [INFO] [stderr] 394 | location_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: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/generator/rest_response_parser.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | / if operation.output.is_none() { [INFO] [stderr] 10 | | return None; [INFO] [stderr] 11 | | } [INFO] [stderr] | |_____^ help: replace_it_with: `operation.output?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: the `shape_type @ _` pattern can be written as just `shape_type` [INFO] [stderr] --> src/generator/rest_response_parser.rs:45:9 [INFO] [stderr] | [INFO] [stderr] 45 | shape_type @ _ => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/generator/mod.rs:66:49 [INFO] [stderr] | [INFO] [stderr] 66 | let output_file = File::create(output_path).expect(&format!( [INFO] [stderr] | _________________________________________________^ [INFO] [stderr] 67 | | "Couldn't open file for writing: {:?}", [INFO] [stderr] 68 | | output_path, [INFO] [stderr] 69 | | )); [INFO] [stderr] | |______^ help: try this: `unwrap_or_else(|_| panic!("Couldn't open file for writing: {:?}", output_path))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::expect_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/generator/mod.rs:157:24 [INFO] [stderr] | [INFO] [stderr] 157 | service_name = match &service.metadata.service_abbreviation { [INFO] [stderr] | ________________________^ [INFO] [stderr] 158 | | &Some(ref service_abbreviation) => service_abbreviation.as_str(), [INFO] [stderr] 159 | | &None => service.metadata.service_full_name.as_ref() [INFO] [stderr] 160 | | }, [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] 157 | service_name = match service.metadata.service_abbreviation { [INFO] [stderr] 158 | Some(ref service_abbreviation) => service_abbreviation.as_str(), [INFO] [stderr] 159 | None => service.metadata.service_full_name.as_ref() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/generator/error_types.rs:74:23 [INFO] [stderr] | [INFO] [stderr] 74 | .unwrap_or(String::from("")), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| String::from(""))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/generator/error_types.rs:77:27 [INFO] [stderr] | [INFO] [stderr] 77 | .unwrap_or(String::from(""))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| String::from(""))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/lib.rs:56:45 [INFO] [stderr] | [INFO] [stderr] 56 | let input_file = File::open(input_path).expect(&format!( [INFO] [stderr] | _____________________________________________^ [INFO] [stderr] 57 | | "{:?} not found", [INFO] [stderr] 58 | | input_path, [INFO] [stderr] 59 | | )); [INFO] [stderr] | |______^ help: try this: `unwrap_or_else(|_| panic!("{:?} not found", input_path))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/lib.rs:63:84 [INFO] [stderr] | [INFO] [stderr] 63 | let service: BotocoreService = serde_json::from_reader(service_data_as_reader).expect(&format!( [INFO] [stderr] | ____________________________________________________________________________________^ [INFO] [stderr] 64 | | "Could not convert JSON in {:?} to Service", [INFO] [stderr] 65 | | input_path, [INFO] [stderr] 66 | | )); [INFO] [stderr] | |______^ help: try this: `unwrap_or_else(|_| panic!("Could not convert JSON in {:?} to Service", input_path))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/generator/json.rs:36:72 [INFO] [stderr] | [INFO] [stderr] 36 | documentation = generate_documentation(operation).unwrap_or("".to_owned()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_owned())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/generator/json.rs:41:27 [INFO] [stderr] | [INFO] [stderr] 41 | .unwrap_or("".to_owned()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_owned())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/generator/query.rs:305:47 [INFO] [stderr] | [INFO] [stderr] 305 | fn serialize_primitive_expression(shape_type: &ShapeType, var_name: &str) -> String { [INFO] [stderr] | ^^^^^^^^^^ help: consider passing by value instead: `ShapeType` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/generator/rest_json.rs:75:67 [INFO] [stderr] | [INFO] [stderr] 75 | documentation = generate_documentation(operation).unwrap_or("".to_owned()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_owned())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/generator/rest_json.rs:78:82 [INFO] [stderr] | [INFO] [stderr] 78 | modify_endpoint_prefix = generate_endpoint_modification(service).unwrap_or("".to_owned()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_owned())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/generator/tests.rs:24:56 [INFO] [stderr] | [INFO] [stderr] 24 | tests_body = generate_tests_body(service).unwrap_or("".to_string())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_string())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/generator/tests.rs:30:40 [INFO] [stderr] | [INFO] [stderr] 30 | let our_responses: Vec = responses.values() [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 31 | | .into_iter() [INFO] [stderr] | |____________________^ help: consider removing `.into_iter()`: `responses.values()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/generator/tests.rs:58:5 [INFO] [stderr] | [INFO] [stderr] 58 | / if maybe_operation.is_none() { [INFO] [stderr] 59 | | return None; [INFO] [stderr] 60 | | } [INFO] [stderr] | |_____^ help: replace_it_with: `maybe_operation?;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::question_mark)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/generator/rest_xml.rs:63:27 [INFO] [stderr] | [INFO] [stderr] 63 | .unwrap_or("".to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_string())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/generator/rest_xml.rs:65:27 [INFO] [stderr] | [INFO] [stderr] 65 | .unwrap_or("".to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_string())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/generator/rest_xml.rs:66:73 [INFO] [stderr] | [INFO] [stderr] 66 | set_headers = generate_headers(service, operation).unwrap_or("".to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_string())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/generator/rest_xml.rs:68:27 [INFO] [stderr] | [INFO] [stderr] 68 | .unwrap_or("".to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_string())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/generator/rest_xml.rs:163:5 [INFO] [stderr] | [INFO] [stderr] 163 | / if operation.input.is_none() { [INFO] [stderr] 164 | | return None; [INFO] [stderr] 165 | | } [INFO] [stderr] | |_____^ help: replace_it_with: `operation.input?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: statement with no effect [INFO] [stderr] --> src/generator/rest_xml.rs:166:5 [INFO] [stderr] | [INFO] [stderr] 166 | "let mut payload: Option> = None;"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::no_effect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/generator/rest_xml.rs:185:5 [INFO] [stderr] | [INFO] [stderr] 185 | / if operation.input.is_none() { [INFO] [stderr] 186 | | return None; [INFO] [stderr] 187 | | } [INFO] [stderr] | |_____^ help: replace_it_with: `operation.input?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/generator/rest_xml.rs:192:9 [INFO] [stderr] | [INFO] [stderr] 192 | / if member.location.is_none() { [INFO] [stderr] 193 | | return None; [INFO] [stderr] 194 | | } [INFO] [stderr] | |_________^ help: replace_it_with: `member.location?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/generator/rest_xml.rs:214:5 [INFO] [stderr] | [INFO] [stderr] 214 | / if operation.input.is_none() { [INFO] [stderr] 215 | | return None; [INFO] [stderr] 216 | | } [INFO] [stderr] | |_____^ help: replace_it_with: `operation.input?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/generator/rest_xml.rs:221:9 [INFO] [stderr] | [INFO] [stderr] 221 | / if member.location.is_none() { [INFO] [stderr] 222 | | return None; [INFO] [stderr] 223 | | } [INFO] [stderr] | |_________^ help: replace_it_with: `member.location?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/generator/rest_xml.rs:246:5 [INFO] [stderr] | [INFO] [stderr] 246 | / if operation.input.is_none() { [INFO] [stderr] 247 | | return None; [INFO] [stderr] 248 | | } [INFO] [stderr] | |_____^ help: replace_it_with: `operation.input?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/generator/xml_payload_parser.rs:81:23 [INFO] [stderr] | [INFO] [stderr] 81 | let deserialize = match result_wrapper { [INFO] [stderr] | _______________________^ [INFO] [stderr] 82 | | &Some(ref tag_name) => { [INFO] [stderr] 83 | | format!("try!(start_element(&actual_tag_name, &mut stack)); [INFO] [stderr] 84 | | result = try!({output_shape}Deserializer::deserialize(\"{tag_name}\", &mut stack)); [INFO] [stderr] ... | [INFO] [stderr] 93 | | } [INFO] [stderr] 94 | | }; [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] 81 | let deserialize = match *result_wrapper { [INFO] [stderr] 82 | Some(ref tag_name) => { [INFO] [stderr] 83 | format!("try!(start_element(&actual_tag_name, &mut stack)); [INFO] [stderr] 84 | result = try!({output_shape}Deserializer::deserialize(\"{tag_name}\", &mut stack)); [INFO] [stderr] 85 | skip_tree(&mut stack); [INFO] [stderr] 86 | try!(end_element(&actual_tag_name, &mut stack));", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/generator/xml_payload_parser.rs:118:5 [INFO] [stderr] | [INFO] [stderr] 118 | / match (&service.metadata.endpoint_prefix[..], name) { [INFO] [stderr] 119 | | ("s3", "GetBucketLocationOutput") => { [INFO] [stderr] 120 | | // override custom deserializer [INFO] [stderr] 121 | | let struct_field_deserializers = shape.members [INFO] [stderr] ... | [INFO] [stderr] 141 | | _ => {}, [INFO] [stderr] 142 | | } [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] 118 | if let ("s3", "GetBucketLocationOutput") = (&service.metadata.endpoint_prefix[..], name) { [INFO] [stderr] 119 | // override custom deserializer [INFO] [stderr] 120 | let struct_field_deserializers = shape.members [INFO] [stderr] 121 | .as_ref() [INFO] [stderr] 122 | .unwrap() [INFO] [stderr] 123 | .iter() [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `.filter_map` can be written more simply using `.map` [INFO] [stderr] --> src/generator/xml_payload_parser.rs:121:46 [INFO] [stderr] | [INFO] [stderr] 121 | let struct_field_deserializers = shape.members [INFO] [stderr] | ______________________________________________^ [INFO] [stderr] 122 | | .as_ref() [INFO] [stderr] 123 | | .unwrap() [INFO] [stderr] 124 | | .iter() [INFO] [stderr] ... | [INFO] [stderr] 131 | | &member_name.to_string()))) [INFO] [stderr] 132 | | }) [INFO] [stderr] | |__________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_filter_map)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_filter_map [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/generator/xml_payload_parser.rs:394:58 [INFO] [stderr] | [INFO] [stderr] 394 | location_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: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/generator/rest_response_parser.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | / if operation.output.is_none() { [INFO] [stderr] 10 | | return None; [INFO] [stderr] 11 | | } [INFO] [stderr] | |_____^ help: replace_it_with: `operation.output?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: the `shape_type @ _` pattern can be written as just `shape_type` [INFO] [stderr] --> src/generator/rest_response_parser.rs:45:9 [INFO] [stderr] | [INFO] [stderr] 45 | shape_type @ _ => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/generator/mod.rs:66:49 [INFO] [stderr] | [INFO] [stderr] 66 | let output_file = File::create(output_path).expect(&format!( [INFO] [stderr] | _________________________________________________^ [INFO] [stderr] 67 | | "Couldn't open file for writing: {:?}", [INFO] [stderr] 68 | | output_path, [INFO] [stderr] 69 | | )); [INFO] [stderr] | |______^ help: try this: `unwrap_or_else(|_| panic!("Couldn't open file for writing: {:?}", output_path))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::expect_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/generator/mod.rs:157:24 [INFO] [stderr] | [INFO] [stderr] 157 | service_name = match &service.metadata.service_abbreviation { [INFO] [stderr] | ________________________^ [INFO] [stderr] 158 | | &Some(ref service_abbreviation) => service_abbreviation.as_str(), [INFO] [stderr] 159 | | &None => service.metadata.service_full_name.as_ref() [INFO] [stderr] 160 | | }, [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] 157 | service_name = match service.metadata.service_abbreviation { [INFO] [stderr] 158 | Some(ref service_abbreviation) => service_abbreviation.as_str(), [INFO] [stderr] 159 | None => service.metadata.service_full_name.as_ref() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/lib.rs:56:45 [INFO] [stderr] | [INFO] [stderr] 56 | let input_file = File::open(input_path).expect(&format!( [INFO] [stderr] | _____________________________________________^ [INFO] [stderr] 57 | | "{:?} not found", [INFO] [stderr] 58 | | input_path, [INFO] [stderr] 59 | | )); [INFO] [stderr] | |______^ help: try this: `unwrap_or_else(|_| panic!("{:?} not found", input_path))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/lib.rs:63:84 [INFO] [stderr] | [INFO] [stderr] 63 | let service: BotocoreService = serde_json::from_reader(service_data_as_reader).expect(&format!( [INFO] [stderr] | ____________________________________________________________________________________^ [INFO] [stderr] 64 | | "Could not convert JSON in {:?} to Service", [INFO] [stderr] 65 | | input_path, [INFO] [stderr] 66 | | )); [INFO] [stderr] | |______^ help: try this: `unwrap_or_else(|_| panic!("Could not convert JSON in {:?} to Service", input_path))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 8.20s [INFO] running `"docker" "inspect" "b49008f2de002724a2fe1ff4547ff3a98c01c46e722abf6dce0183be2c5b47be"` [INFO] running `"docker" "rm" "-f" "b49008f2de002724a2fe1ff4547ff3a98c01c46e722abf6dce0183be2c5b47be"` [INFO] [stdout] b49008f2de002724a2fe1ff4547ff3a98c01c46e722abf6dce0183be2c5b47be