[INFO] fetching crate keysort 0.1.0-alpha.2C... [INFO] testing keysort-0.1.0-alpha.2C against beta-2022-04-10 for beta-1.61-1 [INFO] extracting crate keysort 0.1.0-alpha.2C into /workspace/builds/worker-102/source [INFO] validating manifest of crates.io crate keysort 0.1.0-alpha.2C on toolchain beta-2022-04-10 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate keysort 0.1.0-alpha.2C [INFO] finished tweaking crates.io crate keysort 0.1.0-alpha.2C [INFO] tweaked toml for crates.io crate keysort 0.1.0-alpha.2C written to /workspace/builds/worker-102/source/Cargo.toml [INFO] crate crates.io crate keysort 0.1.0-alpha.2C already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-102/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-102/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 7aee645031a0b558957115fde9d3ae176e037f073d2a64f48cf13ba337191485 [INFO] running `Command { std: "docker" "start" "-a" "7aee645031a0b558957115fde9d3ae176e037f073d2a64f48cf13ba337191485", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "7aee645031a0b558957115fde9d3ae176e037f073d2a64f48cf13ba337191485", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7aee645031a0b558957115fde9d3ae176e037f073d2a64f48cf13ba337191485", kill_on_drop: false }` [INFO] [stdout] 7aee645031a0b558957115fde9d3ae176e037f073d2a64f48cf13ba337191485 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-102/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-102/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b9937c9603dea36871075703f96f5e3ad27f34b1430f5222de714fe695f45db7 [INFO] running `Command { std: "docker" "start" "-a" "b9937c9603dea36871075703f96f5e3ad27f34b1430f5222de714fe695f45db7", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Compiling libc v0.2.106 [INFO] [stderr] Compiling log v0.4.14 [INFO] [stderr] Compiling parking_lot_core v0.8.5 [INFO] [stderr] Compiling signal-hook v0.3.10 [INFO] [stderr] Compiling smallvec v1.7.0 [INFO] [stderr] Compiling fs_extra v1.2.0 [INFO] [stderr] Compiling lock_api v0.4.5 [INFO] [stderr] Compiling signal-hook-registry v1.4.0 [INFO] [stderr] Compiling mio v0.7.14 [INFO] [stderr] Compiling parking_lot v0.11.2 [INFO] [stderr] Compiling signal-hook-mio v0.2.1 [INFO] [stderr] Compiling crossterm v0.22.1 [INFO] [stderr] Compiling keysort v0.1.0-alpha.2C (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/main.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::path::{self, Path, PathBuf}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `fs_extra::error::*` [INFO] [stdout] --> src/main.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use fs_extra::error::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `thread`, `time` [INFO] [stdout] --> src/main.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | use std::{thread, time}; [INFO] [stdout] | ^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TryRecvError`, `self` [INFO] [stdout] --> src/main.rs:9:23 [INFO] [stdout] | [INFO] [stdout] 9 | use std::sync::mpsc::{self, TryRecvError}; [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `QueueableCommand`, `cursor` [INFO] [stdout] --> src/main.rs:10:17 [INFO] [stdout] | [INFO] [stdout] 10 | use crossterm::{QueueableCommand, cursor}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/main.rs:11:24 [INFO] [stdout] | [INFO] [stdout] 11 | use std::{io::{stdout, Write}}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sourceFiles` [INFO] [stdout] --> src/main.rs:51:13 [INFO] [stdout] | [INFO] [stdout] 51 | let mut sourceFiles = String::new(); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sourceFiles` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inputResult` [INFO] [stdout] --> src/main.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | let mut inputResult = String::new(); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_inputResult` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `resultTuple` is never read [INFO] [stdout] --> src/main.rs:54:13 [INFO] [stdout] | [INFO] [stdout] 54 | let mut resultTuple = (String::new(), true); //If all files and folders are in the same directory, true if yes [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `process_info` [INFO] [stdout] --> src/main.rs:185:34 [INFO] [stdout] | [INFO] [stdout] 185 | let handleDir = |process_info: fs_extra::dir::TransitProcess| { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_process_info` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `process_info` [INFO] [stdout] --> src/main.rs:198:35 [INFO] [stdout] | [INFO] [stdout] 198 | let handleFile = |process_info: fs_extra::file::TransitProcess| { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_process_info` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `iter` [INFO] [stdout] --> src/main.rs:154:13 [INFO] [stdout] | [INFO] [stdout] 154 | let mut iter = destDirs.iter(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_iter` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stdout` [INFO] [stdout] --> src/main.rs:158:13 [INFO] [stdout] | [INFO] [stdout] 158 | let mut stdout = stdout(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stdout` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 51 | let mut sourceFiles = String::new(); [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | let mut inputResult = String::new(); [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:96:25 [INFO] [stdout] | [INFO] [stdout] 96 | let mut result = moveContent(&sourceContents[i], &option, &destDirs, true); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:110:25 [INFO] [stdout] | [INFO] [stdout] 110 | let mut result = moveContent(&sourceContents[i], &option, &destDirs, false); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:154:9 [INFO] [stdout] | [INFO] [stdout] 154 | let mut iter = destDirs.iter(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:158:9 [INFO] [stdout] | [INFO] [stdout] 158 | let mut stdout = stdout(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:212:21 [INFO] [stdout] | [INFO] [stdout] 212 | let mut destPath = destPath.join(source.file_name().unwrap()); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `destFolders` should have a snake case name [INFO] [stdout] --> src/main.rs:16:13 [INFO] [stdout] | [INFO] [stdout] 16 | let mut destFolders = String::new(); [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `dest_folders` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `destFolders` should have a snake case name [INFO] [stdout] --> src/main.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | let destFolders: Vec = dirListFormat(&destFolders); [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `dest_folders` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `destDirs` should have a snake case name [INFO] [stdout] --> src/main.rs:22:13 [INFO] [stdout] | [INFO] [stdout] 22 | let mut destDirs: Vec> = Vec::new(); // 2d Vector of destination directories [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `dest_dirs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `destFolder` should have a snake case name [INFO] [stdout] --> src/main.rs:25:13 [INFO] [stdout] | [INFO] [stdout] 25 | let destFolder = Path::new(&destFolders[i]); [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `dest_folder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `charInput` should have a snake case name [INFO] [stdout] --> src/main.rs:32:21 [INFO] [stdout] | [INFO] [stdout] 32 | let mut charInput = String::new(); [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `char_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `charInput` should have a snake case name [INFO] [stdout] --> src/main.rs:34:17 [INFO] [stdout] | [INFO] [stdout] 34 | let charInput: char = charInput.trim().chars().next().unwrap(); [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `char_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `sourceFiles` should have a snake case name [INFO] [stdout] --> src/main.rs:51:13 [INFO] [stdout] | [INFO] [stdout] 51 | let mut sourceFiles = String::new(); [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `source_files` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `inputResult` should have a snake case name [INFO] [stdout] --> src/main.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | let mut inputResult = String::new(); [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `input_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `resultTuple` should have a snake case name [INFO] [stdout] --> src/main.rs:54:13 [INFO] [stdout] | [INFO] [stdout] 54 | let mut resultTuple = (String::new(), true); //If all files and folders are in the same directory, true if yes [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `result_tuple` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `sourceContents` should have a snake case name [INFO] [stdout] --> src/main.rs:73:13 [INFO] [stdout] | [INFO] [stdout] 73 | let mut sourceContents: Vec = vec![]; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `source_contents` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `sourceFolderContents` should have a snake case name [INFO] [stdout] --> src/main.rs:81:13 [INFO] [stdout] | [INFO] [stdout] 81 | let sourceFolderContents = fs::read_dir(&source[0]).expect("Failed to read directory"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `source_folder_contents` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sourceFileInput` should have a snake case name [INFO] [stdout] --> src/main.rs:128:4 [INFO] [stdout] | [INFO] [stdout] 128 | fn sourceFileInput(option: &mut String) -> (String, bool){ [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `source_file_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `sourceDir` should have a snake case name [INFO] [stdout] --> src/main.rs:129:13 [INFO] [stdout] | [INFO] [stdout] 129 | let mut sourceDir = String::new(); [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `source_dir` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `sourceOption` should have a snake case name [INFO] [stdout] --> src/main.rs:130:13 [INFO] [stdout] | [INFO] [stdout] 130 | let mut sourceOption = true; [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `source_option` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `moveContent` should have a snake case name [INFO] [stdout] --> src/main.rs:152:4 [INFO] [stdout] | [INFO] [stdout] 152 | fn moveContent(source: &PathBuf, dest: &str, destDirs: &Vec>, mode: bool) -> bool{ // mode: true = folder, false = file [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `move_content` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `destDirs` should have a snake case name [INFO] [stdout] --> src/main.rs:152:46 [INFO] [stdout] | [INFO] [stdout] 152 | fn moveContent(source: &PathBuf, dest: &str, destDirs: &Vec>, mode: bool) -> bool{ // mode: true = folder, false = file [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `dest_dirs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `destFound` should have a snake case name [INFO] [stdout] --> src/main.rs:156:13 [INFO] [stdout] | [INFO] [stdout] 156 | let mut destFound = false; [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `dest_found` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `destPath` should have a snake case name [INFO] [stdout] --> src/main.rs:157:13 [INFO] [stdout] | [INFO] [stdout] 157 | let mut destPath = PathBuf::new(); [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `dest_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `copyOptionsDir` should have a snake case name [INFO] [stdout] --> src/main.rs:159:9 [INFO] [stdout] | [INFO] [stdout] 159 | let copyOptionsDir = fs_extra::dir::CopyOptions::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `copy_options_dir` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `copyOptionsFile` should have a snake case name [INFO] [stdout] --> src/main.rs:160:9 [INFO] [stdout] | [INFO] [stdout] 160 | let copyOptionsFile = fs_extra::file::CopyOptions{ [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `copy_options_file` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `handleDir` should have a snake case name [INFO] [stdout] --> src/main.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | let handleDir = |process_info: fs_extra::dir::TransitProcess| { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `handle_dir` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `handleFile` should have a snake case name [INFO] [stdout] --> src/main.rs:198:21 [INFO] [stdout] | [INFO] [stdout] 198 | let handleFile = |process_info: fs_extra::file::TransitProcess| { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `handle_file` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::path::Path::join` that must be used [INFO] [stdout] --> src/main.rs:209:21 [INFO] [stdout] | [INFO] [stdout] 209 | destPath.join("/"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `destPath` should have a snake case name [INFO] [stdout] --> src/main.rs:212:25 [INFO] [stdout] | [INFO] [stdout] 212 | let mut destPath = destPath.join(source.file_name().unwrap()); [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `dest_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dirListFormat` should have a snake case name [INFO] [stdout] --> src/main.rs:222:4 [INFO] [stdout] | [INFO] [stdout] 222 | fn dirListFormat(dir: &str) -> Vec{ [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `dir_list_format` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `dirList` should have a snake case name [INFO] [stdout] --> src/main.rs:223:9 [INFO] [stdout] | [INFO] [stdout] 223 | let dirList = dir.to_string(); [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `dir_list` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `dirList` should have a snake case name [INFO] [stdout] --> src/main.rs:224:9 [INFO] [stdout] | [INFO] [stdout] 224 | let dirList = dirList.replace("\\ ", " "); [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `dir_list` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `dirList` should have a snake case name [INFO] [stdout] --> src/main.rs:225:9 [INFO] [stdout] | [INFO] [stdout] 225 | let dirList = dirList.replace("\\", ""); [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `dir_list` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `dirList` should have a snake case name [INFO] [stdout] --> src/main.rs:226:9 [INFO] [stdout] | [INFO] [stdout] 226 | let dirList = dirList.replace(" /", " //"); [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `dir_list` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `dirList` should have a snake case name [INFO] [stdout] --> src/main.rs:227:9 [INFO] [stdout] | [INFO] [stdout] 227 | let dirList: Vec = dirList.trim().split(" /").map(|x| x.to_string()).collect(); [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `dir_list` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 50 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 6.45s [INFO] running `Command { std: "docker" "inspect" "b9937c9603dea36871075703f96f5e3ad27f34b1430f5222de714fe695f45db7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b9937c9603dea36871075703f96f5e3ad27f34b1430f5222de714fe695f45db7", kill_on_drop: false }` [INFO] [stdout] b9937c9603dea36871075703f96f5e3ad27f34b1430f5222de714fe695f45db7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-102/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-102/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f721955ce05f815a4ec60368deca551b97931eec7bd7f2a23d9049ba8450a0b9 [INFO] running `Command { std: "docker" "start" "-a" "f721955ce05f815a4ec60368deca551b97931eec7bd7f2a23d9049ba8450a0b9", kill_on_drop: false }` [INFO] [stderr] Compiling keysort v0.1.0-alpha.2C (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/main.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::path::{self, Path, PathBuf}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `fs_extra::error::*` [INFO] [stdout] --> src/main.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use fs_extra::error::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `thread`, `time` [INFO] [stdout] --> src/main.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | use std::{thread, time}; [INFO] [stdout] | ^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TryRecvError`, `self` [INFO] [stdout] --> src/main.rs:9:23 [INFO] [stdout] | [INFO] [stdout] 9 | use std::sync::mpsc::{self, TryRecvError}; [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `QueueableCommand`, `cursor` [INFO] [stdout] --> src/main.rs:10:17 [INFO] [stdout] | [INFO] [stdout] 10 | use crossterm::{QueueableCommand, cursor}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/main.rs:11:24 [INFO] [stdout] | [INFO] [stdout] 11 | use std::{io::{stdout, Write}}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sourceFiles` [INFO] [stdout] --> src/main.rs:51:13 [INFO] [stdout] | [INFO] [stdout] 51 | let mut sourceFiles = String::new(); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sourceFiles` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inputResult` [INFO] [stdout] --> src/main.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | let mut inputResult = String::new(); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_inputResult` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `resultTuple` is never read [INFO] [stdout] --> src/main.rs:54:13 [INFO] [stdout] | [INFO] [stdout] 54 | let mut resultTuple = (String::new(), true); //If all files and folders are in the same directory, true if yes [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `process_info` [INFO] [stdout] --> src/main.rs:185:34 [INFO] [stdout] | [INFO] [stdout] 185 | let handleDir = |process_info: fs_extra::dir::TransitProcess| { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_process_info` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `process_info` [INFO] [stdout] --> src/main.rs:198:35 [INFO] [stdout] | [INFO] [stdout] 198 | let handleFile = |process_info: fs_extra::file::TransitProcess| { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_process_info` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `iter` [INFO] [stdout] --> src/main.rs:154:13 [INFO] [stdout] | [INFO] [stdout] 154 | let mut iter = destDirs.iter(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_iter` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stdout` [INFO] [stdout] --> src/main.rs:158:13 [INFO] [stdout] | [INFO] [stdout] 158 | let mut stdout = stdout(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stdout` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 51 | let mut sourceFiles = String::new(); [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | let mut inputResult = String::new(); [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:96:25 [INFO] [stdout] | [INFO] [stdout] 96 | let mut result = moveContent(&sourceContents[i], &option, &destDirs, true); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:110:25 [INFO] [stdout] | [INFO] [stdout] 110 | let mut result = moveContent(&sourceContents[i], &option, &destDirs, false); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:154:9 [INFO] [stdout] | [INFO] [stdout] 154 | let mut iter = destDirs.iter(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:158:9 [INFO] [stdout] | [INFO] [stdout] 158 | let mut stdout = stdout(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:212:21 [INFO] [stdout] | [INFO] [stdout] 212 | let mut destPath = destPath.join(source.file_name().unwrap()); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `destFolders` should have a snake case name [INFO] [stdout] --> src/main.rs:16:13 [INFO] [stdout] | [INFO] [stdout] 16 | let mut destFolders = String::new(); [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `dest_folders` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `destFolders` should have a snake case name [INFO] [stdout] --> src/main.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | let destFolders: Vec = dirListFormat(&destFolders); [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `dest_folders` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `destDirs` should have a snake case name [INFO] [stdout] --> src/main.rs:22:13 [INFO] [stdout] | [INFO] [stdout] 22 | let mut destDirs: Vec> = Vec::new(); // 2d Vector of destination directories [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `dest_dirs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `destFolder` should have a snake case name [INFO] [stdout] --> src/main.rs:25:13 [INFO] [stdout] | [INFO] [stdout] 25 | let destFolder = Path::new(&destFolders[i]); [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `dest_folder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `charInput` should have a snake case name [INFO] [stdout] --> src/main.rs:32:21 [INFO] [stdout] | [INFO] [stdout] 32 | let mut charInput = String::new(); [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `char_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `charInput` should have a snake case name [INFO] [stdout] --> src/main.rs:34:17 [INFO] [stdout] | [INFO] [stdout] 34 | let charInput: char = charInput.trim().chars().next().unwrap(); [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `char_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `sourceFiles` should have a snake case name [INFO] [stdout] --> src/main.rs:51:13 [INFO] [stdout] | [INFO] [stdout] 51 | let mut sourceFiles = String::new(); [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `source_files` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `inputResult` should have a snake case name [INFO] [stdout] --> src/main.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | let mut inputResult = String::new(); [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `input_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `resultTuple` should have a snake case name [INFO] [stdout] --> src/main.rs:54:13 [INFO] [stdout] | [INFO] [stdout] 54 | let mut resultTuple = (String::new(), true); //If all files and folders are in the same directory, true if yes [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `result_tuple` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `sourceContents` should have a snake case name [INFO] [stdout] --> src/main.rs:73:13 [INFO] [stdout] | [INFO] [stdout] 73 | let mut sourceContents: Vec = vec![]; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `source_contents` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `sourceFolderContents` should have a snake case name [INFO] [stdout] --> src/main.rs:81:13 [INFO] [stdout] | [INFO] [stdout] 81 | let sourceFolderContents = fs::read_dir(&source[0]).expect("Failed to read directory"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `source_folder_contents` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sourceFileInput` should have a snake case name [INFO] [stdout] --> src/main.rs:128:4 [INFO] [stdout] | [INFO] [stdout] 128 | fn sourceFileInput(option: &mut String) -> (String, bool){ [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `source_file_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `sourceDir` should have a snake case name [INFO] [stdout] --> src/main.rs:129:13 [INFO] [stdout] | [INFO] [stdout] 129 | let mut sourceDir = String::new(); [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `source_dir` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `sourceOption` should have a snake case name [INFO] [stdout] --> src/main.rs:130:13 [INFO] [stdout] | [INFO] [stdout] 130 | let mut sourceOption = true; [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `source_option` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `moveContent` should have a snake case name [INFO] [stdout] --> src/main.rs:152:4 [INFO] [stdout] | [INFO] [stdout] 152 | fn moveContent(source: &PathBuf, dest: &str, destDirs: &Vec>, mode: bool) -> bool{ // mode: true = folder, false = file [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `move_content` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `destDirs` should have a snake case name [INFO] [stdout] --> src/main.rs:152:46 [INFO] [stdout] | [INFO] [stdout] 152 | fn moveContent(source: &PathBuf, dest: &str, destDirs: &Vec>, mode: bool) -> bool{ // mode: true = folder, false = file [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `dest_dirs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `destFound` should have a snake case name [INFO] [stdout] --> src/main.rs:156:13 [INFO] [stdout] | [INFO] [stdout] 156 | let mut destFound = false; [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `dest_found` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `destPath` should have a snake case name [INFO] [stdout] --> src/main.rs:157:13 [INFO] [stdout] | [INFO] [stdout] 157 | let mut destPath = PathBuf::new(); [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `dest_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `copyOptionsDir` should have a snake case name [INFO] [stdout] --> src/main.rs:159:9 [INFO] [stdout] | [INFO] [stdout] 159 | let copyOptionsDir = fs_extra::dir::CopyOptions::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `copy_options_dir` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `copyOptionsFile` should have a snake case name [INFO] [stdout] --> src/main.rs:160:9 [INFO] [stdout] | [INFO] [stdout] 160 | let copyOptionsFile = fs_extra::file::CopyOptions{ [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `copy_options_file` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `handleDir` should have a snake case name [INFO] [stdout] --> src/main.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | let handleDir = |process_info: fs_extra::dir::TransitProcess| { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `handle_dir` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `handleFile` should have a snake case name [INFO] [stdout] --> src/main.rs:198:21 [INFO] [stdout] | [INFO] [stdout] 198 | let handleFile = |process_info: fs_extra::file::TransitProcess| { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `handle_file` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::path::Path::join` that must be used [INFO] [stdout] --> src/main.rs:209:21 [INFO] [stdout] | [INFO] [stdout] 209 | destPath.join("/"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `destPath` should have a snake case name [INFO] [stdout] --> src/main.rs:212:25 [INFO] [stdout] | [INFO] [stdout] 212 | let mut destPath = destPath.join(source.file_name().unwrap()); [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `dest_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dirListFormat` should have a snake case name [INFO] [stdout] --> src/main.rs:222:4 [INFO] [stdout] | [INFO] [stdout] 222 | fn dirListFormat(dir: &str) -> Vec{ [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `dir_list_format` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `dirList` should have a snake case name [INFO] [stdout] --> src/main.rs:223:9 [INFO] [stdout] | [INFO] [stdout] 223 | let dirList = dir.to_string(); [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `dir_list` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `dirList` should have a snake case name [INFO] [stdout] --> src/main.rs:224:9 [INFO] [stdout] | [INFO] [stdout] 224 | let dirList = dirList.replace("\\ ", " "); [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `dir_list` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `dirList` should have a snake case name [INFO] [stdout] --> src/main.rs:225:9 [INFO] [stdout] | [INFO] [stdout] 225 | let dirList = dirList.replace("\\", ""); [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `dir_list` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `dirList` should have a snake case name [INFO] [stdout] --> src/main.rs:226:9 [INFO] [stdout] | [INFO] [stdout] 226 | let dirList = dirList.replace(" /", " //"); [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `dir_list` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `dirList` should have a snake case name [INFO] [stdout] --> src/main.rs:227:9 [INFO] [stdout] | [INFO] [stdout] 227 | let dirList: Vec = dirList.trim().split(" /").map(|x| x.to_string()).collect(); [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `dir_list` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 50 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 1.23s [INFO] [stderr] Executable unittests src/main.rs (/opt/rustwide/target/debug/deps/keysort-7d627e6356095874) [INFO] running `Command { std: "docker" "inspect" "f721955ce05f815a4ec60368deca551b97931eec7bd7f2a23d9049ba8450a0b9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f721955ce05f815a4ec60368deca551b97931eec7bd7f2a23d9049ba8450a0b9", kill_on_drop: false }` [INFO] [stdout] f721955ce05f815a4ec60368deca551b97931eec7bd7f2a23d9049ba8450a0b9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-102/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-102/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 60ac14ba94a85ecb768590a83e6e4cbd40776ae530f5d88bb1a5b46769120db2 [INFO] running `Command { std: "docker" "start" "-a" "60ac14ba94a85ecb768590a83e6e4cbd40776ae530f5d88bb1a5b46769120db2", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] warning: unused import: `self` [INFO] [stderr] --> src/main.rs:3:17 [INFO] [stderr] | [INFO] [stderr] 3 | use std::path::{self, Path, PathBuf}; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `fs_extra::error::*` [INFO] [stderr] --> src/main.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use fs_extra::error::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `thread`, `time` [INFO] [stderr] --> src/main.rs:8:11 [INFO] [stderr] | [INFO] [stderr] 8 | use std::{thread, time}; [INFO] [stderr] | ^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `TryRecvError`, `self` [INFO] [stderr] --> src/main.rs:9:23 [INFO] [stderr] | [INFO] [stderr] 9 | use std::sync::mpsc::{self, TryRecvError}; [INFO] [stderr] | ^^^^ ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `QueueableCommand`, `cursor` [INFO] [stderr] --> src/main.rs:10:17 [INFO] [stderr] | [INFO] [stderr] 10 | use crossterm::{QueueableCommand, cursor}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Write` [INFO] [stderr] --> src/main.rs:11:24 [INFO] [stderr] | [INFO] [stderr] 11 | use std::{io::{stdout, Write}}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sourceFiles` [INFO] [stderr] --> src/main.rs:51:13 [INFO] [stderr] | [INFO] [stderr] 51 | let mut sourceFiles = String::new(); [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sourceFiles` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `inputResult` [INFO] [stderr] --> src/main.rs:53:13 [INFO] [stderr] | [INFO] [stderr] 53 | let mut inputResult = String::new(); [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_inputResult` [INFO] [stderr] [INFO] [stderr] warning: value assigned to `resultTuple` is never read [INFO] [stderr] --> src/main.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | let mut resultTuple = (String::new(), true); //If all files and folders are in the same directory, true if yes [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_assignments)]` on by default [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `process_info` [INFO] [stderr] --> src/main.rs:185:34 [INFO] [stderr] | [INFO] [stderr] 185 | let handleDir = |process_info: fs_extra::dir::TransitProcess| { [INFO] [stderr] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_process_info` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `process_info` [INFO] [stderr] --> src/main.rs:198:35 [INFO] [stderr] | [INFO] [stderr] 198 | let handleFile = |process_info: fs_extra::file::TransitProcess| { [INFO] [stderr] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_process_info` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `iter` [INFO] [stderr] --> src/main.rs:154:13 [INFO] [stderr] | [INFO] [stderr] 154 | let mut iter = destDirs.iter(); [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_iter` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `stdout` [INFO] [stderr] --> src/main.rs:158:13 [INFO] [stderr] | [INFO] [stderr] 158 | let mut stdout = stdout(); [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stdout` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:51:9 [INFO] [stderr] | [INFO] [stderr] 51 | let mut sourceFiles = String::new(); [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:53:9 [INFO] [stderr] | [INFO] [stderr] 53 | let mut inputResult = String::new(); [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:96:25 [INFO] [stderr] | [INFO] [stderr] 96 | let mut result = moveContent(&sourceContents[i], &option, &destDirs, true); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:110:25 [INFO] [stderr] | [INFO] [stderr] 110 | let mut result = moveContent(&sourceContents[i], &option, &destDirs, false); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:154:9 [INFO] [stderr] | [INFO] [stderr] 154 | let mut iter = destDirs.iter(); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:158:9 [INFO] [stderr] | [INFO] [stderr] 158 | let mut stdout = stdout(); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:212:21 [INFO] [stderr] | [INFO] [stderr] 212 | let mut destPath = destPath.join(source.file_name().unwrap()); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable `destFolders` should have a snake case name [INFO] [stderr] --> src/main.rs:16:13 [INFO] [stderr] | [INFO] [stderr] 16 | let mut destFolders = String::new(); [INFO] [stderr] | ^^^^^^^^^^^ help: convert the identifier to snake case: `dest_folders` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_snake_case)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable `destFolders` should have a snake case name [INFO] [stderr] --> src/main.rs:20:9 [INFO] [stderr] | [INFO] [stderr] 20 | let destFolders: Vec = dirListFormat(&destFolders); [INFO] [stderr] | ^^^^^^^^^^^ help: convert the identifier to snake case: `dest_folders` [INFO] [stderr] [INFO] [stderr] warning: variable `destDirs` should have a snake case name [INFO] [stderr] --> src/main.rs:22:13 [INFO] [stderr] | [INFO] [stderr] 22 | let mut destDirs: Vec> = Vec::new(); // 2d Vector of destination directories [INFO] [stderr] | ^^^^^^^^ help: convert the identifier to snake case: `dest_dirs` [INFO] [stderr] [INFO] [stderr] warning: variable `destFolder` should have a snake case name [INFO] [stderr] --> src/main.rs:25:13 [INFO] [stderr] | [INFO] [stderr] 25 | let destFolder = Path::new(&destFolders[i]); [INFO] [stderr] | ^^^^^^^^^^ help: convert the identifier to snake case: `dest_folder` [INFO] [stderr] [INFO] [stderr] warning: variable `charInput` should have a snake case name [INFO] [stderr] --> src/main.rs:32:21 [INFO] [stderr] | [INFO] [stderr] 32 | let mut charInput = String::new(); [INFO] [stderr] | ^^^^^^^^^ help: convert the identifier to snake case: `char_input` [INFO] [stderr] [INFO] [stderr] warning: variable `charInput` should have a snake case name [INFO] [stderr] --> src/main.rs:34:17 [INFO] [stderr] | [INFO] [stderr] 34 | let charInput: char = charInput.trim().chars().next().unwrap(); [INFO] [stderr] | ^^^^^^^^^ help: convert the identifier to snake case: `char_input` [INFO] [stderr] [INFO] [stderr] warning: variable `sourceFiles` should have a snake case name [INFO] [stderr] --> src/main.rs:51:13 [INFO] [stderr] | [INFO] [stderr] 51 | let mut sourceFiles = String::new(); [INFO] [stderr] | ^^^^^^^^^^^ help: convert the identifier to snake case: `source_files` [INFO] [stderr] [INFO] [stderr] warning: variable `inputResult` should have a snake case name [INFO] [stderr] --> src/main.rs:53:13 [INFO] [stderr] | [INFO] [stderr] 53 | let mut inputResult = String::new(); [INFO] [stderr] | ^^^^^^^^^^^ help: convert the identifier to snake case: `input_result` [INFO] [stderr] [INFO] [stderr] warning: variable `resultTuple` should have a snake case name [INFO] [stderr] --> src/main.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | let mut resultTuple = (String::new(), true); //If all files and folders are in the same directory, true if yes [INFO] [stderr] | ^^^^^^^^^^^ help: convert the identifier to snake case: `result_tuple` [INFO] [stderr] [INFO] [stderr] warning: variable `sourceContents` should have a snake case name [INFO] [stderr] --> src/main.rs:73:13 [INFO] [stderr] | [INFO] [stderr] 73 | let mut sourceContents: Vec = vec![]; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `source_contents` [INFO] [stderr] [INFO] [stderr] warning: variable `sourceFolderContents` should have a snake case name [INFO] [stderr] --> src/main.rs:81:13 [INFO] [stderr] | [INFO] [stderr] 81 | let sourceFolderContents = fs::read_dir(&source[0]).expect("Failed to read directory"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `source_folder_contents` [INFO] [stderr] [INFO] [stderr] warning: function `sourceFileInput` should have a snake case name [INFO] [stderr] --> src/main.rs:128:4 [INFO] [stderr] | [INFO] [stderr] 128 | fn sourceFileInput(option: &mut String) -> (String, bool){ [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `source_file_input` [INFO] [stderr] [INFO] [stderr] warning: variable `sourceDir` should have a snake case name [INFO] [stderr] --> src/main.rs:129:13 [INFO] [stderr] | [INFO] [stderr] 129 | let mut sourceDir = String::new(); [INFO] [stderr] | ^^^^^^^^^ help: convert the identifier to snake case: `source_dir` [INFO] [stderr] [INFO] [stderr] warning: variable `sourceOption` should have a snake case name [INFO] [stderr] --> src/main.rs:130:13 [INFO] [stderr] | [INFO] [stderr] 130 | let mut sourceOption = true; [INFO] [stderr] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `source_option` [INFO] [stderr] [INFO] [stderr] warning: function `moveContent` should have a snake case name [INFO] [stderr] --> src/main.rs:152:4 [INFO] [stderr] | [INFO] [stderr] 152 | fn moveContent(source: &PathBuf, dest: &str, destDirs: &Vec>, mode: bool) -> bool{ // mode: true = folder, false = file [INFO] [stderr] | ^^^^^^^^^^^ help: convert the identifier to snake case: `move_content` [INFO] [stderr] [INFO] [stderr] warning: variable `destDirs` should have a snake case name [INFO] [stderr] --> src/main.rs:152:46 [INFO] [stderr] | [INFO] [stderr] 152 | fn moveContent(source: &PathBuf, dest: &str, destDirs: &Vec>, mode: bool) -> bool{ // mode: true = folder, false = file [INFO] [stderr] | ^^^^^^^^ help: convert the identifier to snake case: `dest_dirs` [INFO] [stderr] [INFO] [stderr] warning: variable `destFound` should have a snake case name [INFO] [stderr] --> src/main.rs:156:13 [INFO] [stderr] | [INFO] [stderr] 156 | let mut destFound = false; [INFO] [stderr] | ^^^^^^^^^ help: convert the identifier to snake case: `dest_found` [INFO] [stderr] [INFO] [stderr] warning: variable `destPath` should have a snake case name [INFO] [stderr] --> src/main.rs:157:13 [INFO] [stderr] | [INFO] [stderr] 157 | let mut destPath = PathBuf::new(); [INFO] [stderr] | ^^^^^^^^ help: convert the identifier to snake case: `dest_path` [INFO] [stderr] [INFO] [stderr] warning: variable `copyOptionsDir` should have a snake case name [INFO] [stderr] --> src/main.rs:159:9 [INFO] [stderr] | [INFO] [stderr] 159 | let copyOptionsDir = fs_extra::dir::CopyOptions::new(); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `copy_options_dir` [INFO] [stderr] [INFO] [stderr] warning: variable `copyOptionsFile` should have a snake case name [INFO] [stderr] --> src/main.rs:160:9 [INFO] [stderr] | [INFO] [stderr] 160 | let copyOptionsFile = fs_extra::file::CopyOptions{ [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `copy_options_file` [INFO] [stderr] [INFO] [stderr] warning: variable `handleDir` should have a snake case name [INFO] [stderr] --> src/main.rs:185:21 [INFO] [stderr] | [INFO] [stderr] 185 | let handleDir = |process_info: fs_extra::dir::TransitProcess| { [INFO] [stderr] | ^^^^^^^^^ help: convert the identifier to snake case: `handle_dir` [INFO] [stderr] [INFO] [stderr] warning: variable `handleFile` should have a snake case name [INFO] [stderr] --> src/main.rs:198:21 [INFO] [stderr] | [INFO] [stderr] 198 | let handleFile = |process_info: fs_extra::file::TransitProcess| { [INFO] [stderr] | ^^^^^^^^^^ help: convert the identifier to snake case: `handle_file` [INFO] [stderr] [INFO] [stderr] warning: unused return value of `std::path::Path::join` that must be used [INFO] [stderr] --> src/main.rs:209:21 [INFO] [stderr] | [INFO] [stderr] 209 | destPath.join("/"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable `destPath` should have a snake case name [INFO] [stderr] --> src/main.rs:212:25 [INFO] [stderr] | [INFO] [stderr] 212 | let mut destPath = destPath.join(source.file_name().unwrap()); [INFO] [stderr] | ^^^^^^^^ help: convert the identifier to snake case: `dest_path` [INFO] [stderr] [INFO] [stderr] warning: function `dirListFormat` should have a snake case name [INFO] [stderr] --> src/main.rs:222:4 [INFO] [stderr] | [INFO] [stderr] 222 | fn dirListFormat(dir: &str) -> Vec{ [INFO] [stderr] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `dir_list_format` [INFO] [stderr] [INFO] [stderr] warning: variable `dirList` should have a snake case name [INFO] [stderr] --> src/main.rs:223:9 [INFO] [stderr] | [INFO] [stderr] 223 | let dirList = dir.to_string(); [INFO] [stderr] | ^^^^^^^ help: convert the identifier to snake case: `dir_list` [INFO] [stderr] [INFO] [stderr] warning: variable `dirList` should have a snake case name [INFO] [stderr] --> src/main.rs:224:9 [INFO] [stderr] | [INFO] [stderr] 224 | let dirList = dirList.replace("\\ ", " "); [INFO] [stderr] | ^^^^^^^ help: convert the identifier to snake case: `dir_list` [INFO] [stderr] [INFO] [stderr] warning: variable `dirList` should have a snake case name [INFO] [stderr] --> src/main.rs:225:9 [INFO] [stderr] | [INFO] [stderr] 225 | let dirList = dirList.replace("\\", ""); [INFO] [stderr] | ^^^^^^^ help: convert the identifier to snake case: `dir_list` [INFO] [stderr] [INFO] [stderr] warning: variable `dirList` should have a snake case name [INFO] [stderr] --> src/main.rs:226:9 [INFO] [stderr] | [INFO] [stderr] 226 | let dirList = dirList.replace(" /", " //"); [INFO] [stderr] | ^^^^^^^ help: convert the identifier to snake case: `dir_list` [INFO] [stderr] [INFO] [stderr] warning: variable `dirList` should have a snake case name [INFO] [stderr] --> src/main.rs:227:9 [INFO] [stderr] | [INFO] [stderr] 227 | let dirList: Vec = dirList.trim().split(" /").map(|x| x.to_string()).collect(); [INFO] [stderr] | ^^^^^^^ help: convert the identifier to snake case: `dir_list` [INFO] [stderr] [INFO] [stderr] warning: `keysort` (bin "keysort" test) generated 50 warnings [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.90s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/keysort-7d627e6356095874) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "60ac14ba94a85ecb768590a83e6e4cbd40776ae530f5d88bb1a5b46769120db2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "60ac14ba94a85ecb768590a83e6e4cbd40776ae530f5d88bb1a5b46769120db2", kill_on_drop: false }` [INFO] [stdout] 60ac14ba94a85ecb768590a83e6e4cbd40776ae530f5d88bb1a5b46769120db2