[INFO] cloning repository https://github.com/teddy-otieno/Download-Manager [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/teddy-otieno/Download-Manager" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fteddy-otieno%2FDownload-Manager", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fteddy-otieno%2FDownload-Manager'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] fa5a2ceb35f0d6c2fef6596054f22b40ccad502a [INFO] checking teddy-otieno/Download-Manager against master#af4a5a13a15fa0c60e06321077ef452f769b42fd for pr-122960-4 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fteddy-otieno%2FDownload-Manager" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/teddy-otieno/Download-Manager on toolchain af4a5a13a15fa0c60e06321077ef452f769b42fd [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+af4a5a13a15fa0c60e06321077ef452f769b42fd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/teddy-otieno/Download-Manager [INFO] finished tweaking git repo https://github.com/teddy-otieno/Download-Manager [INFO] tweaked toml for git repo https://github.com/teddy-otieno/Download-Manager written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/teddy-otieno/Download-Manager already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+af4a5a13a15fa0c60e06321077ef452f769b42fd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+af4a5a13a15fa0c60e06321077ef452f769b42fd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 059045e8b4b520546058f05bd6b8bf19c8021ff5625687fb0dcbf49d3b6740b6 [INFO] running `Command { std: "docker" "start" "-a" "059045e8b4b520546058f05bd6b8bf19c8021ff5625687fb0dcbf49d3b6740b6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "059045e8b4b520546058f05bd6b8bf19c8021ff5625687fb0dcbf49d3b6740b6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "059045e8b4b520546058f05bd6b8bf19c8021ff5625687fb0dcbf49d3b6740b6", kill_on_drop: false }` [INFO] [stdout] 059045e8b4b520546058f05bd6b8bf19c8021ff5625687fb0dcbf49d3b6740b6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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=allow" "-e" "RUSTDOCFLAGS=--cap-lints=allow" "-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+af4a5a13a15fa0c60e06321077ef452f769b42fd" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 0fd7b33ef9c877553d4ccb633f46d13b3bd2b498a0fe05228e48719da8b1e023 [INFO] running `Command { std: "docker" "start" "-a" "0fd7b33ef9c877553d4ccb633f46d13b3bd2b498a0fe05228e48719da8b1e023", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v0.1.7 [INFO] [stderr] Compiling libc v0.2.65 [INFO] [stderr] Compiling num-traits v0.2.8 [INFO] [stderr] Compiling num-integer v0.1.41 [INFO] [stderr] Checking num_cpus v1.10.1 [INFO] [stderr] Checking time v0.1.42 [INFO] [stderr] Checking threadpool v1.7.1 [INFO] [stderr] Checking chrono v0.4.9 [INFO] [stderr] Checking download_manager v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error[E0599]: no method named `add_entry` found for struct `DbTable` in the current scope [INFO] [stdout] --> src/download_handler.rs:209:32 [INFO] [stdout] | [INFO] [stdout] 64 | struct DbTable<'a>{ [INFO] [stdout] | ------------------ method `add_entry` not found for this struct [INFO] [stdout] ... [INFO] [stdout] 209 | self.file_system_table.add_entry(&download); [INFO] [stdout] | ^^^^^^^^^ method not found in `DbTable<'a>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `add_entry` found for struct `DbTable` in the current scope [INFO] [stdout] --> src/download_handler.rs:209:32 [INFO] [stdout] | [INFO] [stdout] 64 | struct DbTable<'a>{ [INFO] [stdout] | ------------------ method `add_entry` not found for this struct [INFO] [stdout] ... [INFO] [stdout] 209 | self.file_system_table.add_entry(&download); [INFO] [stdout] | ^^^^^^^^^ method not found in `DbTable<'a>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0596]: cannot borrow `char_bytes` as mutable, as it is not declared as mutable [INFO] [stdout] --> src/scheduler.rs:47:29 [INFO] [stdout] | [INFO] [stdout] 47 | element.encode_utf8(&mut char_bytes); [INFO] [stdout] | ^^^^^^^^^^^^^^^ cannot borrow as mutable [INFO] [stdout] | [INFO] [stdout] help: consider changing this to be mutable [INFO] [stdout] | [INFO] [stdout] 46 | let mut char_bytes: [u8; 4] = [0; 4]; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0596]: cannot borrow `char_bytes` as mutable, as it is not declared as mutable [INFO] [stdout] --> src/scheduler.rs:47:29 [INFO] [stdout] | [INFO] [stdout] 47 | element.encode_utf8(&mut char_bytes); [INFO] [stdout] | ^^^^^^^^^^^^^^^ cannot borrow as mutable [INFO] [stdout] | [INFO] [stdout] help: consider changing this to be mutable [INFO] [stdout] | [INFO] [stdout] 46 | let mut char_bytes: [u8; 4] = [0; 4]; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0596]: cannot borrow `converted_bytes` as mutable, as it is not declared as mutable [INFO] [stdout] --> src/scheduler.rs:50:13 [INFO] [stdout] | [INFO] [stdout] 50 | converted_bytes.push(*byte); [INFO] [stdout] | ^^^^^^^^^^^^^^^ cannot borrow as mutable [INFO] [stdout] | [INFO] [stdout] help: consider changing this to be mutable [INFO] [stdout] | [INFO] [stdout] 43 | let mut converted_bytes : Vec = Vec::with_capacity(2048); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0596]: cannot borrow `converted_bytes` as mutable, as it is not declared as mutable [INFO] [stdout] --> src/scheduler.rs:50:13 [INFO] [stdout] | [INFO] [stdout] 50 | converted_bytes.push(*byte); [INFO] [stdout] | ^^^^^^^^^^^^^^^ cannot borrow as mutable [INFO] [stdout] | [INFO] [stdout] help: consider changing this to be mutable [INFO] [stdout] | [INFO] [stdout] 43 | let mut converted_bytes : Vec = Vec::with_capacity(2048); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0716]: temporary value dropped while borrowed [INFO] [stdout] --> src/scheduler.rs:105:28 [INFO] [stdout] | [INFO] [stdout] 104 | download_bytes.extend_from_slice(match download.download_size { [INFO] [stdout] | __________________________________________- [INFO] [stdout] 105 | | Some(size) => &size.to_ne_bytes(), [INFO] [stdout] | | ^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | | | [INFO] [stdout] | | | temporary value is freed at the end of this statement [INFO] [stdout] | | creates a temporary value which is freed while still in use [INFO] [stdout] 106 | | None => &[0u8; 8] [INFO] [stdout] 107 | | } [INFO] [stdout] | |_____________- borrow later used here [INFO] [stdout] | [INFO] [stdout] help: consider using a `let` binding to create a longer lived value [INFO] [stdout] | [INFO] [stdout] 104 ~ let binding = size.to_ne_bytes(); [INFO] [stdout] 105 ~ download_bytes.extend_from_slice(match download.download_size { [INFO] [stdout] 106 ~ Some(size) => &binding, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0716]: temporary value dropped while borrowed [INFO] [stdout] --> src/scheduler.rs:105:28 [INFO] [stdout] | [INFO] [stdout] 104 | download_bytes.extend_from_slice(match download.download_size { [INFO] [stdout] | __________________________________________- [INFO] [stdout] 105 | | Some(size) => &size.to_ne_bytes(), [INFO] [stdout] | | ^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | | | [INFO] [stdout] | | | temporary value is freed at the end of this statement [INFO] [stdout] | | creates a temporary value which is freed while still in use [INFO] [stdout] 106 | | None => &[0u8; 8] [INFO] [stdout] 107 | | } [INFO] [stdout] | |_____________- borrow later used here [INFO] [stdout] | [INFO] [stdout] help: consider using a `let` binding to create a longer lived value [INFO] [stdout] | [INFO] [stdout] 104 ~ let binding = size.to_ne_bytes(); [INFO] [stdout] 105 ~ download_bytes.extend_from_slice(match download.download_size { [INFO] [stdout] 106 ~ Some(size) => &binding, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0716]: temporary value dropped while borrowed [INFO] [stdout] --> src/scheduler.rs:112:28 [INFO] [stdout] | [INFO] [stdout] 111 | download_bytes.extend_from_slice(match download.current_download_size { [INFO] [stdout] | __________________________________________- [INFO] [stdout] 112 | | Some(size) => &size.to_ne_bytes(), [INFO] [stdout] | | ^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | | | [INFO] [stdout] | | | temporary value is freed at the end of this statement [INFO] [stdout] | | creates a temporary value which is freed while still in use [INFO] [stdout] 113 | | None => &[0u8; 8] [INFO] [stdout] 114 | | } [INFO] [stdout] | |_____________- borrow later used here [INFO] [stdout] | [INFO] [stdout] help: consider using a `let` binding to create a longer lived value [INFO] [stdout] | [INFO] [stdout] 111 ~ let binding = size.to_ne_bytes(); [INFO] [stdout] 112 ~ download_bytes.extend_from_slice(match download.current_download_size { [INFO] [stdout] 113 ~ Some(size) => &binding, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0716]: temporary value dropped while borrowed [INFO] [stdout] --> src/scheduler.rs:119:28 [INFO] [stdout] | [INFO] [stdout] 118 | download_bytes.extend_from_slice( match download.time_start { [INFO] [stdout] | ___________________________________________- [INFO] [stdout] 119 | | Some(time) => &time.timestamp().to_ne_bytes(), [INFO] [stdout] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | | | [INFO] [stdout] | | | temporary value is freed at the end of this statement [INFO] [stdout] | | creates a temporary value which is freed while still in use [INFO] [stdout] 120 | | None => &[0u8; 8], [INFO] [stdout] 121 | | } [INFO] [stdout] | |_____________- borrow later used here [INFO] [stdout] | [INFO] [stdout] help: consider using a `let` binding to create a longer lived value [INFO] [stdout] | [INFO] [stdout] 118 ~ let binding = time.timestamp().to_ne_bytes(); [INFO] [stdout] 119 ~ download_bytes.extend_from_slice( match download.time_start { [INFO] [stdout] 120 ~ Some(time) => &binding, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0716]: temporary value dropped while borrowed [INFO] [stdout] --> src/scheduler.rs:112:28 [INFO] [stdout] | [INFO] [stdout] 111 | download_bytes.extend_from_slice(match download.current_download_size { [INFO] [stdout] | __________________________________________- [INFO] [stdout] 112 | | Some(size) => &size.to_ne_bytes(), [INFO] [stdout] | | ^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | | | [INFO] [stdout] | | | temporary value is freed at the end of this statement [INFO] [stdout] | | creates a temporary value which is freed while still in use [INFO] [stdout] 113 | | None => &[0u8; 8] [INFO] [stdout] 114 | | } [INFO] [stdout] | |_____________- borrow later used here [INFO] [stdout] | [INFO] [stdout] help: consider using a `let` binding to create a longer lived value [INFO] [stdout] | [INFO] [stdout] 111 ~ let binding = size.to_ne_bytes(); [INFO] [stdout] 112 ~ download_bytes.extend_from_slice(match download.current_download_size { [INFO] [stdout] 113 ~ Some(size) => &binding, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0716]: temporary value dropped while borrowed [INFO] [stdout] --> src/scheduler.rs:126:28 [INFO] [stdout] | [INFO] [stdout] 125 | download_bytes.extend_from_slice( match download.time_finished { [INFO] [stdout] | ___________________________________________- [INFO] [stdout] 126 | | Some(time) => &time.timestamp().to_ne_bytes(), [INFO] [stdout] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | | | [INFO] [stdout] | | | temporary value is freed at the end of this statement [INFO] [stdout] | | creates a temporary value which is freed while still in use [INFO] [stdout] 127 | | None => &[0u8; 8] [INFO] [stdout] 128 | | }); [INFO] [stdout] | |_________- borrow later used here [INFO] [stdout] | [INFO] [stdout] help: consider using a `let` binding to create a longer lived value [INFO] [stdout] | [INFO] [stdout] 125 ~ let binding = time.timestamp().to_ne_bytes(); [INFO] [stdout] 126 ~ download_bytes.extend_from_slice( match download.time_finished { [INFO] [stdout] 127 ~ Some(time) => &binding, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0716]: temporary value dropped while borrowed [INFO] [stdout] --> src/scheduler.rs:119:28 [INFO] [stdout] | [INFO] [stdout] 118 | download_bytes.extend_from_slice( match download.time_start { [INFO] [stdout] | ___________________________________________- [INFO] [stdout] 119 | | Some(time) => &time.timestamp().to_ne_bytes(), [INFO] [stdout] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | | | [INFO] [stdout] | | | temporary value is freed at the end of this statement [INFO] [stdout] | | creates a temporary value which is freed while still in use [INFO] [stdout] 120 | | None => &[0u8; 8], [INFO] [stdout] 121 | | } [INFO] [stdout] | |_____________- borrow later used here [INFO] [stdout] | [INFO] [stdout] help: consider using a `let` binding to create a longer lived value [INFO] [stdout] | [INFO] [stdout] 118 ~ let binding = time.timestamp().to_ne_bytes(); [INFO] [stdout] 119 ~ download_bytes.extend_from_slice( match download.time_start { [INFO] [stdout] 120 ~ Some(time) => &binding, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0716]: temporary value dropped while borrowed [INFO] [stdout] --> src/scheduler.rs:126:28 [INFO] [stdout] | [INFO] [stdout] 125 | download_bytes.extend_from_slice( match download.time_finished { [INFO] [stdout] | ___________________________________________- [INFO] [stdout] 126 | | Some(time) => &time.timestamp().to_ne_bytes(), [INFO] [stdout] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | | | [INFO] [stdout] | | | temporary value is freed at the end of this statement [INFO] [stdout] | | creates a temporary value which is freed while still in use [INFO] [stdout] 127 | | None => &[0u8; 8] [INFO] [stdout] 128 | | }); [INFO] [stdout] | |_________- borrow later used here [INFO] [stdout] | [INFO] [stdout] help: consider using a `let` binding to create a longer lived value [INFO] [stdout] | [INFO] [stdout] 125 ~ let binding = time.timestamp().to_ne_bytes(); [INFO] [stdout] 126 ~ download_bytes.extend_from_slice( match download.time_finished { [INFO] [stdout] 127 ~ Some(time) => &binding, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0596]: cannot borrow `new_table_entries_buffer` as mutable, as it is not declared as mutable [INFO] [stdout] --> src/download_handler.rs:158:27 [INFO] [stdout] | [INFO] [stdout] 158 | db_file.read(&mut new_table_entries_buffer.as_mut_slice()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ cannot borrow as mutable [INFO] [stdout] | [INFO] [stdout] help: consider changing this to be mutable [INFO] [stdout] | [INFO] [stdout] 151 | let mut new_table_entries_buffer: Vec = (vec![0; entry_count as usize]); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0596]: cannot borrow `new_table_entries_buffer` as mutable, as it is not declared as mutable [INFO] [stdout] --> src/download_handler.rs:158:27 [INFO] [stdout] | [INFO] [stdout] 158 | db_file.read(&mut new_table_entries_buffer.as_mut_slice()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ cannot borrow as mutable [INFO] [stdout] | [INFO] [stdout] help: consider changing this to be mutable [INFO] [stdout] | [INFO] [stdout] 151 | let mut new_table_entries_buffer: Vec = (vec![0; entry_count as usize]); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing function parameter `db_file_path` [INFO] [stdout] --> src/download_handler.rs:185:9 [INFO] [stdout] | [INFO] [stdout] 185 | / Self { [INFO] [stdout] 186 | | download_records: Vec::new(), [INFO] [stdout] 187 | | file_system_table: DbTable::new(db_file_path.as_str()), [INFO] [stdout] | | ------------ `db_file_path` is borrowed here [INFO] [stdout] 188 | | phantom: PhantomData, [INFO] [stdout] 189 | | db_file_path: db_file_path, [INFO] [stdout] 190 | | } [INFO] [stdout] | |_________^ returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing function parameter `db_file_path` [INFO] [stdout] --> src/download_handler.rs:185:9 [INFO] [stdout] | [INFO] [stdout] 185 | / Self { [INFO] [stdout] 186 | | download_records: Vec::new(), [INFO] [stdout] 187 | | file_system_table: DbTable::new(db_file_path.as_str()), [INFO] [stdout] | | ------------ `db_file_path` is borrowed here [INFO] [stdout] 188 | | phantom: PhantomData, [INFO] [stdout] 189 | | db_file_path: db_file_path, [INFO] [stdout] 190 | | } [INFO] [stdout] | |_________^ returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `db_file_path` because it is borrowed [INFO] [stdout] --> src/download_handler.rs:189:27 [INFO] [stdout] | [INFO] [stdout] 181 | impl<'a> Database<'a> { [INFO] [stdout] | -- lifetime `'a` defined here [INFO] [stdout] 182 | fn new(db_file_path: String) -> Self { [INFO] [stdout] | ------------ binding `db_file_path` declared here [INFO] [stdout] ... [INFO] [stdout] 185 | / Self { [INFO] [stdout] 186 | | download_records: Vec::new(), [INFO] [stdout] 187 | | file_system_table: DbTable::new(db_file_path.as_str()), [INFO] [stdout] | | ------------ borrow of `db_file_path` occurs here [INFO] [stdout] 188 | | phantom: PhantomData, [INFO] [stdout] 189 | | db_file_path: db_file_path, [INFO] [stdout] | | ^^^^^^^^^^^^ move out of `db_file_path` occurs here [INFO] [stdout] 190 | | } [INFO] [stdout] | |_________- returning this value requires that `db_file_path` is borrowed for `'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `db_file_path` because it is borrowed [INFO] [stdout] --> src/download_handler.rs:189:27 [INFO] [stdout] | [INFO] [stdout] 181 | impl<'a> Database<'a> { [INFO] [stdout] | -- lifetime `'a` defined here [INFO] [stdout] 182 | fn new(db_file_path: String) -> Self { [INFO] [stdout] | ------------ binding `db_file_path` declared here [INFO] [stdout] ... [INFO] [stdout] 185 | / Self { [INFO] [stdout] 186 | | download_records: Vec::new(), [INFO] [stdout] 187 | | file_system_table: DbTable::new(db_file_path.as_str()), [INFO] [stdout] | | ------------ borrow of `db_file_path` occurs here [INFO] [stdout] 188 | | phantom: PhantomData, [INFO] [stdout] 189 | | db_file_path: db_file_path, [INFO] [stdout] | | ^^^^^^^^^^^^ move out of `db_file_path` occurs here [INFO] [stdout] 190 | | } [INFO] [stdout] | |_________- returning this value requires that `db_file_path` is borrowed for `'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 10 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0505, E0515, E0596, E0599, E0716. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0505`. [INFO] [stdout] [INFO] [stdout] error: aborting due to 10 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0505, E0515, E0596, E0599, E0716. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0505`. [INFO] [stdout] [INFO] [stderr] error: could not compile `download_manager` (bin "download_manager" test) due to 11 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: could not compile `download_manager` (bin "download_manager") due to 11 previous errors [INFO] running `Command { std: "docker" "inspect" "0fd7b33ef9c877553d4ccb633f46d13b3bd2b498a0fe05228e48719da8b1e023", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0fd7b33ef9c877553d4ccb633f46d13b3bd2b498a0fe05228e48719da8b1e023", kill_on_drop: false }` [INFO] [stdout] 0fd7b33ef9c877553d4ccb633f46d13b3bd2b498a0fe05228e48719da8b1e023