[INFO] crate iolaus 0.1.7 is already in cache [INFO] extracting crate iolaus 0.1.7 into work/ex/clippy-test-run/sources/stable/reg/iolaus/0.1.7 [INFO] extracting crate iolaus 0.1.7 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/iolaus/0.1.7 [INFO] validating manifest of iolaus-0.1.7 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 iolaus-0.1.7 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 iolaus-0.1.7 [INFO] finished frobbing iolaus-0.1.7 [INFO] frobbed toml for iolaus-0.1.7 written to work/ex/clippy-test-run/sources/stable/reg/iolaus/0.1.7/Cargo.toml [INFO] started frobbing iolaus-0.1.7 [INFO] finished frobbing iolaus-0.1.7 [INFO] frobbed toml for iolaus-0.1.7 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/iolaus/0.1.7/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 iolaus-0.1.7 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/iolaus/0.1.7:/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] 52b95a073b4201903281e808cd0ec18fdbe51233d4f0ff1010bf0fa4b8642b5c [INFO] running `"docker" "start" "-a" "52b95a073b4201903281e808cd0ec18fdbe51233d4f0ff1010bf0fa4b8642b5c"` [INFO] [stderr] Checking iolaus v0.1.7 (/opt/crater/workdir) [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/processors/formula_question.rs:167:5 [INFO] [stderr] | [INFO] [stderr] 167 | value [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/processors/formula_question.rs:163:17 [INFO] [stderr] | [INFO] [stderr] 163 | let value = match value_str.parse::() { [INFO] [stderr] | _________________^ [INFO] [stderr] 164 | | Ok(x) => x, [INFO] [stderr] 165 | | Err(_) => panic!("Erro ao interpretar valor: {}", stdout), [INFO] [stderr] 166 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/processors/formula_question.rs:167:5 [INFO] [stderr] | [INFO] [stderr] 167 | value [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/processors/formula_question.rs:163:17 [INFO] [stderr] | [INFO] [stderr] 163 | let value = match value_str.parse::() { [INFO] [stderr] | _________________^ [INFO] [stderr] 164 | | Ok(x) => x, [INFO] [stderr] 165 | | Err(_) => panic!("Erro ao interpretar valor: {}", stdout), [INFO] [stderr] 166 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:14:9 [INFO] [stderr] | [INFO] [stderr] 14 | let mut base_path = env::current_dir().expect("Erro #0001"); [INFO] [stderr] | ----^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:14:9 [INFO] [stderr] | [INFO] [stderr] 14 | let mut base_path = env::current_dir().expect("Erro #0001"); [INFO] [stderr] | ----^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/iolaus/utils.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | / match file.read_to_string(&mut contents) { [INFO] [stderr] 16 | | Err(why) => panic!( [INFO] [stderr] 17 | | "Erro ao acessar o arquivo {}: {}", [INFO] [stderr] 18 | | file_path.to_str().expect("Erro #0102"), [INFO] [stderr] ... | [INFO] [stderr] 21 | | Ok(_) => (), [INFO] [stderr] 22 | | }; [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] 15 | if let Err(why) = file.read_to_string(&mut contents) { panic!( [INFO] [stderr] 16 | "Erro ao acessar o arquivo {}: {}", [INFO] [stderr] 17 | file_path.to_str().expect("Erro #0102"), [INFO] [stderr] 18 | why [INFO] [stderr] 19 | ) }; [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/iolaus/utils.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | / match file.write_all(content.as_bytes()) { [INFO] [stderr] 33 | | Err(why) => panic!("erro ao escrever em {}: {}", display, why), [INFO] [stderr] 34 | | Ok(_) => (), [INFO] [stderr] 35 | | } [INFO] [stderr] | |_____^ help: try this: `if let Err(why) = file.write_all(content.as_bytes()) { panic!("erro ao escrever em {}: {}", display, why) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/parsers/exam_header.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | Err(_) => panic!("{}: formato YML inválido", file_path), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_wild_err_arm)] on by default [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/parsers/questions.rs:13:9 [INFO] [stderr] | [INFO] [stderr] 13 | Err(_) => panic!( [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/parsers/questions.rs:36:9 [INFO] [stderr] | [INFO] [stderr] 36 | Err(_) => panic!("{}: formato YML inválido", file_path), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/parsers/questions.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | / match doc["alternativas"].is_badvalue() { [INFO] [stderr] 41 | | true => parse_formula_question(doc, file_path), [INFO] [stderr] 42 | | false => parse_plain_question(doc, file_path, n_alternatives), [INFO] [stderr] 43 | | } [INFO] [stderr] | |_____^ help: consider using an if/else expression: `if doc["alternativas"].is_badvalue() { parse_formula_question(doc, file_path) } else { parse_plain_question(doc, file_path, n_alternatives) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/parsers/questions.rs:89:44 [INFO] [stderr] | [INFO] [stderr] 89 | fn parse_variables_range(range: &str, var: &String, node: &Yaml, file_path: &str) -> i32 { [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] error: this `if` has identical blocks [INFO] [stderr] --> src/parsers/questions.rs:133:45 [INFO] [stderr] | [INFO] [stderr] 133 | } else if v > &0i64 { [INFO] [stderr] | _____________________________________________^ [INFO] [stderr] 134 | | v.clone() as f32 [INFO] [stderr] 135 | | } else { [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/parsers/questions.rs:131:52 [INFO] [stderr] | [INFO] [stderr] 131 | if key == "casas_decimais" { [INFO] [stderr] | ____________________________________________________^ [INFO] [stderr] 132 | | v.clone() as f32 [INFO] [stderr] 133 | | } else if v > &0i64 { [INFO] [stderr] | |_________________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/parsers/questions.rs:132:29 [INFO] [stderr] | [INFO] [stderr] 132 | v.clone() as f32 [INFO] [stderr] | ^^^^^^^^^ help: try dereferencing it: `*v` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/parsers/questions.rs:133:35 [INFO] [stderr] | [INFO] [stderr] 133 | } else if v > &0i64 { [INFO] [stderr] | ^^^^----- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `0i64` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/parsers/questions.rs:134:29 [INFO] [stderr] | [INFO] [stderr] 134 | v.clone() as f32 [INFO] [stderr] | ^^^^^^^^^ help: try dereferencing it: `*v` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/parsers/students.rs:11:13 [INFO] [stderr] | [INFO] [stderr] 11 | counter = counter + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `counter += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/parsers/students.rs:18:42 [INFO] [stderr] | [INFO] [stderr] 18 | let splitted: Vec<&str> = line.split(",").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/parsers/config.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | Err(_) => panic!("{}: formato YML inválido", file_path), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/processors/exams.rs:13:9 [INFO] [stderr] | [INFO] [stderr] 13 | index = index + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `index += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/processors/formula_question.rs:6:20 [INFO] [stderr] | [INFO] [stderr] 6 | let decimals = raw_question [INFO] [stderr] | ____________________^ [INFO] [stderr] 7 | | .parameters [INFO] [stderr] 8 | | .get("casas_decimais") [INFO] [stderr] 9 | | .unwrap_or(&0f32) [INFO] [stderr] 10 | | .clone() as u8; [INFO] [stderr] | |________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 6 | let decimals = *raw_question [INFO] [stderr] 7 | .parameters [INFO] [stderr] 8 | .get("casas_decimais") [INFO] [stderr] 9 | .unwrap_or(&0f32) as u8; [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/processors/formula_question.rs:24:59 [INFO] [stderr] | [INFO] [stderr] 24 | fn format_stem(raw_question: &FormulaQuestion, variables: &Vec<(String, String)>) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[(String, String)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [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/processors/formula_question.rs:33:59 [INFO] [stderr] | [INFO] [stderr] 33 | fn format_alternatives(alternatives: Vec, variables: &Vec<(String, String)>) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[(String, String)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/processors/formula_question.rs:59:17 [INFO] [stderr] | [INFO] [stderr] 59 | counter = counter + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `counter += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/processors/formula_question.rs:63:17 [INFO] [stderr] | [INFO] [stderr] 63 | counter = counter + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `counter += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/processors/formula_question.rs:71:9 [INFO] [stderr] | [INFO] [stderr] 71 | index = index + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `index += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/processors/formula_question.rs:74:17 [INFO] [stderr] | [INFO] [stderr] 74 | index = index - 1 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `index -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/processors/formula_question.rs:84:35 [INFO] [stderr] | [INFO] [stderr] 84 | fn get_significant_figure(number: &String) -> u8 { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/iolaus/utils.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | / match file.read_to_string(&mut contents) { [INFO] [stderr] 16 | | Err(why) => panic!( [INFO] [stderr] 17 | | "Erro ao acessar o arquivo {}: {}", [INFO] [stderr] 18 | | file_path.to_str().expect("Erro #0102"), [INFO] [stderr] ... | [INFO] [stderr] 21 | | Ok(_) => (), [INFO] [stderr] 22 | | }; [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] 15 | if let Err(why) = file.read_to_string(&mut contents) { panic!( [INFO] [stderr] 16 | "Erro ao acessar o arquivo {}: {}", [INFO] [stderr] 17 | file_path.to_str().expect("Erro #0102"), [INFO] [stderr] 18 | why [INFO] [stderr] 19 | ) }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/processors/formula_question.rs:90:17 [INFO] [stderr] | [INFO] [stderr] 90 | counter = counter + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `counter += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/processors/formula_question.rs:94:17 [INFO] [stderr] | [INFO] [stderr] 94 | counter = counter + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `counter += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/processors/formula_question.rs:113:35 [INFO] [stderr] | [INFO] [stderr] 113 | let decimals_pow = 10f32.powi(decimals as i32); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `i32::from(decimals)` [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/iolaus/utils.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | / match file.write_all(content.as_bytes()) { [INFO] [stderr] 33 | | Err(why) => panic!("erro ao escrever em {}: {}", display, why), [INFO] [stderr] 34 | | Ok(_) => (), [INFO] [stderr] 35 | | } [INFO] [stderr] | |_____^ help: try this: `if let Err(why) = file.write_all(content.as_bytes()) { panic!("erro ao escrever em {}: {}", display, why) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/processors/formula_question.rs:114:21 [INFO] [stderr] | [INFO] [stderr] 114 | let delta_min = (raw_question.parameters.get("delta_min").unwrap_or(&1f32)).clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*(raw_question.parameters.get("delta_min").unwrap_or(&1f32))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/processors/formula_question.rs:115:21 [INFO] [stderr] | [INFO] [stderr] 115 | let delta_max = (raw_question.parameters.get("delta_max").unwrap_or(&10f32)).clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*(raw_question.parameters.get("delta_max").unwrap_or(&10f32))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/processors/formula_question.rs:134:16 [INFO] [stderr] | [INFO] [stderr] 134 | variables: &Vec<(String, String)>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[(String, String)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/parsers/exam_header.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | Err(_) => panic!("{}: formato YML inválido", file_path), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_wild_err_arm)] on by default [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/processors/formula_question.rs:142:12 [INFO] [stderr] | [INFO] [stderr] 142 | eval = eval + &raw_question.answer + &output; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `output` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/parsers/questions.rs:13:9 [INFO] [stderr] | [INFO] [stderr] 13 | Err(_) => panic!( [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/processors/formula_question.rs:165:9 [INFO] [stderr] | [INFO] [stderr] 165 | Err(_) => panic!("Erro ao interpretar valor: {}", stdout), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/processors/formula_question.rs:171:34 [INFO] [stderr] | [INFO] [stderr] 171 | let decimals_pow = 10i32.pow(decimals as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(decimals)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/parsers/questions.rs:36:9 [INFO] [stderr] | [INFO] [stderr] 36 | Err(_) => panic!("{}: formato YML inválido", file_path), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/parsers/questions.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | / match doc["alternativas"].is_badvalue() { [INFO] [stderr] 41 | | true => parse_formula_question(doc, file_path), [INFO] [stderr] 42 | | false => parse_plain_question(doc, file_path, n_alternatives), [INFO] [stderr] 43 | | } [INFO] [stderr] | |_____^ help: consider using an if/else expression: `if doc["alternativas"].is_badvalue() { parse_formula_question(doc, file_path) } else { parse_plain_question(doc, file_path, n_alternatives) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [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/output/answers_tex.rs:5:69 [INFO] [stderr] | [INFO] [stderr] 5 | pub fn create(base_path: &PathBuf, exam_header: &ExamHeader, exams: &Vec) { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Exam]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/output/answers_tex.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | counter = counter + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `counter += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/parsers/questions.rs:89:44 [INFO] [stderr] | [INFO] [stderr] 89 | fn parse_variables_range(range: &str, var: &String, node: &Yaml, file_path: &str) -> i32 { [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: called `ok().expect()` on a Result value. You can call `expect` directly on the `Result` [INFO] [stderr] --> src/output/pdf.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | / io::stdout() [INFO] [stderr] 44 | | .flush() [INFO] [stderr] 45 | | .ok() [INFO] [stderr] 46 | | .expect("Could not flush stdout #1"); [INFO] [stderr] | |____________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ok_expect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ok_expect [INFO] [stderr] [INFO] [stderr] warning: called `ok().expect()` on a Result value. You can call `expect` directly on the `Result` [INFO] [stderr] --> src/output/pdf.rs:63:5 [INFO] [stderr] | [INFO] [stderr] 63 | / io::stdout() [INFO] [stderr] 64 | | .flush() [INFO] [stderr] 65 | | .ok() [INFO] [stderr] 66 | | .expect("Could not flush stdout #2"); [INFO] [stderr] | |____________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ok_expect [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/output/exam_tex.rs:8:12 [INFO] [stderr] | [INFO] [stderr] 8 | exams: &Vec, [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Exam]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/parsers/questions.rs:133:45 [INFO] [stderr] | [INFO] [stderr] 133 | } else if v > &0i64 { [INFO] [stderr] | _____________________________________________^ [INFO] [stderr] 134 | | v.clone() as f32 [INFO] [stderr] 135 | | } else { [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/parsers/questions.rs:131:52 [INFO] [stderr] | [INFO] [stderr] 131 | if key == "casas_decimais" { [INFO] [stderr] | ____________________________________________________^ [INFO] [stderr] 132 | | v.clone() as f32 [INFO] [stderr] 133 | | } else if v > &0i64 { [INFO] [stderr] | |_________________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/parsers/questions.rs:132:29 [INFO] [stderr] | [INFO] [stderr] 132 | v.clone() as f32 [INFO] [stderr] | ^^^^^^^^^ help: try dereferencing it: `*v` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/parsers/questions.rs:133:35 [INFO] [stderr] | [INFO] [stderr] 133 | } else if v > &0i64 { [INFO] [stderr] | ^^^^----- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `0i64` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/parsers/questions.rs:134:29 [INFO] [stderr] | [INFO] [stderr] 134 | v.clone() as f32 [INFO] [stderr] | ^^^^^^^^^ help: try dereferencing it: `*v` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/output/exam_tex.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | counter = counter + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `counter += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/output/exam_tex.rs:43:37 [INFO] [stderr] | [INFO] [stderr] 43 | fn create_bubbles(bubbles_template: &String, n_questions: usize) -> String { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/output/exam_tex.rs:52:24 [INFO] [stderr] | [INFO] [stderr] 52 | question_template: &String, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change this to [INFO] [stderr] | [INFO] [stderr] 52 | question_template: &str, [INFO] [stderr] | ^^^^ [INFO] [stderr] help: change `question_template.clone()` to [INFO] [stderr] | [INFO] [stderr] 59 | let mut question_tpl = question_template.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/output/exam_tex.rs:53:27 [INFO] [stderr] | [INFO] [stderr] 53 | alternative_template: &String, [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [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/output/exam_tex.rs:54:16 [INFO] [stderr] | [INFO] [stderr] 54 | questions: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Question]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/output/exam_tex.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | counter = counter + 1 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `counter += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/parsers/students.rs:11:13 [INFO] [stderr] | [INFO] [stderr] 11 | counter = counter + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `counter += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/parsers/students.rs:18:42 [INFO] [stderr] | [INFO] [stderr] 18 | let splitted: Vec<&str> = line.split(",").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/parsers/config.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | Err(_) => panic!("{}: formato YML inválido", file_path), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/processors/exams.rs:13:9 [INFO] [stderr] | [INFO] [stderr] 13 | index = index + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `index += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/processors/formula_question.rs:6:20 [INFO] [stderr] | [INFO] [stderr] 6 | let decimals = raw_question [INFO] [stderr] | ____________________^ [INFO] [stderr] 7 | | .parameters [INFO] [stderr] 8 | | .get("casas_decimais") [INFO] [stderr] 9 | | .unwrap_or(&0f32) [INFO] [stderr] 10 | | .clone() as u8; [INFO] [stderr] | |________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 6 | let decimals = *raw_question [INFO] [stderr] 7 | .parameters [INFO] [stderr] 8 | .get("casas_decimais") [INFO] [stderr] 9 | .unwrap_or(&0f32) as u8; [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/processors/formula_question.rs:24:59 [INFO] [stderr] | [INFO] [stderr] 24 | fn format_stem(raw_question: &FormulaQuestion, variables: &Vec<(String, String)>) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[(String, String)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [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/processors/formula_question.rs:33:59 [INFO] [stderr] | [INFO] [stderr] 33 | fn format_alternatives(alternatives: Vec, variables: &Vec<(String, String)>) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[(String, String)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/processors/formula_question.rs:59:17 [INFO] [stderr] | [INFO] [stderr] 59 | counter = counter + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `counter += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/processors/formula_question.rs:63:17 [INFO] [stderr] | [INFO] [stderr] 63 | counter = counter + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `counter += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/processors/formula_question.rs:71:9 [INFO] [stderr] | [INFO] [stderr] 71 | index = index + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `index += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/processors/formula_question.rs:74:17 [INFO] [stderr] | [INFO] [stderr] 74 | index = index - 1 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `index -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/processors/formula_question.rs:84:35 [INFO] [stderr] | [INFO] [stderr] 84 | fn get_significant_figure(number: &String) -> u8 { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/processors/formula_question.rs:90:17 [INFO] [stderr] | [INFO] [stderr] 90 | counter = counter + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `counter += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/processors/formula_question.rs:94:17 [INFO] [stderr] | [INFO] [stderr] 94 | counter = counter + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `counter += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/processors/formula_question.rs:113:35 [INFO] [stderr] | [INFO] [stderr] 113 | let decimals_pow = 10f32.powi(decimals as i32); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `i32::from(decimals)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/processors/formula_question.rs:114:21 [INFO] [stderr] | [INFO] [stderr] 114 | let delta_min = (raw_question.parameters.get("delta_min").unwrap_or(&1f32)).clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*(raw_question.parameters.get("delta_min").unwrap_or(&1f32))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/processors/formula_question.rs:115:21 [INFO] [stderr] | [INFO] [stderr] 115 | let delta_max = (raw_question.parameters.get("delta_max").unwrap_or(&10f32)).clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*(raw_question.parameters.get("delta_max").unwrap_or(&10f32))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/processors/formula_question.rs:134:16 [INFO] [stderr] | [INFO] [stderr] 134 | variables: &Vec<(String, String)>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[(String, String)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] error: Could not compile `iolaus`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/processors/formula_question.rs:142:12 [INFO] [stderr] | [INFO] [stderr] 142 | eval = eval + &raw_question.answer + &output; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `output` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/processors/formula_question.rs:165:9 [INFO] [stderr] | [INFO] [stderr] 165 | Err(_) => panic!("Erro ao interpretar valor: {}", stdout), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/processors/formula_question.rs:171:34 [INFO] [stderr] | [INFO] [stderr] 171 | let decimals_pow = 10i32.pow(decimals as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(decimals)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/output/answers_tex.rs:5:69 [INFO] [stderr] | [INFO] [stderr] 5 | pub fn create(base_path: &PathBuf, exam_header: &ExamHeader, exams: &Vec) { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Exam]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/output/answers_tex.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | counter = counter + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `counter += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: called `ok().expect()` on a Result value. You can call `expect` directly on the `Result` [INFO] [stderr] --> src/output/pdf.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | / io::stdout() [INFO] [stderr] 44 | | .flush() [INFO] [stderr] 45 | | .ok() [INFO] [stderr] 46 | | .expect("Could not flush stdout #1"); [INFO] [stderr] | |____________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ok_expect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ok_expect [INFO] [stderr] [INFO] [stderr] warning: called `ok().expect()` on a Result value. You can call `expect` directly on the `Result` [INFO] [stderr] --> src/output/pdf.rs:63:5 [INFO] [stderr] | [INFO] [stderr] 63 | / io::stdout() [INFO] [stderr] 64 | | .flush() [INFO] [stderr] 65 | | .ok() [INFO] [stderr] 66 | | .expect("Could not flush stdout #2"); [INFO] [stderr] | |____________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ok_expect [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/output/exam_tex.rs:8:12 [INFO] [stderr] | [INFO] [stderr] 8 | exams: &Vec, [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Exam]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/output/exam_tex.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | counter = counter + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `counter += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/output/exam_tex.rs:43:37 [INFO] [stderr] | [INFO] [stderr] 43 | fn create_bubbles(bubbles_template: &String, n_questions: usize) -> String { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/output/exam_tex.rs:52:24 [INFO] [stderr] | [INFO] [stderr] 52 | question_template: &String, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change this to [INFO] [stderr] | [INFO] [stderr] 52 | question_template: &str, [INFO] [stderr] | ^^^^ [INFO] [stderr] help: change `question_template.clone()` to [INFO] [stderr] | [INFO] [stderr] 59 | let mut question_tpl = question_template.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/output/exam_tex.rs:53:27 [INFO] [stderr] | [INFO] [stderr] 53 | alternative_template: &String, [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [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/output/exam_tex.rs:54:16 [INFO] [stderr] | [INFO] [stderr] 54 | questions: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Question]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/output/exam_tex.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | counter = counter + 1 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `counter += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `iolaus`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "52b95a073b4201903281e808cd0ec18fdbe51233d4f0ff1010bf0fa4b8642b5c"` [INFO] running `"docker" "rm" "-f" "52b95a073b4201903281e808cd0ec18fdbe51233d4f0ff1010bf0fa4b8642b5c"` [INFO] [stdout] 52b95a073b4201903281e808cd0ec18fdbe51233d4f0ff1010bf0fa4b8642b5c