[INFO] fetching crate git-cinnabar 0.7.0-beta.1... [INFO] checking git-cinnabar-0.7.0-beta.1 against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] extracting crate git-cinnabar 0.7.0-beta.1 into /workspace/builds/worker-2-tc2/source [INFO] validating manifest of crates.io crate git-cinnabar 0.7.0-beta.1 on toolchain ccf408f4326a858c00dd845a64a86b16f360a801 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] removed /workspace/builds/worker-2-tc2/source/.cargo/config.toml [INFO] started tweaking crates.io crate git-cinnabar 0.7.0-beta.1 [INFO] finished tweaking crates.io crate git-cinnabar 0.7.0-beta.1 [INFO] tweaked toml for crates.io crate git-cinnabar 0.7.0-beta.1 written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] crate crates.io crate git-cinnabar 0.7.0-beta.1 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" "+ccf408f4326a858c00dd845a64a86b16f360a801" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 3778ae900271d58db6cf824e5c32b67b3b6810802a8449366a96b717859518da [INFO] running `Command { std: "docker" "start" "-a" "3778ae900271d58db6cf824e5c32b67b3b6810802a8449366a96b717859518da", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3778ae900271d58db6cf824e5c32b67b3b6810802a8449366a96b717859518da", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3778ae900271d58db6cf824e5c32b67b3b6810802a8449366a96b717859518da", kill_on_drop: false }` [INFO] [stdout] 3778ae900271d58db6cf824e5c32b67b3b6810802a8449366a96b717859518da [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] acc3e8e7115a0a14c59081a0fa1805bb9eb1dd0a1a3183e1e00fb1829c3ffbf5 [INFO] running `Command { std: "docker" "start" "-a" "acc3e8e7115a0a14c59081a0fa1805bb9eb1dd0a1a3183e1e00fb1829c3ffbf5", kill_on_drop: false }` [INFO] [stderr] Copying to /tmp/fixit [INFO] [stderr] Running `cargo fix --edition` [INFO] [stderr] Migrating Cargo.toml from 2021 edition to 2024 [INFO] [stderr] Fixed Cargo.toml (3 fixes) [INFO] [stderr] Compiling libc v0.2.155 [INFO] [stderr] Compiling pkg-config v0.3.30 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Compiling rustix v0.38.34 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling zstd-safe v7.2.0 [INFO] [stderr] Checking utf8parse v0.2.2 [INFO] [stderr] Compiling semver v1.0.23 [INFO] [stderr] Checking tinyvec_macros v0.1.1 [INFO] [stderr] Compiling proc-macro2 v1.0.86 [INFO] [stderr] Checking typenum v1.17.0 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Checking tinyvec v1.8.0 [INFO] [stderr] Compiling itertools v0.13.0 [INFO] [stderr] Checking anstyle v1.0.8 [INFO] [stderr] Checking anstyle-parse v0.2.5 [INFO] [stderr] Checking colorchoice v1.0.2 [INFO] [stderr] Checking memchr v2.7.4 [INFO] [stderr] Checking is_terminal_polyfill v1.70.1 [INFO] [stderr] Compiling make-cmd v0.1.0 [INFO] [stderr] Checking anstyle-query v1.1.1 [INFO] [stderr] Compiling target v2.1.0 [INFO] [stderr] Checking bitflags v2.6.0 [INFO] [stderr] Checking unicode-bidi v0.3.15 [INFO] [stderr] Checking anstream v0.6.15 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Checking generic-array v0.14.7 [INFO] [stderr] Checking ppv-lite86 v0.2.17 [INFO] [stderr] Checking adler v1.0.2 [INFO] [stderr] Checking clap_lex v0.7.2 [INFO] [stderr] Checking strsim v0.11.1 [INFO] [stderr] Checking gimli v0.29.0 [INFO] [stderr] Checking percent-encoding v2.3.1 [INFO] [stderr] Checking regex-syntax v0.8.4 [INFO] [stderr] Checking unicode-normalization v0.1.23 [INFO] [stderr] Compiling syn v2.0.72 [INFO] [stderr] Checking linux-raw-sys v0.4.14 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling jobserver v0.1.32 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling cc v1.1.6 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking clap_builder v4.5.11 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking idna v0.5.0 [INFO] [stderr] Checking object v0.36.2 [INFO] [stderr] Checking form_urlencoded v1.2.1 [INFO] [stderr] Compiling cstr v0.2.12 [INFO] [stderr] Checking regex-automata v0.4.7 [INFO] [stderr] Checking miniz_oxide v0.7.4 [INFO] [stderr] Checking crc32fast v1.4.2 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking either v1.13.0 [INFO] [stderr] Checking equivalent v1.0.1 [INFO] [stderr] Checking fastrand v2.1.0 [INFO] [stderr] Checking rustc-demangle v0.1.24 [INFO] [stderr] Checking cpufeatures v0.2.12 [INFO] [stderr] Checking addr2line v0.22.0 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Checking indexmap v2.2.6 [INFO] [stderr] Checking sha-1 v0.10.1 [INFO] [stderr] Checking tempfile v3.10.1 [INFO] [stderr] Checking regex v1.10.5 [INFO] [stderr] Checking url v2.5.2 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking shared_child v1.0.0 [INFO] [stderr] Checking bstr v1.9.1 [INFO] [stderr] Checking hex-literal v0.4.1 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Compiling libz-sys v1.1.18 [INFO] [stderr] Compiling zstd-sys v2.0.12+zstd.1.5.6 [INFO] [stderr] Compiling bzip2-sys v0.1.11+1.0.8 [INFO] [stderr] Compiling curl-sys v0.4.73+curl-8.8.0 [INFO] [stderr] Compiling backtrace v0.3.73 [INFO] [stderr] Checking hex v0.4.3 [INFO] [stderr] Checking lru v0.12.3 [INFO] [stderr] Checking array-init v2.1.0 [INFO] [stderr] Checking bit-vec v0.8.0 [INFO] [stderr] Checking tee v0.1.0 [INFO] [stderr] Checking log v0.4.22 [INFO] [stderr] Checking once_cell v1.19.0 [INFO] [stderr] Checking flate2 v1.0.30 [INFO] [stderr] Compiling getset v0.1.2 [INFO] [stderr] Compiling derivative v2.2.0 [INFO] [stderr] Checking bzip2 v0.4.4 [INFO] [stderr] Compiling clap_derive v4.5.11 [INFO] [stderr] Compiling git-version-macro v0.3.9 [INFO] [stderr] Compiling git-cinnabar v0.7.0-beta.1 (/tmp/fixit) [INFO] [stderr] Compiling derive_more v0.99.18 [INFO] [stderr] Migrating build.rs from 2021 edition to 2024 [INFO] [stderr] Checking git-version v0.3.9 [INFO] [stderr] Checking clap v4.5.11 [INFO] [stderr] Checking zstd v0.13.2 [INFO] [stderr] Migrating src/main.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `git_cinnabar` [INFO] [stderr] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/libcinnabar.rs:207:3 [INFO] [stdout] | [INFO] [stdout] 207 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] = note: `--force-warn unsafe-attr-outside-unsafe` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 207 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/libcinnabar.rs:218:3 [INFO] [stdout] | [INFO] [stdout] 218 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 218 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/store.rs:1424:3 [INFO] [stdout] | [INFO] [stdout] 1424 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 1424 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] * src/hg_connect.rs [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/store.rs:1964:3 [INFO] [stdout] | [INFO] [stdout] 1964 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 1964 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] * src/libgit.rs [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/hg_bundle.rs:46:3 [INFO] [stdout] | [INFO] [stdout] 46 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 46 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] * src/main.rs [INFO] [stderr] * src/util.rs [INFO] [stderr] * src/version_check.rs [INFO] [stderr] [INFO] [stderr] This likely indicates a bug in either rustc or cargo itself, [INFO] [stderr] and we would appreciate a bug report! You're likely to see [INFO] [stderr] a number of compiler warnings after this message which cargo [INFO] [stderr] attempted to fix but failed. If you could open an issue at [INFO] [stderr] https://github.com/rust-lang/rust/issues [INFO] [stderr] quoting the full output of this command we'd be very appreciative! [INFO] [stderr] Note that you may be able to make some more progress in the near-term [INFO] [stderr] fixing code with the `--broken-code` flag [INFO] [stderr] [INFO] [stderr] The following errors were reported: [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/libgit.rs:120:8 [INFO] [stderr] | [INFO] [stderr] 120 | ($($e:expr_2021),+) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:723:6 [INFO] [stderr] | [INFO] [stderr] 723 | ($left:expr_2021, $right:expr_2021) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:723:23 [INFO] [stderr] | [INFO] [stderr] 723 | ($left:expr_2021, $right:expr_2021) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/hg_bundle.rs:60:3 [INFO] [stdout] | [INFO] [stdout] 60 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 60 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] --> src/util.rs:738:6 [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/main.rs:5105:3 [INFO] [stdout] | [INFO] [stdout] 5105 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 5105 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/main.rs:5248:3 [INFO] [stdout] | [INFO] [stdout] 5248 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 5248 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 738 | ($left:expr_2021, $right:expr_2021) => {{ [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/main.rs:5349:3 [INFO] [stdout] | [INFO] [stdout] 5349 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 5349 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/graft.rs:20:1 [INFO] [stdout] | [INFO] [stdout] 20 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 21 | | fn replace_map_size() -> c_uint; [INFO] [stdout] 22 | | pub fn replace_map_tablesize() -> c_uint; [INFO] [stdout] 23 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] = note: `--force-warn missing-unsafe-on-extern` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libc.rs:25:1 [INFO] [stdout] | [INFO] [stdout] 25 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 26 | | fn xread(fd: c_int, buf: *mut c_void, size: usize) -> isize; [INFO] [stdout] 27 | | [INFO] [stdout] 28 | | fn xwrite(fd: c_int, buf: *const c_void, size: usize) -> isize; [INFO] [stdout] 29 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libcinnabar.rs:147:1 [INFO] [stdout] | [INFO] [stdout] 147 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 148 | | fn cinnabar_get_note( [INFO] [stdout] 149 | | notes: *mut cinnabar_notes_tree, [INFO] [stdout] 150 | | oid: *const object_id, [INFO] [stdout] ... | [INFO] [stdout] 183 | | ) -> c_int; [INFO] [stdout] 184 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libcinnabar.rs:373:1 [INFO] [stdout] | [INFO] [stdout] 373 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 374 | | pub fn hg_connect_stdio( [INFO] [stdout] 375 | | userhost: *const c_char, [INFO] [stdout] 376 | | port: *const c_char, [INFO] [stdout] ... | [INFO] [stdout] 381 | | pub fn stdio_finish(conn: *mut child_process) -> c_int; [INFO] [stdout] 382 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:74:1 [INFO] [stdout] | [INFO] [stdout] 74 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 75 | | static strbuf_slopbuf: [c_char; 1]; [INFO] [stdout] 76 | | fn strbuf_add(buf: *mut strbuf, data: *const c_void, len: usize); [INFO] [stdout] 77 | | fn strbuf_release(buf: *mut strbuf); [INFO] [stdout] 78 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/libgit.rs:120:11 [INFO] [stdout] | [INFO] [stdout] 120 | ($($e:expr),+) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 120 | ($($e:expr_2021),+) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:126:1 [INFO] [stdout] | [INFO] [stdout] 126 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 127 | | pub fn credential_fill(auth: *mut credential, all_capabilities: c_int); [INFO] [stdout] 128 | | [INFO] [stdout] 129 | | pub static mut http_auth: credential; [INFO] [stdout] ... | [INFO] [stdout] 140 | | pub static ssl_cainfo: *mut c_char; [INFO] [stdout] 141 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] --> src/util.rs:738:23 [INFO] [stderr] | [INFO] [stderr] 738 | ($left:expr_2021, $right:expr_2021) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:752:6 [INFO] [stderr] | [INFO] [stderr] 752 | ($left:expr_2021, $right:expr_2021) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:752:23 [INFO] [stderr] | [INFO] [stderr] 752 | ($left:expr_2021, $right:expr_2021) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:766:6 [INFO] [stderr] | [INFO] [stderr] 766 | ($left:expr_2021, $right:expr_2021) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:766:23 [INFO] [stderr] | [INFO] [stderr] 766 | ($left:expr_2021, $right:expr_2021) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/hg_connect.rs:85:19 [INFO] [stderr] | [INFO] [stderr] 85 | ($($n:ident : $v:expr_2021,)* $(*: $a:expr_2021)?) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/hg_connect.rs:85:40 [INFO] [stderr] | [INFO] [stderr] 85 | ($($n:ident : $v:expr_2021,)* $(*: $a:expr_2021)?) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/hg_connect.rs:91:19 [INFO] [stderr] | [INFO] [stderr] 91 | ($($n:ident : $v:expr_2021),*) => { $crate::hg_connect::args!($($n:$v,)*) }; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/hg_connect.rs:92:25 [INFO] [stderr] | [INFO] [stderr] 92 | (@args $($n:ident : $v:expr_2021),*) => {&[ [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/hg_connect.rs:96:13 [INFO] [stderr] | [INFO] [stderr] 96 | (@extra $a:expr_2021) => { Some($a) }; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition name: `version_check_branch` [INFO] [stderr] --> src/version_check.rs:31:7 [INFO] [stderr] | [INFO] [stderr] 31 | #[cfg(version_check_branch)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: expected names are: `clippy`, `debug_assertions`, `doc`, `docsrs`, `doctest`, `feature`, `fmt_debug`, `miri`, `overflow_checks`, `panic`, `proc_macro`, `relocation_model`, `rustfmt`, `sanitize`, `sanitizer_cfi_generalize_pointers`, `sanitizer_cfi_normalize_integers`, `target_abi`, `target_arch`, `target_endian`, `target_env`, `target_family`, `target_feature`, `target_has_atomic`, `target_has_atomic_equal_alignment`, `target_has_atomic_load_store`, `target_os`, `target_pointer_width`, `target_thread_local`, `target_vendor`, `test`, `ub_checks`, `unix`, and `windows` [INFO] [stderr] = help: consider using a Cargo feature instead [INFO] [stderr] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stderr] [lints.rust] [INFO] [stderr] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(version_check_branch)'] } [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(version_check_branch)");` to the top of the `build.rs` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] = note: requested on the command line with `-W unexpected-cfgs` [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition name: `version_check_branch` [INFO] [stderr] --> src/version_check.rs:33:11 [INFO] [stderr] | [INFO] [stderr] 33 | #[cfg(not(version_check_branch))] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using a Cargo feature instead [INFO] [stderr] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stderr] [lints.rust] [INFO] [stderr] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(version_check_branch)'] } [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(version_check_branch)");` to the top of the `build.rs` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/main.rs:5156:9 [INFO] [stderr] | [INFO] [stderr] 5106 | unsafe extern "C" fn cinnabar_main(_argc: c_int, argv: *const *const c_char) -> c_int { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 5156 | unsafe { [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stderr] [INFO] [stderr] error: aborting due to 14 previous errors; 3 warnings emitted [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:197:1 [INFO] [stdout] | [INFO] [stdout] 197 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 198 | | pub static http_follow_config: http_follow_config; [INFO] [stdout] 199 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:256:1 [INFO] [stdout] | [INFO] [stdout] 256 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 257 | | fn oid_object_info_extended( [INFO] [stdout] 258 | | r: *mut repository, [INFO] [stdout] 259 | | oid: *const object_id, [INFO] [stdout] ... | [INFO] [stdout] 262 | | ) -> c_int; [INFO] [stdout] 263 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:354:1 [INFO] [stdout] | [INFO] [stdout] 354 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 355 | | pub static mut the_repository: *mut repository; [INFO] [stdout] 356 | | [INFO] [stdout] 357 | | static default_abbrev: c_int; [INFO] [stdout] ... | [INFO] [stdout] 370 | | fn repo_lookup_replace_object(r: *mut repository, oid: *const object_id) -> *const object_id; [INFO] [stdout] 371 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:433:1 [INFO] [stdout] | [INFO] [stdout] 433 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 434 | | pub fn commit_oid(c: *const commit) -> *const object_id; [INFO] [stdout] 435 | | [INFO] [stdout] 436 | | fn get_revision(revs: *mut rev_info) -> *const commit; [INFO] [stdout] ... | [INFO] [stdout] 444 | | fn get_saved_parents(revs: *mut rev_info, c: *const commit) -> *const commit_list; [INFO] [stdout] 445 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:656:1 [INFO] [stdout] | [INFO] [stdout] 656 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 657 | | fn diff_tree_( [INFO] [stdout] 658 | | argc: c_int, [INFO] [stdout] 659 | | argv: *const *const c_char, [INFO] [stdout] ... | [INFO] [stdout] 662 | | ); [INFO] [stdout] 663 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:844:1 [INFO] [stdout] | [INFO] [stdout] 844 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 845 | | fn remote_get(name: *const c_char) -> *mut remote; [INFO] [stdout] 846 | | [INFO] [stdout] 847 | | fn remote_get_name(remote: *const remote) -> *const c_char; [INFO] [stdout] ... | [INFO] [stdout] 851 | | fn remote_skip_default_update(remote: *const remote) -> c_int; [INFO] [stdout] 852 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:892:5 [INFO] [stdout] | [INFO] [stdout] 892 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _____help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 893 | | pub fn for_each_remote( [INFO] [stdout] 894 | | cb: unsafe extern "C" fn(*const remote, *mut c_void) -> c_int, [INFO] [stdout] 895 | | cb_data: *mut c_void, [INFO] [stdout] 896 | | ) -> c_int; [INFO] [stdout] 897 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:930:1 [INFO] [stdout] | [INFO] [stdout] 930 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 931 | | pub fn get_main_ref_store(r: *mut repository) -> *mut ref_store; [INFO] [stdout] 932 | | [INFO] [stdout] 933 | | pub fn refs_for_each_ref_in( [INFO] [stdout] ... | [INFO] [stdout] 938 | | ) -> c_int; [INFO] [stdout] 939 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:988:1 [INFO] [stdout] | [INFO] [stdout] 988 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 989 | | fn refs_read_ref(refs: *const ref_store, refname: *const c_char, oid: *mut object_id) -> c_int; [INFO] [stdout] 990 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:1018:1 [INFO] [stdout] | [INFO] [stdout] 1018 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 1019 | | fn ref_store_transaction_begin( [INFO] [stdout] 1020 | | refs: *const ref_store, [INFO] [stdout] 1021 | | err: *mut strbuf, [INFO] [stdout] ... | [INFO] [stdout] 1050 | | fn ref_transaction_abort(tr: *mut ref_transaction, err: *mut strbuf) -> c_int; [INFO] [stdout] 1051 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:1166:1 [INFO] [stdout] | [INFO] [stdout] 1166 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 1167 | | fn git_config_get_value(key: *const c_char, value: *mut *const c_char) -> c_int; [INFO] [stdout] 1168 | | fn git_config_set(key: *const c_char, value: *const c_char); [INFO] [stdout] 1169 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:1186:1 [INFO] [stdout] | [INFO] [stdout] 1186 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 1187 | | fn get_reachable_subset( [INFO] [stdout] 1188 | | from: *const *const commit, [INFO] [stdout] 1189 | | nr_from: c_int, [INFO] [stdout] ... | [INFO] [stdout] 1203 | | pub fn lookup_commit(r: *mut repository, oid: *const object_id) -> *const commit; [INFO] [stdout] 1204 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:1269:1 [INFO] [stdout] | [INFO] [stdout] 1269 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 1270 | | pub fn combine_notes_ignore(cur_oid: *mut object_id, new_oid: *const object_id) -> c_int; [INFO] [stdout] 1271 | | [INFO] [stdout] 1272 | | pub fn init_notes( [INFO] [stdout] ... | [INFO] [stdout] 1282 | | pub fn free_notes(notes: *mut notes_tree); [INFO] [stdout] 1283 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:1311:5 [INFO] [stdout] | [INFO] [stdout] 1311 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _____help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 1312 | | pub fn git_committer_info(flag: c_int) -> *const c_char; [INFO] [stdout] 1313 | | pub fn git_author_info(flag: c_int) -> *const c_char; [INFO] [stdout] 1314 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/store.rs:1442:1 [INFO] [stdout] | [INFO] [stdout] 1442 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 1443 | | pub fn ensure_store_init(); [INFO] [stdout] 1444 | | fn store_git_object( [INFO] [stdout] 1445 | | typ: object_type, [INFO] [stdout] ... | [INFO] [stdout] 1453 | | fn unpack_object_entry(oe: *const object_entry, buf: *mut *mut c_char, len: *mut c_ulong); [INFO] [stdout] 1454 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/store.rs:1955:1 [INFO] [stdout] | [INFO] [stdout] 1955 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 1956 | | pub fn store_manifest( [INFO] [stdout] 1957 | | store: &Store, [INFO] [stdout] 1958 | | chunk: *const rev_chunk, [INFO] [stdout] ... | [INFO] [stdout] 1961 | | ); [INFO] [stdout] 1962 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/store.rs:2576:1 [INFO] [stdout] | [INFO] [stdout] 2576 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 2577 | | fn init_replace_map(); [INFO] [stdout] 2578 | | fn reset_replace_map(); [INFO] [stdout] 2579 | | fn store_replace_map(result: *mut object_id); [INFO] [stdout] 2580 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:723:12 [INFO] [stdout] | [INFO] [stdout] 723 | ($left:expr, $right:expr) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 723 | ($left:expr_2021, $right:expr) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:723:25 [INFO] [stdout] | [INFO] [stdout] 723 | ($left:expr, $right:expr) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 723 | ($left:expr, $right:expr_2021) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:738:12 [INFO] [stdout] | [INFO] [stdout] 738 | ($left:expr, $right:expr) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 738 | ($left:expr_2021, $right:expr) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:738:25 [INFO] [stdout] | [INFO] [stdout] 738 | ($left:expr, $right:expr) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 738 | ($left:expr, $right:expr_2021) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:752:12 [INFO] [stdout] | [INFO] [stdout] 752 | ($left:expr, $right:expr) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 752 | ($left:expr_2021, $right:expr) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:752:25 [INFO] [stdout] | [INFO] [stdout] 752 | ($left:expr, $right:expr) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 752 | ($left:expr, $right:expr_2021) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:766:12 [INFO] [stdout] | [INFO] [stdout] 766 | ($left:expr, $right:expr) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 766 | ($left:expr_2021, $right:expr) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:766:25 [INFO] [stdout] | [INFO] [stdout] 766 | ($left:expr, $right:expr) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 766 | ($left:expr, $right:expr_2021) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/xdiff.rs:57:1 [INFO] [stdout] | [INFO] [stdout] 57 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 58 | | fn xdi_diff_outf( [INFO] [stdout] 59 | | mf1: *const mmfile_t, [INFO] [stdout] 60 | | mf2: *const mmfile_t, [INFO] [stdout] ... | [INFO] [stdout] 68 | | ) -> c_int; [INFO] [stdout] 69 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/hg_connect.rs:85:22 [INFO] [stdout] | [INFO] [stdout] 85 | ($($n:ident : $v:expr,)* $(*: $a:expr)?) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 85 | ($($n:ident : $v:expr_2021,)* $(*: $a:expr)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/hg_connect.rs:85:38 [INFO] [stdout] | [INFO] [stdout] 85 | ($($n:ident : $v:expr,)* $(*: $a:expr)?) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 85 | ($($n:ident : $v:expr,)* $(*: $a:expr_2021)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/hg_connect.rs:91:22 [INFO] [stdout] | [INFO] [stdout] 91 | ($($n:ident : $v:expr),*) => { $crate::hg_connect::args!($($n:$v,)*) }; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 91 | ($($n:ident : $v:expr_2021),*) => { $crate::hg_connect::args!($($n:$v,)*) }; [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/hg_connect.rs:92:28 [INFO] [stdout] | [INFO] [stdout] 92 | (@args $($n:ident : $v:expr),*) => {&[ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 92 | (@args $($n:ident : $v:expr_2021),*) => {&[ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/hg_connect.rs:96:16 [INFO] [stdout] | [INFO] [stdout] 96 | (@extra $a:expr) => { Some($a) }; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 96 | (@extra $a:expr_2021) => { Some($a) }; [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/hg_connect_stdio.rs:199:1 [INFO] [stdout] | [INFO] [stdout] 199 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 200 | | fn proc_in(proc: *mut child_process) -> c_int; [INFO] [stdout] 201 | | [INFO] [stdout] 202 | | fn proc_out(proc: *mut child_process) -> c_int; [INFO] [stdout] 203 | | [INFO] [stdout] 204 | | fn proc_err(proc: *mut child_process) -> c_int; [INFO] [stdout] 205 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `version_check_branch` [INFO] [stdout] --> src/version_check.rs:31:7 [INFO] [stdout] | [INFO] [stdout] 31 | #[cfg(version_check_branch)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: expected names are: `clippy`, `debug_assertions`, `doc`, `docsrs`, `doctest`, `feature`, `fmt_debug`, `miri`, `overflow_checks`, `panic`, `proc_macro`, `relocation_model`, `rustfmt`, `sanitize`, `sanitizer_cfi_generalize_pointers`, `sanitizer_cfi_normalize_integers`, `target_abi`, `target_arch`, `target_endian`, `target_env`, `target_family`, `target_feature`, `target_has_atomic`, `target_has_atomic_equal_alignment`, `target_has_atomic_load_store`, `target_os`, `target_pointer_width`, `target_thread_local`, `target_vendor`, `test`, `ub_checks`, `unix`, and `windows` [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(version_check_branch)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(version_check_branch)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: requested on the command line with `-W unexpected-cfgs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `version_check_branch` [INFO] [stdout] --> src/version_check.rs:33:11 [INFO] [stdout] | [INFO] [stdout] 33 | #[cfg(not(version_check_branch))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(version_check_branch)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(version_check_branch)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/main.rs:180:1 [INFO] [stdout] | [INFO] [stdout] 180 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 181 | | fn do_cleanup(rollback: c_int); [INFO] [stdout] 182 | | [INFO] [stdout] 183 | | #[cfg(windows)] [INFO] [stdout] ... | [INFO] [stdout] 186 | | fn init_cinnabar(argv0: *const c_char) -> c_int; [INFO] [stdout] 187 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/main.rs:491:1 [INFO] [stdout] | [INFO] [stdout] 491 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 492 | | fn git_path_fetch_head(repos: *mut repository) -> *const c_char; [INFO] [stdout] 493 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/main.rs:608:1 [INFO] [stdout] | [INFO] [stdout] 608 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 609 | | fn check_pager_config(cmd: *const c_char) -> c_int; [INFO] [stdout] 610 | | fn setup_pager(); [INFO] [stdout] 611 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/main.rs:1176:1 [INFO] [stdout] | [INFO] [stdout] 1176 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 1177 | | fn add_ref(tail: *mut *mut *mut r#ref, name: *const c_char, oid: *const object_id); [INFO] [stdout] 1178 | | [INFO] [stdout] 1179 | | fn add_symref(tail: *mut *mut *mut r#ref, name: *const c_char, sym: *const c_char); [INFO] [stdout] ... | [INFO] [stdout] 1197 | | ) -> c_int; [INFO] [stdout] 1198 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/main.rs:1204:1 [INFO] [stdout] | [INFO] [stdout] 1204 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 1205 | | fn term_columns() -> c_int; [INFO] [stdout] 1206 | | [INFO] [stdout] 1207 | | fn get_worktrees() -> *const *const worktree; [INFO] [stdout] ... | [INFO] [stdout] 1221 | | fn get_worktree_ref_store(wr: *const worktree) -> *const libgit::ref_store; [INFO] [stdout] 1222 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::as_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/libcinnabar.rs:195:18 [INFO] [stdout] | [INFO] [stdout] 195 | let cb = (cb_data as *mut F).as_mut().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/libcinnabar.rs:189:5 [INFO] [stdout] | [INFO] [stdout] 189 | / unsafe extern "C" fn each_note_cb( [INFO] [stdout] 190 | | oid: *const object_id, [INFO] [stdout] 191 | | note_oid: *const object_id, [INFO] [stdout] 192 | | _note_path: *const c_char, [INFO] [stdout] 193 | | cb_data: *mut c_void, [INFO] [stdout] 194 | | ) -> c_int { [INFO] [stdout] | |______________^ [INFO] [stdout] = note: `--force-warn unsafe-op-in-unsafe-fn` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libcinnabar.rs:196:17 [INFO] [stdout] | [INFO] [stdout] 196 | let o = oid.as_ref().unwrap().clone().into(); [INFO] [stdout] | ^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libcinnabar.rs:197:17 [INFO] [stdout] | [INFO] [stdout] 197 | let n = note_oid.as_ref().unwrap().clone().into(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libcinnabar.rs:213:54 [INFO] [stdout] | [INFO] [stdout] 213 | GitObjectId::from_raw_bytes(HgObjectId::from(oid.as_ref().unwrap().clone()).as_raw_bytes()) [INFO] [stdout] | ^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/libcinnabar.rs:208:1 [INFO] [stdout] | [INFO] [stdout] 208 | / pub unsafe extern "C" fn resolve_hg2git( [INFO] [stdout] 209 | | store: &Store, [INFO] [stdout] 210 | | oid: *const hg_object_id, [INFO] [stdout] 211 | | ) -> *const object_id { [INFO] [stdout] | |_____________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `libcinnabar::cinnabar_get_note` is unsafe and requires unsafe block [INFO] [stdout] --> src/libcinnabar.rs:215:5 [INFO] [stdout] | [INFO] [stdout] 215 | cinnabar_get_note(&mut store.hg2git_mut().0, &git_oid.into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libcinnabar.rs:225:26 [INFO] [stdout] | [INFO] [stdout] 225 | HgObjectId::from(oid.as_ref().unwrap().clone()), [INFO] [stdout] | ^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/libcinnabar.rs:219:1 [INFO] [stdout] | [INFO] [stdout] 219 | / pub unsafe extern "C" fn add_hg2git( [INFO] [stdout] 220 | | store: &Store, [INFO] [stdout] 221 | | oid: *const hg_object_id, [INFO] [stdout] 222 | | note_oid: *const object_id, [INFO] [stdout] 223 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libcinnabar.rs:226:9 [INFO] [stdout] | [INFO] [stdout] 226 | note_oid.as_ref().unwrap().clone().into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::as_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:742:21 [INFO] [stdout] | [INFO] [stdout] 742 | let diff_tree = (diff_tree as *mut Vec>) [INFO] [stdout] | _____________________^ [INFO] [stdout] 743 | | .as_mut() [INFO] [stdout] | |_________________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/libgit.rs:731:1 [INFO] [stdout] | [INFO] [stdout] 731 | unsafe extern "C" fn diff_tree_fill(diff_tree: *mut c_void, item: *const diff_tree_item) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:745:16 [INFO] [stdout] | [INFO] [stdout] 745 | let item = item.as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:748:26 [INFO] [stdout] | [INFO] [stdout] 748 | let a_path = CStr::from_ptr(item.a.path).to_bytes(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:749:26 [INFO] [stdout] | [INFO] [stdout] 749 | let b_path = CStr::from_ptr(item.b.path).to_bytes(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:765:13 [INFO] [stdout] | [INFO] [stdout] 765 | CStr::from_ptr(item.b.path).to_bytes(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:772:13 [INFO] [stdout] | [INFO] [stdout] 772 | CStr::from_ptr(item.b.path).to_bytes(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:779:13 [INFO] [stdout] | [INFO] [stdout] 779 | CStr::from_ptr(item.b.path).to_bytes(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:782:21 [INFO] [stdout] | [INFO] [stdout] 782 | CStr::from_ptr(item.a.path).to_bytes(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:795:13 [INFO] [stdout] | [INFO] [stdout] 795 | CStr::from_ptr(item.b.path).to_bytes(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:798:21 [INFO] [stdout] | [INFO] [stdout] 798 | CStr::from_ptr(item.a.path).to_bytes(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::as_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:907:37 [INFO] [stdout] | [INFO] [stdout] 907 | let (func, ref mut error) = (cb_data as *mut (F, Option)).as_mut().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/libgit.rs:903:5 [INFO] [stdout] | [INFO] [stdout] 903 | / unsafe extern "C" fn each_remote_cb Result<(), E>>( [INFO] [stdout] 904 | | remot: *const remote, [INFO] [stdout] 905 | | cb_data: *mut c_void, [INFO] [stdout] 906 | | ) -> c_int { [INFO] [stdout] | |______________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:908:21 [INFO] [stdout] | [INFO] [stdout] 908 | let remot = remot.as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::as_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:957:37 [INFO] [stdout] | [INFO] [stdout] 957 | let (func, ref mut error) = (cb_data as *mut (F, Option)).as_mut().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/libgit.rs:951:5 [INFO] [stdout] | [INFO] [stdout] 951 | / unsafe extern "C" fn each_ref_cb Result<(), E>>( [INFO] [stdout] 952 | | refname: *const c_char, [INFO] [stdout] 953 | | oid: *const object_id, [INFO] [stdout] 954 | | _flags: c_int, [INFO] [stdout] 955 | | cb_data: *mut c_void, [INFO] [stdout] 956 | | ) -> c_int { [INFO] [stdout] | |______________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:958:41 [INFO] [stdout] | [INFO] [stdout] 958 | let refname = OsStr::from_bytes(CStr::from_ptr(refname).to_bytes()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:959:63 [INFO] [stdout] | [INFO] [stdout] 959 | if let Ok(oid) = CommitId::try_from(GitObjectId::from(oid.as_ref().unwrap().clone())) { [INFO] [stdout] | ^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/store.rs:1428:9 [INFO] [stdout] | [INFO] [stdout] 1428 | mn.as_ref().unwrap().clone().into(), [INFO] [stdout] | ^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/store.rs:1425:1 [INFO] [stdout] | [INFO] [stdout] 1425 | pub unsafe extern "C" fn add_manifest_head(store: &Store, mn: *const object_id) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/store.rs:1967:39 [INFO] [stdout] | [INFO] [stdout] 1967 | GitManifestId::from_raw_bytes(oid.as_ref().unwrap().as_raw_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/store.rs:1965:1 [INFO] [stdout] | [INFO] [stdout] 1965 | pub unsafe extern "C" fn check_manifest(oid: *const object_id) -> c_int { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::alloc::alloc` is unsafe and requires unsafe block [INFO] [stdout] --> src/util.rs:478:10 [INFO] [stdout] | [INFO] [stdout] 478 | (std::alloc::alloc(layout), layout.size()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/util.rs:469:1 [INFO] [stdout] | [INFO] [stdout] 469 | unsafe fn alloc_recycle(layout: Layout) -> (*mut u8, usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::alloc::dealloc` is unsafe and requires unsafe block [INFO] [stdout] --> src/util.rs:491:13 [INFO] [stdout] | [INFO] [stdout] 491 | std::alloc::dealloc(ptr.as_ptr(), layout); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/util.rs:482:1 [INFO] [stdout] | [INFO] [stdout] 482 | unsafe fn dealloc_keep(ptr: *mut u8, layout: Layout) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_bundle.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | / ptr::write( [INFO] [stdout] 49 | | iterator, [INFO] [stdout] 50 | | chunk [INFO] [stdout] 51 | | .as_ref() [INFO] [stdout] ... | [INFO] [stdout] 56 | | .as_str_slice(), [INFO] [stdout] 57 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/hg_bundle.rs:47:1 [INFO] [stdout] | [INFO] [stdout] 47 | pub unsafe extern "C" fn rev_diff_start_iter(iterator: *mut strslice, chunk: *const rev_chunk) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_bundle.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | / chunk [INFO] [stdout] 51 | | .as_ref() [INFO] [stdout] | |_____________________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::as_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_bundle.rs:65:37 [INFO] [stdout] | [INFO] [stdout] 65 | let mut diff_iter = RevDiffIter(iterator.as_mut().unwrap().as_bytes()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/hg_bundle.rs:61:1 [INFO] [stdout] | [INFO] [stdout] 61 | / pub unsafe extern "C" fn rev_diff_iter_next( [INFO] [stdout] 62 | | iterator: *mut strslice, [INFO] [stdout] 63 | | part: *mut rev_diff_part, [INFO] [stdout] 64 | | ) -> c_int { [INFO] [stdout] | |__________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_bundle.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | ptr::write(iterator, diff_iter.0.as_str_slice()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_bundle.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | / ptr::write( [INFO] [stdout] 70 | | part, [INFO] [stdout] 71 | | mem::transmute::, rev_diff_part<'_>>(p.0), [INFO] [stdout] 72 | | ); [INFO] [stdout] | |_________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::intrinsics::transmute` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_bundle.rs:71:13 [INFO] [stdout] | [INFO] [stdout] 71 | mem::transmute::, rev_diff_part<'_>>(p.0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_connect_http.rs:289:18 [INFO] [stdout] | [INFO] [stdout] 289 | let target = (context as *const c_void as *const String) [INFO] [stdout] | __________________^ [INFO] [stdout] 290 | | .as_ref() [INFO] [stdout] | |_________________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/hg_connect_http.rs:282:1 [INFO] [stdout] | [INFO] [stdout] 282 | / unsafe extern "C" fn trace_log_callback( [INFO] [stdout] 283 | | _curl: *const CURL, [INFO] [stdout] 284 | | typ: curl_infotype, [INFO] [stdout] 285 | | data: *const c_char, [INFO] [stdout] 286 | | size: usize, [INFO] [stdout] 287 | | context: *mut c_void, [INFO] [stdout] 288 | | ) -> c_int { [INFO] [stdout] | |__________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_connect_http.rs:297:16 [INFO] [stdout] | [INFO] [stdout] 297 | let data = std::slice::from_raw_parts(data as *const u8, size); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::as_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_connect_http.rs:648:16 [INFO] [stdout] | [INFO] [stdout] 648 | let data = (data as *mut HttpThreadData).as_mut().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/hg_connect_http.rs:642:1 [INFO] [stdout] | [INFO] [stdout] 642 | / unsafe extern "C" fn http_request_execute( [INFO] [stdout] 643 | | ptr: *const c_char, [INFO] [stdout] 644 | | size: usize, [INFO] [stdout] 645 | | nmemb: usize, [INFO] [stdout] 646 | | data: *mut c_void, [INFO] [stdout] 647 | | ) -> usize { [INFO] [stdout] | |__________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_connect_http.rs:650:15 [INFO] [stdout] | [INFO] [stdout] 650 | let buf = std::slice::from_raw_parts(ptr as *const u8, size.checked_mul(nmemb).unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::as_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_connect_http.rs:865:16 [INFO] [stdout] | [INFO] [stdout] 865 | let read = (data as *mut R).as_mut().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/hg_connect_http.rs:859:1 [INFO] [stdout] | [INFO] [stdout] 859 | / unsafe extern "C" fn read_from_read( [INFO] [stdout] 860 | | ptr: *mut c_char, [INFO] [stdout] 861 | | size: usize, [INFO] [stdout] 862 | | nmemb: usize, [INFO] [stdout] 863 | | data: *const c_void, [INFO] [stdout] 864 | | ) -> usize { [INFO] [stdout] | |__________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_connect_http.rs:866:15 [INFO] [stdout] | [INFO] [stdout] 866 | let buf = std::slice::from_raw_parts_mut(ptr as *mut u8, size.checked_mul(nmemb).unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/main.rs:5112:17 [INFO] [stdout] | [INFO] [stdout] 5112 | let argv0 = CStr::from_ptr(*argv.as_ref().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/main.rs:5106:1 [INFO] [stdout] | [INFO] [stdout] 5106 | unsafe extern "C" fn cinnabar_main(_argc: c_int, argv: *const *const c_char) -> c_int { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/main.rs:5112:33 [INFO] [stdout] | [INFO] [stdout] 5112 | let argv0 = CStr::from_ptr(*argv.as_ref().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/main.rs:5135:5 [INFO] [stdout] | [INFO] [stdout] 5135 | HAS_GIT_REPO = init_cinnabar(exe.as_deref().unwrap_or(argv0).as_ptr()) != 0; [INFO] [stdout] | ^^^^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `init_cinnabar` is unsafe and requires unsafe block [INFO] [stdout] --> src/main.rs:5135:20 [INFO] [stdout] | [INFO] [stdout] 5135 | HAS_GIT_REPO = init_cinnabar(exe.as_deref().unwrap_or(argv0).as_ptr()) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block [INFO] [stdout] --> src/main.rs:5351:18 [INFO] [stdout] | [INFO] [stdout] 5351 | panic!("{}", std::slice::from_raw_parts(err, len).as_bstr()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/main.rs:5350:1 [INFO] [stdout] | [INFO] [stdout] 5350 | unsafe extern "C" fn do_panic(err: *const u8, len: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:524:15 [INFO] [stdout] | [INFO] [stdout] 524 | while let Some(part) = bundle.next_part().unwrap() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^--------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:553:9 [INFO] [stdout] | [INFO] [stdout] 553 | } [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:1691:20 [INFO] [stdout] | [INFO] [stdout] 1691 | if let Some(pretty_refname) = &pretty_refname { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:1740:17 [INFO] [stdout] | [INFO] [stdout] 1740 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1691 ~ match &pretty_refname { Some(pretty_refname) => { [INFO] [stdout] 1692 | let abbrev_cid = abbrev_cid.unwrap(); [INFO] [stdout] ... [INFO] [stdout] 1739 | } [INFO] [stdout] 1740 ~ } _ => { [INFO] [stdout] 1741 | writeln!( [INFO] [stdout] ... [INFO] [stdout] 1753 | .unwrap(); [INFO] [stdout] 1754 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:2075:8 [INFO] [stdout] | [INFO] [stdout] 2075 | if let Ok(metadata) = std::fs::symlink_metadata(&remote_hg_exe) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^----------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:2079:5 [INFO] [stdout] | [INFO] [stdout] 2079 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 2075 ~ match std::fs::symlink_metadata(&remote_hg_exe) { Ok(metadata) => { [INFO] [stdout] 2076 | if !metadata.is_symlink() { [INFO] [stdout] 2077 | std::fs::copy(&exe, &remote_hg_exe).map_err(|e| e.to_string())?; [INFO] [stdout] 2078 | } [INFO] [stdout] 2079 ~ } _ => { [INFO] [stdout] 2080 | cfg_if::cfg_if! { [INFO] [stdout] ... [INFO] [stdout] 2095 | } [INFO] [stdout] 2096 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:2846:27 [INFO] [stdout] | [INFO] [stdout] 2846 | let metadata = if let Some(metadata) = RawGitChangesetMetadata::read(store, git_cid) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^--------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:2848:9 [INFO] [stdout] | [INFO] [stdout] 2848 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 2846 ~ let metadata = match RawGitChangesetMetadata::read(store, git_cid) { Some(metadata) => { [INFO] [stdout] 2847 | metadata [INFO] [stdout] 2848 ~ } _ => { [INFO] [stdout] 2849 | report(format!("Missing git2hg metadata for git commit {}", c)); [INFO] [stdout] 2850 | continue; [INFO] [stdout] 2851 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:3083:16 [INFO] [stdout] | [INFO] [stdout] 3083 | if let Some((path, hg_file)) = all_interesting.take(&(path, hg_file)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:3106:13 [INFO] [stdout] | [INFO] [stdout] 3106 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 3083 ~ match all_interesting.take(&(path, hg_file)) { Some((path, hg_file)) => { [INFO] [stdout] 3084 | if !check_file( [INFO] [stdout] ... [INFO] [stdout] 3105 | progress.next(); [INFO] [stdout] 3106 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:3231:27 [INFO] [stdout] | [INFO] [stdout] 3231 | let metadata = if let Some(metadata) = RawGitChangesetMetadata::read(store, cid) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^----------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:3233:9 [INFO] [stdout] | [INFO] [stdout] 3233 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 3231 ~ let metadata = match RawGitChangesetMetadata::read(store, cid) { Some(metadata) => { [INFO] [stdout] 3232 | metadata [INFO] [stdout] 3233 ~ } _ => { [INFO] [stdout] 3234 | report(format!("Missing note for git commit: {}", cid)); [INFO] [stdout] 3235 | continue; [INFO] [stdout] 3236 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:3241:27 [INFO] [stdout] | [INFO] [stdout] 3241 | let metadata = if let Some(metadata) = metadata.parse() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^--------^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:3243:9 [INFO] [stdout] | [INFO] [stdout] 3243 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 3241 ~ let metadata = match metadata.parse() { Some(metadata) => { [INFO] [stdout] 3242 | metadata [INFO] [stdout] 3243 ~ } _ => { [INFO] [stdout] 3244 | report(format!("Cannot parse note for git commit: {}", cid)); [INFO] [stdout] 3245 | continue; [INFO] [stdout] 3246 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:3268:16 [INFO] [stdout] | [INFO] [stdout] 3268 | if let Some(raw_changeset) = RawHgChangeset::from_metadata(store, &commit, &metadata) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:3270:13 [INFO] [stdout] | [INFO] [stdout] 3270 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 3268 ~ match RawHgChangeset::from_metadata(store, &commit, &metadata) { Some(raw_changeset) => { [INFO] [stdout] 3269 | raw_changeset [INFO] [stdout] 3270 ~ } _ => { [INFO] [stdout] 3271 | report(format!( [INFO] [stdout] ... [INFO] [stdout] 3276 | continue; [INFO] [stdout] 3277 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:3944:20 [INFO] [stdout] | [INFO] [stdout] 3944 | if let Some(mut checker) = VersionChecker::force_now() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^--------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:3946:17 [INFO] [stdout] | [INFO] [stdout] 3946 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 3944 ~ match VersionChecker::force_now() { Some(mut checker) => { [INFO] [stdout] 3945 | checker.wait(Duration::from_secs(1)); [INFO] [stdout] 3946 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:4279:23 [INFO] [stdout] | [INFO] [stdout] 4279 | let head_ref = if let Some(bookmark_template) = bookmarks [INFO] [stdout] | ^ --------- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | _______________________| [INFO] [stdout] | | [INFO] [stdout] 4280 | | .contains_key(b"@".as_bstr()) [INFO] [stdout] 4281 | | .then_some(()) [INFO] [stdout] 4282 | | .and(bookmark_template) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:4285:5 [INFO] [stdout] | [INFO] [stdout] 4285 | } else if let Some(tip_template) = tip_template { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 4279 ~ let head_ref = match bookmarks [INFO] [stdout] 4280 | .contains_key(b"@".as_bstr()) [INFO] [stdout] 4281 | .then_some(()) [INFO] [stdout] 4282 | .and(bookmark_template) [INFO] [stdout] 4283 ~ { Some(bookmark_template) => { [INFO] [stdout] 4284 | Some(apply_template(bookmark_template, &[b"@".as_bstr()])) [INFO] [stdout] 4285 ~ } _ => if let Some(tip_template) = tip_template { [INFO] [stdout] 4286 | Some(apply_template(tip_template, &[b"default".as_bstr()])) [INFO] [stdout] ... [INFO] [stdout] 4296 | None [INFO] [stdout] 4297 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:4679:20 [INFO] [stdout] | [INFO] [stdout] 4679 | if let Some((_, info)) = dag.get(*c) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^---^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:4685:17 [INFO] [stdout] | [INFO] [stdout] 4685 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 4679 ~ match dag.get(*c) { Some((_, info)) => { [INFO] [stdout] 4680 | *b = info [INFO] [stdout] ... [INFO] [stdout] 4684 | .unwrap(); [INFO] [stdout] 4685 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:4755:27 [INFO] [stdout] | [INFO] [stdout] 4755 | while let Some(part) = bundle.next_part().unwrap() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^--------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:4772:21 [INFO] [stdout] | [INFO] [stdout] 4772 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/logging.rs:199:31 [INFO] [stdout] | [INFO] [stdout] 199 | } else if let Some(output) = OpenOptions::new() [INFO] [stdout] | _______________________________^ - [INFO] [stdout] | |__________________________________________________| [INFO] [stdout] 200 | || .append(true) [INFO] [stdout] 201 | || .create(true) [INFO] [stdout] 202 | || .open(path) [INFO] [stdout] 203 | || .ok() [INFO] [stdout] 204 | || .map(|f| LoggerOutput::File(Mutex::new(f))) [INFO] [stdout] | ||___________________________________________________________________^ this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | |___________________________________________________________________| [INFO] [stdout] | [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/logging.rs:215:21 [INFO] [stdout] | [INFO] [stdout] 215 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 199 ~ } else { match OpenOptions::new() [INFO] [stdout] 200 | .append(true) [INFO] [stdout] ... [INFO] [stdout] 204 | .map(|f| LoggerOutput::File(Mutex::new(f))) [INFO] [stdout] 205 ~ { Some(output) => { [INFO] [stdout] 206 | let index = if target.is_empty() { 0 } else { outputs.len() }; [INFO] [stdout] ... [INFO] [stdout] 214 | } [INFO] [stdout] 215 ~ } _ => { [INFO] [stdout] 216 | None [INFO] [stdout] 217 ~ }}}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/logging.rs:265:16 [INFO] [stdout] | [INFO] [stdout] 265 | if let Some(mut output) = self.outputs.get(index) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^------------^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/logging.rs:276:13 [INFO] [stdout] | [INFO] [stdout] 276 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 265 ~ match self.outputs.get(index) { Some(mut output) => { [INFO] [stdout] 266 | let mut line = vec![b'\r']; [INFO] [stdout] ... [INFO] [stdout] 275 | output.write_all(&line).ok(); [INFO] [stdout] 276 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator>>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/store.rs:498:34 [INFO] [stdout] | [INFO] [stdout] 498 | pub fn iter(&self) -> Option>>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/store.rs:498:17 [INFO] [stdout] | [INFO] [stdout] 498 | pub fn iter(&self) -> Option>>> { [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 498 | pub fn iter(&self) -> Option>> + use<'a>> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/store.rs:727:16 [INFO] [stdout] | [INFO] [stdout] 727 | if let Some(last_manifest) = last_manifest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/store.rs:781:13 [INFO] [stdout] | [INFO] [stdout] 781 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 727 ~ match last_manifest { Some(last_manifest) => { [INFO] [stdout] 728 | let reference_manifest = last_manifest.content.clone(); [INFO] [stdout] ... [INFO] [stdout] 780 | } [INFO] [stdout] 781 ~ } _ => { [INFO] [stdout] 782 | for entry in GitManifestTree::read(tree_id) [INFO] [stdout] ... [INFO] [stdout] 788 | } [INFO] [stdout] 789 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/store.rs:764:32 [INFO] [stdout] | [INFO] [stdout] 764 | ... if let Some(new_entry) = diff [INFO] [stdout] | __________________________^ - [INFO] [stdout] | |________________________________________________| [INFO] [stdout] 765 | || ... .map(|inner| { [INFO] [stdout] 766 | || ... match inner { [INFO] [stdout] 767 | || ... // File was removed, do nothing. [INFO] [stdout] ... || [INFO] [stdout] 773 | || ... }) [INFO] [stdout] 774 | || ... .transpose() [INFO] [stdout] | ||______________________________________^ this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | |______________________________________| [INFO] [stdout] | [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/store.rs:777:29 [INFO] [stdout] | [INFO] [stdout] 777 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 764 ~ match diff [INFO] [stdout] 765 | .map(|inner| { [INFO] [stdout] ... [INFO] [stdout] 774 | .transpose() [INFO] [stdout] 775 ~ { Some(new_entry) => { [INFO] [stdout] 776 | RawHgManifest::write_one_entry(&new_entry, &mut manifest).unwrap(); [INFO] [stdout] 777 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/store.rs:918:10 [INFO] [stdout] | [INFO] [stdout] 918 | ) -> impl Iterator { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/store.rs:916:17 [INFO] [stdout] | [INFO] [stdout] 916 | starts: &[N], [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/store.rs:959:10 [INFO] [stdout] | [INFO] [stdout] 959 | ) -> impl Iterator { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/store.rs:957:17 [INFO] [stdout] | [INFO] [stdout] 957 | starts: &[N], [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/store.rs:2146:20 [INFO] [stdout] | [INFO] [stdout] 2146 | if let Some(diff) = file.iter_diff().next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/store.rs:2150:17 [INFO] [stdout] | [INFO] [stdout] 2150 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 2146 ~ match file.iter_diff().next() { Some(diff) => { [INFO] [stdout] 2147 | if diff.start() == 0 && diff.data().get(..2) == Some(b"\x01\n") { [INFO] [stdout] 2148 | stored_files.insert(node, parents); [INFO] [stdout] 2149 | } [INFO] [stdout] 2150 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/store.rs:2434:38 [INFO] [stdout] | [INFO] [stdout] 2434 | let (refname, metadata_cid) = if let Some((refname, metadata_cid)) = [INFO] [stdout] | _______________________________________^ [INFO] [stdout] 2435 | |/ branches.into_iter().find_map(|branch| { [INFO] [stdout] 2436 | || if let Some(cid) = remote_refs.get(&*branch) { [INFO] [stdout] 2437 | || return Some((branch, cid)); [INFO] [stdout] 2438 | || } [INFO] [stdout] ... || [INFO] [stdout] 2451 | || None [INFO] [stdout] 2452 | || }) { [INFO] [stdout] | ||__________^ [INFO] [stdout] | |__________| [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/store.rs:2454:5 [INFO] [stdout] | [INFO] [stdout] 2454 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 2434 ~ let (refname, metadata_cid) = match branches.into_iter().find_map(|branch| { [INFO] [stdout] 2435 | if let Some(cid) = remote_refs.get(&*branch) { [INFO] [stdout] ... [INFO] [stdout] 2450 | None [INFO] [stdout] 2451 ~ }) { Some((refname, metadata_cid)) => { [INFO] [stdout] 2452 | (refname, *metadata_cid) [INFO] [stdout] 2453 ~ } _ => { [INFO] [stdout] 2454 | error!(target: "root", "Could not find cinnabar metadata"); [INFO] [stdout] 2455 | return false; [INFO] [stdout] 2456 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/store.rs:2459:21 [INFO] [stdout] | [INFO] [stdout] 2459 | let commit = if let Some(commit) = RawCommit::read(metadata_cid) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^----------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/store.rs:2461:5 [INFO] [stdout] | [INFO] [stdout] 2461 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 2459 ~ let commit = match RawCommit::read(metadata_cid) { Some(commit) => { [INFO] [stdout] 2460 | commit [INFO] [stdout] 2461 ~ } _ => { [INFO] [stdout] 2462 | let mut proc = if let Some(mut bundle) = bundle.as_mut() { [INFO] [stdout] ... [INFO] [stdout] 2500 | RawCommit::read(metadata_cid).unwrap() [INFO] [stdout] 2501 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/store.rs:2462:27 [INFO] [stdout] | [INFO] [stdout] 2462 | let mut proc = if let Some(mut bundle) = bundle.as_mut() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/store.rs:2477:9 [INFO] [stdout] | [INFO] [stdout] 2477 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 2462 ~ let mut proc = match bundle.as_mut() { Some(mut bundle) => { [INFO] [stdout] 2463 | let mut command = Command::new("git"); [INFO] [stdout] ... [INFO] [stdout] 2476 | proc [INFO] [stdout] 2477 ~ } _ => { [INFO] [stdout] 2478 | let mut command = Command::new("git"); [INFO] [stdout] ... [INFO] [stdout] 2494 | command.spawn().unwrap() [INFO] [stdout] 2495 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/store.rs:2528:20 [INFO] [stdout] | [INFO] [stdout] 2528 | if let Some(refname) = by_sha1.get(&cid) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^-------^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/store.rs:2541:17 [INFO] [stdout] | [INFO] [stdout] 2541 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 2528 ~ match by_sha1.get(&cid) { Some(refname) => { [INFO] [stdout] 2529 | let replace_ref = bstr::join( [INFO] [stdout] ... [INFO] [stdout] 2540 | ); [INFO] [stdout] 2541 ~ } _ => { [INFO] [stdout] 2542 | error!(target: "root", "Missing commit: {}", cid); [INFO] [stdout] 2543 | errors = true; [INFO] [stdout] 2544 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/store.rs:2678:24 [INFO] [stdout] | [INFO] [stdout] 2678 | if let Ok(original) = CommitId::from_bytes(&path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/store.rs:2687:21 [INFO] [stdout] | [INFO] [stdout] 2687 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 2678 ~ match CommitId::from_bytes(&path) { Ok(original) => { [INFO] [stdout] 2679 | if original == replace_with { [INFO] [stdout] ... [INFO] [stdout] 2686 | } [INFO] [stdout] 2687 ~ } _ => { [INFO] [stdout] 2688 | warn!("bad replace name: {}", path.as_bstr()); [INFO] [stdout] 2689 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/tree_util.rs:631:16 [INFO] [stdout] | [INFO] [stdout] 631 | if let Some((iter, prefix_len)) = self.stack.last_mut() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/tree_util.rs:651:13 [INFO] [stdout] | [INFO] [stdout] 651 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 631 ~ match self.stack.last_mut() { Some((iter, prefix_len)) => { [INFO] [stdout] 632 | if let Some((path, entry)) = [INFO] [stdout] ... [INFO] [stdout] 650 | } [INFO] [stdout] 651 ~ } _ => { [INFO] [stdout] 652 | return None; [INFO] [stdout] 653 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/tree_util.rs:632:20 [INFO] [stdout] | [INFO] [stdout] 632 | if let Some((path, entry)) = [INFO] [stdout] | ____________________^ [INFO] [stdout] 633 | | iter.next().map(IsWithPath::realize).map(WithPath::unzip) [INFO] [stdout] | |_____________________--------------------------------------------------------^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/tree_util.rs:647:17 [INFO] [stdout] | [INFO] [stdout] 647 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 632 ~ match iter.next().map(IsWithPath::realize).map(WithPath::unzip) [INFO] [stdout] 633 ~ { Some((path, entry)) => { [INFO] [stdout] 634 | match entry.maybe_recurse() { [INFO] [stdout] ... [INFO] [stdout] 645 | } [INFO] [stdout] 646 ~ } _ => { [INFO] [stdout] 647 | self.prefix.truncate(*prefix_len); [INFO] [stdout] 648 | self.stack.pop(); [INFO] [stdout] 649 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/xdiff.rs:148:47 [INFO] [stdout] | [INFO] [stdout] 148 | pub fn textdiff<'a>(a: &[u8], b: &'a [u8]) -> impl Iterator> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/xdiff.rs:148:24 [INFO] [stdout] | [INFO] [stdout] 148 | pub fn textdiff<'a>(a: &[u8], b: &'a [u8]) -> impl Iterator> { [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 148 | pub fn textdiff<'a>(a: &[u8], b: &'a [u8]) -> impl Iterator> + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/hg_bundle.rs:872:15 [INFO] [stdout] | [INFO] [stdout] 872 | while let Some(part) = bundle.next_part().unwrap() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^--------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/hg_bundle.rs:925:9 [INFO] [stdout] | [INFO] [stdout] 925 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl IntoIterator, IndexMap)>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/hg_bundle.rs:1158:6 [INFO] [stdout] | [INFO] [stdout] 1158 | ) -> impl IntoIterator< [INFO] [stdout] | ______^ [INFO] [stdout] 1159 | | Item = ( [INFO] [stdout] 1160 | | Box<[u8]>, [INFO] [stdout] 1161 | | IndexMap, [INFO] [stdout] 1162 | | ), [INFO] [stdout] 1163 | | > { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/hg_bundle.rs:1154:12 [INFO] [stdout] | [INFO] [stdout] 1154 | store: &Store, [INFO] [stdout] | ^ [INFO] [stdout] 1155 | bundle_part_writer: &mut BundlePartWriter, [INFO] [stdout] | ^ ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/hg_connect.rs:703:16 [INFO] [stdout] | [INFO] [stdout] 703 | if let Some(v) = v { [INFO] [stdout] | ^^^^^^^^^^^^^^- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/hg_connect.rs:705:13 [INFO] [stdout] | [INFO] [stdout] 705 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 703 ~ match v { Some(v) => { [INFO] [stdout] 704 | assert_eq!(caps[&*k].unwrap(), &v.iter().map(|v| &**v).collect_vec()); [INFO] [stdout] 705 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/hg_connect.rs:785:19 [INFO] [stdout] | [INFO] [stdout] 785 | while let Some(part) = bundle.next_part().unwrap() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^--------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/hg_connect.rs:796:13 [INFO] [stdout] | [INFO] [stdout] 796 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/hg_connect_http.rs:552:12 [INFO] [stdout] | [INFO] [stdout] 552 | if let Some(thread) = self.thread.take() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/hg_connect_http.rs:554:9 [INFO] [stdout] | [INFO] [stdout] 554 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 552 ~ match self.thread.take() { Some(thread) => { [INFO] [stdout] 553 | let _result = thread.join().unwrap(); [INFO] [stdout] 554 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/hg_data.rs:100:27 [INFO] [stdout] | [INFO] [stdout] 100 | let (name, mail) = if let Some(caps) = WHO_RE.captures(author) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^----------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/hg_data.rs:105:5 [INFO] [stdout] | [INFO] [stdout] 105 | } else if author.find_byte(b'@').is_some() { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 100 ~ let (name, mail) = match WHO_RE.captures(author) { Some(caps) => { [INFO] [stdout] 101 | ( [INFO] [stdout] ... [INFO] [stdout] 104 | ) [INFO] [stdout] 105 ~ } _ => if author.find_byte(b'@').is_some() { [INFO] [stdout] 106 | (b"".as_bstr(), author) [INFO] [stdout] 107 | } else { [INFO] [stdout] 108 | (author, b"".as_bstr()) [INFO] [stdout] 109 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/version_check.rs:128:12 [INFO] [stdout] | [INFO] [stdout] 128 | if let Some(child) = self.child.take() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^----------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/version_check.rs:139:9 [INFO] [stdout] | [INFO] [stdout] 139 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 128 ~ match self.child.take() { Some(child) => { [INFO] [stdout] 129 | let now = Instant::now(); [INFO] [stdout] ... [INFO] [stdout] 138 | self.child = Some(child); [INFO] [stdout] 139 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/version_check.rs:261:12 [INFO] [stdout] | [INFO] [stdout] 261 | if let Some(version) = r [INFO] [stdout] | ____________^ - [INFO] [stdout] | |________________________________| [INFO] [stdout] 262 | || .strip_prefix(b"refs/tags/") [INFO] [stdout] 263 | || .and_then(|tag| std::str::from_utf8(tag).ok()) [INFO] [stdout] 264 | || .and_then(parse_version) [INFO] [stdout] | ||____________________________________^ this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | |____________________________________| [INFO] [stdout] | [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/version_check.rs:273:9 [INFO] [stdout] | [INFO] [stdout] 273 | } else if sha1 != build_commit.as_bytes() { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 261 ~ match r [INFO] [stdout] 262 | .strip_prefix(b"refs/tags/") [INFO] [stdout] 263 | .and_then(|tag| std::str::from_utf8(tag).ok()) [INFO] [stdout] 264 | .and_then(parse_version) [INFO] [stdout] 265 ~ { Some(version) => { [INFO] [stdout] 266 | if version > current_version [INFO] [stdout] ... [INFO] [stdout] 272 | } [INFO] [stdout] 273 ~ } _ => if sha1 != build_commit.as_bytes() { [INFO] [stdout] 274 | debug!(target: "version-check", "Current version ({}) is different", build_commit); [INFO] [stdout] 275 | return Ok(Some(VersionInfo::Commit(cid))); [INFO] [stdout] 276 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/version_check.rs:278:8 [INFO] [stdout] | [INFO] [stdout] 278 | if let Some((v, cid)) = newest_version { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^-------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/version_check.rs:281:5 [INFO] [stdout] | [INFO] [stdout] 281 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 278 ~ match newest_version { Some((v, cid)) => { [INFO] [stdout] 279 | debug!(target: "version-check", "Newest version found: {}", v); [INFO] [stdout] 280 | Ok(Some(VersionInfo::Tagged(v, cid))) [INFO] [stdout] 281 ~ } _ => { [INFO] [stdout] 282 | debug!(target: "version-check", "No version is newer than current ({})", current_version); [INFO] [stdout] 283 | Ok(None) [INFO] [stdout] 284 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 135 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/libcinnabar.rs:207:3 [INFO] [stdout] | [INFO] [stdout] 207 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] = note: `--force-warn unsafe-attr-outside-unsafe` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 207 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `git_cinnabar` [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/libcinnabar.rs:218:3 [INFO] [stdout] | [INFO] [stdout] 218 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 218 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/store.rs:1424:3 [INFO] [stdout] | [INFO] [stdout] 1424 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 1424 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/store.rs:1964:3 [INFO] [stdout] | [INFO] [stdout] 1964 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 1964 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/hg_bundle.rs:46:3 [INFO] [stdout] | [INFO] [stdout] 46 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 46 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] * src/hg_connect.rs [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/hg_bundle.rs:60:3 [INFO] [stdout] | [INFO] [stdout] 60 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 60 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] * src/libgit.rs [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/main.rs:5105:3 [INFO] [stdout] | [INFO] [stdout] 5105 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 5105 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] * src/main.rs [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/main.rs:5248:3 [INFO] [stdout] | [INFO] [stdout] 5248 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 5248 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] * src/util.rs [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/main.rs:5349:3 [INFO] [stdout] | [INFO] [stdout] 5349 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 5349 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] * src/version_check.rs [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/graft.rs:20:1 [INFO] [stdout] | [INFO] [stdout] 20 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 21 | | fn replace_map_size() -> c_uint; [INFO] [stdout] 22 | | pub fn replace_map_tablesize() -> c_uint; [INFO] [stdout] 23 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] = note: `--force-warn missing-unsafe-on-extern` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libc.rs:25:1 [INFO] [stdout] | [INFO] [stdout] 25 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 26 | | fn xread(fd: c_int, buf: *mut c_void, size: usize) -> isize; [INFO] [stdout] 27 | | [INFO] [stdout] 28 | | fn xwrite(fd: c_int, buf: *const c_void, size: usize) -> isize; [INFO] [stdout] 29 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] This likely indicates a bug in either rustc or cargo itself, [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libcinnabar.rs:147:1 [INFO] [stdout] | [INFO] [stdout] 147 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 148 | | fn cinnabar_get_note( [INFO] [stdout] 149 | | notes: *mut cinnabar_notes_tree, [INFO] [stdout] 150 | | oid: *const object_id, [INFO] [stdout] ... | [INFO] [stdout] 183 | | ) -> c_int; [INFO] [stdout] 184 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] and we would appreciate a bug report! You're likely to see [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libcinnabar.rs:373:1 [INFO] [stdout] | [INFO] [stdout] 373 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 374 | | pub fn hg_connect_stdio( [INFO] [stdout] 375 | | userhost: *const c_char, [INFO] [stdout] 376 | | port: *const c_char, [INFO] [stdout] ... | [INFO] [stdout] 381 | | pub fn stdio_finish(conn: *mut child_process) -> c_int; [INFO] [stdout] 382 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] a number of compiler warnings after this message which cargo [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:74:1 [INFO] [stdout] | [INFO] [stdout] 74 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 75 | | static strbuf_slopbuf: [c_char; 1]; [INFO] [stdout] 76 | | fn strbuf_add(buf: *mut strbuf, data: *const c_void, len: usize); [INFO] [stdout] 77 | | fn strbuf_release(buf: *mut strbuf); [INFO] [stdout] 78 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] attempted to fix but failed. If you could open an issue at [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/libgit.rs:120:11 [INFO] [stdout] | [INFO] [stdout] 120 | ($($e:expr),+) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 120 | ($($e:expr_2021),+) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] https://github.com/rust-lang/rust/issues [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:126:1 [INFO] [stdout] | [INFO] [stdout] 126 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 127 | | pub fn credential_fill(auth: *mut credential, all_capabilities: c_int); [INFO] [stdout] 128 | | [INFO] [stdout] 129 | | pub static mut http_auth: credential; [INFO] [stdout] ... | [INFO] [stdout] 140 | | pub static ssl_cainfo: *mut c_char; [INFO] [stdout] 141 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] quoting the full output of this command we'd be very appreciative! [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:197:1 [INFO] [stdout] | [INFO] [stdout] 197 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 198 | | pub static http_follow_config: http_follow_config; [INFO] [stdout] 199 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Note that you may be able to make some more progress in the near-term [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:256:1 [INFO] [stdout] | [INFO] [stdout] 256 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 257 | | fn oid_object_info_extended( [INFO] [stdout] 258 | | r: *mut repository, [INFO] [stdout] 259 | | oid: *const object_id, [INFO] [stdout] ... | [INFO] [stdout] 262 | | ) -> c_int; [INFO] [stdout] 263 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] fixing code with the `--broken-code` flag [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:354:1 [INFO] [stdout] | [INFO] [stdout] 354 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 355 | | pub static mut the_repository: *mut repository; [INFO] [stdout] 356 | | [INFO] [stdout] 357 | | static default_abbrev: c_int; [INFO] [stdout] ... | [INFO] [stdout] 370 | | fn repo_lookup_replace_object(r: *mut repository, oid: *const object_id) -> *const object_id; [INFO] [stdout] 371 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stderr] The following errors were reported: [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/libgit.rs:120:8 [INFO] [stderr] | [INFO] [stderr] 120 | ($($e:expr_2021),+) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:723:6 [INFO] [stderr] | [INFO] [stderr] 723 | ($left:expr_2021, $right:expr_2021) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:723:23 [INFO] [stderr] | [INFO] [stderr] 723 | ($left:expr_2021, $right:expr_2021) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:738:6 [INFO] [stderr] | [INFO] [stderr] 738 | ($left:expr_2021, $right:expr_2021) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:738:23 [INFO] [stderr] | [INFO] [stderr] 738 | ($left:expr_2021, $right:expr_2021) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:752:6 [INFO] [stderr] | [INFO] [stderr] 752 | ($left:expr_2021, $right:expr_2021) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:752:23 [INFO] [stderr] | [INFO] [stderr] 752 | ($left:expr_2021, $right:expr_2021) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:766:6 [INFO] [stderr] | [INFO] [stderr] 766 | ($left:expr_2021, $right:expr_2021) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:766:23 [INFO] [stderr] | [INFO] [stderr] 766 | ($left:expr_2021, $right:expr_2021) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/hg_connect.rs:85:19 [INFO] [stderr] | [INFO] [stderr] 85 | ($($n:ident : $v:expr_2021,)* $(*: $a:expr_2021)?) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/hg_connect.rs:85:40 [INFO] [stderr] | [INFO] [stderr] 85 | ($($n:ident : $v:expr_2021,)* $(*: $a:expr_2021)?) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/hg_connect.rs:91:19 [INFO] [stderr] | [INFO] [stderr] 91 | ($($n:ident : $v:expr_2021),*) => { $crate::hg_connect::args!($($n:$v,)*) }; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/hg_connect.rs:92:25 [INFO] [stderr] | [INFO] [stderr] 92 | (@args $($n:ident : $v:expr_2021),*) => {&[ [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/hg_connect.rs:96:13 [INFO] [stderr] | [INFO] [stderr] 96 | (@extra $a:expr_2021) => { Some($a) }; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition name: `version_check_branch` [INFO] [stderr] --> src/version_check.rs:31:7 [INFO] [stderr] | [INFO] [stderr] 31 | #[cfg(version_check_branch)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: expected names are: `clippy`, `debug_assertions`, `doc`, `docsrs`, `doctest`, `feature`, `fmt_debug`, `miri`, `overflow_checks`, `panic`, `proc_macro`, `relocation_model`, `rustfmt`, `sanitize`, `sanitizer_cfi_generalize_pointers`, `sanitizer_cfi_normalize_integers`, `target_abi`, `target_arch`, `target_endian`, `target_env`, `target_family`, `target_feature`, `target_has_atomic`, `target_has_atomic_equal_alignment`, `target_has_atomic_load_store`, `target_os`, `target_pointer_width`, `target_thread_local`, `target_vendor`, `test`, `ub_checks`, `unix`, and `windows` [INFO] [stderr] = help: consider using a Cargo feature instead [INFO] [stderr] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stderr] [lints.rust] [INFO] [stderr] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(version_check_branch)'] } [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(version_check_branch)");` to the top of the `build.rs` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] = note: requested on the command line with `-W unexpected-cfgs` [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition name: `version_check_branch` [INFO] [stderr] --> src/version_check.rs:33:11 [INFO] [stderr] | [INFO] [stderr] 33 | #[cfg(not(version_check_branch))] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using a Cargo feature instead [INFO] [stderr] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stderr] [lints.rust] [INFO] [stderr] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(version_check_branch)'] } [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(version_check_branch)");` to the top of the `build.rs` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/main.rs:5156:9 [INFO] [stderr] | [INFO] [stderr] 5106 | unsafe extern "C" fn cinnabar_main(_argc: c_int, argv: *const *const c_char) -> c_int { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 5156 | unsafe { [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stderr] [INFO] [stderr] error: aborting due to 14 previous errors; 3 warnings emitted [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:433:1 [INFO] [stdout] | [INFO] [stdout] 433 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 434 | | pub fn commit_oid(c: *const commit) -> *const object_id; [INFO] [stdout] 435 | | [INFO] [stdout] 436 | | fn get_revision(revs: *mut rev_info) -> *const commit; [INFO] [stdout] ... | [INFO] [stdout] 444 | | fn get_saved_parents(revs: *mut rev_info, c: *const commit) -> *const commit_list; [INFO] [stdout] 445 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:656:1 [INFO] [stdout] | [INFO] [stdout] 656 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 657 | | fn diff_tree_( [INFO] [stdout] 658 | | argc: c_int, [INFO] [stdout] 659 | | argv: *const *const c_char, [INFO] [stdout] ... | [INFO] [stdout] 662 | | ); [INFO] [stdout] 663 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:844:1 [INFO] [stdout] | [INFO] [stdout] 844 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 845 | | fn remote_get(name: *const c_char) -> *mut remote; [INFO] [stdout] 846 | | [INFO] [stdout] 847 | | fn remote_get_name(remote: *const remote) -> *const c_char; [INFO] [stdout] ... | [INFO] [stdout] 851 | | fn remote_skip_default_update(remote: *const remote) -> c_int; [INFO] [stdout] 852 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:892:5 [INFO] [stdout] | [INFO] [stdout] 892 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _____help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 893 | | pub fn for_each_remote( [INFO] [stdout] 894 | | cb: unsafe extern "C" fn(*const remote, *mut c_void) -> c_int, [INFO] [stdout] 895 | | cb_data: *mut c_void, [INFO] [stdout] 896 | | ) -> c_int; [INFO] [stdout] 897 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:930:1 [INFO] [stdout] | [INFO] [stdout] 930 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 931 | | pub fn get_main_ref_store(r: *mut repository) -> *mut ref_store; [INFO] [stdout] 932 | | [INFO] [stdout] 933 | | pub fn refs_for_each_ref_in( [INFO] [stdout] ... | [INFO] [stdout] 938 | | ) -> c_int; [INFO] [stdout] 939 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:988:1 [INFO] [stdout] | [INFO] [stdout] 988 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 989 | | fn refs_read_ref(refs: *const ref_store, refname: *const c_char, oid: *mut object_id) -> c_int; [INFO] [stdout] 990 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:1018:1 [INFO] [stdout] | [INFO] [stdout] 1018 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 1019 | | fn ref_store_transaction_begin( [INFO] [stdout] 1020 | | refs: *const ref_store, [INFO] [stdout] 1021 | | err: *mut strbuf, [INFO] [stdout] ... | [INFO] [stdout] 1050 | | fn ref_transaction_abort(tr: *mut ref_transaction, err: *mut strbuf) -> c_int; [INFO] [stdout] 1051 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:1166:1 [INFO] [stdout] | [INFO] [stdout] 1166 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 1167 | | fn git_config_get_value(key: *const c_char, value: *mut *const c_char) -> c_int; [INFO] [stdout] 1168 | | fn git_config_set(key: *const c_char, value: *const c_char); [INFO] [stdout] 1169 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:1186:1 [INFO] [stdout] | [INFO] [stdout] 1186 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 1187 | | fn get_reachable_subset( [INFO] [stdout] 1188 | | from: *const *const commit, [INFO] [stdout] 1189 | | nr_from: c_int, [INFO] [stdout] ... | [INFO] [stdout] 1203 | | pub fn lookup_commit(r: *mut repository, oid: *const object_id) -> *const commit; [INFO] [stdout] 1204 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:1269:1 [INFO] [stdout] | [INFO] [stdout] 1269 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 1270 | | pub fn combine_notes_ignore(cur_oid: *mut object_id, new_oid: *const object_id) -> c_int; [INFO] [stdout] 1271 | | [INFO] [stdout] 1272 | | pub fn init_notes( [INFO] [stdout] ... | [INFO] [stdout] 1282 | | pub fn free_notes(notes: *mut notes_tree); [INFO] [stdout] 1283 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/libgit.rs:1311:5 [INFO] [stdout] | [INFO] [stdout] 1311 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _____help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 1312 | | pub fn git_committer_info(flag: c_int) -> *const c_char; [INFO] [stdout] 1313 | | pub fn git_author_info(flag: c_int) -> *const c_char; [INFO] [stdout] 1314 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/store.rs:1442:1 [INFO] [stdout] | [INFO] [stdout] 1442 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 1443 | | pub fn ensure_store_init(); [INFO] [stdout] 1444 | | fn store_git_object( [INFO] [stdout] 1445 | | typ: object_type, [INFO] [stdout] ... | [INFO] [stdout] 1453 | | fn unpack_object_entry(oe: *const object_entry, buf: *mut *mut c_char, len: *mut c_ulong); [INFO] [stdout] 1454 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/store.rs:1955:1 [INFO] [stdout] | [INFO] [stdout] 1955 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 1956 | | pub fn store_manifest( [INFO] [stdout] 1957 | | store: &Store, [INFO] [stdout] 1958 | | chunk: *const rev_chunk, [INFO] [stdout] ... | [INFO] [stdout] 1961 | | ); [INFO] [stdout] 1962 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/store.rs:2576:1 [INFO] [stdout] | [INFO] [stdout] 2576 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 2577 | | fn init_replace_map(); [INFO] [stdout] 2578 | | fn reset_replace_map(); [INFO] [stdout] 2579 | | fn store_replace_map(result: *mut object_id); [INFO] [stdout] 2580 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:723:12 [INFO] [stdout] | [INFO] [stdout] 723 | ($left:expr, $right:expr) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 723 | ($left:expr_2021, $right:expr) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:723:25 [INFO] [stdout] | [INFO] [stdout] 723 | ($left:expr, $right:expr) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 723 | ($left:expr, $right:expr_2021) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:738:12 [INFO] [stdout] | [INFO] [stdout] 738 | ($left:expr, $right:expr) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 738 | ($left:expr_2021, $right:expr) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:738:25 [INFO] [stdout] | [INFO] [stdout] 738 | ($left:expr, $right:expr) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 738 | ($left:expr, $right:expr_2021) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:752:12 [INFO] [stdout] | [INFO] [stdout] 752 | ($left:expr, $right:expr) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 752 | ($left:expr_2021, $right:expr) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:752:25 [INFO] [stdout] | [INFO] [stdout] 752 | ($left:expr, $right:expr) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 752 | ($left:expr, $right:expr_2021) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:766:12 [INFO] [stdout] | [INFO] [stdout] 766 | ($left:expr, $right:expr) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 766 | ($left:expr_2021, $right:expr) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:766:25 [INFO] [stdout] | [INFO] [stdout] 766 | ($left:expr, $right:expr) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 766 | ($left:expr, $right:expr_2021) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/xdiff.rs:57:1 [INFO] [stdout] | [INFO] [stdout] 57 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 58 | | fn xdi_diff_outf( [INFO] [stdout] 59 | | mf1: *const mmfile_t, [INFO] [stdout] 60 | | mf2: *const mmfile_t, [INFO] [stdout] ... | [INFO] [stdout] 68 | | ) -> c_int; [INFO] [stdout] 69 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/hg_connect.rs:85:22 [INFO] [stdout] | [INFO] [stdout] 85 | ($($n:ident : $v:expr,)* $(*: $a:expr)?) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 85 | ($($n:ident : $v:expr_2021,)* $(*: $a:expr)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/hg_connect.rs:85:38 [INFO] [stdout] | [INFO] [stdout] 85 | ($($n:ident : $v:expr,)* $(*: $a:expr)?) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 85 | ($($n:ident : $v:expr,)* $(*: $a:expr_2021)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/hg_connect.rs:91:22 [INFO] [stdout] | [INFO] [stdout] 91 | ($($n:ident : $v:expr),*) => { $crate::hg_connect::args!($($n:$v,)*) }; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 91 | ($($n:ident : $v:expr_2021),*) => { $crate::hg_connect::args!($($n:$v,)*) }; [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/hg_connect.rs:92:28 [INFO] [stdout] | [INFO] [stdout] 92 | (@args $($n:ident : $v:expr),*) => {&[ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 92 | (@args $($n:ident : $v:expr_2021),*) => {&[ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/hg_connect.rs:96:16 [INFO] [stdout] | [INFO] [stdout] 96 | (@extra $a:expr) => { Some($a) }; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 96 | (@extra $a:expr_2021) => { Some($a) }; [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/hg_connect_stdio.rs:199:1 [INFO] [stdout] | [INFO] [stdout] 199 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 200 | | fn proc_in(proc: *mut child_process) -> c_int; [INFO] [stdout] 201 | | [INFO] [stdout] 202 | | fn proc_out(proc: *mut child_process) -> c_int; [INFO] [stdout] 203 | | [INFO] [stdout] 204 | | fn proc_err(proc: *mut child_process) -> c_int; [INFO] [stdout] 205 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `version_check_branch` [INFO] [stdout] --> src/version_check.rs:31:7 [INFO] [stdout] | [INFO] [stdout] 31 | #[cfg(version_check_branch)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: expected names are: `clippy`, `debug_assertions`, `doc`, `docsrs`, `doctest`, `feature`, `fmt_debug`, `miri`, `overflow_checks`, `panic`, `proc_macro`, `relocation_model`, `rustfmt`, `sanitize`, `sanitizer_cfi_generalize_pointers`, `sanitizer_cfi_normalize_integers`, `target_abi`, `target_arch`, `target_endian`, `target_env`, `target_family`, `target_feature`, `target_has_atomic`, `target_has_atomic_equal_alignment`, `target_has_atomic_load_store`, `target_os`, `target_pointer_width`, `target_thread_local`, `target_vendor`, `test`, `ub_checks`, `unix`, and `windows` [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(version_check_branch)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(version_check_branch)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: requested on the command line with `-W unexpected-cfgs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `version_check_branch` [INFO] [stdout] --> src/version_check.rs:33:11 [INFO] [stdout] | [INFO] [stdout] 33 | #[cfg(not(version_check_branch))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(version_check_branch)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(version_check_branch)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/main.rs:180:1 [INFO] [stdout] | [INFO] [stdout] 180 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 181 | | fn do_cleanup(rollback: c_int); [INFO] [stdout] 182 | | [INFO] [stdout] 183 | | #[cfg(windows)] [INFO] [stdout] ... | [INFO] [stdout] 186 | | fn init_cinnabar(argv0: *const c_char) -> c_int; [INFO] [stdout] 187 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/main.rs:491:1 [INFO] [stdout] | [INFO] [stdout] 491 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 492 | | fn git_path_fetch_head(repos: *mut repository) -> *const c_char; [INFO] [stdout] 493 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/main.rs:608:1 [INFO] [stdout] | [INFO] [stdout] 608 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 609 | | fn check_pager_config(cmd: *const c_char) -> c_int; [INFO] [stdout] 610 | | fn setup_pager(); [INFO] [stdout] 611 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/main.rs:1176:1 [INFO] [stdout] | [INFO] [stdout] 1176 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 1177 | | fn add_ref(tail: *mut *mut *mut r#ref, name: *const c_char, oid: *const object_id); [INFO] [stdout] 1178 | | [INFO] [stdout] 1179 | | fn add_symref(tail: *mut *mut *mut r#ref, name: *const c_char, sym: *const c_char); [INFO] [stdout] ... | [INFO] [stdout] 1197 | | ) -> c_int; [INFO] [stdout] 1198 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/main.rs:1204:1 [INFO] [stdout] | [INFO] [stdout] 1204 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 1205 | | fn term_columns() -> c_int; [INFO] [stdout] 1206 | | [INFO] [stdout] 1207 | | fn get_worktrees() -> *const *const worktree; [INFO] [stdout] ... | [INFO] [stdout] 1221 | | fn get_worktree_ref_store(wr: *const worktree) -> *const libgit::ref_store; [INFO] [stdout] 1222 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::as_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/libcinnabar.rs:195:18 [INFO] [stdout] | [INFO] [stdout] 195 | let cb = (cb_data as *mut F).as_mut().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/libcinnabar.rs:189:5 [INFO] [stdout] | [INFO] [stdout] 189 | / unsafe extern "C" fn each_note_cb( [INFO] [stdout] 190 | | oid: *const object_id, [INFO] [stdout] 191 | | note_oid: *const object_id, [INFO] [stdout] 192 | | _note_path: *const c_char, [INFO] [stdout] 193 | | cb_data: *mut c_void, [INFO] [stdout] 194 | | ) -> c_int { [INFO] [stdout] | |______________^ [INFO] [stdout] = note: `--force-warn unsafe-op-in-unsafe-fn` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libcinnabar.rs:196:17 [INFO] [stdout] | [INFO] [stdout] 196 | let o = oid.as_ref().unwrap().clone().into(); [INFO] [stdout] | ^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libcinnabar.rs:197:17 [INFO] [stdout] | [INFO] [stdout] 197 | let n = note_oid.as_ref().unwrap().clone().into(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libcinnabar.rs:213:54 [INFO] [stdout] | [INFO] [stdout] 213 | GitObjectId::from_raw_bytes(HgObjectId::from(oid.as_ref().unwrap().clone()).as_raw_bytes()) [INFO] [stdout] | ^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/libcinnabar.rs:208:1 [INFO] [stdout] | [INFO] [stdout] 208 | / pub unsafe extern "C" fn resolve_hg2git( [INFO] [stdout] 209 | | store: &Store, [INFO] [stdout] 210 | | oid: *const hg_object_id, [INFO] [stdout] 211 | | ) -> *const object_id { [INFO] [stdout] | |_____________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `libcinnabar::cinnabar_get_note` is unsafe and requires unsafe block [INFO] [stdout] --> src/libcinnabar.rs:215:5 [INFO] [stdout] | [INFO] [stdout] 215 | cinnabar_get_note(&mut store.hg2git_mut().0, &git_oid.into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libcinnabar.rs:225:26 [INFO] [stdout] | [INFO] [stdout] 225 | HgObjectId::from(oid.as_ref().unwrap().clone()), [INFO] [stdout] | ^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/libcinnabar.rs:219:1 [INFO] [stdout] | [INFO] [stdout] 219 | / pub unsafe extern "C" fn add_hg2git( [INFO] [stdout] 220 | | store: &Store, [INFO] [stdout] 221 | | oid: *const hg_object_id, [INFO] [stdout] 222 | | note_oid: *const object_id, [INFO] [stdout] 223 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libcinnabar.rs:226:9 [INFO] [stdout] | [INFO] [stdout] 226 | note_oid.as_ref().unwrap().clone().into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::as_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:742:21 [INFO] [stdout] | [INFO] [stdout] 742 | let diff_tree = (diff_tree as *mut Vec>) [INFO] [stdout] | _____________________^ [INFO] [stdout] 743 | | .as_mut() [INFO] [stdout] | |_________________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/libgit.rs:731:1 [INFO] [stdout] | [INFO] [stdout] 731 | unsafe extern "C" fn diff_tree_fill(diff_tree: *mut c_void, item: *const diff_tree_item) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:745:16 [INFO] [stdout] | [INFO] [stdout] 745 | let item = item.as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:748:26 [INFO] [stdout] | [INFO] [stdout] 748 | let a_path = CStr::from_ptr(item.a.path).to_bytes(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:749:26 [INFO] [stdout] | [INFO] [stdout] 749 | let b_path = CStr::from_ptr(item.b.path).to_bytes(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:765:13 [INFO] [stdout] | [INFO] [stdout] 765 | CStr::from_ptr(item.b.path).to_bytes(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:772:13 [INFO] [stdout] | [INFO] [stdout] 772 | CStr::from_ptr(item.b.path).to_bytes(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:779:13 [INFO] [stdout] | [INFO] [stdout] 779 | CStr::from_ptr(item.b.path).to_bytes(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:782:21 [INFO] [stdout] | [INFO] [stdout] 782 | CStr::from_ptr(item.a.path).to_bytes(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:795:13 [INFO] [stdout] | [INFO] [stdout] 795 | CStr::from_ptr(item.b.path).to_bytes(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:798:21 [INFO] [stdout] | [INFO] [stdout] 798 | CStr::from_ptr(item.a.path).to_bytes(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::as_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:907:37 [INFO] [stdout] | [INFO] [stdout] 907 | let (func, ref mut error) = (cb_data as *mut (F, Option)).as_mut().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/libgit.rs:903:5 [INFO] [stdout] | [INFO] [stdout] 903 | / unsafe extern "C" fn each_remote_cb Result<(), E>>( [INFO] [stdout] 904 | | remot: *const remote, [INFO] [stdout] 905 | | cb_data: *mut c_void, [INFO] [stdout] 906 | | ) -> c_int { [INFO] [stdout] | |______________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:908:21 [INFO] [stdout] | [INFO] [stdout] 908 | let remot = remot.as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::as_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:957:37 [INFO] [stdout] | [INFO] [stdout] 957 | let (func, ref mut error) = (cb_data as *mut (F, Option)).as_mut().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/libgit.rs:951:5 [INFO] [stdout] | [INFO] [stdout] 951 | / unsafe extern "C" fn each_ref_cb Result<(), E>>( [INFO] [stdout] 952 | | refname: *const c_char, [INFO] [stdout] 953 | | oid: *const object_id, [INFO] [stdout] 954 | | _flags: c_int, [INFO] [stdout] 955 | | cb_data: *mut c_void, [INFO] [stdout] 956 | | ) -> c_int { [INFO] [stdout] | |______________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:958:41 [INFO] [stdout] | [INFO] [stdout] 958 | let refname = OsStr::from_bytes(CStr::from_ptr(refname).to_bytes()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:959:63 [INFO] [stdout] | [INFO] [stdout] 959 | if let Ok(oid) = CommitId::try_from(GitObjectId::from(oid.as_ref().unwrap().clone())) { [INFO] [stdout] | ^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/store.rs:1428:9 [INFO] [stdout] | [INFO] [stdout] 1428 | mn.as_ref().unwrap().clone().into(), [INFO] [stdout] | ^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/store.rs:1425:1 [INFO] [stdout] | [INFO] [stdout] 1425 | pub unsafe extern "C" fn add_manifest_head(store: &Store, mn: *const object_id) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/store.rs:1967:39 [INFO] [stdout] | [INFO] [stdout] 1967 | GitManifestId::from_raw_bytes(oid.as_ref().unwrap().as_raw_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/store.rs:1965:1 [INFO] [stdout] | [INFO] [stdout] 1965 | pub unsafe extern "C" fn check_manifest(oid: *const object_id) -> c_int { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::alloc::alloc` is unsafe and requires unsafe block [INFO] [stdout] --> src/util.rs:478:10 [INFO] [stdout] | [INFO] [stdout] 478 | (std::alloc::alloc(layout), layout.size()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/util.rs:469:1 [INFO] [stdout] | [INFO] [stdout] 469 | unsafe fn alloc_recycle(layout: Layout) -> (*mut u8, usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::alloc::dealloc` is unsafe and requires unsafe block [INFO] [stdout] --> src/util.rs:491:13 [INFO] [stdout] | [INFO] [stdout] 491 | std::alloc::dealloc(ptr.as_ptr(), layout); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/util.rs:482:1 [INFO] [stdout] | [INFO] [stdout] 482 | unsafe fn dealloc_keep(ptr: *mut u8, layout: Layout) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_bundle.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | / ptr::write( [INFO] [stdout] 49 | | iterator, [INFO] [stdout] 50 | | chunk [INFO] [stdout] 51 | | .as_ref() [INFO] [stdout] ... | [INFO] [stdout] 56 | | .as_str_slice(), [INFO] [stdout] 57 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/hg_bundle.rs:47:1 [INFO] [stdout] | [INFO] [stdout] 47 | pub unsafe extern "C" fn rev_diff_start_iter(iterator: *mut strslice, chunk: *const rev_chunk) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_bundle.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | / chunk [INFO] [stdout] 51 | | .as_ref() [INFO] [stdout] | |_____________________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::as_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_bundle.rs:65:37 [INFO] [stdout] | [INFO] [stdout] 65 | let mut diff_iter = RevDiffIter(iterator.as_mut().unwrap().as_bytes()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/hg_bundle.rs:61:1 [INFO] [stdout] | [INFO] [stdout] 61 | / pub unsafe extern "C" fn rev_diff_iter_next( [INFO] [stdout] 62 | | iterator: *mut strslice, [INFO] [stdout] 63 | | part: *mut rev_diff_part, [INFO] [stdout] 64 | | ) -> c_int { [INFO] [stdout] | |__________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_bundle.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | ptr::write(iterator, diff_iter.0.as_str_slice()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_bundle.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | / ptr::write( [INFO] [stdout] 70 | | part, [INFO] [stdout] 71 | | mem::transmute::, rev_diff_part<'_>>(p.0), [INFO] [stdout] 72 | | ); [INFO] [stdout] | |_________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::intrinsics::transmute` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_bundle.rs:71:13 [INFO] [stdout] | [INFO] [stdout] 71 | mem::transmute::, rev_diff_part<'_>>(p.0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_connect_http.rs:289:18 [INFO] [stdout] | [INFO] [stdout] 289 | let target = (context as *const c_void as *const String) [INFO] [stdout] | __________________^ [INFO] [stdout] 290 | | .as_ref() [INFO] [stdout] | |_________________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/hg_connect_http.rs:282:1 [INFO] [stdout] | [INFO] [stdout] 282 | / unsafe extern "C" fn trace_log_callback( [INFO] [stdout] 283 | | _curl: *const CURL, [INFO] [stdout] 284 | | typ: curl_infotype, [INFO] [stdout] 285 | | data: *const c_char, [INFO] [stdout] 286 | | size: usize, [INFO] [stdout] 287 | | context: *mut c_void, [INFO] [stdout] 288 | | ) -> c_int { [INFO] [stdout] | |__________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_connect_http.rs:297:16 [INFO] [stdout] | [INFO] [stdout] 297 | let data = std::slice::from_raw_parts(data as *const u8, size); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::as_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_connect_http.rs:648:16 [INFO] [stdout] | [INFO] [stdout] 648 | let data = (data as *mut HttpThreadData).as_mut().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/hg_connect_http.rs:642:1 [INFO] [stdout] | [INFO] [stdout] 642 | / unsafe extern "C" fn http_request_execute( [INFO] [stdout] 643 | | ptr: *const c_char, [INFO] [stdout] 644 | | size: usize, [INFO] [stdout] 645 | | nmemb: usize, [INFO] [stdout] 646 | | data: *mut c_void, [INFO] [stdout] 647 | | ) -> usize { [INFO] [stdout] | |__________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_connect_http.rs:650:15 [INFO] [stdout] | [INFO] [stdout] 650 | let buf = std::slice::from_raw_parts(ptr as *const u8, size.checked_mul(nmemb).unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::as_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_connect_http.rs:865:16 [INFO] [stdout] | [INFO] [stdout] 865 | let read = (data as *mut R).as_mut().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/hg_connect_http.rs:859:1 [INFO] [stdout] | [INFO] [stdout] 859 | / unsafe extern "C" fn read_from_read( [INFO] [stdout] 860 | | ptr: *mut c_char, [INFO] [stdout] 861 | | size: usize, [INFO] [stdout] 862 | | nmemb: usize, [INFO] [stdout] 863 | | data: *const c_void, [INFO] [stdout] 864 | | ) -> usize { [INFO] [stdout] | |__________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_connect_http.rs:866:15 [INFO] [stdout] | [INFO] [stdout] 866 | let buf = std::slice::from_raw_parts_mut(ptr as *mut u8, size.checked_mul(nmemb).unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/main.rs:5112:17 [INFO] [stdout] | [INFO] [stdout] 5112 | let argv0 = CStr::from_ptr(*argv.as_ref().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/main.rs:5106:1 [INFO] [stdout] | [INFO] [stdout] 5106 | unsafe extern "C" fn cinnabar_main(_argc: c_int, argv: *const *const c_char) -> c_int { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/main.rs:5112:33 [INFO] [stdout] | [INFO] [stdout] 5112 | let argv0 = CStr::from_ptr(*argv.as_ref().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/main.rs:5135:5 [INFO] [stdout] | [INFO] [stdout] 5135 | HAS_GIT_REPO = init_cinnabar(exe.as_deref().unwrap_or(argv0).as_ptr()) != 0; [INFO] [stdout] | ^^^^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `init_cinnabar` is unsafe and requires unsafe block [INFO] [stdout] --> src/main.rs:5135:20 [INFO] [stdout] | [INFO] [stdout] 5135 | HAS_GIT_REPO = init_cinnabar(exe.as_deref().unwrap_or(argv0).as_ptr()) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block [INFO] [stdout] --> src/main.rs:5351:18 [INFO] [stdout] | [INFO] [stdout] 5351 | panic!("{}", std::slice::from_raw_parts(err, len).as_bstr()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/main.rs:5350:1 [INFO] [stdout] | [INFO] [stdout] 5350 | unsafe extern "C" fn do_panic(err: *const u8, len: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:524:15 [INFO] [stdout] | [INFO] [stdout] 524 | while let Some(part) = bundle.next_part().unwrap() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^--------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:553:9 [INFO] [stdout] | [INFO] [stdout] 553 | } [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:1691:20 [INFO] [stdout] | [INFO] [stdout] 1691 | if let Some(pretty_refname) = &pretty_refname { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:1740:17 [INFO] [stdout] | [INFO] [stdout] 1740 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1691 ~ match &pretty_refname { Some(pretty_refname) => { [INFO] [stdout] 1692 | let abbrev_cid = abbrev_cid.unwrap(); [INFO] [stdout] ... [INFO] [stdout] 1739 | } [INFO] [stdout] 1740 ~ } _ => { [INFO] [stdout] 1741 | writeln!( [INFO] [stdout] ... [INFO] [stdout] 1753 | .unwrap(); [INFO] [stdout] 1754 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:2075:8 [INFO] [stdout] | [INFO] [stdout] 2075 | if let Ok(metadata) = std::fs::symlink_metadata(&remote_hg_exe) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^----------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:2079:5 [INFO] [stdout] | [INFO] [stdout] 2079 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 2075 ~ match std::fs::symlink_metadata(&remote_hg_exe) { Ok(metadata) => { [INFO] [stdout] 2076 | if !metadata.is_symlink() { [INFO] [stdout] 2077 | std::fs::copy(&exe, &remote_hg_exe).map_err(|e| e.to_string())?; [INFO] [stdout] 2078 | } [INFO] [stdout] 2079 ~ } _ => { [INFO] [stdout] 2080 | cfg_if::cfg_if! { [INFO] [stdout] ... [INFO] [stdout] 2095 | } [INFO] [stdout] 2096 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:2846:27 [INFO] [stdout] | [INFO] [stdout] 2846 | let metadata = if let Some(metadata) = RawGitChangesetMetadata::read(store, git_cid) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^--------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:2848:9 [INFO] [stdout] | [INFO] [stdout] 2848 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 2846 ~ let metadata = match RawGitChangesetMetadata::read(store, git_cid) { Some(metadata) => { [INFO] [stdout] 2847 | metadata [INFO] [stdout] 2848 ~ } _ => { [INFO] [stdout] 2849 | report(format!("Missing git2hg metadata for git commit {}", c)); [INFO] [stdout] 2850 | continue; [INFO] [stdout] 2851 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:3083:16 [INFO] [stdout] | [INFO] [stdout] 3083 | if let Some((path, hg_file)) = all_interesting.take(&(path, hg_file)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:3106:13 [INFO] [stdout] | [INFO] [stdout] 3106 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 3083 ~ match all_interesting.take(&(path, hg_file)) { Some((path, hg_file)) => { [INFO] [stdout] 3084 | if !check_file( [INFO] [stdout] ... [INFO] [stdout] 3105 | progress.next(); [INFO] [stdout] 3106 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:3231:27 [INFO] [stdout] | [INFO] [stdout] 3231 | let metadata = if let Some(metadata) = RawGitChangesetMetadata::read(store, cid) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^----------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:3233:9 [INFO] [stdout] | [INFO] [stdout] 3233 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 3231 ~ let metadata = match RawGitChangesetMetadata::read(store, cid) { Some(metadata) => { [INFO] [stdout] 3232 | metadata [INFO] [stdout] 3233 ~ } _ => { [INFO] [stdout] 3234 | report(format!("Missing note for git commit: {}", cid)); [INFO] [stdout] 3235 | continue; [INFO] [stdout] 3236 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:3241:27 [INFO] [stdout] | [INFO] [stdout] 3241 | let metadata = if let Some(metadata) = metadata.parse() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^--------^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:3243:9 [INFO] [stdout] | [INFO] [stdout] 3243 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 3241 ~ let metadata = match metadata.parse() { Some(metadata) => { [INFO] [stdout] 3242 | metadata [INFO] [stdout] 3243 ~ } _ => { [INFO] [stdout] 3244 | report(format!("Cannot parse note for git commit: {}", cid)); [INFO] [stdout] 3245 | continue; [INFO] [stdout] 3246 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:3268:16 [INFO] [stdout] | [INFO] [stdout] 3268 | if let Some(raw_changeset) = RawHgChangeset::from_metadata(store, &commit, &metadata) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:3270:13 [INFO] [stdout] | [INFO] [stdout] 3270 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 3268 ~ match RawHgChangeset::from_metadata(store, &commit, &metadata) { Some(raw_changeset) => { [INFO] [stdout] 3269 | raw_changeset [INFO] [stdout] 3270 ~ } _ => { [INFO] [stdout] 3271 | report(format!( [INFO] [stdout] ... [INFO] [stdout] 3276 | continue; [INFO] [stdout] 3277 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:3944:20 [INFO] [stdout] | [INFO] [stdout] 3944 | if let Some(mut checker) = VersionChecker::force_now() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^--------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:3946:17 [INFO] [stdout] | [INFO] [stdout] 3946 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 3944 ~ match VersionChecker::force_now() { Some(mut checker) => { [INFO] [stdout] 3945 | checker.wait(Duration::from_secs(1)); [INFO] [stdout] 3946 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:4279:23 [INFO] [stdout] | [INFO] [stdout] 4279 | let head_ref = if let Some(bookmark_template) = bookmarks [INFO] [stdout] | ^ --------- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | _______________________| [INFO] [stdout] | | [INFO] [stdout] 4280 | | .contains_key(b"@".as_bstr()) [INFO] [stdout] 4281 | | .then_some(()) [INFO] [stdout] 4282 | | .and(bookmark_template) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:4285:5 [INFO] [stdout] | [INFO] [stdout] 4285 | } else if let Some(tip_template) = tip_template { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 4279 ~ let head_ref = match bookmarks [INFO] [stdout] 4280 | .contains_key(b"@".as_bstr()) [INFO] [stdout] 4281 | .then_some(()) [INFO] [stdout] 4282 | .and(bookmark_template) [INFO] [stdout] 4283 ~ { Some(bookmark_template) => { [INFO] [stdout] 4284 | Some(apply_template(bookmark_template, &[b"@".as_bstr()])) [INFO] [stdout] 4285 ~ } _ => if let Some(tip_template) = tip_template { [INFO] [stdout] 4286 | Some(apply_template(tip_template, &[b"default".as_bstr()])) [INFO] [stdout] ... [INFO] [stdout] 4296 | None [INFO] [stdout] 4297 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:4679:20 [INFO] [stdout] | [INFO] [stdout] 4679 | if let Some((_, info)) = dag.get(*c) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^---^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:4685:17 [INFO] [stdout] | [INFO] [stdout] 4685 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 4679 ~ match dag.get(*c) { Some((_, info)) => { [INFO] [stdout] 4680 | *b = info [INFO] [stdout] ... [INFO] [stdout] 4684 | .unwrap(); [INFO] [stdout] 4685 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:4755:27 [INFO] [stdout] | [INFO] [stdout] 4755 | while let Some(part) = bundle.next_part().unwrap() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^--------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:4772:21 [INFO] [stdout] | [INFO] [stdout] 4772 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/logging.rs:199:31 [INFO] [stdout] | [INFO] [stdout] 199 | } else if let Some(output) = OpenOptions::new() [INFO] [stdout] | _______________________________^ - [INFO] [stdout] | |__________________________________________________| [INFO] [stdout] 200 | || .append(true) [INFO] [stdout] 201 | || .create(true) [INFO] [stdout] 202 | || .open(path) [INFO] [stdout] 203 | || .ok() [INFO] [stdout] 204 | || .map(|f| LoggerOutput::File(Mutex::new(f))) [INFO] [stdout] | ||___________________________________________________________________^ this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | |___________________________________________________________________| [INFO] [stdout] | [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/logging.rs:215:21 [INFO] [stdout] | [INFO] [stdout] 215 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 199 ~ } else { match OpenOptions::new() [INFO] [stdout] 200 | .append(true) [INFO] [stdout] ... [INFO] [stdout] 204 | .map(|f| LoggerOutput::File(Mutex::new(f))) [INFO] [stdout] 205 ~ { Some(output) => { [INFO] [stdout] 206 | let index = if target.is_empty() { 0 } else { outputs.len() }; [INFO] [stdout] ... [INFO] [stdout] 214 | } [INFO] [stdout] 215 ~ } _ => { [INFO] [stdout] 216 | None [INFO] [stdout] 217 ~ }}}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/logging.rs:265:16 [INFO] [stdout] | [INFO] [stdout] 265 | if let Some(mut output) = self.outputs.get(index) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^------------^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/logging.rs:276:13 [INFO] [stdout] | [INFO] [stdout] 276 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 265 ~ match self.outputs.get(index) { Some(mut output) => { [INFO] [stdout] 266 | let mut line = vec![b'\r']; [INFO] [stdout] ... [INFO] [stdout] 275 | output.write_all(&line).ok(); [INFO] [stdout] 276 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator>>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/store.rs:498:34 [INFO] [stdout] | [INFO] [stdout] 498 | pub fn iter(&self) -> Option>>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/store.rs:498:17 [INFO] [stdout] | [INFO] [stdout] 498 | pub fn iter(&self) -> Option>>> { [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 498 | pub fn iter(&self) -> Option>> + use<'a>> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/store.rs:727:16 [INFO] [stdout] | [INFO] [stdout] 727 | if let Some(last_manifest) = last_manifest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/store.rs:781:13 [INFO] [stdout] | [INFO] [stdout] 781 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 727 ~ match last_manifest { Some(last_manifest) => { [INFO] [stdout] 728 | let reference_manifest = last_manifest.content.clone(); [INFO] [stdout] ... [INFO] [stdout] 780 | } [INFO] [stdout] 781 ~ } _ => { [INFO] [stdout] 782 | for entry in GitManifestTree::read(tree_id) [INFO] [stdout] ... [INFO] [stdout] 788 | } [INFO] [stdout] 789 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/store.rs:764:32 [INFO] [stdout] | [INFO] [stdout] 764 | ... if let Some(new_entry) = diff [INFO] [stdout] | __________________________^ - [INFO] [stdout] | |________________________________________________| [INFO] [stdout] 765 | || ... .map(|inner| { [INFO] [stdout] 766 | || ... match inner { [INFO] [stdout] 767 | || ... // File was removed, do nothing. [INFO] [stdout] ... || [INFO] [stdout] 773 | || ... }) [INFO] [stdout] 774 | || ... .transpose() [INFO] [stdout] | ||______________________________________^ this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | |______________________________________| [INFO] [stdout] | [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/store.rs:777:29 [INFO] [stdout] | [INFO] [stdout] 777 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 764 ~ match diff [INFO] [stdout] 765 | .map(|inner| { [INFO] [stdout] ... [INFO] [stdout] 774 | .transpose() [INFO] [stdout] 775 ~ { Some(new_entry) => { [INFO] [stdout] 776 | RawHgManifest::write_one_entry(&new_entry, &mut manifest).unwrap(); [INFO] [stdout] 777 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/store.rs:918:10 [INFO] [stdout] | [INFO] [stdout] 918 | ) -> impl Iterator { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/store.rs:916:17 [INFO] [stdout] | [INFO] [stdout] 916 | starts: &[N], [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/store.rs:959:10 [INFO] [stdout] | [INFO] [stdout] 959 | ) -> impl Iterator { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/store.rs:957:17 [INFO] [stdout] | [INFO] [stdout] 957 | starts: &[N], [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/store.rs:2146:20 [INFO] [stdout] | [INFO] [stdout] 2146 | if let Some(diff) = file.iter_diff().next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/store.rs:2150:17 [INFO] [stdout] | [INFO] [stdout] 2150 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 2146 ~ match file.iter_diff().next() { Some(diff) => { [INFO] [stdout] 2147 | if diff.start() == 0 && diff.data().get(..2) == Some(b"\x01\n") { [INFO] [stdout] 2148 | stored_files.insert(node, parents); [INFO] [stdout] 2149 | } [INFO] [stdout] 2150 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/store.rs:2434:38 [INFO] [stdout] | [INFO] [stdout] 2434 | let (refname, metadata_cid) = if let Some((refname, metadata_cid)) = [INFO] [stdout] | _______________________________________^ [INFO] [stdout] 2435 | |/ branches.into_iter().find_map(|branch| { [INFO] [stdout] 2436 | || if let Some(cid) = remote_refs.get(&*branch) { [INFO] [stdout] 2437 | || return Some((branch, cid)); [INFO] [stdout] 2438 | || } [INFO] [stdout] ... || [INFO] [stdout] 2451 | || None [INFO] [stdout] 2452 | || }) { [INFO] [stdout] | ||__________^ [INFO] [stdout] | |__________| [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/store.rs:2454:5 [INFO] [stdout] | [INFO] [stdout] 2454 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 2434 ~ let (refname, metadata_cid) = match branches.into_iter().find_map(|branch| { [INFO] [stdout] 2435 | if let Some(cid) = remote_refs.get(&*branch) { [INFO] [stdout] ... [INFO] [stdout] 2450 | None [INFO] [stdout] 2451 ~ }) { Some((refname, metadata_cid)) => { [INFO] [stdout] 2452 | (refname, *metadata_cid) [INFO] [stdout] 2453 ~ } _ => { [INFO] [stdout] 2454 | error!(target: "root", "Could not find cinnabar metadata"); [INFO] [stdout] 2455 | return false; [INFO] [stdout] 2456 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/store.rs:2459:21 [INFO] [stdout] | [INFO] [stdout] 2459 | let commit = if let Some(commit) = RawCommit::read(metadata_cid) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^----------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/store.rs:2461:5 [INFO] [stdout] | [INFO] [stdout] 2461 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 2459 ~ let commit = match RawCommit::read(metadata_cid) { Some(commit) => { [INFO] [stdout] 2460 | commit [INFO] [stdout] 2461 ~ } _ => { [INFO] [stdout] 2462 | let mut proc = if let Some(mut bundle) = bundle.as_mut() { [INFO] [stdout] ... [INFO] [stdout] 2500 | RawCommit::read(metadata_cid).unwrap() [INFO] [stdout] 2501 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/store.rs:2462:27 [INFO] [stdout] | [INFO] [stdout] 2462 | let mut proc = if let Some(mut bundle) = bundle.as_mut() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/store.rs:2477:9 [INFO] [stdout] | [INFO] [stdout] 2477 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 2462 ~ let mut proc = match bundle.as_mut() { Some(mut bundle) => { [INFO] [stdout] 2463 | let mut command = Command::new("git"); [INFO] [stdout] ... [INFO] [stdout] 2476 | proc [INFO] [stdout] 2477 ~ } _ => { [INFO] [stdout] 2478 | let mut command = Command::new("git"); [INFO] [stdout] ... [INFO] [stdout] 2494 | command.spawn().unwrap() [INFO] [stdout] 2495 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/store.rs:2528:20 [INFO] [stdout] | [INFO] [stdout] 2528 | if let Some(refname) = by_sha1.get(&cid) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^-------^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/store.rs:2541:17 [INFO] [stdout] | [INFO] [stdout] 2541 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 2528 ~ match by_sha1.get(&cid) { Some(refname) => { [INFO] [stdout] 2529 | let replace_ref = bstr::join( [INFO] [stdout] ... [INFO] [stdout] 2540 | ); [INFO] [stdout] 2541 ~ } _ => { [INFO] [stdout] 2542 | error!(target: "root", "Missing commit: {}", cid); [INFO] [stdout] 2543 | errors = true; [INFO] [stdout] 2544 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/store.rs:2678:24 [INFO] [stdout] | [INFO] [stdout] 2678 | if let Ok(original) = CommitId::from_bytes(&path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/store.rs:2687:21 [INFO] [stdout] | [INFO] [stdout] 2687 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 2678 ~ match CommitId::from_bytes(&path) { Ok(original) => { [INFO] [stdout] 2679 | if original == replace_with { [INFO] [stdout] ... [INFO] [stdout] 2686 | } [INFO] [stdout] 2687 ~ } _ => { [INFO] [stdout] 2688 | warn!("bad replace name: {}", path.as_bstr()); [INFO] [stdout] 2689 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/tree_util.rs:631:16 [INFO] [stdout] | [INFO] [stdout] 631 | if let Some((iter, prefix_len)) = self.stack.last_mut() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/tree_util.rs:651:13 [INFO] [stdout] | [INFO] [stdout] 651 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 631 ~ match self.stack.last_mut() { Some((iter, prefix_len)) => { [INFO] [stdout] 632 | if let Some((path, entry)) = [INFO] [stdout] ... [INFO] [stdout] 650 | } [INFO] [stdout] 651 ~ } _ => { [INFO] [stdout] 652 | return None; [INFO] [stdout] 653 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/tree_util.rs:632:20 [INFO] [stdout] | [INFO] [stdout] 632 | if let Some((path, entry)) = [INFO] [stdout] | ____________________^ [INFO] [stdout] 633 | | iter.next().map(IsWithPath::realize).map(WithPath::unzip) [INFO] [stdout] | |_____________________--------------------------------------------------------^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/tree_util.rs:647:17 [INFO] [stdout] | [INFO] [stdout] 647 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 632 ~ match iter.next().map(IsWithPath::realize).map(WithPath::unzip) [INFO] [stdout] 633 ~ { Some((path, entry)) => { [INFO] [stdout] 634 | match entry.maybe_recurse() { [INFO] [stdout] ... [INFO] [stdout] 645 | } [INFO] [stdout] 646 ~ } _ => { [INFO] [stdout] 647 | self.prefix.truncate(*prefix_len); [INFO] [stdout] 648 | self.stack.pop(); [INFO] [stdout] 649 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/xdiff.rs:148:47 [INFO] [stdout] | [INFO] [stdout] 148 | pub fn textdiff<'a>(a: &[u8], b: &'a [u8]) -> impl Iterator> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/xdiff.rs:148:24 [INFO] [stdout] | [INFO] [stdout] 148 | pub fn textdiff<'a>(a: &[u8], b: &'a [u8]) -> impl Iterator> { [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 148 | pub fn textdiff<'a>(a: &[u8], b: &'a [u8]) -> impl Iterator> + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/hg_bundle.rs:872:15 [INFO] [stdout] | [INFO] [stdout] 872 | while let Some(part) = bundle.next_part().unwrap() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^--------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/hg_bundle.rs:925:9 [INFO] [stdout] | [INFO] [stdout] 925 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl IntoIterator, IndexMap)>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/hg_bundle.rs:1158:6 [INFO] [stdout] | [INFO] [stdout] 1158 | ) -> impl IntoIterator< [INFO] [stdout] | ______^ [INFO] [stdout] 1159 | | Item = ( [INFO] [stdout] 1160 | | Box<[u8]>, [INFO] [stdout] 1161 | | IndexMap, [INFO] [stdout] 1162 | | ), [INFO] [stdout] 1163 | | > { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/hg_bundle.rs:1154:12 [INFO] [stdout] | [INFO] [stdout] 1154 | store: &Store, [INFO] [stdout] | ^ [INFO] [stdout] 1155 | bundle_part_writer: &mut BundlePartWriter, [INFO] [stdout] | ^ ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/hg_connect.rs:785:19 [INFO] [stdout] | [INFO] [stdout] 785 | while let Some(part) = bundle.next_part().unwrap() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^--------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/hg_connect.rs:796:13 [INFO] [stdout] | [INFO] [stdout] 796 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/hg_connect_http.rs:552:12 [INFO] [stdout] | [INFO] [stdout] 552 | if let Some(thread) = self.thread.take() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/hg_connect_http.rs:554:9 [INFO] [stdout] | [INFO] [stdout] 554 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 552 ~ match self.thread.take() { Some(thread) => { [INFO] [stdout] 553 | let _result = thread.join().unwrap(); [INFO] [stdout] 554 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/hg_data.rs:100:27 [INFO] [stdout] | [INFO] [stdout] 100 | let (name, mail) = if let Some(caps) = WHO_RE.captures(author) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^----------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/hg_data.rs:105:5 [INFO] [stdout] | [INFO] [stdout] 105 | } else if author.find_byte(b'@').is_some() { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 100 ~ let (name, mail) = match WHO_RE.captures(author) { Some(caps) => { [INFO] [stdout] 101 | ( [INFO] [stdout] ... [INFO] [stdout] 104 | ) [INFO] [stdout] 105 ~ } _ => if author.find_byte(b'@').is_some() { [INFO] [stdout] 106 | (b"".as_bstr(), author) [INFO] [stdout] 107 | } else { [INFO] [stdout] 108 | (author, b"".as_bstr()) [INFO] [stdout] 109 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/version_check.rs:128:12 [INFO] [stdout] | [INFO] [stdout] 128 | if let Some(child) = self.child.take() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^----------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/version_check.rs:139:9 [INFO] [stdout] | [INFO] [stdout] 139 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 128 ~ match self.child.take() { Some(child) => { [INFO] [stdout] 129 | let now = Instant::now(); [INFO] [stdout] ... [INFO] [stdout] 138 | self.child = Some(child); [INFO] [stdout] 139 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/version_check.rs:261:12 [INFO] [stdout] | [INFO] [stdout] 261 | if let Some(version) = r [INFO] [stdout] | ____________^ - [INFO] [stdout] | |________________________________| [INFO] [stdout] 262 | || .strip_prefix(b"refs/tags/") [INFO] [stdout] 263 | || .and_then(|tag| std::str::from_utf8(tag).ok()) [INFO] [stdout] 264 | || .and_then(parse_version) [INFO] [stdout] | ||____________________________________^ this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | |____________________________________| [INFO] [stdout] | [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/version_check.rs:273:9 [INFO] [stdout] | [INFO] [stdout] 273 | } else if sha1 != build_commit.as_bytes() { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 261 ~ match r [INFO] [stdout] 262 | .strip_prefix(b"refs/tags/") [INFO] [stdout] 263 | .and_then(|tag| std::str::from_utf8(tag).ok()) [INFO] [stdout] 264 | .and_then(parse_version) [INFO] [stdout] 265 ~ { Some(version) => { [INFO] [stdout] 266 | if version > current_version [INFO] [stdout] ... [INFO] [stdout] 272 | } [INFO] [stdout] 273 ~ } _ => if sha1 != build_commit.as_bytes() { [INFO] [stdout] 274 | debug!(target: "version-check", "Current version ({}) is different", build_commit); [INFO] [stdout] 275 | return Ok(Some(VersionInfo::Commit(cid))); [INFO] [stdout] 276 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/version_check.rs:278:8 [INFO] [stdout] | [INFO] [stdout] 278 | if let Some((v, cid)) = newest_version { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^-------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/version_check.rs:281:5 [INFO] [stdout] | [INFO] [stdout] 281 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 278 ~ match newest_version { Some((v, cid)) => { [INFO] [stdout] 279 | debug!(target: "version-check", "Newest version found: {}", v); [INFO] [stdout] 280 | Ok(Some(VersionInfo::Tagged(v, cid))) [INFO] [stdout] 281 ~ } _ => { [INFO] [stdout] 282 | debug!(target: "version-check", "No version is newer than current ({})", current_version); [INFO] [stdout] 283 | Ok(None) [INFO] [stdout] 284 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 134 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 42.30s [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Compiling git-cinnabar v0.7.0-beta.1 (/tmp/fixit) [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/graft.rs:20:1 [INFO] [stdout] | [INFO] [stdout] 20 | / extern "C" { [INFO] [stdout] 21 | | fn replace_map_size() -> c_uint; [INFO] [stdout] 22 | | pub fn replace_map_tablesize() -> c_uint; [INFO] [stdout] 23 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libc.rs:25:1 [INFO] [stdout] | [INFO] [stdout] 25 | / extern "C" { [INFO] [stdout] 26 | | fn xread(fd: c_int, buf: *mut c_void, size: usize) -> isize; [INFO] [stdout] 27 | | [INFO] [stdout] 28 | | fn xwrite(fd: c_int, buf: *const c_void, size: usize) -> isize; [INFO] [stdout] 29 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libcinnabar.rs:147:1 [INFO] [stdout] | [INFO] [stdout] 147 | / extern "C" { [INFO] [stdout] 148 | | fn cinnabar_get_note( [INFO] [stdout] 149 | | notes: *mut cinnabar_notes_tree, [INFO] [stdout] 150 | | oid: *const object_id, [INFO] [stdout] ... | [INFO] [stdout] 183 | | ) -> c_int; [INFO] [stdout] 184 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/libcinnabar.rs:207:3 [INFO] [stdout] | [INFO] [stdout] 207 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 207 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/libcinnabar.rs:218:3 [INFO] [stdout] | [INFO] [stdout] 218 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 218 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libcinnabar.rs:373:1 [INFO] [stdout] | [INFO] [stdout] 373 | / extern "C" { [INFO] [stdout] 374 | | pub fn hg_connect_stdio( [INFO] [stdout] 375 | | userhost: *const c_char, [INFO] [stdout] 376 | | port: *const c_char, [INFO] [stdout] ... | [INFO] [stdout] 381 | | pub fn stdio_finish(conn: *mut child_process) -> c_int; [INFO] [stdout] 382 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:74:1 [INFO] [stdout] | [INFO] [stdout] 74 | / extern "C" { [INFO] [stdout] 75 | | static strbuf_slopbuf: [c_char; 1]; [INFO] [stdout] 76 | | fn strbuf_add(buf: *mut strbuf, data: *const c_void, len: usize); [INFO] [stdout] 77 | | fn strbuf_release(buf: *mut strbuf); [INFO] [stdout] 78 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:126:1 [INFO] [stdout] | [INFO] [stdout] 126 | / extern "C" { [INFO] [stdout] 127 | | pub fn credential_fill(auth: *mut credential, all_capabilities: c_int); [INFO] [stdout] 128 | | [INFO] [stdout] 129 | | pub static mut http_auth: credential; [INFO] [stdout] ... | [INFO] [stdout] 140 | | pub static ssl_cainfo: *mut c_char; [INFO] [stdout] 141 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:197:1 [INFO] [stdout] | [INFO] [stdout] 197 | / extern "C" { [INFO] [stdout] 198 | | pub static http_follow_config: http_follow_config; [INFO] [stdout] 199 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:256:1 [INFO] [stdout] | [INFO] [stdout] 256 | / extern "C" { [INFO] [stdout] 257 | | fn oid_object_info_extended( [INFO] [stdout] 258 | | r: *mut repository, [INFO] [stdout] 259 | | oid: *const object_id, [INFO] [stdout] ... | [INFO] [stdout] 262 | | ) -> c_int; [INFO] [stdout] 263 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:354:1 [INFO] [stdout] | [INFO] [stdout] 354 | / extern "C" { [INFO] [stdout] 355 | | pub static mut the_repository: *mut repository; [INFO] [stdout] 356 | | [INFO] [stdout] 357 | | static default_abbrev: c_int; [INFO] [stdout] ... | [INFO] [stdout] 370 | | fn repo_lookup_replace_object(r: *mut repository, oid: *const object_id) -> *const object_id; [INFO] [stdout] 371 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:433:1 [INFO] [stdout] | [INFO] [stdout] 433 | / extern "C" { [INFO] [stdout] 434 | | pub fn commit_oid(c: *const commit) -> *const object_id; [INFO] [stdout] 435 | | [INFO] [stdout] 436 | | fn get_revision(revs: *mut rev_info) -> *const commit; [INFO] [stdout] ... | [INFO] [stdout] 444 | | fn get_saved_parents(revs: *mut rev_info, c: *const commit) -> *const commit_list; [INFO] [stdout] 445 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:656:1 [INFO] [stdout] | [INFO] [stdout] 656 | / extern "C" { [INFO] [stdout] 657 | | fn diff_tree_( [INFO] [stdout] 658 | | argc: c_int, [INFO] [stdout] 659 | | argv: *const *const c_char, [INFO] [stdout] ... | [INFO] [stdout] 662 | | ); [INFO] [stdout] 663 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:844:1 [INFO] [stdout] | [INFO] [stdout] 844 | / extern "C" { [INFO] [stdout] 845 | | fn remote_get(name: *const c_char) -> *mut remote; [INFO] [stdout] 846 | | [INFO] [stdout] 847 | | fn remote_get_name(remote: *const remote) -> *const c_char; [INFO] [stdout] ... | [INFO] [stdout] 851 | | fn remote_skip_default_update(remote: *const remote) -> c_int; [INFO] [stdout] 852 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:892:5 [INFO] [stdout] | [INFO] [stdout] 892 | / extern "C" { [INFO] [stdout] 893 | | pub fn for_each_remote( [INFO] [stdout] 894 | | cb: unsafe extern "C" fn(*const remote, *mut c_void) -> c_int, [INFO] [stdout] 895 | | cb_data: *mut c_void, [INFO] [stdout] 896 | | ) -> c_int; [INFO] [stdout] 897 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:930:1 [INFO] [stdout] | [INFO] [stdout] 930 | / extern "C" { [INFO] [stdout] 931 | | pub fn get_main_ref_store(r: *mut repository) -> *mut ref_store; [INFO] [stdout] 932 | | [INFO] [stdout] 933 | | pub fn refs_for_each_ref_in( [INFO] [stdout] ... | [INFO] [stdout] 938 | | ) -> c_int; [INFO] [stdout] 939 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:988:1 [INFO] [stdout] | [INFO] [stdout] 988 | / extern "C" { [INFO] [stdout] 989 | | fn refs_read_ref(refs: *const ref_store, refname: *const c_char, oid: *mut object_id) -> c_int; [INFO] [stdout] 990 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:1018:1 [INFO] [stdout] | [INFO] [stdout] 1018 | / extern "C" { [INFO] [stdout] 1019 | | fn ref_store_transaction_begin( [INFO] [stdout] 1020 | | refs: *const ref_store, [INFO] [stdout] 1021 | | err: *mut strbuf, [INFO] [stdout] ... | [INFO] [stdout] 1050 | | fn ref_transaction_abort(tr: *mut ref_transaction, err: *mut strbuf) -> c_int; [INFO] [stdout] 1051 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:1166:1 [INFO] [stdout] | [INFO] [stdout] 1166 | / extern "C" { [INFO] [stdout] 1167 | | fn git_config_get_value(key: *const c_char, value: *mut *const c_char) -> c_int; [INFO] [stdout] 1168 | | fn git_config_set(key: *const c_char, value: *const c_char); [INFO] [stdout] 1169 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:1186:1 [INFO] [stdout] | [INFO] [stdout] 1186 | / extern "C" { [INFO] [stdout] 1187 | | fn get_reachable_subset( [INFO] [stdout] 1188 | | from: *const *const commit, [INFO] [stdout] 1189 | | nr_from: c_int, [INFO] [stdout] ... | [INFO] [stdout] 1203 | | pub fn lookup_commit(r: *mut repository, oid: *const object_id) -> *const commit; [INFO] [stdout] 1204 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:1269:1 [INFO] [stdout] | [INFO] [stdout] 1269 | / extern "C" { [INFO] [stdout] 1270 | | pub fn combine_notes_ignore(cur_oid: *mut object_id, new_oid: *const object_id) -> c_int; [INFO] [stdout] 1271 | | [INFO] [stdout] 1272 | | pub fn init_notes( [INFO] [stdout] ... | [INFO] [stdout] 1282 | | pub fn free_notes(notes: *mut notes_tree); [INFO] [stdout] 1283 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:1311:5 [INFO] [stdout] | [INFO] [stdout] 1311 | / extern "C" { [INFO] [stdout] 1312 | | pub fn git_committer_info(flag: c_int) -> *const c_char; [INFO] [stdout] 1313 | | pub fn git_author_info(flag: c_int) -> *const c_char; [INFO] [stdout] 1314 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/store.rs:1424:3 [INFO] [stdout] | [INFO] [stdout] 1424 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 1424 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/store.rs:1442:1 [INFO] [stdout] | [INFO] [stdout] 1442 | / extern "C" { [INFO] [stdout] 1443 | | pub fn ensure_store_init(); [INFO] [stdout] 1444 | | fn store_git_object( [INFO] [stdout] 1445 | | typ: object_type, [INFO] [stdout] ... | [INFO] [stdout] 1453 | | fn unpack_object_entry(oe: *const object_entry, buf: *mut *mut c_char, len: *mut c_ulong); [INFO] [stdout] 1454 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/store.rs:1955:1 [INFO] [stdout] | [INFO] [stdout] 1955 | / extern "C" { [INFO] [stdout] 1956 | | pub fn store_manifest( [INFO] [stdout] 1957 | | store: &Store, [INFO] [stdout] 1958 | | chunk: *const rev_chunk, [INFO] [stdout] ... | [INFO] [stdout] 1961 | | ); [INFO] [stdout] 1962 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/store.rs:1964:3 [INFO] [stdout] | [INFO] [stdout] 1964 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 1964 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/store.rs:2576:1 [INFO] [stdout] | [INFO] [stdout] 2576 | / extern "C" { [INFO] [stdout] 2577 | | fn init_replace_map(); [INFO] [stdout] 2578 | | fn reset_replace_map(); [INFO] [stdout] 2579 | | fn store_replace_map(result: *mut object_id); [INFO] [stdout] 2580 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/xdiff.rs:57:1 [INFO] [stdout] | [INFO] [stdout] 57 | / extern "C" { [INFO] [stdout] 58 | | fn xdi_diff_outf( [INFO] [stdout] 59 | | mf1: *const mmfile_t, [INFO] [stdout] 60 | | mf2: *const mmfile_t, [INFO] [stdout] ... | [INFO] [stdout] 68 | | ) -> c_int; [INFO] [stdout] 69 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/hg_bundle.rs:46:3 [INFO] [stdout] | [INFO] [stdout] 46 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 46 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/hg_bundle.rs:60:3 [INFO] [stdout] | [INFO] [stdout] 60 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 60 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/hg_connect_stdio.rs:199:1 [INFO] [stdout] | [INFO] [stdout] 199 | / extern "C" { [INFO] [stdout] 200 | | fn proc_in(proc: *mut child_process) -> c_int; [INFO] [stdout] 201 | | [INFO] [stdout] 202 | | fn proc_out(proc: *mut child_process) -> c_int; [INFO] [stdout] 203 | | [INFO] [stdout] 204 | | fn proc_err(proc: *mut child_process) -> c_int; [INFO] [stdout] 205 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/main.rs:180:1 [INFO] [stdout] | [INFO] [stdout] 180 | / extern "C" { [INFO] [stdout] 181 | | fn do_cleanup(rollback: c_int); [INFO] [stdout] 182 | | [INFO] [stdout] 183 | | #[cfg(windows)] [INFO] [stdout] ... | [INFO] [stdout] 186 | | fn init_cinnabar(argv0: *const c_char) -> c_int; [INFO] [stdout] 187 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/main.rs:491:1 [INFO] [stdout] | [INFO] [stdout] 491 | / extern "C" { [INFO] [stdout] 492 | | fn git_path_fetch_head(repos: *mut repository) -> *const c_char; [INFO] [stdout] 493 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/main.rs:608:1 [INFO] [stdout] | [INFO] [stdout] 608 | / extern "C" { [INFO] [stdout] 609 | | fn check_pager_config(cmd: *const c_char) -> c_int; [INFO] [stdout] 610 | | fn setup_pager(); [INFO] [stdout] 611 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/main.rs:1176:1 [INFO] [stdout] | [INFO] [stdout] 1176 | / extern "C" { [INFO] [stdout] 1177 | | fn add_ref(tail: *mut *mut *mut r#ref, name: *const c_char, oid: *const object_id); [INFO] [stdout] 1178 | | [INFO] [stdout] 1179 | | fn add_symref(tail: *mut *mut *mut r#ref, name: *const c_char, sym: *const c_char); [INFO] [stdout] ... | [INFO] [stdout] 1197 | | ) -> c_int; [INFO] [stdout] 1198 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/main.rs:1204:1 [INFO] [stdout] | [INFO] [stdout] 1204 | / extern "C" { [INFO] [stdout] 1205 | | fn term_columns() -> c_int; [INFO] [stdout] 1206 | | [INFO] [stdout] 1207 | | fn get_worktrees() -> *const *const worktree; [INFO] [stdout] ... | [INFO] [stdout] 1221 | | fn get_worktree_ref_store(wr: *const worktree) -> *const libgit::ref_store; [INFO] [stdout] 1222 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/main.rs:5105:3 [INFO] [stdout] | [INFO] [stdout] 5105 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 5105 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/main.rs:5248:3 [INFO] [stdout] | [INFO] [stdout] 5248 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 5248 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/main.rs:5349:3 [INFO] [stdout] | [INFO] [stdout] 5349 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 5349 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/graft.rs:20:1 [INFO] [stdout] | [INFO] [stdout] 20 | / extern "C" { [INFO] [stdout] 21 | | fn replace_map_size() -> c_uint; [INFO] [stdout] 22 | | pub fn replace_map_tablesize() -> c_uint; [INFO] [stdout] 23 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libc.rs:25:1 [INFO] [stdout] | [INFO] [stdout] 25 | / extern "C" { [INFO] [stdout] 26 | | fn xread(fd: c_int, buf: *mut c_void, size: usize) -> isize; [INFO] [stdout] 27 | | [INFO] [stdout] 28 | | fn xwrite(fd: c_int, buf: *const c_void, size: usize) -> isize; [INFO] [stdout] 29 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libcinnabar.rs:147:1 [INFO] [stdout] | [INFO] [stdout] 147 | / extern "C" { [INFO] [stdout] 148 | | fn cinnabar_get_note( [INFO] [stdout] 149 | | notes: *mut cinnabar_notes_tree, [INFO] [stdout] 150 | | oid: *const object_id, [INFO] [stdout] ... | [INFO] [stdout] 183 | | ) -> c_int; [INFO] [stdout] 184 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/libcinnabar.rs:207:3 [INFO] [stdout] | [INFO] [stdout] 207 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 207 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/libcinnabar.rs:218:3 [INFO] [stdout] | [INFO] [stdout] 218 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 218 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libcinnabar.rs:373:1 [INFO] [stdout] | [INFO] [stdout] 373 | / extern "C" { [INFO] [stdout] 374 | | pub fn hg_connect_stdio( [INFO] [stdout] 375 | | userhost: *const c_char, [INFO] [stdout] 376 | | port: *const c_char, [INFO] [stdout] ... | [INFO] [stdout] 381 | | pub fn stdio_finish(conn: *mut child_process) -> c_int; [INFO] [stdout] 382 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:74:1 [INFO] [stdout] | [INFO] [stdout] 74 | / extern "C" { [INFO] [stdout] 75 | | static strbuf_slopbuf: [c_char; 1]; [INFO] [stdout] 76 | | fn strbuf_add(buf: *mut strbuf, data: *const c_void, len: usize); [INFO] [stdout] 77 | | fn strbuf_release(buf: *mut strbuf); [INFO] [stdout] 78 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:126:1 [INFO] [stdout] | [INFO] [stdout] 126 | / extern "C" { [INFO] [stdout] 127 | | pub fn credential_fill(auth: *mut credential, all_capabilities: c_int); [INFO] [stdout] 128 | | [INFO] [stdout] 129 | | pub static mut http_auth: credential; [INFO] [stdout] ... | [INFO] [stdout] 140 | | pub static ssl_cainfo: *mut c_char; [INFO] [stdout] 141 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:197:1 [INFO] [stdout] | [INFO] [stdout] 197 | / extern "C" { [INFO] [stdout] 198 | | pub static http_follow_config: http_follow_config; [INFO] [stdout] 199 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:256:1 [INFO] [stdout] | [INFO] [stdout] 256 | / extern "C" { [INFO] [stdout] 257 | | fn oid_object_info_extended( [INFO] [stdout] 258 | | r: *mut repository, [INFO] [stdout] 259 | | oid: *const object_id, [INFO] [stdout] ... | [INFO] [stdout] 262 | | ) -> c_int; [INFO] [stdout] 263 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:354:1 [INFO] [stdout] | [INFO] [stdout] 354 | / extern "C" { [INFO] [stdout] 355 | | pub static mut the_repository: *mut repository; [INFO] [stdout] 356 | | [INFO] [stdout] 357 | | static default_abbrev: c_int; [INFO] [stdout] ... | [INFO] [stdout] 370 | | fn repo_lookup_replace_object(r: *mut repository, oid: *const object_id) -> *const object_id; [INFO] [stdout] 371 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:433:1 [INFO] [stdout] | [INFO] [stdout] 433 | / extern "C" { [INFO] [stdout] 434 | | pub fn commit_oid(c: *const commit) -> *const object_id; [INFO] [stdout] 435 | | [INFO] [stdout] 436 | | fn get_revision(revs: *mut rev_info) -> *const commit; [INFO] [stdout] ... | [INFO] [stdout] 444 | | fn get_saved_parents(revs: *mut rev_info, c: *const commit) -> *const commit_list; [INFO] [stdout] 445 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:656:1 [INFO] [stdout] | [INFO] [stdout] 656 | / extern "C" { [INFO] [stdout] 657 | | fn diff_tree_( [INFO] [stdout] 658 | | argc: c_int, [INFO] [stdout] 659 | | argv: *const *const c_char, [INFO] [stdout] ... | [INFO] [stdout] 662 | | ); [INFO] [stdout] 663 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:844:1 [INFO] [stdout] | [INFO] [stdout] 844 | / extern "C" { [INFO] [stdout] 845 | | fn remote_get(name: *const c_char) -> *mut remote; [INFO] [stdout] 846 | | [INFO] [stdout] 847 | | fn remote_get_name(remote: *const remote) -> *const c_char; [INFO] [stdout] ... | [INFO] [stdout] 851 | | fn remote_skip_default_update(remote: *const remote) -> c_int; [INFO] [stdout] 852 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:892:5 [INFO] [stdout] | [INFO] [stdout] 892 | / extern "C" { [INFO] [stdout] 893 | | pub fn for_each_remote( [INFO] [stdout] 894 | | cb: unsafe extern "C" fn(*const remote, *mut c_void) -> c_int, [INFO] [stdout] 895 | | cb_data: *mut c_void, [INFO] [stdout] 896 | | ) -> c_int; [INFO] [stdout] 897 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:930:1 [INFO] [stdout] | [INFO] [stdout] 930 | / extern "C" { [INFO] [stdout] 931 | | pub fn get_main_ref_store(r: *mut repository) -> *mut ref_store; [INFO] [stdout] 932 | | [INFO] [stdout] 933 | | pub fn refs_for_each_ref_in( [INFO] [stdout] ... | [INFO] [stdout] 938 | | ) -> c_int; [INFO] [stdout] 939 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:988:1 [INFO] [stdout] | [INFO] [stdout] 988 | / extern "C" { [INFO] [stdout] 989 | | fn refs_read_ref(refs: *const ref_store, refname: *const c_char, oid: *mut object_id) -> c_int; [INFO] [stdout] 990 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:1018:1 [INFO] [stdout] | [INFO] [stdout] 1018 | / extern "C" { [INFO] [stdout] 1019 | | fn ref_store_transaction_begin( [INFO] [stdout] 1020 | | refs: *const ref_store, [INFO] [stdout] 1021 | | err: *mut strbuf, [INFO] [stdout] ... | [INFO] [stdout] 1050 | | fn ref_transaction_abort(tr: *mut ref_transaction, err: *mut strbuf) -> c_int; [INFO] [stdout] 1051 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:1166:1 [INFO] [stdout] | [INFO] [stdout] 1166 | / extern "C" { [INFO] [stdout] 1167 | | fn git_config_get_value(key: *const c_char, value: *mut *const c_char) -> c_int; [INFO] [stdout] 1168 | | fn git_config_set(key: *const c_char, value: *const c_char); [INFO] [stdout] 1169 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:1186:1 [INFO] [stdout] | [INFO] [stdout] 1186 | / extern "C" { [INFO] [stdout] 1187 | | fn get_reachable_subset( [INFO] [stdout] 1188 | | from: *const *const commit, [INFO] [stdout] 1189 | | nr_from: c_int, [INFO] [stdout] ... | [INFO] [stdout] 1203 | | pub fn lookup_commit(r: *mut repository, oid: *const object_id) -> *const commit; [INFO] [stdout] 1204 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:1269:1 [INFO] [stdout] | [INFO] [stdout] 1269 | / extern "C" { [INFO] [stdout] 1270 | | pub fn combine_notes_ignore(cur_oid: *mut object_id, new_oid: *const object_id) -> c_int; [INFO] [stdout] 1271 | | [INFO] [stdout] 1272 | | pub fn init_notes( [INFO] [stdout] ... | [INFO] [stdout] 1282 | | pub fn free_notes(notes: *mut notes_tree); [INFO] [stdout] 1283 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/libgit.rs:1311:5 [INFO] [stdout] | [INFO] [stdout] 1311 | / extern "C" { [INFO] [stdout] 1312 | | pub fn git_committer_info(flag: c_int) -> *const c_char; [INFO] [stdout] 1313 | | pub fn git_author_info(flag: c_int) -> *const c_char; [INFO] [stdout] 1314 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/store.rs:1424:3 [INFO] [stdout] | [INFO] [stdout] 1424 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 1424 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/store.rs:1442:1 [INFO] [stdout] | [INFO] [stdout] 1442 | / extern "C" { [INFO] [stdout] 1443 | | pub fn ensure_store_init(); [INFO] [stdout] 1444 | | fn store_git_object( [INFO] [stdout] 1445 | | typ: object_type, [INFO] [stdout] ... | [INFO] [stdout] 1453 | | fn unpack_object_entry(oe: *const object_entry, buf: *mut *mut c_char, len: *mut c_ulong); [INFO] [stdout] 1454 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/store.rs:1955:1 [INFO] [stdout] | [INFO] [stdout] 1955 | / extern "C" { [INFO] [stdout] 1956 | | pub fn store_manifest( [INFO] [stdout] 1957 | | store: &Store, [INFO] [stdout] 1958 | | chunk: *const rev_chunk, [INFO] [stdout] ... | [INFO] [stdout] 1961 | | ); [INFO] [stdout] 1962 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/store.rs:1964:3 [INFO] [stdout] | [INFO] [stdout] 1964 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 1964 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/store.rs:2576:1 [INFO] [stdout] | [INFO] [stdout] 2576 | / extern "C" { [INFO] [stdout] 2577 | | fn init_replace_map(); [INFO] [stdout] 2578 | | fn reset_replace_map(); [INFO] [stdout] 2579 | | fn store_replace_map(result: *mut object_id); [INFO] [stdout] 2580 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/xdiff.rs:57:1 [INFO] [stdout] | [INFO] [stdout] 57 | / extern "C" { [INFO] [stdout] 58 | | fn xdi_diff_outf( [INFO] [stdout] 59 | | mf1: *const mmfile_t, [INFO] [stdout] 60 | | mf2: *const mmfile_t, [INFO] [stdout] ... | [INFO] [stdout] 68 | | ) -> c_int; [INFO] [stdout] 69 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/hg_bundle.rs:46:3 [INFO] [stdout] | [INFO] [stdout] 46 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 46 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/hg_bundle.rs:60:3 [INFO] [stdout] | [INFO] [stdout] 60 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 60 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/hg_connect_stdio.rs:199:1 [INFO] [stdout] | [INFO] [stdout] 199 | / extern "C" { [INFO] [stdout] 200 | | fn proc_in(proc: *mut child_process) -> c_int; [INFO] [stdout] 201 | | [INFO] [stdout] 202 | | fn proc_out(proc: *mut child_process) -> c_int; [INFO] [stdout] 203 | | [INFO] [stdout] 204 | | fn proc_err(proc: *mut child_process) -> c_int; [INFO] [stdout] 205 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/main.rs:180:1 [INFO] [stdout] | [INFO] [stdout] 180 | / extern "C" { [INFO] [stdout] 181 | | fn do_cleanup(rollback: c_int); [INFO] [stdout] 182 | | [INFO] [stdout] 183 | | #[cfg(windows)] [INFO] [stdout] ... | [INFO] [stdout] 186 | | fn init_cinnabar(argv0: *const c_char) -> c_int; [INFO] [stdout] 187 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/main.rs:491:1 [INFO] [stdout] | [INFO] [stdout] 491 | / extern "C" { [INFO] [stdout] 492 | | fn git_path_fetch_head(repos: *mut repository) -> *const c_char; [INFO] [stdout] 493 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/main.rs:608:1 [INFO] [stdout] | [INFO] [stdout] 608 | / extern "C" { [INFO] [stdout] 609 | | fn check_pager_config(cmd: *const c_char) -> c_int; [INFO] [stdout] 610 | | fn setup_pager(); [INFO] [stdout] 611 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/main.rs:1176:1 [INFO] [stdout] | [INFO] [stdout] 1176 | / extern "C" { [INFO] [stdout] 1177 | | fn add_ref(tail: *mut *mut *mut r#ref, name: *const c_char, oid: *const object_id); [INFO] [stdout] 1178 | | [INFO] [stdout] 1179 | | fn add_symref(tail: *mut *mut *mut r#ref, name: *const c_char, sym: *const c_char); [INFO] [stdout] ... | [INFO] [stdout] 1197 | | ) -> c_int; [INFO] [stdout] 1198 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/main.rs:1204:1 [INFO] [stdout] | [INFO] [stdout] 1204 | / extern "C" { [INFO] [stdout] 1205 | | fn term_columns() -> c_int; [INFO] [stdout] 1206 | | [INFO] [stdout] 1207 | | fn get_worktrees() -> *const *const worktree; [INFO] [stdout] ... | [INFO] [stdout] 1221 | | fn get_worktree_ref_store(wr: *const worktree) -> *const libgit::ref_store; [INFO] [stdout] 1222 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/main.rs:5105:3 [INFO] [stdout] | [INFO] [stdout] 5105 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 5105 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/main.rs:5248:3 [INFO] [stdout] | [INFO] [stdout] 5248 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 5248 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/main.rs:5349:3 [INFO] [stdout] | [INFO] [stdout] 5349 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 5349 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `version_check_branch` [INFO] [stdout] --> src/version_check.rs:31:7 [INFO] [stdout] | [INFO] [stdout] 31 | #[cfg(version_check_branch)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: expected names are: `clippy`, `debug_assertions`, `doc`, `docsrs`, `doctest`, `feature`, `fmt_debug`, `miri`, `overflow_checks`, `panic`, `proc_macro`, `relocation_model`, `rustfmt`, `sanitize`, `sanitizer_cfi_generalize_pointers`, `sanitizer_cfi_normalize_integers`, `target_abi`, `target_arch`, `target_endian`, `target_env`, `target_family`, `target_feature`, `target_has_atomic`, `target_has_atomic_equal_alignment`, `target_has_atomic_load_store`, `target_os`, `target_pointer_width`, `target_thread_local`, `target_vendor`, `test`, `ub_checks`, `unix`, and `windows` [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(version_check_branch)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(version_check_branch)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: requested on the command line with `-W unexpected-cfgs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `version_check_branch` [INFO] [stdout] --> src/version_check.rs:33:11 [INFO] [stdout] | [INFO] [stdout] 33 | #[cfg(not(version_check_branch))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(version_check_branch)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(version_check_branch)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `version_check_branch` [INFO] [stdout] --> src/version_check.rs:31:7 [INFO] [stdout] | [INFO] [stdout] 31 | #[cfg(version_check_branch)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: expected names are: `clippy`, `debug_assertions`, `doc`, `docsrs`, `doctest`, `feature`, `fmt_debug`, `miri`, `overflow_checks`, `panic`, `proc_macro`, `relocation_model`, `rustfmt`, `sanitize`, `sanitizer_cfi_generalize_pointers`, `sanitizer_cfi_normalize_integers`, `target_abi`, `target_arch`, `target_endian`, `target_env`, `target_family`, `target_feature`, `target_has_atomic`, `target_has_atomic_equal_alignment`, `target_has_atomic_load_store`, `target_os`, `target_pointer_width`, `target_thread_local`, `target_vendor`, `test`, `ub_checks`, `unix`, and `windows` [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(version_check_branch)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(version_check_branch)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: requested on the command line with `-W unexpected-cfgs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `version_check_branch` [INFO] [stdout] --> src/version_check.rs:33:11 [INFO] [stdout] | [INFO] [stdout] 33 | #[cfg(not(version_check_branch))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(version_check_branch)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(version_check_branch)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::as_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/libcinnabar.rs:195:18 [INFO] [stdout] | [INFO] [stdout] 195 | let cb = (cb_data as *mut F).as_mut().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/libcinnabar.rs:189:5 [INFO] [stdout] | [INFO] [stdout] 189 | / unsafe extern "C" fn each_note_cb( [INFO] [stdout] 190 | | oid: *const object_id, [INFO] [stdout] 191 | | note_oid: *const object_id, [INFO] [stdout] 192 | | _note_path: *const c_char, [INFO] [stdout] 193 | | cb_data: *mut c_void, [INFO] [stdout] 194 | | ) -> c_int { [INFO] [stdout] | |______________^ [INFO] [stdout] = note: `#[warn(unsafe_op_in_unsafe_fn)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libcinnabar.rs:196:17 [INFO] [stdout] | [INFO] [stdout] 196 | let o = oid.as_ref().unwrap().clone().into(); [INFO] [stdout] | ^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libcinnabar.rs:197:17 [INFO] [stdout] | [INFO] [stdout] 197 | let n = note_oid.as_ref().unwrap().clone().into(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libcinnabar.rs:213:54 [INFO] [stdout] | [INFO] [stdout] 213 | GitObjectId::from_raw_bytes(HgObjectId::from(oid.as_ref().unwrap().clone()).as_raw_bytes()) [INFO] [stdout] | ^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/libcinnabar.rs:208:1 [INFO] [stdout] | [INFO] [stdout] 208 | / pub unsafe extern "C" fn resolve_hg2git( [INFO] [stdout] 209 | | store: &Store, [INFO] [stdout] 210 | | oid: *const hg_object_id, [INFO] [stdout] 211 | | ) -> *const object_id { [INFO] [stdout] | |_____________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `libcinnabar::cinnabar_get_note` is unsafe and requires unsafe block [INFO] [stdout] --> src/libcinnabar.rs:215:5 [INFO] [stdout] | [INFO] [stdout] 215 | cinnabar_get_note(&mut store.hg2git_mut().0, &git_oid.into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libcinnabar.rs:225:26 [INFO] [stdout] | [INFO] [stdout] 225 | HgObjectId::from(oid.as_ref().unwrap().clone()), [INFO] [stdout] | ^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/libcinnabar.rs:219:1 [INFO] [stdout] | [INFO] [stdout] 219 | / pub unsafe extern "C" fn add_hg2git( [INFO] [stdout] 220 | | store: &Store, [INFO] [stdout] 221 | | oid: *const hg_object_id, [INFO] [stdout] 222 | | note_oid: *const object_id, [INFO] [stdout] 223 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libcinnabar.rs:226:9 [INFO] [stdout] | [INFO] [stdout] 226 | note_oid.as_ref().unwrap().clone().into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::as_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:742:21 [INFO] [stdout] | [INFO] [stdout] 742 | let diff_tree = (diff_tree as *mut Vec>) [INFO] [stdout] | _____________________^ [INFO] [stdout] 743 | | .as_mut() [INFO] [stdout] | |_________________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/libgit.rs:731:1 [INFO] [stdout] | [INFO] [stdout] 731 | unsafe extern "C" fn diff_tree_fill(diff_tree: *mut c_void, item: *const diff_tree_item) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:745:16 [INFO] [stdout] | [INFO] [stdout] 745 | let item = item.as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:748:26 [INFO] [stdout] | [INFO] [stdout] 748 | let a_path = CStr::from_ptr(item.a.path).to_bytes(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:749:26 [INFO] [stdout] | [INFO] [stdout] 749 | let b_path = CStr::from_ptr(item.b.path).to_bytes(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:765:13 [INFO] [stdout] | [INFO] [stdout] 765 | CStr::from_ptr(item.b.path).to_bytes(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:772:13 [INFO] [stdout] | [INFO] [stdout] 772 | CStr::from_ptr(item.b.path).to_bytes(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:779:13 [INFO] [stdout] | [INFO] [stdout] 779 | CStr::from_ptr(item.b.path).to_bytes(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:782:21 [INFO] [stdout] | [INFO] [stdout] 782 | CStr::from_ptr(item.a.path).to_bytes(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:795:13 [INFO] [stdout] | [INFO] [stdout] 795 | CStr::from_ptr(item.b.path).to_bytes(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:798:21 [INFO] [stdout] | [INFO] [stdout] 798 | CStr::from_ptr(item.a.path).to_bytes(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::as_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:907:37 [INFO] [stdout] | [INFO] [stdout] 907 | let (func, ref mut error) = (cb_data as *mut (F, Option)).as_mut().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/libgit.rs:903:5 [INFO] [stdout] | [INFO] [stdout] 903 | / unsafe extern "C" fn each_remote_cb Result<(), E>>( [INFO] [stdout] 904 | | remot: *const remote, [INFO] [stdout] 905 | | cb_data: *mut c_void, [INFO] [stdout] 906 | | ) -> c_int { [INFO] [stdout] | |______________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:908:21 [INFO] [stdout] | [INFO] [stdout] 908 | let remot = remot.as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::as_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:957:37 [INFO] [stdout] | [INFO] [stdout] 957 | let (func, ref mut error) = (cb_data as *mut (F, Option)).as_mut().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/libgit.rs:951:5 [INFO] [stdout] | [INFO] [stdout] 951 | / unsafe extern "C" fn each_ref_cb Result<(), E>>( [INFO] [stdout] 952 | | refname: *const c_char, [INFO] [stdout] 953 | | oid: *const object_id, [INFO] [stdout] 954 | | _flags: c_int, [INFO] [stdout] 955 | | cb_data: *mut c_void, [INFO] [stdout] 956 | | ) -> c_int { [INFO] [stdout] | |______________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:958:41 [INFO] [stdout] | [INFO] [stdout] 958 | let refname = OsStr::from_bytes(CStr::from_ptr(refname).to_bytes()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:959:63 [INFO] [stdout] | [INFO] [stdout] 959 | if let Ok(oid) = CommitId::try_from(GitObjectId::from(oid.as_ref().unwrap().clone())) { [INFO] [stdout] | ^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/store.rs:1428:9 [INFO] [stdout] | [INFO] [stdout] 1428 | mn.as_ref().unwrap().clone().into(), [INFO] [stdout] | ^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/store.rs:1425:1 [INFO] [stdout] | [INFO] [stdout] 1425 | pub unsafe extern "C" fn add_manifest_head(store: &Store, mn: *const object_id) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/store.rs:1967:39 [INFO] [stdout] | [INFO] [stdout] 1967 | GitManifestId::from_raw_bytes(oid.as_ref().unwrap().as_raw_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/store.rs:1965:1 [INFO] [stdout] | [INFO] [stdout] 1965 | pub unsafe extern "C" fn check_manifest(oid: *const object_id) -> c_int { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::alloc::alloc` is unsafe and requires unsafe block [INFO] [stdout] --> src/util.rs:478:10 [INFO] [stdout] | [INFO] [stdout] 478 | (std::alloc::alloc(layout), layout.size()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/util.rs:469:1 [INFO] [stdout] | [INFO] [stdout] 469 | unsafe fn alloc_recycle(layout: Layout) -> (*mut u8, usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::alloc::dealloc` is unsafe and requires unsafe block [INFO] [stdout] --> src/util.rs:491:13 [INFO] [stdout] | [INFO] [stdout] 491 | std::alloc::dealloc(ptr.as_ptr(), layout); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/util.rs:482:1 [INFO] [stdout] | [INFO] [stdout] 482 | unsafe fn dealloc_keep(ptr: *mut u8, layout: Layout) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_bundle.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | / ptr::write( [INFO] [stdout] 49 | | iterator, [INFO] [stdout] 50 | | chunk [INFO] [stdout] 51 | | .as_ref() [INFO] [stdout] ... | [INFO] [stdout] 56 | | .as_str_slice(), [INFO] [stdout] 57 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/hg_bundle.rs:47:1 [INFO] [stdout] | [INFO] [stdout] 47 | pub unsafe extern "C" fn rev_diff_start_iter(iterator: *mut strslice, chunk: *const rev_chunk) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_bundle.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | / chunk [INFO] [stdout] 51 | | .as_ref() [INFO] [stdout] | |_____________________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::as_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_bundle.rs:65:37 [INFO] [stdout] | [INFO] [stdout] 65 | let mut diff_iter = RevDiffIter(iterator.as_mut().unwrap().as_bytes()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/hg_bundle.rs:61:1 [INFO] [stdout] | [INFO] [stdout] 61 | / pub unsafe extern "C" fn rev_diff_iter_next( [INFO] [stdout] 62 | | iterator: *mut strslice, [INFO] [stdout] 63 | | part: *mut rev_diff_part, [INFO] [stdout] 64 | | ) -> c_int { [INFO] [stdout] | |__________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_bundle.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | ptr::write(iterator, diff_iter.0.as_str_slice()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_bundle.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | / ptr::write( [INFO] [stdout] 70 | | part, [INFO] [stdout] 71 | | mem::transmute::, rev_diff_part<'_>>(p.0), [INFO] [stdout] 72 | | ); [INFO] [stdout] | |_________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::intrinsics::transmute` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_bundle.rs:71:13 [INFO] [stdout] | [INFO] [stdout] 71 | mem::transmute::, rev_diff_part<'_>>(p.0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::as_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/libcinnabar.rs:195:18 [INFO] [stdout] | [INFO] [stdout] 195 | let cb = (cb_data as *mut F).as_mut().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/libcinnabar.rs:189:5 [INFO] [stdout] | [INFO] [stdout] 189 | / unsafe extern "C" fn each_note_cb( [INFO] [stdout] 190 | | oid: *const object_id, [INFO] [stdout] 191 | | note_oid: *const object_id, [INFO] [stdout] 192 | | _note_path: *const c_char, [INFO] [stdout] 193 | | cb_data: *mut c_void, [INFO] [stdout] 194 | | ) -> c_int { [INFO] [stdout] | |______________^ [INFO] [stdout] = note: `#[warn(unsafe_op_in_unsafe_fn)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libcinnabar.rs:196:17 [INFO] [stdout] | [INFO] [stdout] 196 | let o = oid.as_ref().unwrap().clone().into(); [INFO] [stdout] | ^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libcinnabar.rs:197:17 [INFO] [stdout] | [INFO] [stdout] 197 | let n = note_oid.as_ref().unwrap().clone().into(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libcinnabar.rs:213:54 [INFO] [stdout] | [INFO] [stdout] 213 | GitObjectId::from_raw_bytes(HgObjectId::from(oid.as_ref().unwrap().clone()).as_raw_bytes()) [INFO] [stdout] | ^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/libcinnabar.rs:208:1 [INFO] [stdout] | [INFO] [stdout] 208 | / pub unsafe extern "C" fn resolve_hg2git( [INFO] [stdout] 209 | | store: &Store, [INFO] [stdout] 210 | | oid: *const hg_object_id, [INFO] [stdout] 211 | | ) -> *const object_id { [INFO] [stdout] | |_____________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `libcinnabar::cinnabar_get_note` is unsafe and requires unsafe block [INFO] [stdout] --> src/libcinnabar.rs:215:5 [INFO] [stdout] | [INFO] [stdout] 215 | cinnabar_get_note(&mut store.hg2git_mut().0, &git_oid.into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libcinnabar.rs:225:26 [INFO] [stdout] | [INFO] [stdout] 225 | HgObjectId::from(oid.as_ref().unwrap().clone()), [INFO] [stdout] | ^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/libcinnabar.rs:219:1 [INFO] [stdout] | [INFO] [stdout] 219 | / pub unsafe extern "C" fn add_hg2git( [INFO] [stdout] 220 | | store: &Store, [INFO] [stdout] 221 | | oid: *const hg_object_id, [INFO] [stdout] 222 | | note_oid: *const object_id, [INFO] [stdout] 223 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libcinnabar.rs:226:9 [INFO] [stdout] | [INFO] [stdout] 226 | note_oid.as_ref().unwrap().clone().into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0499]: cannot borrow `bundle_part_writer` as mutable more than once at a time [INFO] [stdout] --> src/hg_bundle.rs:1149:25 [INFO] [stdout] | [INFO] [stdout] 1148 | let files = bundle_manifest(store, &mut bundle_part_writer, version, manifests.drain(..)); [INFO] [stdout] | ----------------------- first mutable borrow occurs here [INFO] [stdout] 1149 | bundle_files(store, &mut bundle_part_writer, version, files); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ ----- first borrow later used here [INFO] [stdout] | | [INFO] [stdout] | second mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::as_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:742:21 [INFO] [stdout] | [INFO] [stdout] 742 | let diff_tree = (diff_tree as *mut Vec>) [INFO] [stdout] | _____________________^ [INFO] [stdout] 743 | | .as_mut() [INFO] [stdout] | |_________________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/libgit.rs:731:1 [INFO] [stdout] | [INFO] [stdout] 731 | unsafe extern "C" fn diff_tree_fill(diff_tree: *mut c_void, item: *const diff_tree_item) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:745:16 [INFO] [stdout] | [INFO] [stdout] 745 | let item = item.as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:748:26 [INFO] [stdout] | [INFO] [stdout] 748 | let a_path = CStr::from_ptr(item.a.path).to_bytes(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:749:26 [INFO] [stdout] | [INFO] [stdout] 749 | let b_path = CStr::from_ptr(item.b.path).to_bytes(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:765:13 [INFO] [stdout] | [INFO] [stdout] 765 | CStr::from_ptr(item.b.path).to_bytes(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:772:13 [INFO] [stdout] | [INFO] [stdout] 772 | CStr::from_ptr(item.b.path).to_bytes(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:779:13 [INFO] [stdout] | [INFO] [stdout] 779 | CStr::from_ptr(item.b.path).to_bytes(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:782:21 [INFO] [stdout] | [INFO] [stdout] 782 | CStr::from_ptr(item.a.path).to_bytes(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:795:13 [INFO] [stdout] | [INFO] [stdout] 795 | CStr::from_ptr(item.b.path).to_bytes(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:798:21 [INFO] [stdout] | [INFO] [stdout] 798 | CStr::from_ptr(item.a.path).to_bytes(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::as_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:907:37 [INFO] [stdout] | [INFO] [stdout] 907 | let (func, ref mut error) = (cb_data as *mut (F, Option)).as_mut().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/libgit.rs:903:5 [INFO] [stdout] | [INFO] [stdout] 903 | / unsafe extern "C" fn each_remote_cb Result<(), E>>( [INFO] [stdout] 904 | | remot: *const remote, [INFO] [stdout] 905 | | cb_data: *mut c_void, [INFO] [stdout] 906 | | ) -> c_int { [INFO] [stdout] | |______________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:908:21 [INFO] [stdout] | [INFO] [stdout] 908 | let remot = remot.as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::as_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:957:37 [INFO] [stdout] | [INFO] [stdout] 957 | let (func, ref mut error) = (cb_data as *mut (F, Option)).as_mut().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/libgit.rs:951:5 [INFO] [stdout] | [INFO] [stdout] 951 | / unsafe extern "C" fn each_ref_cb Result<(), E>>( [INFO] [stdout] 952 | | refname: *const c_char, [INFO] [stdout] 953 | | oid: *const object_id, [INFO] [stdout] 954 | | _flags: c_int, [INFO] [stdout] 955 | | cb_data: *mut c_void, [INFO] [stdout] 956 | | ) -> c_int { [INFO] [stdout] | |______________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:958:41 [INFO] [stdout] | [INFO] [stdout] 958 | let refname = OsStr::from_bytes(CStr::from_ptr(refname).to_bytes()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/libgit.rs:959:63 [INFO] [stdout] | [INFO] [stdout] 959 | if let Ok(oid) = CommitId::try_from(GitObjectId::from(oid.as_ref().unwrap().clone())) { [INFO] [stdout] | ^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_connect_http.rs:289:18 [INFO] [stdout] | [INFO] [stdout] 289 | let target = (context as *const c_void as *const String) [INFO] [stdout] | __________________^ [INFO] [stdout] 290 | | .as_ref() [INFO] [stdout] | |_________________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/hg_connect_http.rs:282:1 [INFO] [stdout] | [INFO] [stdout] 282 | / unsafe extern "C" fn trace_log_callback( [INFO] [stdout] 283 | | _curl: *const CURL, [INFO] [stdout] 284 | | typ: curl_infotype, [INFO] [stdout] 285 | | data: *const c_char, [INFO] [stdout] 286 | | size: usize, [INFO] [stdout] 287 | | context: *mut c_void, [INFO] [stdout] 288 | | ) -> c_int { [INFO] [stdout] | |__________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_connect_http.rs:297:16 [INFO] [stdout] | [INFO] [stdout] 297 | let data = std::slice::from_raw_parts(data as *const u8, size); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::as_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_connect_http.rs:648:16 [INFO] [stdout] | [INFO] [stdout] 648 | let data = (data as *mut HttpThreadData).as_mut().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/hg_connect_http.rs:642:1 [INFO] [stdout] | [INFO] [stdout] 642 | / unsafe extern "C" fn http_request_execute( [INFO] [stdout] 643 | | ptr: *const c_char, [INFO] [stdout] 644 | | size: usize, [INFO] [stdout] 645 | | nmemb: usize, [INFO] [stdout] 646 | | data: *mut c_void, [INFO] [stdout] 647 | | ) -> usize { [INFO] [stdout] | |__________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_connect_http.rs:650:15 [INFO] [stdout] | [INFO] [stdout] 650 | let buf = std::slice::from_raw_parts(ptr as *const u8, size.checked_mul(nmemb).unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::as_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_connect_http.rs:865:16 [INFO] [stdout] | [INFO] [stdout] 865 | let read = (data as *mut R).as_mut().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/hg_connect_http.rs:859:1 [INFO] [stdout] | [INFO] [stdout] 859 | / unsafe extern "C" fn read_from_read( [INFO] [stdout] 860 | | ptr: *mut c_char, [INFO] [stdout] 861 | | size: usize, [INFO] [stdout] 862 | | nmemb: usize, [INFO] [stdout] 863 | | data: *const c_void, [INFO] [stdout] 864 | | ) -> usize { [INFO] [stdout] | |__________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_connect_http.rs:866:15 [INFO] [stdout] | [INFO] [stdout] 866 | let buf = std::slice::from_raw_parts_mut(ptr as *mut u8, size.checked_mul(nmemb).unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/store.rs:1428:9 [INFO] [stdout] | [INFO] [stdout] 1428 | mn.as_ref().unwrap().clone().into(), [INFO] [stdout] | ^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/store.rs:1425:1 [INFO] [stdout] | [INFO] [stdout] 1425 | pub unsafe extern "C" fn add_manifest_head(store: &Store, mn: *const object_id) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/store.rs:1967:39 [INFO] [stdout] | [INFO] [stdout] 1967 | GitManifestId::from_raw_bytes(oid.as_ref().unwrap().as_raw_bytes()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/store.rs:1965:1 [INFO] [stdout] | [INFO] [stdout] 1965 | pub unsafe extern "C" fn check_manifest(oid: *const object_id) -> c_int { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::alloc::alloc` is unsafe and requires unsafe block [INFO] [stdout] --> src/util.rs:478:10 [INFO] [stdout] | [INFO] [stdout] 478 | (std::alloc::alloc(layout), layout.size()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/util.rs:469:1 [INFO] [stdout] | [INFO] [stdout] 469 | unsafe fn alloc_recycle(layout: Layout) -> (*mut u8, usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::alloc::dealloc` is unsafe and requires unsafe block [INFO] [stdout] --> src/util.rs:491:13 [INFO] [stdout] | [INFO] [stdout] 491 | std::alloc::dealloc(ptr.as_ptr(), layout); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/util.rs:482:1 [INFO] [stdout] | [INFO] [stdout] 482 | unsafe fn dealloc_keep(ptr: *mut u8, layout: Layout) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_bundle.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | / ptr::write( [INFO] [stdout] 49 | | iterator, [INFO] [stdout] 50 | | chunk [INFO] [stdout] 51 | | .as_ref() [INFO] [stdout] ... | [INFO] [stdout] 56 | | .as_str_slice(), [INFO] [stdout] 57 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/hg_bundle.rs:47:1 [INFO] [stdout] | [INFO] [stdout] 47 | pub unsafe extern "C" fn rev_diff_start_iter(iterator: *mut strslice, chunk: *const rev_chunk) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_bundle.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | / chunk [INFO] [stdout] 51 | | .as_ref() [INFO] [stdout] | |_____________________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::as_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_bundle.rs:65:37 [INFO] [stdout] | [INFO] [stdout] 65 | let mut diff_iter = RevDiffIter(iterator.as_mut().unwrap().as_bytes()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/hg_bundle.rs:61:1 [INFO] [stdout] | [INFO] [stdout] 61 | / pub unsafe extern "C" fn rev_diff_iter_next( [INFO] [stdout] 62 | | iterator: *mut strslice, [INFO] [stdout] 63 | | part: *mut rev_diff_part, [INFO] [stdout] 64 | | ) -> c_int { [INFO] [stdout] | |__________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_bundle.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | ptr::write(iterator, diff_iter.0.as_str_slice()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_bundle.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | / ptr::write( [INFO] [stdout] 70 | | part, [INFO] [stdout] 71 | | mem::transmute::, rev_diff_part<'_>>(p.0), [INFO] [stdout] 72 | | ); [INFO] [stdout] | |_________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::intrinsics::transmute` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_bundle.rs:71:13 [INFO] [stdout] | [INFO] [stdout] 71 | mem::transmute::, rev_diff_part<'_>>(p.0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0499]: cannot borrow `bundle_part_writer` as mutable more than once at a time [INFO] [stdout] --> src/hg_bundle.rs:1149:25 [INFO] [stdout] | [INFO] [stdout] 1148 | let files = bundle_manifest(store, &mut bundle_part_writer, version, manifests.drain(..)); [INFO] [stdout] | ----------------------- first mutable borrow occurs here [INFO] [stdout] 1149 | bundle_files(store, &mut bundle_part_writer, version, files); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ ----- first borrow later used here [INFO] [stdout] | | [INFO] [stdout] | second mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_connect_http.rs:289:18 [INFO] [stdout] | [INFO] [stdout] 289 | let target = (context as *const c_void as *const String) [INFO] [stdout] | __________________^ [INFO] [stdout] 290 | | .as_ref() [INFO] [stdout] | |_________________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/hg_connect_http.rs:282:1 [INFO] [stdout] | [INFO] [stdout] 282 | / unsafe extern "C" fn trace_log_callback( [INFO] [stdout] 283 | | _curl: *const CURL, [INFO] [stdout] 284 | | typ: curl_infotype, [INFO] [stdout] 285 | | data: *const c_char, [INFO] [stdout] 286 | | size: usize, [INFO] [stdout] 287 | | context: *mut c_void, [INFO] [stdout] 288 | | ) -> c_int { [INFO] [stdout] | |__________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_connect_http.rs:297:16 [INFO] [stdout] | [INFO] [stdout] 297 | let data = std::slice::from_raw_parts(data as *const u8, size); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::as_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_connect_http.rs:648:16 [INFO] [stdout] | [INFO] [stdout] 648 | let data = (data as *mut HttpThreadData).as_mut().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/hg_connect_http.rs:642:1 [INFO] [stdout] | [INFO] [stdout] 642 | / unsafe extern "C" fn http_request_execute( [INFO] [stdout] 643 | | ptr: *const c_char, [INFO] [stdout] 644 | | size: usize, [INFO] [stdout] 645 | | nmemb: usize, [INFO] [stdout] 646 | | data: *mut c_void, [INFO] [stdout] 647 | | ) -> usize { [INFO] [stdout] | |__________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_connect_http.rs:650:15 [INFO] [stdout] | [INFO] [stdout] 650 | let buf = std::slice::from_raw_parts(ptr as *const u8, size.checked_mul(nmemb).unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::as_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_connect_http.rs:865:16 [INFO] [stdout] | [INFO] [stdout] 865 | let read = (data as *mut R).as_mut().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/hg_connect_http.rs:859:1 [INFO] [stdout] | [INFO] [stdout] 859 | / unsafe extern "C" fn read_from_read( [INFO] [stdout] 860 | | ptr: *mut c_char, [INFO] [stdout] 861 | | size: usize, [INFO] [stdout] 862 | | nmemb: usize, [INFO] [stdout] 863 | | data: *const c_void, [INFO] [stdout] 864 | | ) -> usize { [INFO] [stdout] | |__________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/hg_connect_http.rs:866:15 [INFO] [stdout] | [INFO] [stdout] 866 | let buf = std::slice::from_raw_parts_mut(ptr as *mut u8, size.checked_mul(nmemb).unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/main.rs:5112:17 [INFO] [stdout] | [INFO] [stdout] 5112 | let argv0 = CStr::from_ptr(*argv.as_ref().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/main.rs:5106:1 [INFO] [stdout] | [INFO] [stdout] 5106 | unsafe extern "C" fn cinnabar_main(_argc: c_int, argv: *const *const c_char) -> c_int { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/main.rs:5112:33 [INFO] [stdout] | [INFO] [stdout] 5112 | let argv0 = CStr::from_ptr(*argv.as_ref().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/main.rs:5135:5 [INFO] [stdout] | [INFO] [stdout] 5135 | HAS_GIT_REPO = init_cinnabar(exe.as_deref().unwrap_or(argv0).as_ptr()) != 0; [INFO] [stdout] | ^^^^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `init_cinnabar` is unsafe and requires unsafe block [INFO] [stdout] --> src/main.rs:5135:20 [INFO] [stdout] | [INFO] [stdout] 5135 | HAS_GIT_REPO = init_cinnabar(exe.as_deref().unwrap_or(argv0).as_ptr()) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block [INFO] [stdout] --> src/main.rs:5351:18 [INFO] [stdout] | [INFO] [stdout] 5351 | panic!("{}", std::slice::from_raw_parts(err, len).as_bstr()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/main.rs:5350:1 [INFO] [stdout] | [INFO] [stdout] 5350 | unsafe extern "C" fn do_panic(err: *const u8, len: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 40 previous errors; 45 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0133, E0499. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] error: could not compile `git-cinnabar` (bin "git-cinnabar") due to 41 previous errors; 45 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/main.rs:5112:17 [INFO] [stdout] | [INFO] [stdout] 5112 | let argv0 = CStr::from_ptr(*argv.as_ref().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/main.rs:5106:1 [INFO] [stdout] | [INFO] [stdout] 5106 | unsafe extern "C" fn cinnabar_main(_argc: c_int, argv: *const *const c_char) -> c_int { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/main.rs:5112:33 [INFO] [stdout] | [INFO] [stdout] 5112 | let argv0 = CStr::from_ptr(*argv.as_ref().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/main.rs:5135:5 [INFO] [stdout] | [INFO] [stdout] 5135 | HAS_GIT_REPO = init_cinnabar(exe.as_deref().unwrap_or(argv0).as_ptr()) != 0; [INFO] [stdout] | ^^^^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `init_cinnabar` is unsafe and requires unsafe block [INFO] [stdout] --> src/main.rs:5135:20 [INFO] [stdout] | [INFO] [stdout] 5135 | HAS_GIT_REPO = init_cinnabar(exe.as_deref().unwrap_or(argv0).as_ptr()) != 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block [INFO] [stdout] --> src/main.rs:5351:18 [INFO] [stdout] | [INFO] [stdout] 5351 | panic!("{}", std::slice::from_raw_parts(err, len).as_bstr()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/main.rs:5350:1 [INFO] [stdout] | [INFO] [stdout] 5350 | unsafe extern "C" fn do_panic(err: *const u8, len: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 40 previous errors; 45 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0133, E0499. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] error: could not compile `git-cinnabar` (bin "git-cinnabar" test) due to 41 previous errors; 45 warnings emitted [INFO] [stderr] error: failed to check after updating to 2024 [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] process didn't exit successfully: `cargo check --frozen --all --all-targets --message-format=json` (exit status: 101) [INFO] running `Command { std: "docker" "inspect" "acc3e8e7115a0a14c59081a0fa1805bb9eb1dd0a1a3183e1e00fb1829c3ffbf5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "acc3e8e7115a0a14c59081a0fa1805bb9eb1dd0a1a3183e1e00fb1829c3ffbf5", kill_on_drop: false }` [INFO] [stdout] acc3e8e7115a0a14c59081a0fa1805bb9eb1dd0a1a3183e1e00fb1829c3ffbf5