[INFO] cloning repository https://github.com/FeanorTheElf/feanor-math [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/FeanorTheElf/feanor-math" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFeanorTheElf%2Ffeanor-math", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFeanorTheElf%2Ffeanor-math'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] e178c47869d3cb1ac44a54447db4838c37e55878 [INFO] checking FeanorTheElf/feanor-math/e178c47869d3cb1ac44a54447db4838c37e55878 against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFeanorTheElf%2Ffeanor-math" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/FeanorTheElf/feanor-math 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] started tweaking git repo https://github.com/FeanorTheElf/feanor-math [INFO] finished tweaking git repo https://github.com/FeanorTheElf/feanor-math [INFO] tweaked toml for git repo https://github.com/FeanorTheElf/feanor-math written to /workspace/builds/worker-3-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/FeanorTheElf/feanor-math 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-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] cb98280aafafe4743fae24bf184738e6d9374fe5e2d72b78be2cc249f7b4850f [INFO] running `Command { std: "docker" "start" "-a" "cb98280aafafe4743fae24bf184738e6d9374fe5e2d72b78be2cc249f7b4850f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "cb98280aafafe4743fae24bf184738e6d9374fe5e2d72b78be2cc249f7b4850f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cb98280aafafe4743fae24bf184738e6d9374fe5e2d72b78be2cc249f7b4850f", kill_on_drop: false }` [INFO] [stdout] cb98280aafafe4743fae24bf184738e6d9374fe5e2d72b78be2cc249f7b4850f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] 9917cd034458283cecd3a0662961822e9490c6d23b267c92fa3d057470358cf5 [INFO] running `Command { std: "docker" "start" "-a" "9917cd034458283cecd3a0662961822e9490c6d23b267c92fa3d057470358cf5", 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] Compiling serde v1.0.207 [INFO] [stderr] Compiling proc-macro2 v1.0.85 [INFO] [stderr] Compiling serde_json v1.0.124 [INFO] [stderr] Checking atomicbox v0.4.0 [INFO] [stderr] Checking oorandom v11.1.3 [INFO] [stderr] Checking append-only-vec v0.1.5 [INFO] [stderr] Checking memchr v2.7.4 [INFO] [stderr] Checking feanor-mempool v2.1.0 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Compiling syn v2.0.66 [INFO] [stderr] Checking serde_bytes v0.11.15 [INFO] [stderr] Checking serde_assert v0.8.0 [INFO] [stderr] Compiling stability v0.2.0 [INFO] [stderr] Checking feanor-math v2.3.0 (/tmp/fixit) [INFO] [stderr] Migrating src/lib.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `feanor_math` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/algorithms/matmul/strassen.rs [INFO] [stderr] * src/algorithms/splitting_field.rs [INFO] [stderr] * src/matrix/mod.rs [INFO] [stderr] * src/ring.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/ring.rs:524:6 [INFO] [stderr] | [INFO] [stderr] 524 | ($ring:expr_2021, $lhs:expr_2021, $rhs: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/ring.rs:524:23 [INFO] [stderr] | [INFO] [stderr] 524 | ($ring:expr_2021, $lhs:expr_2021, $rhs: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/ring.rs:524:39 [INFO] [stderr] | [INFO] [stderr] 524 | ($ring:expr_2021, $lhs:expr_2021, $rhs: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/matrix/mod.rs:163:6 [INFO] [stderr] | [INFO] [stderr] 163 | ($ring:expr_2021, $lhs:expr_2021, $rhs: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/matrix/mod.rs:163:23 [INFO] [stderr] | [INFO] [stderr] 163 | ($ring:expr_2021, $lhs:expr_2021, $rhs: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/matrix/mod.rs:163:39 [INFO] [stderr] | [INFO] [stderr] 163 | ($ring:expr_2021, $lhs:expr_2021, $rhs: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/algorithms/matmul/strassen.rs:210:6 [INFO] [stderr] | [INFO] [stderr] 210 | ($R:expr_2021, $V1:expr_2021, $V2:expr_2021, $V3:expr_2021, $ADD_ASSIGN:expr_2021, $T1:expr_2021, $T2:expr_2021, $T3:expr_2021, $step... [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/algorithms/matmul/strassen.rs:210:20 [INFO] [stderr] | [INFO] [stderr] 210 | ($R:expr_2021, $V1:expr_2021, $V2:expr_2021, $V3:expr_2021, $ADD_ASSIGN:expr_2021, $T1:expr_2021, $T2:expr_2021, $T3:expr_2021, $step... [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/algorithms/matmul/strassen.rs:210:35 [INFO] [stderr] | [INFO] [stderr] 210 | ($R:expr_2021, $V1:expr_2021, $V2:expr_2021, $V3:expr_2021, $ADD_ASSIGN:expr_2021, $T1:expr_2021, $T2:expr_2021, $T3:expr_2021, $step... [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/algorithms/matmul/strassen.rs:210:50 [INFO] [stderr] | [INFO] [stderr] 210 | ($R:expr_2021, $V1:expr_2021, $V2:expr_2021, $V3:expr_2021, $ADD_ASSIGN:expr_2021, $T1:expr_2021, $T2:expr_2021, $T3:expr_2021, $step... [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/algorithms/matmul/strassen.rs:210:65 [INFO] [stderr] | [INFO] [stderr] 210 | ($R:expr_2021, $V1:expr_2021, $V2:expr_2021, $V3:expr_2021, $ADD_ASSIGN:expr_2021, $T1:expr_2021, $T2:expr_2021, $T3:expr_2021, $step... [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/algorithms/matmul/strassen.rs:210:88 [INFO] [stderr] | [INFO] [stderr] 210 | ($R:expr_2021, $V1:expr_2021, $V2:expr_2021, $V3:expr_2021, $ADD_ASSIGN:expr_2021, $T1:expr_2021, $T2:expr_2021, $T3:expr_2021, $step... [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/algorithms/matmul/strassen.rs:210:103 [INFO] [stderr] | [INFO] [stderr] 210 | ($R:expr_2021, $V1:expr_2021, $V2:expr_2021, $V3:expr_2021, $ADD_ASSIGN:expr_2021, $T1:expr_2021, $T2:expr_2021, $T3:expr_2021, $step... [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/algorithms/matmul/strassen.rs:210:118 [INFO] [stderr] | [INFO] [stderr] 210 | ($R:expr_2021, $V1:expr_2021, $V2:expr_2021, $V3:expr_2021, $ADD_ASSIGN:expr_2021, $T1:expr_2021, $T2:expr_2021, $T3:expr_2021, $step... [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/algorithms/matmul/strassen.rs:210:133 [INFO] [stderr] | [INFO] [stderr] 210 | ...expr_2021, $T1:expr_2021, $T2:expr_2021, $T3:expr_2021, $steps_left:expr_2021, $block_size_log2:expr_2021, $lhs:expr_2021, $rhs:expr_2... [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/algorithms/matmul/strassen.rs:210:156 [INFO] [stderr] | [INFO] [stderr] 210 | ... $T2:expr_2021, $T3:expr_2021, $steps_left:expr_2021, $block_size_log2:expr_2021, $lhs:expr_2021, $rhs:expr_2021, $dst:expr_2021, $rin... [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/algorithms/matmul/strassen.rs:210:184 [INFO] [stderr] | [INFO] [stderr] 210 | ...pr_2021, $steps_left:expr_2021, $block_size_log2:expr_2021, $lhs:expr_2021, $rhs:expr_2021, $dst:expr_2021, $ring:expr_2021, $memory:e... [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/algorithms/matmul/strassen.rs:210:200 [INFO] [stderr] | [INFO] [stderr] 210 | ...left:expr_2021, $block_size_log2:expr_2021, $lhs:expr_2021, $rhs:expr_2021, $dst:expr_2021, $ring:expr_2021, $memory:expr_2021, $small... [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/algorithms/matmul/strassen.rs:210:216 [INFO] [stderr] | [INFO] [stderr] 210 | ...$block_size_log2:expr_2021, $lhs:expr_2021, $rhs:expr_2021, $dst:expr_2021, $ring:expr_2021, $memory:expr_2021, $smaller_strassen:iden... [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/algorithms/linsolve/extension.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | let gen = ring.canonical_gen(); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [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 #49716 [INFO] [stdout] = note: `--force-warn keyword-idents-2024` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/algorithms/linsolve/extension.rs:36:52 [INFO] [stdout] | [INFO] [stdout] 36 | ring.mul_assign_ref(&mut current, &gen); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [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 #49716 [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: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/rings/extension/mod.rs:244:9 [INFO] [stdout] | [INFO] [stdout] 244 | let gen = ring.canonical_gen(); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [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 #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/rings/extension/mod.rs:252:44 [INFO] [stdout] | [INFO] [stdout] 252 | ring.mul_assign_ref(&mut current, &gen); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [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 #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/algorithms/matmul/strassen.rs:210:232 [INFO] [stderr] | [INFO] [stderr] 210 | ...expr_2021, $lhs:expr_2021, $rhs:expr_2021, $dst:expr_2021, $ring:expr_2021, $memory:expr_2021, $smaller_strassen:ident) => { [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] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/rings/local.rs:89:13 [INFO] [stdout] | [INFO] [stdout] 89 | let gen = ring.can_hom(ring.integer_ring()).unwrap().map(p); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [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 #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/algorithms/matmul/strassen.rs:210:249 [INFO] [stderr] | [INFO] [stderr] 210 | ...pr_2021, $rhs:expr_2021, $dst:expr_2021, $ring:expr_2021, $memory:expr_2021, $smaller_strassen:ident) => { [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/rings/local.rs:90:68 [INFO] [stdout] | [INFO] [stdout] 90 | Some(Self::from(AsLocalPIRBase::promise_is_local_pir(ring, gen, Some(e)))) [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [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 #49716 [INFO] [stdout] [INFO] [stdout] [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: expected identifier, found keyword `use` [INFO] [stderr] --> src/algorithms/splitting_field.rs:167:251 [INFO] [stderr] | [INFO] [stderr] 167 | ...El>>>>>) -> El>>>> + use<'c, 'b, 'a, R> [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::alloc::*` [INFO] [stderr] --> src/algorithms/splitting_field.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::alloc::*; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::algorithms::convolution::STANDARD_CONVOLUTION` [INFO] [stderr] --> src/algorithms/splitting_field.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::algorithms::convolution::STANDARD_CONVOLUTION; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::matrix::OwnedMatrix` [INFO] [stderr] --> src/algorithms/splitting_field.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use crate::matrix::OwnedMatrix; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::ordered::OrderedRingStore` [INFO] [stderr] --> src/algorithms/splitting_field.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use crate::ordered::OrderedRingStore; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ring.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | ($ring:expr, $lhs:expr, $rhs: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] 524 | ($ring:expr_2021, $lhs:expr, $rhs:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ring.rs:524:23 [INFO] [stdout] | [INFO] [stdout] 524 | ($ring:expr, $lhs:expr, $rhs: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] 524 | ($ring:expr, $lhs:expr_2021, $rhs:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: unused import: `crate::primitive_int::StaticRing` [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ring.rs:524:34 [INFO] [stdout] | [INFO] [stdout] 524 | ($ring:expr, $lhs:expr, $rhs: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] 524 | ($ring:expr, $lhs:expr, $rhs:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] --> src/algorithms/splitting_field.rs:11:5 [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/matrix/mod.rs:163:12 [INFO] [stdout] | [INFO] [stdout] 163 | ($ring:expr, $lhs:expr, $rhs: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] 163 | ($ring:expr_2021, $lhs:expr, $rhs:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/matrix/mod.rs:163:23 [INFO] [stdout] | [INFO] [stdout] 163 | ($ring:expr, $lhs:expr, $rhs: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] 163 | ($ring:expr, $lhs:expr_2021, $rhs:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 11 | use crate::primitive_int::StaticRing; [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/matrix/mod.rs:163:34 [INFO] [stdout] | [INFO] [stdout] 163 | ($ring:expr, $lhs:expr, $rhs: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] 163 | ($ring:expr, $lhs:expr, $rhs:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::algorithms::linsolve::LinSolveRingStore` [INFO] [stderr] --> src/algorithms/splitting_field.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | use crate::algorithms::linsolve::LinSolveRingStore; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find function `extend_field` in this scope [INFO] [stderr] --> src/algorithms/splitting_field.rs:106:51 [INFO] [stderr] | [INFO] [stderr] 106 | let (extension_embedding, root_of_new_poly) = extend_field(poly_ring, &largest_factor); [INFO] [stderr] | ^^^^^^^^^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] warning: unused import: `FreeAlgebraStore` [INFO] [stderr] --> src/algorithms/splitting_field.rs:13:44 [INFO] [stderr] | [INFO] [stderr] 13 | use crate::rings::extension::{FreeAlgebra, FreeAlgebraStore}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 23 previous errors; 7 warnings emitted [INFO] [stderr] [INFO] [stderr] Some errors have detailed explanations: E0425, E0658. [INFO] [stderr] For more information about an error, try `rustc --explain E0425`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:9 [INFO] [stdout] | [INFO] [stdout] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs... [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] 210 | ($R:expr_2021, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:19 [INFO] [stdout] | [INFO] [stdout] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs... [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] 210 | ($R:expr, $V1:expr_2021, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:29 [INFO] [stdout] | [INFO] [stdout] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs... [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] 210 | ($R:expr, $V1:expr, $V2:expr_2021, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:39 [INFO] [stdout] | [INFO] [stdout] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs... [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] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr_2021, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:57 [INFO] [stdout] | [INFO] [stdout] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs... [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] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr_2021, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:67 [INFO] [stdout] | [INFO] [stdout] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs... [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] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr_2021, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:77 [INFO] [stdout] | [INFO] [stdout] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs... [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] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr_2021, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:87 [INFO] [stdout] | [INFO] [stdout] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs... [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] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr_2021, $steps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:105 [INFO] [stdout] | [INFO] [stdout] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs... [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] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr_2021, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:128 [INFO] [stdout] | [INFO] [stdout] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs... [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] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr_2021, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:139 [INFO] [stdout] | [INFO] [stdout] 210 | ...T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strass... [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] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs:expr_2021, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:150 [INFO] [stdout] | [INFO] [stdout] 210 | ...3:expr, $steps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [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] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr_2021, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:161 [INFO] [stdout] | [INFO] [stdout] 210 | ...eps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [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] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr_2021, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:173 [INFO] [stdout] | [INFO] [stdout] 210 | ...r, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [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] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr_2021, $memory:expr, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:187 [INFO] [stdout] | [INFO] [stdout] 210 | ..._log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [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] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr_2021, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Instant` [INFO] [stdout] --> src/algorithms/splitting_field.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::time::Instant; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::NonNull::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/unsafe_any.rs:18:42 [INFO] [stdout] | [INFO] [stdout] 18 | assert_eq!(std::mem::size_of::(), value.as_ref().len()); [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/unsafe_any.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | unsafe fn delete(value: NonNull<[u8]>) { [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::intrinsics::transmute` is unsafe and requires unsafe block [INFO] [stdout] --> src/unsafe_any.rs:19:15 [INFO] [stdout] | [INFO] [stdout] 19 | let ptr = std::mem::transmute::<*const (), *const T>(value.as_ptr() as *const ()); [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::read` is unsafe and requires unsafe block [INFO] [stdout] --> src/unsafe_any.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | std::ptr::read(ptr); [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::NonNull::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/unsafe_any.rs:41:46 [INFO] [stdout] | [INFO] [stdout] 41 | assert_eq!(std::mem::size_of::(), self.data.unwrap().as_ref().len()); [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/unsafe_any.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | pub unsafe fn get<'a, T>(&'a self) -> &'a T { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/unsafe_any.rs:42:10 [INFO] [stdout] | [INFO] [stdout] 42 | &*std::mem::transmute::<*const (), *const T>(self.data.unwrap().as_ptr() as *const ()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are 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/unsafe_any.rs:42:11 [INFO] [stdout] | [INFO] [stdout] 42 | &*std::mem::transmute::<*const (), *const T>(self.data.unwrap().as_ptr() as *const ()) [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/matrix/submatrix.rs:133:9 [INFO] [stdout] | [INFO] [stdout] 133 | std::mem::transmute(self_) [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/matrix/submatrix.rs:132:5 [INFO] [stdout] | [INFO] [stdout] 132 | unsafe fn get_pointer(self_: NonNull) -> NonNull { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `unsafe_any::UnsafeAny::get` is unsafe and requires unsafe block [INFO] [stdout] --> src/rings/finite.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 99 | self.content.get() [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/rings/finite.rs:97:5 [INFO] [stdout] | [INFO] [stdout] 97 | #[stability::unstable(feature = "enable")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: this warning originates in the attribute macro `stability::unstable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ring.rs:716:12 [INFO] [stdout] | [INFO] [stdout] 716 | if let Some(err) = error { [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/ring.rs:718:9 [INFO] [stdout] | [INFO] [stdout] 718 | } else { [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 716 ~ match error { Some(err) => { [INFO] [stdout] 717 | return Err(err); [INFO] [stdout] 718 ~ } _ => { [INFO] [stdout] 719 | return Ok(result); [INFO] [stdout] 720 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/seq/sparse.rs:89:19 [INFO] [stdout] | [INFO] [stdout] 89 | } else if let Some(res) = self.data.get(&i) { [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/seq/sparse.rs:91:9 [INFO] [stdout] | [INFO] [stdout] 91 | } 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] 89 ~ } else { match self.data.get(&i) { Some(res) => { [INFO] [stdout] 90 | res [INFO] [stdout] 91 ~ } _ => { [INFO] [stdout] 92 | &self.zero [INFO] [stdout] 93 ~ }}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/eea/poly.rs:223:12 [INFO] [stdout] | [INFO] [stdout] 223 | if let Some(result) = choose_zn_impl(ZZbig, modulus, IntegerPolynomialGCDUsingHenselLifting { [INFO] [stdout] | ____________^ - [INFO] [stdout] | |_______________________________| [INFO] [stdout] 224 | || f: &f, g: &g, ZZX: &ZZX, FpX: FpX, leading_coeff: &leading_coeff [INFO] [stdout] 225 | || }) { [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/algorithms/eea/poly.rs:227:9 [INFO] [stdout] | [INFO] [stdout] 227 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 223 ~ match choose_zn_impl(ZZbig, modulus, IntegerPolynomialGCDUsingHenselLifting { [INFO] [stdout] 224 | f: &f, g: &g, ZZX: &ZZX, FpX: FpX, leading_coeff: &leading_coeff [INFO] [stdout] 225 ~ }) { Some(result) => { [INFO] [stdout] 226 | return result; [INFO] [stdout] 227 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/ec_factor.rs:182:12 [INFO] [stdout] | [INFO] [stdout] 182 | if let Some(d) = Zn.checked_div(&Zn.sub(Zn.add_ref(&x_sqr, &y_sqr), Zn.one()), &Zn.mul(x_sqr, y_sqr)) { [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/algorithms/ec_factor.rs:190:9 [INFO] [stdout] | [INFO] [stdout] 190 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 182 ~ match Zn.checked_div(&Zn.sub(Zn.add_ref(&x_sqr, &y_sqr), Zn.one()), &Zn.mul(x_sqr, y_sqr)) { Some(d) => { [INFO] [stdout] 183 | let P = (x, y, Zn.one()); [INFO] [stdout] ... [INFO] [stdout] 189 | } [INFO] [stdout] 190 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/ec_factor.rs:207:12 [INFO] [stdout] | [INFO] [stdout] 207 | if let Some(factor) = lenstra_ec_factor_base(&Zn, log2_size, &mut rng) { [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/algorithms/ec_factor.rs:209:9 [INFO] [stdout] | [INFO] [stdout] 209 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 207 ~ match lenstra_ec_factor_base(&Zn, log2_size, &mut rng) { Some(factor) => { [INFO] [stdout] 208 | return factor; [INFO] [stdout] 209 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/ec_factor.rs:213:12 [INFO] [stdout] | [INFO] [stdout] 213 | if let Some(factor) = lenstra_ec_factor_base(&Zn, log2_N / 2, &mut rng) { [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/algorithms/ec_factor.rs:215:9 [INFO] [stdout] | [INFO] [stdout] 215 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 213 ~ match lenstra_ec_factor_base(&Zn, log2_N / 2, &mut rng) { Some(factor) => { [INFO] [stdout] 214 | return factor; [INFO] [stdout] 215 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/int_factor.rs:97:15 [INFO] [stdout] | [INFO] [stdout] 97 | while let Some(quo) = ZZ.checked_div(&n, &ZZ_p) { [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/algorithms/int_factor.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/poly_div.rs:75:11 [INFO] [stdout] | [INFO] [stdout] 75 | while let Some(lhs_deg) = ring.degree(&lhs) { [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/algorithms/poly_div.rs:92:5 [INFO] [stdout] | [INFO] [stdout] 92 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/poly_factor/mod.rs:117:12 [INFO] [stdout] | [INFO] [stdout] 117 | if let Some(result) = factor_if_finite_field(&poly_ring, poly) { [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/algorithms/poly_factor/mod.rs:119:9 [INFO] [stdout] | [INFO] [stdout] 119 | } 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] 117 ~ match factor_if_finite_field(&poly_ring, poly) { Some(result) => { [INFO] [stdout] 118 | return result; [INFO] [stdout] 119 ~ } _ => { [INFO] [stdout] 120 | return factor_over_extension(poly_ring, poly); [INFO] [stdout] 121 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/poly_factor/extension.rs:138:16 [INFO] [stdout] | [INFO] [stdout] 138 | if let Some((i, _)) = result.iter().enumerate().filter(|(_, f)| KX.eq_el(&f.0, &factor)).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/algorithms/poly_factor/extension.rs:140:13 [INFO] [stdout] | [INFO] [stdout] 140 | } 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] 138 ~ match result.iter().enumerate().filter(|(_, f)| KX.eq_el(&f.0, &factor)).next() { Some((i, _)) => { [INFO] [stdout] 139 | result[i].1 += 1; [INFO] [stdout] 140 ~ } _ => { [INFO] [stdout] 141 | result.push((factor, 1)); [INFO] [stdout] 142 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/poly_factor/finite_field.rs:44:19 [INFO] [stdout] | [INFO] [stdout] 44 | while let Some(mut current) = stack.pop() { [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/algorithms/poly_factor/finite_field.rs:71:13 [INFO] [stdout] | [INFO] [stdout] 71 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/sparse_invert/row_echelon.rs:248:16 [INFO] [stdout] | [INFO] [stdout] 248 | if let Some(quo) = ring.checked_div(¤t, pivot) { [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/algorithms/sparse_invert/row_echelon.rs:250:13 [INFO] [stdout] | [INFO] [stdout] 250 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 248 ~ match ring.checked_div(¤t, pivot) { Some(quo) => { [INFO] [stdout] 249 | out.data.push((i, ring.negate(quo))); [INFO] [stdout] 250 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/sparse_invert/row_echelon.rs:387:20 [INFO] [stdout] | [INFO] [stdout] 387 | if let Some(quo) = ring.checked_div(factor, &pivot_entry) { [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/algorithms/sparse_invert/row_echelon.rs:394:17 [INFO] [stdout] | [INFO] [stdout] 394 | } 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] 387 ~ match ring.checked_div(factor, &pivot_entry) { Some(quo) => { [INFO] [stdout] 388 | let rhs_factor = ring.negate(quo); [INFO] [stdout] ... [INFO] [stdout] 393 | row_ops.subtract(ring.get_ring(), pivot_i, elim_i, &ring.negate(rhs_factor)); [INFO] [stdout] 394 ~ } _ => { [INFO] [stdout] 395 | assert!(elim_i < pivot_i); [INFO] [stdout] 396 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/linsolve/smith.rs:56:27 [INFO] [stdout] | [INFO] [stdout] 56 | } else if let Some(quo) = ring.checked_div(A.at(i, k), A.at(k, k)) { [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/algorithms/linsolve/smith.rs:59:17 [INFO] [stdout] | [INFO] [stdout] 59 | } 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] 56 ~ } else { match ring.checked_div(A.at(i, k), A.at(k, k)) { Some(quo) => { [INFO] [stdout] 57 | TransformRows(A.reborrow(), ring.get_ring()).subtract(ring.get_ring(), k, i, &quo); [INFO] [stdout] 58 | L.subtract(ring.get_ring(), k, i, &quo); [INFO] [stdout] 59 ~ } _ => { [INFO] [stdout] 60 | let (transform, _) = ring.get_ring().create_elimination_matrix(A.at(k, k), A.at(i, k)); [INFO] [stdout] 61 | TransformRows(A.reborrow(), ring.get_ring()).transform(ring.get_ring(), k, i, &transform); [INFO] [stdout] 62 | L.transform(ring.get_ring(), k, i, &transform); [INFO] [stdout] 63 ~ }}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/linsolve/smith.rs:70:27 [INFO] [stdout] | [INFO] [stdout] 70 | } else if let Some(quo) = ring.checked_div(A.at(k, j), A.at(k, k)) { [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/algorithms/linsolve/smith.rs:74:17 [INFO] [stdout] | [INFO] [stdout] 74 | } 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] 70 ~ } else { match ring.checked_div(A.at(k, j), A.at(k, k)) { Some(quo) => { [INFO] [stdout] 71 | changed = true; [INFO] [stdout] 72 | TransformCols(A.reborrow(), ring.get_ring()).subtract(ring.get_ring(), k, j, &quo); [INFO] [stdout] 73 | R.subtract(ring.get_ring(), k, j, &quo); [INFO] [stdout] 74 ~ } _ => { [INFO] [stdout] 75 | changed = true; [INFO] [stdout] ... [INFO] [stdout] 78 | R.transform(ring.get_ring(), k, j, &transform); [INFO] [stdout] 79 ~ }}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/linsolve/smith.rs:117:16 [INFO] [stdout] | [INFO] [stdout] 117 | if let Some(quo) = ring.checked_left_div(rhs.at(i, j), pivot) { [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/algorithms/linsolve/smith.rs:119:13 [INFO] [stdout] | [INFO] [stdout] 119 | } 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] 117 ~ match ring.checked_left_div(rhs.at(i, j), pivot) { Some(quo) => { [INFO] [stdout] 118 | *result.at_mut(i, j) = quo; [INFO] [stdout] 119 ~ } _ => { [INFO] [stdout] 120 | return SolveResult::NoSolution; [INFO] [stdout] 121 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/interpolate.rs:116:8 [INFO] [stdout] | [INFO] [stdout] 116 | if let Some(inv) = R.invert(&denominator) { [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/algorithms/interpolate.rs:118:5 [INFO] [stdout] | [INFO] [stdout] 118 | } 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] 116 ~ match R.invert(&denominator) { Some(inv) => { [INFO] [stdout] 117 | return Ok(poly_ring.inclusion().mul_map(<_ as RingStore>::sum(&poly_ring, nums.into_iter().zip(factors.into_iter()).map(|(num, c)| poly_ring.inclusion().mul_map(num, c))), inv)); [INFO] [stdout] 118 ~ } _ => { [INFO] [stdout] 119 | let scaled_result = <_ as RingStore>::sum(&poly_ring, nums.into_iter().zip(factors.into_iter()).map(|(num, c)| poly_ring.inclusion().mul_map(num, c))); [INFO] [stdout] ... [INFO] [stdout] 132 | } [INFO] [stdout] 133 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/buchberger.rs:120:16 [INFO] [stdout] | [INFO] [stdout] 120 | if let Some(quo_c) = ring.base_ring().checked_div(f_lc, r_lc) { [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/algorithms/buchberger.rs:122:13 [INFO] [stdout] | [INFO] [stdout] 122 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 120 ~ match ring.base_ring().checked_div(f_lc, r_lc) { Some(quo_c) => { [INFO] [stdout] 121 | return Some((i, reducer, quo_c, quo_m)); [INFO] [stdout] 122 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/buchberger.rs:374:11 [INFO] [stdout] | [INFO] [stdout] 374 | while let Some((i, _, quo_c, quo_m)) = find_reducer(ring, to_reduce, reducers.iter().map(|(f, _)| f), order.clone()) { [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/algorithms/buchberger.rs:392:5 [INFO] [stdout] | [INFO] [stdout] 392 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/buchberger.rs:435:11 [INFO] [stdout] | [INFO] [stdout] 435 | while let Some((_, reducer, quo_c, quo_m)) = find_reducer(ring, &f, reducers.clone(), order.clone()) { [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/algorithms/buchberger.rs:437:5 [INFO] [stdout] | [INFO] [stdout] 437 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/splitting_field.rs:86:36 [INFO] [stdout] | [INFO] [stdout] 86 | let mut sub_factorization = if let Some(factorization) = factor_if_finite_field(&poly_ring, &factor) { [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/algorithms/splitting_field.rs:88:5 [INFO] [stdout] | [INFO] [stdout] 88 | } 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] 86 ~ let mut sub_factorization = match factor_if_finite_field(&poly_ring, &factor) { Some(factorization) => { [INFO] [stdout] 87 | factorization.0.into_iter().map(|(f, _)| f).collect::>() [INFO] [stdout] 88 ~ } _ => { [INFO] [stdout] 89 | factor_squarefree_over_extension(&poly_ring, &factor, MAX_PROBABILISTIC_REPETITIONS).ok().unwrap() [INFO] [stdout] 90 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl for<'d, 'e, 'f> Fn(&'d ring::RingRef<'b, rings::field::AsFieldBase::Type as ring::RingBase>::Element>>>>>, &'e ring::RingValue::Type as ring::RingBase>::Element>>>>>, &'f <::Type as ring::RingBase>::Element>>>>> as ring::RingStore>::Type as ring::RingBase>::Element) -> <::Type as ring::RingBase>::Element>>>>> as ring::RingStore>::Type as ring::RingBase>::Element + 'c` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/algorithms/splitting_field.rs:168:9 [INFO] [stdout] | [INFO] [stdout] 168 | ... impl 'c + Fn(&RingRef<'b, AsFieldBase>>>>, &AsField>>>, &El>>>>>) -> El>>>> [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/algorithms/splitting_field.rs:164:88 [INFO] [stdout] | [INFO] [stdout] 164 | pub fn extend_field<'a, 'b, 'c, R>(poly_ring: &'c ThisPolyRing<'a, 'b, R>, irred_poly: &El>) -> ( [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] 168 | impl 'c + Fn(&RingRef<'b, AsFieldBase>>>>, &AsField>>>, &El>>>>>) -> El>>>> + use<'c, 'b, 'a, R> [INFO] [stdout] | ++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/splitting_field.rs:219:46 [INFO] [stdout] | [INFO] [stdout] 219 | ...if let Ok(finite_field_result) = extension_ring.get_ring().specialize_finite_field(FiniteFieldCase { extension_ring: &extension_ring }) { [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/algorithms/splitting_field.rs:221:9 [INFO] [stdout] | [INFO] [stdout] 221 | ... } else if !BigIntRing::RING.is_zero(&characteristic) && BigIntRing::RING.is_lt(&characteristic, &int_cast(size_of_A as i64, BigIntR... [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 219 ~ let potential_primitive_element = match extension_ring.get_ring().specialize_finite_field(FiniteFieldCase { extension_ring: &extension_ring }) { Ok(finite_field_result) => { [INFO] [stdout] 220 | finite_field_result [INFO] [stdout] 221 ~ } _ => if !BigIntRing::RING.is_zero(&characteristic) && BigIntRing::RING.is_lt(&characteristic, &int_cast(size_of_A as i64, BigIntRing::RING, StaticRing::::RING)) { [INFO] [stdout] 222 | panic!("The case that 2 * [extension_ring : base_ring] > char(base_ring) for an infinite field base_ring is currently not supported") [INFO] [stdout] ... [INFO] [stdout] 225 | extension_ring.add(extension_ring.canonical_gen(), extension_ring.inclusion().map(ring.int_hom().mul_map(ring.canonical_gen(), a))) [INFO] [stdout] 226 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/splitting_field.rs:267:16 [INFO] [stdout] | [INFO] [stdout] 267 | if let Ok(result) = potential_result.as_field() { [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/algorithms/splitting_field.rs:272:13 [INFO] [stdout] | [INFO] [stdout] 272 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 267 ~ match potential_result.as_field() { Ok(result) => { [INFO] [stdout] 268 | let old_gen = result.sum((0..total_rank).map(|i| result.inclusion().mul_ref_snd_map(result.pow(result.canonical_gen(), i), sol.at(i, 1)))); [INFO] [stdout] ... [INFO] [stdout] 271 | break; [INFO] [stdout] 272 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/poly_squarefree/integer.rs:123:16 [INFO] [stdout] | [INFO] [stdout] 123 | if let Some(root_of_factor) = poly_root(self.ZZX, &factor_over_Z, k) { [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/algorithms/poly_squarefree/integer.rs:125:13 [INFO] [stdout] | [INFO] [stdout] 125 | } 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] 123 ~ match poly_root(self.ZZX, &factor_over_Z, k) { Some(root_of_factor) => { [INFO] [stdout] 124 | result.push((root_of_factor, k)); [INFO] [stdout] 125 ~ } _ => { [INFO] [stdout] 126 | return None; [INFO] [stdout] 127 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/poly_squarefree/integer.rs:165:12 [INFO] [stdout] | [INFO] [stdout] 165 | ...if let Some(result) = choose_zn_impl(ZZbig, modulus, IntegerPolyPowerDecompositionUsingHenselLifting { ZZX: &ZZX, FpX: &FpX, f: &f }) { [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/algorithms/poly_squarefree/integer.rs:168:9 [INFO] [stdout] | [INFO] [stdout] 168 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 165 ~ match choose_zn_impl(ZZbig, modulus, IntegerPolyPowerDecompositionUsingHenselLifting { ZZX: &ZZX, FpX: &FpX, f: &f }) { Some(result) => { [INFO] [stdout] 166 | [INFO] [stdout] 167 | return ZZX.prod(result.into_iter().map(|(f, _)| f)); [INFO] [stdout] 168 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/rings/rust_bigint.rs:92:64 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn abs_base_u64_repr<'a>(&self, el: &'a RustBigint) -> impl 'a + 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/rings/rust_bigint.rs:92:34 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn abs_base_u64_repr<'a>(&self, el: &'a RustBigint) -> impl 'a + 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] 92 | pub fn abs_base_u64_repr<'a>(&self, el: &'a RustBigint) -> impl 'a + Iterator + use<'a, A> { [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/zn/zn_64.rs:278:15 [INFO] [stdout] | [INFO] [stdout] 278 | while let Some(ZnEl(start)) = els_it.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/rings/zn/zn_64.rs:284:9 [INFO] [stdout] | [INFO] [stdout] 284 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl seq::VectorView<<::Type as ring::RingBase>::Element> + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/rings/zn/zn_rns.rs:171:61 [INFO] [stdout] | [INFO] [stdout] 171 | pub fn get_congruence<'a>(&self, el: &'a ZnEl) -> impl 'a + VectorView> { [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/rings/zn/zn_rns.rs:171:31 [INFO] [stdout] | [INFO] [stdout] 171 | pub fn get_congruence<'a>(&self, el: &'a ZnEl) -> impl 'a + VectorView> { [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] 171 | pub fn get_congruence<'a>(&self, el: &'a ZnEl) -> impl 'a + VectorView> + use<'a, C, J, A> { [INFO] [stdout] | ++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl seq::VectorView<<::Type as ring::RingBase>::Element> + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/rings/zn/zn_rns.rs:198:61 [INFO] [stdout] | [INFO] [stdout] 198 | pub fn get_congruence<'a>(&self, el: &'a ZnEl) -> impl 'a + VectorView> { [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/rings/zn/zn_rns.rs:198:31 [INFO] [stdout] | [INFO] [stdout] 198 | pub fn get_congruence<'a>(&self, el: &'a ZnEl) -> impl 'a + VectorView> { [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] 198 | pub fn get_congruence<'a>(&self, el: &'a ZnEl) -> impl 'a + VectorView> + use<'a, C, J, A> { [INFO] [stdout] | ++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/zn/mod.rs:274:12 [INFO] [stdout] | [INFO] [stdout] 274 | if let Some(quotient) = int_ring.checked_div(&lhs_lift, &d) { [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/rings/zn/mod.rs:276:9 [INFO] [stdout] | [INFO] [stdout] 276 | } 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] 274 ~ match int_ring.checked_div(&lhs_lift, &d) { Some(quotient) => { [INFO] [stdout] 275 | Some(ring.mul(ring.coerce(int_ring, quotient), ring.coerce(int_ring, s))) [INFO] [stdout] 276 ~ } _ => { [INFO] [stdout] 277 | None [INFO] [stdout] 278 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/poly/mod.rs:176:12 [INFO] [stdout] | [INFO] [stdout] 176 | if let Some(e) = error { [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/rings/poly/mod.rs:178:9 [INFO] [stdout] | [INFO] [stdout] 178 | } 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] 176 ~ match error { Some(e) => { [INFO] [stdout] 177 | return Err(e); [INFO] [stdout] 178 ~ } _ => { [INFO] [stdout] 179 | return Ok(result); [INFO] [stdout] 180 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/poly/mod.rs:213:19 [INFO] [stdout] | [INFO] [stdout] 213 | } else if let Some(inv_lc) = self.base_ring().invert(self.lc(&f).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/rings/poly/mod.rs:216:9 [INFO] [stdout] | [INFO] [stdout] 216 | } 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] 213 ~ } else { match self.base_ring().invert(self.lc(&f).unwrap()) { Some(inv_lc) => { [INFO] [stdout] 214 | self.inclusion().mul_assign_ref_map(&mut f, &inv_lc); [INFO] [stdout] 215 | return f; [INFO] [stdout] 216 ~ } _ => { [INFO] [stdout] 217 | let lc = self.lc(&f).unwrap(); [INFO] [stdout] 218 | return self.from_terms(self.terms(&f).map(|(c, i)| (self.base_ring().checked_div(c, &lc).unwrap(), i))); [INFO] [stdout] 219 ~ }}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/poly/mod.rs:399:12 [INFO] [stdout] | [INFO] [stdout] 399 | if let Some((c, i)) = terms.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/rings/poly/mod.rs:402:9 [INFO] [stdout] | [INFO] [stdout] 402 | } 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] 399 ~ match terms.next() { Some((c, i)) => { [INFO] [stdout] 400 | ring.base_ring().get_ring().dbg_within(c, out, if i == 0 { EnvBindingStrength::Sum } else { EnvBindingStrength:: Product })?; [INFO] [stdout] 401 | print_unknown(i, out)?; [INFO] [stdout] 402 ~ } _ => { [INFO] [stdout] 403 | write!(out, "0")?; [INFO] [stdout] 404 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/poly/mod.rs:405:15 [INFO] [stdout] | [INFO] [stdout] 405 | while let Some((c, i)) = terms.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/rings/poly/mod.rs:409:9 [INFO] [stdout] | [INFO] [stdout] 409 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/extension/mod.rs:212:12 [INFO] [stdout] | [INFO] [stdout] 212 | if let Some(_factor) = <_ as FactorPolyField>::find_factor_by_extension(DensePolyRing::new(self.base_ring(), "X"), &self) { [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/rings/extension/mod.rs:214:9 [INFO] [stdout] | [INFO] [stdout] 214 | } 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] 212 ~ match <_ as FactorPolyField>::find_factor_by_extension(DensePolyRing::new(self.base_ring(), "X"), &self) { Some(_factor) => { [INFO] [stdout] 213 | return Err(self); [INFO] [stdout] 214 ~ } _ => { [INFO] [stdout] 215 | return Ok(RingValue::from(AsFieldBase::promise_is_perfect_field(self))); [INFO] [stdout] 216 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/extension/galois_field.rs:96:16 [INFO] [stdout] | [INFO] [stdout] 96 | if let Some(result) = filter_irreducible(&poly_ring, create_mod_f_ring(&f), degree) { [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/rings/extension/galois_field.rs:98:13 [INFO] [stdout] | [INFO] [stdout] 98 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 96 ~ match filter_irreducible(&poly_ring, create_mod_f_ring(&f), degree) { Some(result) => { [INFO] [stdout] 97 | return result; [INFO] [stdout] 98 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/extension/galois_field.rs:155:12 [INFO] [stdout] | [INFO] [stdout] 155 | if let Some(result) = filter_irreducible(&poly_ring, create_mod_f_ring(&f), degree) { [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/rings/extension/galois_field.rs:157:9 [INFO] [stdout] | [INFO] [stdout] 157 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 155 ~ match filter_irreducible(&poly_ring, create_mod_f_ring(&f), degree) { Some(result) => { [INFO] [stdout] 156 | return result; [INFO] [stdout] 157 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/multivariate/mod.rs:162:16 [INFO] [stdout] | [INFO] [stdout] 162 | if let Some(res) = self.exponent_at(&lhs, i).checked_sub(self.exponent_at(rhs, i)) { [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/rings/multivariate/mod.rs:164:13 [INFO] [stdout] | [INFO] [stdout] 164 | } 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] 162 ~ match self.exponent_at(&lhs, i).checked_sub(self.exponent_at(rhs, i)) { Some(res) => { [INFO] [stdout] 163 | res [INFO] [stdout] 164 ~ } _ => { [INFO] [stdout] 165 | failed = true; [INFO] [stdout] 166 | 0 [INFO] [stdout] 167 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/multivariate/mod.rs:221:12 [INFO] [stdout] | [INFO] [stdout] 221 | if let Some(first) = parts.pop() { [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/rings/multivariate/mod.rs:231:9 [INFO] [stdout] | [INFO] [stdout] 231 | } 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] 221 ~ match parts.pop() { Some(first) => { [INFO] [stdout] 222 | let mut current = self.zero(); [INFO] [stdout] ... [INFO] [stdout] 230 | return current; [INFO] [stdout] 231 ~ } _ => { [INFO] [stdout] 232 | return self.zero(); [INFO] [stdout] 233 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/multivariate/mod.rs:224:19 [INFO] [stdout] | [INFO] [stdout] 224 | while let Some(new) = parts.pop() { [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/rings/multivariate/mod.rs:229:13 [INFO] [stdout] | [INFO] [stdout] 229 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/multivariate/multivariate_impl.rs:258:15 [INFO] [stdout] | [INFO] [stdout] 258 | while let (Some((_, l_m)), Some((_, r_m))) = (lhs_it.peek(), rhs_it.peek()) { [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/rings/multivariate/multivariate_impl.rs:275:9 [INFO] [stdout] | [INFO] [stdout] 275 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/fieldextension.rs:116:12 [INFO] [stdout] | [INFO] [stdout] 116 | if let Some((factor, _)) = factorization.into_iter().filter(|(f, _)| KX.degree(f) == Some(1)).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/rings/fieldextension.rs:119:9 [INFO] [stdout] | [INFO] [stdout] 119 | } 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] 116 ~ match factorization.into_iter().filter(|(f, _)| KX.degree(f) == Some(1)).next() { Some((factor, _)) => { [INFO] [stdout] 117 | let root = K.negate(K.div(KX.coefficient_at(&factor, 0), KX.coefficient_at(&factor, 1))); [INFO] [stdout] 118 | return Ok(ExtensionFieldEmbedding { from: self_, to: target, map_generator_to: root, base_ring_hom: base_ring_hom }); [INFO] [stdout] 119 ~ } _ => { [INFO] [stdout] 120 | return Err((self_, target)); [INFO] [stdout] 121 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/local.rs:260:12 [INFO] [stdout] | [INFO] [stdout] 260 | if let Some(quo) = self.checked_left_div(b, a) { [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/rings/local.rs:265:9 [INFO] [stdout] | [INFO] [stdout] 265 | } 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] 260 ~ match self.checked_left_div(b, a) { Some(quo) => { [INFO] [stdout] 261 | ( [INFO] [stdout] ... [INFO] [stdout] 264 | ) [INFO] [stdout] 265 ~ } _ => { [INFO] [stdout] 266 | let quo = self.checked_left_div(a, b).unwrap(); [INFO] [stdout] ... [INFO] [stdout] 270 | ) [INFO] [stdout] 271 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/local.rs:317:12 [INFO] [stdout] | [INFO] [stdout] 317 | if let Some(quo) = self.checked_left_div(&lhs, rhs) { [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/rings/local.rs:319:9 [INFO] [stdout] | [INFO] [stdout] 319 | } 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] 317 ~ match self.checked_left_div(&lhs, rhs) { Some(quo) => { [INFO] [stdout] 318 | (quo, self.zero()) [INFO] [stdout] 319 ~ } _ => { [INFO] [stdout] 320 | (self.zero(), lhs) [INFO] [stdout] 321 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/iters.rs:322:16 [INFO] [stdout] | [INFO] [stdout] 322 | if let Some(val) = self.current_iters[i].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/iters.rs:330:13 [INFO] [stdout] | [INFO] [stdout] 330 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 322 ~ match self.current_iters[i].next() { Some(val) => { [INFO] [stdout] 323 | self.current[i] = val; [INFO] [stdout] ... [INFO] [stdout] 329 | break; [INFO] [stdout] 330 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/iters.rs:378:12 [INFO] [stdout] | [INFO] [stdout] 378 | if let Some(v) = it.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/iters.rs:380:9 [INFO] [stdout] | [INFO] [stdout] 380 | } 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] 378 ~ match it.next() { Some(v) => { [INFO] [stdout] 379 | current.push(v); [INFO] [stdout] 380 ~ } _ => { [INFO] [stdout] 381 | return MultiProduct { [INFO] [stdout] ... [INFO] [stdout] 388 | }; [INFO] [stdout] 389 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/iters.rs:414:15 [INFO] [stdout] | [INFO] [stdout] 414 | while let Some(el) = self.base_iter.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/iters.rs:418:9 [INFO] [stdout] | [INFO] [stdout] 418 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/iters.rs:415:16 [INFO] [stdout] | [INFO] [stdout] 415 | if let Some(result) = (self.f)(el) { [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/iters.rs:417:13 [INFO] [stdout] | [INFO] [stdout] 417 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 415 ~ match (self.f)(el) { Some(result) => { [INFO] [stdout] 416 | return Some(result); [INFO] [stdout] 417 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/serialization.rs:60:19 [INFO] [stdout] | [INFO] [stdout] 60 | while let Some(el) = seq.next_element_seed(self.base_seed.clone())? { [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/serialization.rs:62:13 [INFO] [stdout] | [INFO] [stdout] 62 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 86 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `feanor_math` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/algorithms/lll.rs [INFO] [stderr] * src/algorithms/matmul/strassen.rs [INFO] [stderr] * src/algorithms/splitting_field.rs [INFO] [stderr] * src/matrix/mod.rs [INFO] [stderr] * src/ring.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/ring.rs:524:6 [INFO] [stderr] | [INFO] [stderr] 524 | ($ring:expr_2021, $lhs:expr_2021, $rhs: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/ring.rs:524:23 [INFO] [stderr] | [INFO] [stderr] 524 | ($ring:expr_2021, $lhs:expr_2021, $rhs: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/ring.rs:524:39 [INFO] [stderr] | [INFO] [stderr] 524 | ($ring:expr_2021, $lhs:expr_2021, $rhs: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/matrix/mod.rs:163:6 [INFO] [stderr] | [INFO] [stderr] 163 | ($ring:expr_2021, $lhs:expr_2021, $rhs: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/matrix/mod.rs:163:23 [INFO] [stderr] | [INFO] [stderr] 163 | ($ring:expr_2021, $lhs:expr_2021, $rhs: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/matrix/mod.rs:163:39 [INFO] [stderr] | [INFO] [stderr] 163 | ($ring:expr_2021, $lhs:expr_2021, $rhs: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/algorithms/matmul/strassen.rs:210:6 [INFO] [stderr] | [INFO] [stderr] 210 | ($R:expr_2021, $V1:expr_2021, $V2:expr_2021, $V3:expr_2021, $ADD_ASSIGN:expr_2021, $T1:expr_2021, $T2:expr_2021, $T3:expr_2021, $step... [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/algorithms/matmul/strassen.rs:210:20 [INFO] [stderr] | [INFO] [stderr] 210 | ($R:expr_2021, $V1:expr_2021, $V2:expr_2021, $V3:expr_2021, $ADD_ASSIGN:expr_2021, $T1:expr_2021, $T2:expr_2021, $T3:expr_2021, $step... [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/algorithms/matmul/strassen.rs:210:35 [INFO] [stderr] | [INFO] [stderr] 210 | ($R:expr_2021, $V1:expr_2021, $V2:expr_2021, $V3:expr_2021, $ADD_ASSIGN:expr_2021, $T1:expr_2021, $T2:expr_2021, $T3:expr_2021, $step... [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/algorithms/matmul/strassen.rs:210:50 [INFO] [stderr] | [INFO] [stderr] 210 | ($R:expr_2021, $V1:expr_2021, $V2:expr_2021, $V3:expr_2021, $ADD_ASSIGN:expr_2021, $T1:expr_2021, $T2:expr_2021, $T3:expr_2021, $step... [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/algorithms/matmul/strassen.rs:210:65 [INFO] [stderr] | [INFO] [stderr] 210 | ($R:expr_2021, $V1:expr_2021, $V2:expr_2021, $V3:expr_2021, $ADD_ASSIGN:expr_2021, $T1:expr_2021, $T2:expr_2021, $T3:expr_2021, $step... [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/algorithms/matmul/strassen.rs:210:88 [INFO] [stderr] | [INFO] [stderr] 210 | ($R:expr_2021, $V1:expr_2021, $V2:expr_2021, $V3:expr_2021, $ADD_ASSIGN:expr_2021, $T1:expr_2021, $T2:expr_2021, $T3:expr_2021, $step... [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/algorithms/matmul/strassen.rs:210:103 [INFO] [stderr] | [INFO] [stderr] 210 | ($R:expr_2021, $V1:expr_2021, $V2:expr_2021, $V3:expr_2021, $ADD_ASSIGN:expr_2021, $T1:expr_2021, $T2:expr_2021, $T3:expr_2021, $step... [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/algorithms/matmul/strassen.rs:210:118 [INFO] [stderr] | [INFO] [stderr] 210 | ($R:expr_2021, $V1:expr_2021, $V2:expr_2021, $V3:expr_2021, $ADD_ASSIGN:expr_2021, $T1:expr_2021, $T2:expr_2021, $T3:expr_2021, $step... [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/algorithms/matmul/strassen.rs:210:133 [INFO] [stderr] | [INFO] [stderr] 210 | ...expr_2021, $T1:expr_2021, $T2:expr_2021, $T3:expr_2021, $steps_left:expr_2021, $block_size_log2:expr_2021, $lhs:expr_2021, $rhs:expr_2... [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/algorithms/matmul/strassen.rs:210:156 [INFO] [stderr] | [INFO] [stderr] 210 | ... $T2:expr_2021, $T3:expr_2021, $steps_left:expr_2021, $block_size_log2:expr_2021, $lhs:expr_2021, $rhs:expr_2021, $dst:expr_2021, $rin... [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/algorithms/matmul/strassen.rs:210:184 [INFO] [stderr] | [INFO] [stderr] 210 | ...pr_2021, $steps_left:expr_2021, $block_size_log2:expr_2021, $lhs:expr_2021, $rhs:expr_2021, $dst:expr_2021, $ring:expr_2021, $memory:e... [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/algorithms/matmul/strassen.rs:210:200 [INFO] [stderr] | [INFO] [stderr] 210 | ...left:expr_2021, $block_size_log2:expr_2021, $lhs:expr_2021, $rhs:expr_2021, $dst:expr_2021, $ring:expr_2021, $memory:expr_2021, $small... [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/algorithms/matmul/strassen.rs:210:216 [INFO] [stderr] | [INFO] [stderr] 210 | ...$block_size_log2:expr_2021, $lhs:expr_2021, $rhs:expr_2021, $dst:expr_2021, $ring:expr_2021, $memory:expr_2021, $smaller_strassen:iden... [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/algorithms/matmul/strassen.rs:210:232 [INFO] [stderr] | [INFO] [stderr] 210 | ...expr_2021, $lhs:expr_2021, $rhs:expr_2021, $dst:expr_2021, $ring:expr_2021, $memory:expr_2021, $smaller_strassen:ident) => { [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/algorithms/matmul/strassen.rs:210:249 [INFO] [stderr] | [INFO] [stderr] 210 | ...pr_2021, $rhs:expr_2021, $dst:expr_2021, $ring:expr_2021, $memory:expr_2021, $smaller_strassen:ident) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/algorithms/linsolve/extension.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | let gen = ring.canonical_gen(); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [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 #49716 [INFO] [stdout] = note: `--force-warn keyword-idents-2024` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/algorithms/linsolve/extension.rs:36:52 [INFO] [stdout] | [INFO] [stdout] 36 | ring.mul_assign_ref(&mut current, &gen); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [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 #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/rings/extension/mod.rs:244:9 [INFO] [stdout] | [INFO] [stdout] 244 | let gen = ring.canonical_gen(); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [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 #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/rings/extension/mod.rs:252:44 [INFO] [stdout] | [INFO] [stdout] 252 | ring.mul_assign_ref(&mut current, &gen); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [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 #49716 [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: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/rings/local.rs:89:13 [INFO] [stdout] | [INFO] [stdout] 89 | let gen = ring.can_hom(ring.integer_ring()).unwrap().map(p); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [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 #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/rings/local.rs:90:68 [INFO] [stdout] | [INFO] [stdout] 90 | Some(Self::from(AsLocalPIRBase::promise_is_local_pir(ring, gen, Some(e)))) [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [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 #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ring.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | ($ring:expr, $lhs:expr, $rhs: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] 524 | ($ring:expr_2021, $lhs:expr, $rhs:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] --> src/algorithms/lll.rs:368:6 [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ring.rs:524:23 [INFO] [stdout] | [INFO] [stdout] 524 | ($ring:expr, $lhs:expr, $rhs: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] 524 | ($ring:expr, $lhs:expr_2021, $rhs:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ring.rs:524:34 [INFO] [stdout] | [INFO] [stdout] 524 | ($ring:expr, $lhs:expr, $rhs: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] 524 | ($ring:expr, $lhs:expr, $rhs:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 368 | ($hom:expr_2021; $num:literal) => { [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/matrix/mod.rs:163:12 [INFO] [stdout] | [INFO] [stdout] 163 | ($ring:expr, $lhs:expr, $rhs: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] 163 | ($ring:expr_2021, $lhs:expr, $rhs:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/matrix/mod.rs:163:23 [INFO] [stdout] | [INFO] [stdout] 163 | ($ring:expr, $lhs:expr, $rhs: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] 163 | ($ring:expr, $lhs:expr_2021, $rhs:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/matrix/mod.rs:163:34 [INFO] [stdout] | [INFO] [stdout] 163 | ($ring:expr, $lhs:expr, $rhs: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] 163 | ($ring:expr, $lhs:expr, $rhs:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:9 [INFO] [stdout] | [INFO] [stdout] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs... [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] 210 | ($R:expr_2021, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:19 [INFO] [stdout] | [INFO] [stdout] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs... [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] 210 | ($R:expr, $V1:expr_2021, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [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: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:29 [INFO] [stdout] | [INFO] [stdout] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs... [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] 210 | ($R:expr, $V1:expr, $V2:expr_2021, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:39 [INFO] [stdout] | [INFO] [stdout] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs... [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] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr_2021, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:57 [INFO] [stdout] | [INFO] [stdout] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs... [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] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr_2021, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] --> src/algorithms/lll.rs:371:6 [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:67 [INFO] [stdout] | [INFO] [stdout] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs... [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] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr_2021, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:77 [INFO] [stdout] | [INFO] [stdout] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs... [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] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr_2021, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 371 | ($hom:expr_2021; $num:literal, $den:literal) => { [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: expected identifier, found keyword `use` [INFO] [stderr] --> src/algorithms/splitting_field.rs:168:251 [INFO] [stderr] | [INFO] [stderr] 168 | ...El>>>>>) -> El>>>> + use<'c, 'b, 'a, R> [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::matrix::OwnedMatrix` [INFO] [stderr] --> src/algorithms/splitting_field.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use crate::matrix::OwnedMatrix; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::ordered::OrderedRingStore` [INFO] [stderr] --> src/algorithms/splitting_field.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use crate::ordered::OrderedRingStore; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::primitive_int::StaticRing` [INFO] [stderr] --> src/algorithms/splitting_field.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use crate::primitive_int::StaticRing; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::algorithms::linsolve::LinSolveRingStore` [INFO] [stderr] --> src/algorithms/splitting_field.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | use crate::algorithms::linsolve::LinSolveRingStore; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find function `extend_field` in this scope [INFO] [stderr] --> src/algorithms/splitting_field.rs:107:51 [INFO] [stderr] | [INFO] [stderr] 107 | let (extension_embedding, root_of_new_poly) = extend_field(poly_ring, &largest_factor); [INFO] [stderr] | ^^^^^^^^^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find function `extend_field` in this scope [INFO] [stderr] --> src/algorithms/splitting_field.rs:306:42 [INFO] [stderr] | [INFO] [stderr] 306 | let (extension_field_embedding, x) = extend_field(&poly_ring, &irred_poly); [INFO] [stderr] | ^^^^^^^^^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find function `extend_field` in this scope [INFO] [stderr] --> src/algorithms/splitting_field.rs:320:42 [INFO] [stderr] | [INFO] [stderr] 320 | let (extension_field_embedding, x) = extend_field(&poly_ring, &irred_poly); [INFO] [stderr] | ^^^^^^^^^^^^ help: a local variable with a similar name exists: `ext_field` [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find function `extend_field` in this scope [INFO] [stderr] --> src/algorithms/splitting_field.rs:341:42 [INFO] [stderr] | [INFO] [stderr] 341 | let (extension_field_embedding, x) = extend_field(&poly_ring, &irred_poly); [INFO] [stderr] | ^^^^^^^^^^^^ not found in this scope [INFO] [stderr] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:87 [INFO] [stdout] | [INFO] [stdout] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs... [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] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr_2021, $steps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error[E0425]: cannot find function `extend_field` in this scope [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:105 [INFO] [stdout] | [INFO] [stdout] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs... [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] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr_2021, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] --> src/algorithms/splitting_field.rs:358:42 [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:128 [INFO] [stdout] | [INFO] [stdout] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs... [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] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr_2021, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stderr] 358 | let (extension_field_embedding, x) = extend_field(&poly_ring, &irred_poly); [INFO] [stderr] | ^^^^^^^^^^^^ help: a local variable with a similar name exists: `ext_field` [INFO] [stderr] [INFO] [stderr] error: aborting due to 29 previous errors; 4 warnings emitted [INFO] [stderr] [INFO] [stderr] Some errors have detailed explanations: E0425, E0658. [INFO] [stderr] For more information about an error, try `rustc --explain E0425`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:139 [INFO] [stdout] | [INFO] [stdout] 210 | ...T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strass... [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] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs:expr_2021, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:150 [INFO] [stdout] | [INFO] [stdout] 210 | ...3:expr, $steps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [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] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr_2021, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:161 [INFO] [stdout] | [INFO] [stdout] 210 | ...eps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [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] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr_2021, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:173 [INFO] [stdout] | [INFO] [stdout] 210 | ...r, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [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] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr_2021, $memory:expr, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/matmul/strassen.rs:210:187 [INFO] [stdout] | [INFO] [stdout] 210 | ..._log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr, $smaller_strassen:ident) => { [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] 210 | ($R:expr, $V1:expr, $V2:expr, $V3:expr, $ADD_ASSIGN:expr, $T1:expr, $T2:expr, $T3:expr, $steps_left:expr, $block_size_log2:expr, $lhs:expr, $rhs:expr, $dst:expr, $ring:expr, $memory:expr_2021, $smaller_strassen:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/lll.rs:368:11 [INFO] [stdout] | [INFO] [stdout] 368 | ($hom:expr; $num:literal) => { [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] 368 | ($hom:expr_2021; $num:literal) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/algorithms/lll.rs:371:11 [INFO] [stdout] | [INFO] [stdout] 371 | ($hom:expr; $num:literal, $den:literal) => { [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] 371 | ($hom:expr_2021; $num:literal, $den:literal) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::NonNull::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/unsafe_any.rs:18:42 [INFO] [stdout] | [INFO] [stdout] 18 | assert_eq!(std::mem::size_of::(), value.as_ref().len()); [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/unsafe_any.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | unsafe fn delete(value: NonNull<[u8]>) { [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::intrinsics::transmute` is unsafe and requires unsafe block [INFO] [stdout] --> src/unsafe_any.rs:19:15 [INFO] [stdout] | [INFO] [stdout] 19 | let ptr = std::mem::transmute::<*const (), *const T>(value.as_ptr() as *const ()); [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::read` is unsafe and requires unsafe block [INFO] [stdout] --> src/unsafe_any.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | std::ptr::read(ptr); [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::NonNull::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/unsafe_any.rs:41:46 [INFO] [stdout] | [INFO] [stdout] 41 | assert_eq!(std::mem::size_of::(), self.data.unwrap().as_ref().len()); [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/unsafe_any.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | pub unsafe fn get<'a, T>(&'a self) -> &'a T { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/unsafe_any.rs:42:10 [INFO] [stdout] | [INFO] [stdout] 42 | &*std::mem::transmute::<*const (), *const T>(self.data.unwrap().as_ptr() as *const ()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are 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/unsafe_any.rs:42:11 [INFO] [stdout] | [INFO] [stdout] 42 | &*std::mem::transmute::<*const (), *const T>(self.data.unwrap().as_ptr() as *const ()) [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/matrix/submatrix.rs:133:9 [INFO] [stdout] | [INFO] [stdout] 133 | std::mem::transmute(self_) [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/matrix/submatrix.rs:132:5 [INFO] [stdout] | [INFO] [stdout] 132 | unsafe fn get_pointer(self_: NonNull) -> NonNull { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `unsafe_any::UnsafeAny::get` is unsafe and requires unsafe block [INFO] [stdout] --> src/rings/finite.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 99 | self.content.get() [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/rings/finite.rs:97:5 [INFO] [stdout] | [INFO] [stdout] 97 | #[stability::unstable(feature = "enable")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: this warning originates in the attribute macro `stability::unstable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ring.rs:716:12 [INFO] [stdout] | [INFO] [stdout] 716 | if let Some(err) = error { [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/ring.rs:718:9 [INFO] [stdout] | [INFO] [stdout] 718 | } else { [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 716 ~ match error { Some(err) => { [INFO] [stdout] 717 | return Err(err); [INFO] [stdout] 718 ~ } _ => { [INFO] [stdout] 719 | return Ok(result); [INFO] [stdout] 720 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/seq/sparse.rs:89:19 [INFO] [stdout] | [INFO] [stdout] 89 | } else if let Some(res) = self.data.get(&i) { [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/seq/sparse.rs:91:9 [INFO] [stdout] | [INFO] [stdout] 91 | } 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] 89 ~ } else { match self.data.get(&i) { Some(res) => { [INFO] [stdout] 90 | res [INFO] [stdout] 91 ~ } _ => { [INFO] [stdout] 92 | &self.zero [INFO] [stdout] 93 ~ }}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/eea/poly.rs:223:12 [INFO] [stdout] | [INFO] [stdout] 223 | if let Some(result) = choose_zn_impl(ZZbig, modulus, IntegerPolynomialGCDUsingHenselLifting { [INFO] [stdout] | ____________^ - [INFO] [stdout] | |_______________________________| [INFO] [stdout] 224 | || f: &f, g: &g, ZZX: &ZZX, FpX: FpX, leading_coeff: &leading_coeff [INFO] [stdout] 225 | || }) { [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/algorithms/eea/poly.rs:227:9 [INFO] [stdout] | [INFO] [stdout] 227 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 223 ~ match choose_zn_impl(ZZbig, modulus, IntegerPolynomialGCDUsingHenselLifting { [INFO] [stdout] 224 | f: &f, g: &g, ZZX: &ZZX, FpX: FpX, leading_coeff: &leading_coeff [INFO] [stdout] 225 ~ }) { Some(result) => { [INFO] [stdout] 226 | return result; [INFO] [stdout] 227 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/ec_factor.rs:182:12 [INFO] [stdout] | [INFO] [stdout] 182 | if let Some(d) = Zn.checked_div(&Zn.sub(Zn.add_ref(&x_sqr, &y_sqr), Zn.one()), &Zn.mul(x_sqr, y_sqr)) { [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/algorithms/ec_factor.rs:190:9 [INFO] [stdout] | [INFO] [stdout] 190 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 182 ~ match Zn.checked_div(&Zn.sub(Zn.add_ref(&x_sqr, &y_sqr), Zn.one()), &Zn.mul(x_sqr, y_sqr)) { Some(d) => { [INFO] [stdout] 183 | let P = (x, y, Zn.one()); [INFO] [stdout] ... [INFO] [stdout] 189 | } [INFO] [stdout] 190 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/ec_factor.rs:207:12 [INFO] [stdout] | [INFO] [stdout] 207 | if let Some(factor) = lenstra_ec_factor_base(&Zn, log2_size, &mut rng) { [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/algorithms/ec_factor.rs:209:9 [INFO] [stdout] | [INFO] [stdout] 209 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 207 ~ match lenstra_ec_factor_base(&Zn, log2_size, &mut rng) { Some(factor) => { [INFO] [stdout] 208 | return factor; [INFO] [stdout] 209 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/ec_factor.rs:213:12 [INFO] [stdout] | [INFO] [stdout] 213 | if let Some(factor) = lenstra_ec_factor_base(&Zn, log2_N / 2, &mut rng) { [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/algorithms/ec_factor.rs:215:9 [INFO] [stdout] | [INFO] [stdout] 215 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 213 ~ match lenstra_ec_factor_base(&Zn, log2_N / 2, &mut rng) { Some(factor) => { [INFO] [stdout] 214 | return factor; [INFO] [stdout] 215 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/int_factor.rs:97:15 [INFO] [stdout] | [INFO] [stdout] 97 | while let Some(quo) = ZZ.checked_div(&n, &ZZ_p) { [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/algorithms/int_factor.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/poly_div.rs:75:11 [INFO] [stdout] | [INFO] [stdout] 75 | while let Some(lhs_deg) = ring.degree(&lhs) { [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/algorithms/poly_div.rs:92:5 [INFO] [stdout] | [INFO] [stdout] 92 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/poly_factor/mod.rs:117:12 [INFO] [stdout] | [INFO] [stdout] 117 | if let Some(result) = factor_if_finite_field(&poly_ring, poly) { [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/algorithms/poly_factor/mod.rs:119:9 [INFO] [stdout] | [INFO] [stdout] 119 | } 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] 117 ~ match factor_if_finite_field(&poly_ring, poly) { Some(result) => { [INFO] [stdout] 118 | return result; [INFO] [stdout] 119 ~ } _ => { [INFO] [stdout] 120 | return factor_over_extension(poly_ring, poly); [INFO] [stdout] 121 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/poly_factor/extension.rs:138:16 [INFO] [stdout] | [INFO] [stdout] 138 | if let Some((i, _)) = result.iter().enumerate().filter(|(_, f)| KX.eq_el(&f.0, &factor)).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/algorithms/poly_factor/extension.rs:140:13 [INFO] [stdout] | [INFO] [stdout] 140 | } 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] 138 ~ match result.iter().enumerate().filter(|(_, f)| KX.eq_el(&f.0, &factor)).next() { Some((i, _)) => { [INFO] [stdout] 139 | result[i].1 += 1; [INFO] [stdout] 140 ~ } _ => { [INFO] [stdout] 141 | result.push((factor, 1)); [INFO] [stdout] 142 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/poly_factor/finite_field.rs:44:19 [INFO] [stdout] | [INFO] [stdout] 44 | while let Some(mut current) = stack.pop() { [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/algorithms/poly_factor/finite_field.rs:71:13 [INFO] [stdout] | [INFO] [stdout] 71 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/sparse_invert/row_echelon.rs:248:16 [INFO] [stdout] | [INFO] [stdout] 248 | if let Some(quo) = ring.checked_div(¤t, pivot) { [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/algorithms/sparse_invert/row_echelon.rs:250:13 [INFO] [stdout] | [INFO] [stdout] 250 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 248 ~ match ring.checked_div(¤t, pivot) { Some(quo) => { [INFO] [stdout] 249 | out.data.push((i, ring.negate(quo))); [INFO] [stdout] 250 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/sparse_invert/row_echelon.rs:387:20 [INFO] [stdout] | [INFO] [stdout] 387 | if let Some(quo) = ring.checked_div(factor, &pivot_entry) { [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/algorithms/sparse_invert/row_echelon.rs:394:17 [INFO] [stdout] | [INFO] [stdout] 394 | } 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] 387 ~ match ring.checked_div(factor, &pivot_entry) { Some(quo) => { [INFO] [stdout] 388 | let rhs_factor = ring.negate(quo); [INFO] [stdout] ... [INFO] [stdout] 393 | row_ops.subtract(ring.get_ring(), pivot_i, elim_i, &ring.negate(rhs_factor)); [INFO] [stdout] 394 ~ } _ => { [INFO] [stdout] 395 | assert!(elim_i < pivot_i); [INFO] [stdout] 396 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/linsolve/smith.rs:56:27 [INFO] [stdout] | [INFO] [stdout] 56 | } else if let Some(quo) = ring.checked_div(A.at(i, k), A.at(k, k)) { [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/algorithms/linsolve/smith.rs:59:17 [INFO] [stdout] | [INFO] [stdout] 59 | } 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] 56 ~ } else { match ring.checked_div(A.at(i, k), A.at(k, k)) { Some(quo) => { [INFO] [stdout] 57 | TransformRows(A.reborrow(), ring.get_ring()).subtract(ring.get_ring(), k, i, &quo); [INFO] [stdout] 58 | L.subtract(ring.get_ring(), k, i, &quo); [INFO] [stdout] 59 ~ } _ => { [INFO] [stdout] 60 | let (transform, _) = ring.get_ring().create_elimination_matrix(A.at(k, k), A.at(i, k)); [INFO] [stdout] 61 | TransformRows(A.reborrow(), ring.get_ring()).transform(ring.get_ring(), k, i, &transform); [INFO] [stdout] 62 | L.transform(ring.get_ring(), k, i, &transform); [INFO] [stdout] 63 ~ }}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/linsolve/smith.rs:70:27 [INFO] [stdout] | [INFO] [stdout] 70 | } else if let Some(quo) = ring.checked_div(A.at(k, j), A.at(k, k)) { [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/algorithms/linsolve/smith.rs:74:17 [INFO] [stdout] | [INFO] [stdout] 74 | } 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] 70 ~ } else { match ring.checked_div(A.at(k, j), A.at(k, k)) { Some(quo) => { [INFO] [stdout] 71 | changed = true; [INFO] [stdout] 72 | TransformCols(A.reborrow(), ring.get_ring()).subtract(ring.get_ring(), k, j, &quo); [INFO] [stdout] 73 | R.subtract(ring.get_ring(), k, j, &quo); [INFO] [stdout] 74 ~ } _ => { [INFO] [stdout] 75 | changed = true; [INFO] [stdout] ... [INFO] [stdout] 78 | R.transform(ring.get_ring(), k, j, &transform); [INFO] [stdout] 79 ~ }}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/linsolve/smith.rs:117:16 [INFO] [stdout] | [INFO] [stdout] 117 | if let Some(quo) = ring.checked_left_div(rhs.at(i, j), pivot) { [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/algorithms/linsolve/smith.rs:119:13 [INFO] [stdout] | [INFO] [stdout] 119 | } 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] 117 ~ match ring.checked_left_div(rhs.at(i, j), pivot) { Some(quo) => { [INFO] [stdout] 118 | *result.at_mut(i, j) = quo; [INFO] [stdout] 119 ~ } _ => { [INFO] [stdout] 120 | return SolveResult::NoSolution; [INFO] [stdout] 121 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/interpolate.rs:116:8 [INFO] [stdout] | [INFO] [stdout] 116 | if let Some(inv) = R.invert(&denominator) { [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/algorithms/interpolate.rs:118:5 [INFO] [stdout] | [INFO] [stdout] 118 | } 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] 116 ~ match R.invert(&denominator) { Some(inv) => { [INFO] [stdout] 117 | return Ok(poly_ring.inclusion().mul_map(<_ as RingStore>::sum(&poly_ring, nums.into_iter().zip(factors.into_iter()).map(|(num, c)| poly_ring.inclusion().mul_map(num, c))), inv)); [INFO] [stdout] 118 ~ } _ => { [INFO] [stdout] 119 | let scaled_result = <_ as RingStore>::sum(&poly_ring, nums.into_iter().zip(factors.into_iter()).map(|(num, c)| poly_ring.inclusion().mul_map(num, c))); [INFO] [stdout] ... [INFO] [stdout] 132 | } [INFO] [stdout] 133 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/buchberger.rs:120:16 [INFO] [stdout] | [INFO] [stdout] 120 | if let Some(quo_c) = ring.base_ring().checked_div(f_lc, r_lc) { [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/algorithms/buchberger.rs:122:13 [INFO] [stdout] | [INFO] [stdout] 122 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 120 ~ match ring.base_ring().checked_div(f_lc, r_lc) { Some(quo_c) => { [INFO] [stdout] 121 | return Some((i, reducer, quo_c, quo_m)); [INFO] [stdout] 122 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/buchberger.rs:374:11 [INFO] [stdout] | [INFO] [stdout] 374 | while let Some((i, _, quo_c, quo_m)) = find_reducer(ring, to_reduce, reducers.iter().map(|(f, _)| f), order.clone()) { [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/algorithms/buchberger.rs:392:5 [INFO] [stdout] | [INFO] [stdout] 392 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/buchberger.rs:435:11 [INFO] [stdout] | [INFO] [stdout] 435 | while let Some((_, reducer, quo_c, quo_m)) = find_reducer(ring, &f, reducers.clone(), order.clone()) { [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/algorithms/buchberger.rs:437:5 [INFO] [stdout] | [INFO] [stdout] 437 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/splitting_field.rs:86:36 [INFO] [stdout] | [INFO] [stdout] 86 | let mut sub_factorization = if let Some(factorization) = factor_if_finite_field(&poly_ring, &factor) { [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/algorithms/splitting_field.rs:88:5 [INFO] [stdout] | [INFO] [stdout] 88 | } 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] 86 ~ let mut sub_factorization = match factor_if_finite_field(&poly_ring, &factor) { Some(factorization) => { [INFO] [stdout] 87 | factorization.0.into_iter().map(|(f, _)| f).collect::>() [INFO] [stdout] 88 ~ } _ => { [INFO] [stdout] 89 | factor_squarefree_over_extension(&poly_ring, &factor, MAX_PROBABILISTIC_REPETITIONS).ok().unwrap() [INFO] [stdout] 90 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl for<'d, 'e, 'f> Fn(&'d ring::RingRef<'b, rings::field::AsFieldBase::Type as ring::RingBase>::Element>>>>>, &'e ring::RingValue::Type as ring::RingBase>::Element>>>>>, &'f <::Type as ring::RingBase>::Element>>>>> as ring::RingStore>::Type as ring::RingBase>::Element) -> <::Type as ring::RingBase>::Element>>>>> as ring::RingStore>::Type as ring::RingBase>::Element + 'c` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/algorithms/splitting_field.rs:168:9 [INFO] [stdout] | [INFO] [stdout] 168 | ... impl 'c + Fn(&RingRef<'b, AsFieldBase>>>>, &AsField>>>, &El>>>>>) -> El>>>> [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/algorithms/splitting_field.rs:164:88 [INFO] [stdout] | [INFO] [stdout] 164 | pub fn extend_field<'a, 'b, 'c, R>(poly_ring: &'c ThisPolyRing<'a, 'b, R>, irred_poly: &El>) -> ( [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] 168 | impl 'c + Fn(&RingRef<'b, AsFieldBase>>>>, &AsField>>>, &El>>>>>) -> El>>>> + use<'c, 'b, 'a, R> [INFO] [stdout] | ++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/splitting_field.rs:219:46 [INFO] [stdout] | [INFO] [stdout] 219 | ...if let Ok(finite_field_result) = extension_ring.get_ring().specialize_finite_field(FiniteFieldCase { extension_ring: &extension_ring }) { [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/algorithms/splitting_field.rs:221:9 [INFO] [stdout] | [INFO] [stdout] 221 | ... } else if !BigIntRing::RING.is_zero(&characteristic) && BigIntRing::RING.is_lt(&characteristic, &int_cast(size_of_A as i64, BigIntR... [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 219 ~ let potential_primitive_element = match extension_ring.get_ring().specialize_finite_field(FiniteFieldCase { extension_ring: &extension_ring }) { Ok(finite_field_result) => { [INFO] [stdout] 220 | finite_field_result [INFO] [stdout] 221 ~ } _ => if !BigIntRing::RING.is_zero(&characteristic) && BigIntRing::RING.is_lt(&characteristic, &int_cast(size_of_A as i64, BigIntRing::RING, StaticRing::::RING)) { [INFO] [stdout] 222 | panic!("The case that 2 * [extension_ring : base_ring] > char(base_ring) for an infinite field base_ring is currently not supported") [INFO] [stdout] ... [INFO] [stdout] 225 | extension_ring.add(extension_ring.canonical_gen(), extension_ring.inclusion().map(ring.int_hom().mul_map(ring.canonical_gen(), a))) [INFO] [stdout] 226 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/splitting_field.rs:267:16 [INFO] [stdout] | [INFO] [stdout] 267 | if let Ok(result) = potential_result.as_field() { [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/algorithms/splitting_field.rs:272:13 [INFO] [stdout] | [INFO] [stdout] 272 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 267 ~ match potential_result.as_field() { Ok(result) => { [INFO] [stdout] 268 | let old_gen = result.sum((0..total_rank).map(|i| result.inclusion().mul_ref_snd_map(result.pow(result.canonical_gen(), i), sol.at(i, 1)))); [INFO] [stdout] ... [INFO] [stdout] 271 | break; [INFO] [stdout] 272 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/poly_squarefree/integer.rs:123:16 [INFO] [stdout] | [INFO] [stdout] 123 | if let Some(root_of_factor) = poly_root(self.ZZX, &factor_over_Z, k) { [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/algorithms/poly_squarefree/integer.rs:125:13 [INFO] [stdout] | [INFO] [stdout] 125 | } 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] 123 ~ match poly_root(self.ZZX, &factor_over_Z, k) { Some(root_of_factor) => { [INFO] [stdout] 124 | result.push((root_of_factor, k)); [INFO] [stdout] 125 ~ } _ => { [INFO] [stdout] 126 | return None; [INFO] [stdout] 127 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/algorithms/poly_squarefree/integer.rs:165:12 [INFO] [stdout] | [INFO] [stdout] 165 | ...if let Some(result) = choose_zn_impl(ZZbig, modulus, IntegerPolyPowerDecompositionUsingHenselLifting { ZZX: &ZZX, FpX: &FpX, f: &f }) { [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/algorithms/poly_squarefree/integer.rs:168:9 [INFO] [stdout] | [INFO] [stdout] 168 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 165 ~ match choose_zn_impl(ZZbig, modulus, IntegerPolyPowerDecompositionUsingHenselLifting { ZZX: &ZZX, FpX: &FpX, f: &f }) { Some(result) => { [INFO] [stdout] 166 | [INFO] [stdout] 167 | return ZZX.prod(result.into_iter().map(|(f, _)| f)); [INFO] [stdout] 168 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/rings/rust_bigint.rs:92:64 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn abs_base_u64_repr<'a>(&self, el: &'a RustBigint) -> impl 'a + 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/rings/rust_bigint.rs:92:34 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn abs_base_u64_repr<'a>(&self, el: &'a RustBigint) -> impl 'a + 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] 92 | pub fn abs_base_u64_repr<'a>(&self, el: &'a RustBigint) -> impl 'a + Iterator + use<'a, A> { [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/zn/zn_64.rs:278:15 [INFO] [stdout] | [INFO] [stdout] 278 | while let Some(ZnEl(start)) = els_it.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/rings/zn/zn_64.rs:284:9 [INFO] [stdout] | [INFO] [stdout] 284 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl seq::VectorView<<::Type as ring::RingBase>::Element> + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/rings/zn/zn_rns.rs:171:61 [INFO] [stdout] | [INFO] [stdout] 171 | pub fn get_congruence<'a>(&self, el: &'a ZnEl) -> impl 'a + VectorView> { [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/rings/zn/zn_rns.rs:171:31 [INFO] [stdout] | [INFO] [stdout] 171 | pub fn get_congruence<'a>(&self, el: &'a ZnEl) -> impl 'a + VectorView> { [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] 171 | pub fn get_congruence<'a>(&self, el: &'a ZnEl) -> impl 'a + VectorView> + use<'a, C, J, A> { [INFO] [stdout] | ++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl seq::VectorView<<::Type as ring::RingBase>::Element> + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/rings/zn/zn_rns.rs:198:61 [INFO] [stdout] | [INFO] [stdout] 198 | pub fn get_congruence<'a>(&self, el: &'a ZnEl) -> impl 'a + VectorView> { [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/rings/zn/zn_rns.rs:198:31 [INFO] [stdout] | [INFO] [stdout] 198 | pub fn get_congruence<'a>(&self, el: &'a ZnEl) -> impl 'a + VectorView> { [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] 198 | pub fn get_congruence<'a>(&self, el: &'a ZnEl) -> impl 'a + VectorView> + use<'a, C, J, A> { [INFO] [stdout] | ++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/zn/mod.rs:274:12 [INFO] [stdout] | [INFO] [stdout] 274 | if let Some(quotient) = int_ring.checked_div(&lhs_lift, &d) { [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/rings/zn/mod.rs:276:9 [INFO] [stdout] | [INFO] [stdout] 276 | } 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] 274 ~ match int_ring.checked_div(&lhs_lift, &d) { Some(quotient) => { [INFO] [stdout] 275 | Some(ring.mul(ring.coerce(int_ring, quotient), ring.coerce(int_ring, s))) [INFO] [stdout] 276 ~ } _ => { [INFO] [stdout] 277 | None [INFO] [stdout] 278 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/poly/mod.rs:176:12 [INFO] [stdout] | [INFO] [stdout] 176 | if let Some(e) = error { [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/rings/poly/mod.rs:178:9 [INFO] [stdout] | [INFO] [stdout] 178 | } 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] 176 ~ match error { Some(e) => { [INFO] [stdout] 177 | return Err(e); [INFO] [stdout] 178 ~ } _ => { [INFO] [stdout] 179 | return Ok(result); [INFO] [stdout] 180 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/poly/mod.rs:213:19 [INFO] [stdout] | [INFO] [stdout] 213 | } else if let Some(inv_lc) = self.base_ring().invert(self.lc(&f).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/rings/poly/mod.rs:216:9 [INFO] [stdout] | [INFO] [stdout] 216 | } 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] 213 ~ } else { match self.base_ring().invert(self.lc(&f).unwrap()) { Some(inv_lc) => { [INFO] [stdout] 214 | self.inclusion().mul_assign_ref_map(&mut f, &inv_lc); [INFO] [stdout] 215 | return f; [INFO] [stdout] 216 ~ } _ => { [INFO] [stdout] 217 | let lc = self.lc(&f).unwrap(); [INFO] [stdout] 218 | return self.from_terms(self.terms(&f).map(|(c, i)| (self.base_ring().checked_div(c, &lc).unwrap(), i))); [INFO] [stdout] 219 ~ }}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/poly/mod.rs:399:12 [INFO] [stdout] | [INFO] [stdout] 399 | if let Some((c, i)) = terms.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/rings/poly/mod.rs:402:9 [INFO] [stdout] | [INFO] [stdout] 402 | } 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] 399 ~ match terms.next() { Some((c, i)) => { [INFO] [stdout] 400 | ring.base_ring().get_ring().dbg_within(c, out, if i == 0 { EnvBindingStrength::Sum } else { EnvBindingStrength:: Product })?; [INFO] [stdout] 401 | print_unknown(i, out)?; [INFO] [stdout] 402 ~ } _ => { [INFO] [stdout] 403 | write!(out, "0")?; [INFO] [stdout] 404 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/poly/mod.rs:405:15 [INFO] [stdout] | [INFO] [stdout] 405 | while let Some((c, i)) = terms.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/rings/poly/mod.rs:409:9 [INFO] [stdout] | [INFO] [stdout] 409 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/extension/mod.rs:212:12 [INFO] [stdout] | [INFO] [stdout] 212 | if let Some(_factor) = <_ as FactorPolyField>::find_factor_by_extension(DensePolyRing::new(self.base_ring(), "X"), &self) { [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/rings/extension/mod.rs:214:9 [INFO] [stdout] | [INFO] [stdout] 214 | } 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] 212 ~ match <_ as FactorPolyField>::find_factor_by_extension(DensePolyRing::new(self.base_ring(), "X"), &self) { Some(_factor) => { [INFO] [stdout] 213 | return Err(self); [INFO] [stdout] 214 ~ } _ => { [INFO] [stdout] 215 | return Ok(RingValue::from(AsFieldBase::promise_is_perfect_field(self))); [INFO] [stdout] 216 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/extension/galois_field.rs:96:16 [INFO] [stdout] | [INFO] [stdout] 96 | if let Some(result) = filter_irreducible(&poly_ring, create_mod_f_ring(&f), degree) { [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/rings/extension/galois_field.rs:98:13 [INFO] [stdout] | [INFO] [stdout] 98 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 96 ~ match filter_irreducible(&poly_ring, create_mod_f_ring(&f), degree) { Some(result) => { [INFO] [stdout] 97 | return result; [INFO] [stdout] 98 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/extension/galois_field.rs:155:12 [INFO] [stdout] | [INFO] [stdout] 155 | if let Some(result) = filter_irreducible(&poly_ring, create_mod_f_ring(&f), degree) { [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/rings/extension/galois_field.rs:157:9 [INFO] [stdout] | [INFO] [stdout] 157 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 155 ~ match filter_irreducible(&poly_ring, create_mod_f_ring(&f), degree) { Some(result) => { [INFO] [stdout] 156 | return result; [INFO] [stdout] 157 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/multivariate/mod.rs:162:16 [INFO] [stdout] | [INFO] [stdout] 162 | if let Some(res) = self.exponent_at(&lhs, i).checked_sub(self.exponent_at(rhs, i)) { [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/rings/multivariate/mod.rs:164:13 [INFO] [stdout] | [INFO] [stdout] 164 | } 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] 162 ~ match self.exponent_at(&lhs, i).checked_sub(self.exponent_at(rhs, i)) { Some(res) => { [INFO] [stdout] 163 | res [INFO] [stdout] 164 ~ } _ => { [INFO] [stdout] 165 | failed = true; [INFO] [stdout] 166 | 0 [INFO] [stdout] 167 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/multivariate/mod.rs:221:12 [INFO] [stdout] | [INFO] [stdout] 221 | if let Some(first) = parts.pop() { [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/rings/multivariate/mod.rs:231:9 [INFO] [stdout] | [INFO] [stdout] 231 | } 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] 221 ~ match parts.pop() { Some(first) => { [INFO] [stdout] 222 | let mut current = self.zero(); [INFO] [stdout] ... [INFO] [stdout] 230 | return current; [INFO] [stdout] 231 ~ } _ => { [INFO] [stdout] 232 | return self.zero(); [INFO] [stdout] 233 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/multivariate/mod.rs:224:19 [INFO] [stdout] | [INFO] [stdout] 224 | while let Some(new) = parts.pop() { [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/rings/multivariate/mod.rs:229:13 [INFO] [stdout] | [INFO] [stdout] 229 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/multivariate/multivariate_impl.rs:258:15 [INFO] [stdout] | [INFO] [stdout] 258 | while let (Some((_, l_m)), Some((_, r_m))) = (lhs_it.peek(), rhs_it.peek()) { [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/rings/multivariate/multivariate_impl.rs:275:9 [INFO] [stdout] | [INFO] [stdout] 275 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/fieldextension.rs:116:12 [INFO] [stdout] | [INFO] [stdout] 116 | if let Some((factor, _)) = factorization.into_iter().filter(|(f, _)| KX.degree(f) == Some(1)).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/rings/fieldextension.rs:119:9 [INFO] [stdout] | [INFO] [stdout] 119 | } 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] 116 ~ match factorization.into_iter().filter(|(f, _)| KX.degree(f) == Some(1)).next() { Some((factor, _)) => { [INFO] [stdout] 117 | let root = K.negate(K.div(KX.coefficient_at(&factor, 0), KX.coefficient_at(&factor, 1))); [INFO] [stdout] 118 | return Ok(ExtensionFieldEmbedding { from: self_, to: target, map_generator_to: root, base_ring_hom: base_ring_hom }); [INFO] [stdout] 119 ~ } _ => { [INFO] [stdout] 120 | return Err((self_, target)); [INFO] [stdout] 121 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/local.rs:260:12 [INFO] [stdout] | [INFO] [stdout] 260 | if let Some(quo) = self.checked_left_div(b, a) { [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/rings/local.rs:265:9 [INFO] [stdout] | [INFO] [stdout] 265 | } 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] 260 ~ match self.checked_left_div(b, a) { Some(quo) => { [INFO] [stdout] 261 | ( [INFO] [stdout] ... [INFO] [stdout] 264 | ) [INFO] [stdout] 265 ~ } _ => { [INFO] [stdout] 266 | let quo = self.checked_left_div(a, b).unwrap(); [INFO] [stdout] ... [INFO] [stdout] 270 | ) [INFO] [stdout] 271 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rings/local.rs:317:12 [INFO] [stdout] | [INFO] [stdout] 317 | if let Some(quo) = self.checked_left_div(&lhs, rhs) { [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/rings/local.rs:319:9 [INFO] [stdout] | [INFO] [stdout] 319 | } 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] 317 ~ match self.checked_left_div(&lhs, rhs) { Some(quo) => { [INFO] [stdout] 318 | (quo, self.zero()) [INFO] [stdout] 319 ~ } _ => { [INFO] [stdout] 320 | (self.zero(), lhs) [INFO] [stdout] 321 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/iters.rs:322:16 [INFO] [stdout] | [INFO] [stdout] 322 | if let Some(val) = self.current_iters[i].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/iters.rs:330:13 [INFO] [stdout] | [INFO] [stdout] 330 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 322 ~ match self.current_iters[i].next() { Some(val) => { [INFO] [stdout] 323 | self.current[i] = val; [INFO] [stdout] ... [INFO] [stdout] 329 | break; [INFO] [stdout] 330 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/iters.rs:378:12 [INFO] [stdout] | [INFO] [stdout] 378 | if let Some(v) = it.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/iters.rs:380:9 [INFO] [stdout] | [INFO] [stdout] 380 | } 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] 378 ~ match it.next() { Some(v) => { [INFO] [stdout] 379 | current.push(v); [INFO] [stdout] 380 ~ } _ => { [INFO] [stdout] 381 | return MultiProduct { [INFO] [stdout] ... [INFO] [stdout] 388 | }; [INFO] [stdout] 389 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/iters.rs:414:15 [INFO] [stdout] | [INFO] [stdout] 414 | while let Some(el) = self.base_iter.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/iters.rs:418:9 [INFO] [stdout] | [INFO] [stdout] 418 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/iters.rs:415:16 [INFO] [stdout] | [INFO] [stdout] 415 | if let Some(result) = (self.f)(el) { [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/iters.rs:417:13 [INFO] [stdout] | [INFO] [stdout] 417 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 415 ~ match (self.f)(el) { Some(result) => { [INFO] [stdout] 416 | return Some(result); [INFO] [stdout] 417 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/serialization.rs:60:19 [INFO] [stdout] | [INFO] [stdout] 60 | while let Some(el) = seq.next_element_seed(self.base_seed.clone())? { [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/serialization.rs:62:13 [INFO] [stdout] | [INFO] [stdout] 62 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 87 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 27.40s [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Checking feanor-math v2.3.0 (/tmp/fixit) [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/algorithms/linsolve/extension.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | let gen = ring.canonical_gen(); [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 26 | let r#gen = ring.canonical_gen(); [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/algorithms/linsolve/extension.rs:36:52 [INFO] [stdout] | [INFO] [stdout] 36 | ring.mul_assign_ref(&mut current, &gen); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/algorithms/linsolve/extension.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | let gen = ring.canonical_gen(); [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 26 | let r#gen = ring.canonical_gen(); [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/algorithms/linsolve/extension.rs:36:52 [INFO] [stdout] | [INFO] [stdout] 36 | ring.mul_assign_ref(&mut current, &gen); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/rings/extension/mod.rs:244:9 [INFO] [stdout] | [INFO] [stdout] 244 | let gen = ring.canonical_gen(); [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 244 | let r#gen = ring.canonical_gen(); [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/rings/extension/mod.rs:252:44 [INFO] [stdout] | [INFO] [stdout] 252 | ring.mul_assign_ref(&mut current, &gen); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/rings/extension/mod.rs:244:9 [INFO] [stdout] | [INFO] [stdout] 244 | let gen = ring.canonical_gen(); [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 244 | let r#gen = ring.canonical_gen(); [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/rings/extension/mod.rs:252:44 [INFO] [stdout] | [INFO] [stdout] 252 | ring.mul_assign_ref(&mut current, &gen); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/rings/local.rs:89:13 [INFO] [stdout] | [INFO] [stdout] 89 | let gen = ring.can_hom(ring.integer_ring()).unwrap().map(p); [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 89 | let r#gen = ring.can_hom(ring.integer_ring()).unwrap().map(p); [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/rings/local.rs:89:13 [INFO] [stdout] | [INFO] [stdout] 89 | let gen = ring.can_hom(ring.integer_ring()).unwrap().map(p); [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 89 | let r#gen = ring.can_hom(ring.integer_ring()).unwrap().map(p); [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/rings/local.rs:90:68 [INFO] [stdout] | [INFO] [stdout] 90 | Some(Self::from(AsLocalPIRBase::promise_is_local_pir(ring, gen, Some(e)))) [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/rings/local.rs:90:68 [INFO] [stdout] | [INFO] [stdout] 90 | Some(Self::from(AsLocalPIRBase::promise_is_local_pir(ring, gen, Some(e)))) [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Instant` [INFO] [stdout] --> src/algorithms/splitting_field.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::time::Instant; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::NonNull::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/unsafe_any.rs:18:42 [INFO] [stdout] | [INFO] [stdout] 18 | assert_eq!(std::mem::size_of::(), value.as_ref().len()); [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/unsafe_any.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | unsafe fn delete(value: NonNull<[u8]>) { [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::intrinsics::transmute` is unsafe and requires unsafe block [INFO] [stdout] --> src/unsafe_any.rs:19:15 [INFO] [stdout] | [INFO] [stdout] 19 | let ptr = std::mem::transmute::<*const (), *const T>(value.as_ptr() as *const ()); [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::read` is unsafe and requires unsafe block [INFO] [stdout] --> src/unsafe_any.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | std::ptr::read(ptr); [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::NonNull::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/unsafe_any.rs:41:46 [INFO] [stdout] | [INFO] [stdout] 41 | assert_eq!(std::mem::size_of::(), self.data.unwrap().as_ref().len()); [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/unsafe_any.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | pub unsafe fn get<'a, T>(&'a self) -> &'a T { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/unsafe_any.rs:42:10 [INFO] [stdout] | [INFO] [stdout] 42 | &*std::mem::transmute::<*const (), *const T>(self.data.unwrap().as_ptr() as *const ()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are 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/unsafe_any.rs:42:11 [INFO] [stdout] | [INFO] [stdout] 42 | &*std::mem::transmute::<*const (), *const T>(self.data.unwrap().as_ptr() as *const ()) [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/matrix/submatrix.rs:133:9 [INFO] [stdout] | [INFO] [stdout] 133 | std::mem::transmute(self_) [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/matrix/submatrix.rs:132:5 [INFO] [stdout] | [INFO] [stdout] 132 | unsafe fn get_pointer(self_: NonNull) -> NonNull { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::NonNull::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/unsafe_any.rs:18:42 [INFO] [stdout] | [INFO] [stdout] 18 | assert_eq!(std::mem::size_of::(), value.as_ref().len()); [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/unsafe_any.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | unsafe fn delete(value: NonNull<[u8]>) { [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::intrinsics::transmute` is unsafe and requires unsafe block [INFO] [stdout] --> src/unsafe_any.rs:19:15 [INFO] [stdout] | [INFO] [stdout] 19 | let ptr = std::mem::transmute::<*const (), *const T>(value.as_ptr() as *const ()); [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::read` is unsafe and requires unsafe block [INFO] [stdout] --> src/unsafe_any.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | std::ptr::read(ptr); [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::NonNull::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/unsafe_any.rs:41:46 [INFO] [stdout] | [INFO] [stdout] 41 | assert_eq!(std::mem::size_of::(), self.data.unwrap().as_ref().len()); [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/unsafe_any.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | pub unsafe fn get<'a, T>(&'a self) -> &'a T { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/unsafe_any.rs:42:10 [INFO] [stdout] | [INFO] [stdout] 42 | &*std::mem::transmute::<*const (), *const T>(self.data.unwrap().as_ptr() as *const ()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are 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/unsafe_any.rs:42:11 [INFO] [stdout] | [INFO] [stdout] 42 | &*std::mem::transmute::<*const (), *const T>(self.data.unwrap().as_ptr() as *const ()) [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/matrix/submatrix.rs:133:9 [INFO] [stdout] | [INFO] [stdout] 133 | std::mem::transmute(self_) [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/matrix/submatrix.rs:132:5 [INFO] [stdout] | [INFO] [stdout] 132 | unsafe fn get_pointer(self_: NonNull) -> NonNull { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `unsafe_any::UnsafeAny::get` is unsafe and requires unsafe block [INFO] [stdout] --> src/rings/finite.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 99 | self.content.get() [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/rings/finite.rs:97:5 [INFO] [stdout] | [INFO] [stdout] 97 | #[stability::unstable(feature = "enable")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: this warning originates in the attribute macro `stability::unstable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 6 previous errors; 9 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] error: could not compile `feanor-math` (lib) due to 7 previous errors; 9 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] warning[E0133]: call to unsafe function `unsafe_any::UnsafeAny::get` is unsafe and requires unsafe block [INFO] [stdout] --> src/rings/finite.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 99 | self.content.get() [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/rings/finite.rs:97:5 [INFO] [stdout] | [INFO] [stdout] 97 | #[stability::unstable(feature = "enable")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: this warning originates in the attribute macro `stability::unstable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 6 previous errors; 8 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] error: could not compile `feanor-math` (lib test) due to 7 previous errors; 8 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" "9917cd034458283cecd3a0662961822e9490c6d23b267c92fa3d057470358cf5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9917cd034458283cecd3a0662961822e9490c6d23b267c92fa3d057470358cf5", kill_on_drop: false }` [INFO] [stdout] 9917cd034458283cecd3a0662961822e9490c6d23b267c92fa3d057470358cf5