[INFO] fetching crate fs-err 2.9.0... [INFO] checking fs-err-2.9.0 against try#23ffd2897cbb44320ca18dfe4d05dbacb37d55e0 for pr-115950 [INFO] extracting crate fs-err 2.9.0 into /workspace/builds/worker-5-tc2/source [INFO] validating manifest of crates.io crate fs-err 2.9.0 on toolchain 23ffd2897cbb44320ca18dfe4d05dbacb37d55e0 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+23ffd2897cbb44320ca18dfe4d05dbacb37d55e0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate fs-err 2.9.0 [INFO] finished tweaking crates.io crate fs-err 2.9.0 [INFO] tweaked toml for crates.io crate fs-err 2.9.0 written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+23ffd2897cbb44320ca18dfe4d05dbacb37d55e0" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+23ffd2897cbb44320ca18dfe4d05dbacb37d55e0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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:4f8da3c744d2da974e54ce020a79f4ad54313e914ebeaab8fc086f07e8d8b066" "/opt/rustwide/cargo-home/bin/cargo" "+23ffd2897cbb44320ca18dfe4d05dbacb37d55e0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 15d709239be4c89745384705e83eadddcb54d17541a3b07ef0506788df4d87f8 [INFO] running `Command { std: "docker" "start" "-a" "15d709239be4c89745384705e83eadddcb54d17541a3b07ef0506788df4d87f8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "15d709239be4c89745384705e83eadddcb54d17541a3b07ef0506788df4d87f8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "15d709239be4c89745384705e83eadddcb54d17541a3b07ef0506788df4d87f8", kill_on_drop: false }` [INFO] [stdout] 15d709239be4c89745384705e83eadddcb54d17541a3b07ef0506788df4d87f8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:4f8da3c744d2da974e54ce020a79f4ad54313e914ebeaab8fc086f07e8d8b066" "/opt/rustwide/cargo-home/bin/cargo" "+23ffd2897cbb44320ca18dfe4d05dbacb37d55e0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 1b2bf0a98ab4fa612b57c7a6427ddb8d2b78eba14886b0eb8692655b4fab3c17 [INFO] running `Command { std: "docker" "start" "-a" "1b2bf0a98ab4fa612b57c7a6427ddb8d2b78eba14886b0eb8692655b4fab3c17", kill_on_drop: false }` [INFO] [stderr] Compiling serde v1.0.188 [INFO] [stderr] Compiling serde_json v1.0.107 [INFO] [stderr] Checking ryu v1.0.15 [INFO] [stderr] Checking itoa v1.0.9 [INFO] [stderr] Checking fs-err v2.9.0 (/opt/rustwide/workdir) [INFO] [stdout] error[E0597]: `path` does not live long enough [INFO] [stdout] --> src/file.rs:38:20 [INFO] [stdout] | [INFO] [stdout] 37 | let path = path.into(); [INFO] [stdout] | ---- binding `path` declared here [INFO] [stdout] 38 | match open(&path) { [INFO] [stdout] | -----^^^^^- [INFO] [stdout] | | | [INFO] [stdout] | | borrowed value does not live long enough [INFO] [stdout] | a temporary with access to the borrow is created here ... [INFO] [stdout] ... [INFO] [stdout] 42 | } [INFO] [stdout] | - [INFO] [stdout] | | [INFO] [stdout] | `path` dropped here while still borrowed [INFO] [stdout] | ... and the borrow might be used here, when that temporary is dropped and runs the destructor for type `Result std::io::Error>` [INFO] [stdout] | [INFO] [stdout] = note: the temporary is part of an expression at the end of a block; [INFO] [stdout] consider forcing this temporary to be dropped sooner, before the block's local variables are dropped [INFO] [stdout] help: for example, you could save the expression's value in a new local variable `x` and then make `x` be the expression at the end of the block [INFO] [stdout] | [INFO] [stdout] 38 ~ let x = match open(&path) { [INFO] [stdout] 39 | Ok(file) => Ok(File::from_parts(file, path)), [INFO] [stdout] 40 | Err(err_gen) => Err(err_gen(path)), [INFO] [stdout] 41 ~ }; x [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `path` because it is borrowed [INFO] [stdout] --> src/file.rs:39:51 [INFO] [stdout] | [INFO] [stdout] 37 | let path = path.into(); [INFO] [stdout] | ---- binding `path` declared here [INFO] [stdout] 38 | match open(&path) { [INFO] [stdout] | ----------- [INFO] [stdout] | | | [INFO] [stdout] | | borrow of `path` occurs here [INFO] [stdout] | a temporary with access to the borrow is created here ... [INFO] [stdout] 39 | Ok(file) => Ok(File::from_parts(file, path)), [INFO] [stdout] | ^^^^ move out of `path` occurs here [INFO] [stdout] ... [INFO] [stdout] 42 | } [INFO] [stdout] | - ... and the borrow might be used here, when that temporary is dropped and runs the destructor for type `Result std::io::Error>` [INFO] [stdout] | [INFO] [stdout] = note: the temporary is part of an expression at the end of a block; [INFO] [stdout] consider forcing this temporary to be dropped sooner, before the block's local variables are dropped [INFO] [stdout] help: for example, you could save the expression's value in a new local variable `x` and then make `x` be the expression at the end of the block [INFO] [stdout] | [INFO] [stdout] 38 ~ let x = match open(&path) { [INFO] [stdout] 39 | Ok(file) => Ok(File::from_parts(file, path)), [INFO] [stdout] 40 | Err(err_gen) => Err(err_gen(path)), [INFO] [stdout] 41 ~ }; x [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `path` because it is borrowed [INFO] [stdout] --> src/file.rs:40:41 [INFO] [stdout] | [INFO] [stdout] 37 | let path = path.into(); [INFO] [stdout] | ---- binding `path` declared here [INFO] [stdout] 38 | match open(&path) { [INFO] [stdout] | ----------- [INFO] [stdout] | | | [INFO] [stdout] | | borrow of `path` occurs here [INFO] [stdout] | a temporary with access to the borrow is created here ... [INFO] [stdout] 39 | Ok(file) => Ok(File::from_parts(file, path)), [INFO] [stdout] 40 | Err(err_gen) => Err(err_gen(path)), [INFO] [stdout] | ^^^^ move out of `path` occurs here [INFO] [stdout] 41 | } [INFO] [stdout] 42 | } [INFO] [stdout] | - ... and the borrow might be used here, when that temporary is dropped and runs the destructor for type `Result std::io::Error>` [INFO] [stdout] | [INFO] [stdout] = note: the temporary is part of an expression at the end of a block; [INFO] [stdout] consider forcing this temporary to be dropped sooner, before the block's local variables are dropped [INFO] [stdout] help: for example, you could save the expression's value in a new local variable `x` and then make `x` be the expression at the end of the block [INFO] [stdout] | [INFO] [stdout] 38 ~ let x = match open(&path) { [INFO] [stdout] 39 | Ok(file) => Ok(File::from_parts(file, path)), [INFO] [stdout] 40 | Err(err_gen) => Err(err_gen(path)), [INFO] [stdout] 41 ~ }; x [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `path` does not live long enough [INFO] [stdout] --> src/file.rs:50:22 [INFO] [stdout] | [INFO] [stdout] 49 | let path = path.into(); [INFO] [stdout] | ---- binding `path` declared here [INFO] [stdout] 50 | match create(&path) { [INFO] [stdout] | -------^^^^^- [INFO] [stdout] | | | [INFO] [stdout] | | borrowed value does not live long enough [INFO] [stdout] | a temporary with access to the borrow is created here ... [INFO] [stdout] ... [INFO] [stdout] 54 | } [INFO] [stdout] | - [INFO] [stdout] | | [INFO] [stdout] | `path` dropped here while still borrowed [INFO] [stdout] | ... and the borrow might be used here, when that temporary is dropped and runs the destructor for type `Result std::io::Error>` [INFO] [stdout] | [INFO] [stdout] = note: the temporary is part of an expression at the end of a block; [INFO] [stdout] consider forcing this temporary to be dropped sooner, before the block's local variables are dropped [INFO] [stdout] help: for example, you could save the expression's value in a new local variable `x` and then make `x` be the expression at the end of the block [INFO] [stdout] | [INFO] [stdout] 50 ~ let x = match create(&path) { [INFO] [stdout] 51 | Ok(file) => Ok(File::from_parts(file, path)), [INFO] [stdout] 52 | Err(err_gen) => Err(err_gen(path)), [INFO] [stdout] 53 ~ }; x [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `path` because it is borrowed [INFO] [stdout] --> src/file.rs:51:51 [INFO] [stdout] | [INFO] [stdout] 49 | let path = path.into(); [INFO] [stdout] | ---- binding `path` declared here [INFO] [stdout] 50 | match create(&path) { [INFO] [stdout] | ------------- [INFO] [stdout] | | | [INFO] [stdout] | | borrow of `path` occurs here [INFO] [stdout] | a temporary with access to the borrow is created here ... [INFO] [stdout] 51 | Ok(file) => Ok(File::from_parts(file, path)), [INFO] [stdout] | ^^^^ move out of `path` occurs here [INFO] [stdout] ... [INFO] [stdout] 54 | } [INFO] [stdout] | - ... and the borrow might be used here, when that temporary is dropped and runs the destructor for type `Result std::io::Error>` [INFO] [stdout] | [INFO] [stdout] = note: the temporary is part of an expression at the end of a block; [INFO] [stdout] consider forcing this temporary to be dropped sooner, before the block's local variables are dropped [INFO] [stdout] help: for example, you could save the expression's value in a new local variable `x` and then make `x` be the expression at the end of the block [INFO] [stdout] | [INFO] [stdout] 50 ~ let x = match create(&path) { [INFO] [stdout] 51 | Ok(file) => Ok(File::from_parts(file, path)), [INFO] [stdout] 52 | Err(err_gen) => Err(err_gen(path)), [INFO] [stdout] 53 ~ }; x [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `path` because it is borrowed [INFO] [stdout] --> src/file.rs:52:41 [INFO] [stdout] | [INFO] [stdout] 49 | let path = path.into(); [INFO] [stdout] | ---- binding `path` declared here [INFO] [stdout] 50 | match create(&path) { [INFO] [stdout] | ------------- [INFO] [stdout] | | | [INFO] [stdout] | | borrow of `path` occurs here [INFO] [stdout] | a temporary with access to the borrow is created here ... [INFO] [stdout] 51 | Ok(file) => Ok(File::from_parts(file, path)), [INFO] [stdout] 52 | Err(err_gen) => Err(err_gen(path)), [INFO] [stdout] | ^^^^ move out of `path` occurs here [INFO] [stdout] 53 | } [INFO] [stdout] 54 | } [INFO] [stdout] | - ... and the borrow might be used here, when that temporary is dropped and runs the destructor for type `Result std::io::Error>` [INFO] [stdout] | [INFO] [stdout] = note: the temporary is part of an expression at the end of a block; [INFO] [stdout] consider forcing this temporary to be dropped sooner, before the block's local variables are dropped [INFO] [stdout] help: for example, you could save the expression's value in a new local variable `x` and then make `x` be the expression at the end of the block [INFO] [stdout] | [INFO] [stdout] 50 ~ let x = match create(&path) { [INFO] [stdout] 51 | Ok(file) => Ok(File::from_parts(file, path)), [INFO] [stdout] 52 | Err(err_gen) => Err(err_gen(path)), [INFO] [stdout] 53 ~ }; x [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 6 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0505, E0597. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0505`. [INFO] [stdout] [INFO] [stderr] error: could not compile `fs-err` (lib) due to 7 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] running `Command { std: "docker" "inspect" "1b2bf0a98ab4fa612b57c7a6427ddb8d2b78eba14886b0eb8692655b4fab3c17", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1b2bf0a98ab4fa612b57c7a6427ddb8d2b78eba14886b0eb8692655b4fab3c17", kill_on_drop: false }` [INFO] [stdout] 1b2bf0a98ab4fa612b57c7a6427ddb8d2b78eba14886b0eb8692655b4fab3c17