Skip to content

Upgrade Rust toolchain to nightly-2026-02-20 - #4713

Open
tautschnig wants to merge 1 commit into
model-checking:mainfrom
tautschnig:toolchain-2026-02-20-pr
Open

Upgrade Rust toolchain to nightly-2026-02-20#4713
tautschnig wants to merge 1 commit into
model-checking:mainfrom
tautschnig:toolchain-2026-02-20-pr

Conversation

@tautschnig

Copy link
Copy Markdown
Member

Advance from nightly-2026-02-18 to nightly-2026-02-20. One set of source changes is required (first needed at nightly-2026-02-19); 02-20 then passes with no further changes.

Three rustc changes needed handling:

  1. Rvalue::ShallowInitBox was removed (rust-lang/rust "Remove ShallowInitBox"). Box construction no longer produces this rvalue: Box::new now allocates, write_via_moves the value, and transmutes the pointer, while vec! uses the new write_box_via_move intrinsic. Remove Kani's now-dead ShallowInitBox match arms across codegen, analysis, points-to, check-values, the MIR visitor, internal-MIR conversion, and the LLBC backend.

  2. The rustc_allow_const_fn_unstable feature/attribute was removed. Drop it from the vendored VecDeque sources used by the vecdeque-cve test.

  3. The E0433 diagnostic was reworded ("failed to resolve: could not find" ->
    "cannot find"); update the unsupported-annotation UI test's expected output.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 and MIT licenses.

Advance from nightly-2026-02-18 to nightly-2026-02-20. One set of source changes
is required (first needed at nightly-2026-02-19); 02-20 then passes with no
further changes.

Three rustc changes needed handling:

1. `Rvalue::ShallowInitBox` was removed (rust-lang/rust "Remove ShallowInitBox").
   Box construction no longer produces this rvalue: `Box::new` now allocates,
   `write_via_move`s the value, and transmutes the pointer, while `vec!` uses the
   new `write_box_via_move` intrinsic. Remove Kani's now-dead `ShallowInitBox`
   match arms across codegen, analysis, points-to, check-values, the MIR visitor,
   internal-MIR conversion, and the LLBC backend.

2. The `rustc_allow_const_fn_unstable` feature/attribute was removed. Drop it from
   the vendored `VecDeque` sources used by the `vecdeque-cve` test.

3. The `E0433` diagnostic was reworded ("failed to resolve: could not find" ->
   "cannot find"); update the `unsupported-annotation` UI test's expected output.

Co-authored-by: Kiro <kiro-agent@users.noreply.github.com>
Copilot AI lite review requested due to automatic review settings August 4, 2026 06:31
@tautschnig
tautschnig requested a review from a team as a code owner August 4, 2026 06:31
@github-actions github-actions Bot added Z-EndToEndBenchCI Tag a PR to run benchmark CI Z-CompilerBenchCI Tag a PR to run benchmark CI labels Aug 4, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates Kani’s pinned Rust nightly toolchain to nightly-2026-02-20 and adjusts the codebase/tests to accommodate upstream rustc changes introduced between nightly-2026-02-18 and nightly-2026-02-20.

Changes:

  • Bump pinned toolchain from nightly-2026-02-18 to nightly-2026-02-20.
  • Remove now-dead handling for Rvalue::ShallowInitBox across Kani’s MIR conversion/visitors/analyses/backends.
  • Update tests for removed rustc_allow_const_fn_unstable and the updated E0433 wording.

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tests/ui/unsupported-annotation/expected Updates expected diagnostic text for the reworded E0433 message.
tests/cargo-kani/vecdeque-cve/src/raw_vec.rs Drops removed #[rustc_allow_const_fn_unstable(const_fn)] attribute from vendored VecDeque code.
tests/cargo-kani/vecdeque-cve/src/harness.rs Removes the now-removed #![feature(rustc_allow_const_fn_unstable)] feature gate.
rust-toolchain.toml Advances the pinned nightly toolchain to nightly-2026-02-20.
kani-compiler/src/kani_middle/transform/internal_mir.rs Removes internal MIR conversion for the deleted ShallowInitBox rvalue.
kani-compiler/src/kani_middle/transform/check_values.rs Removes ShallowInitBox handling from value-check visitor logic.
kani-compiler/src/kani_middle/transform/body.rs Removes ShallowInitBox handling from the mutable MIR visitor traversal.
kani-compiler/src/kani_middle/points_to/points_to_analysis.rs Removes ShallowInitBox from points-to successors computation.
kani-compiler/src/kani_middle/analysis.rs Removes ShallowInitBox from rvalue key classification.
kani-compiler/src/codegen_cprover_gotoc/codegen/rvalue.rs Removes codegen for ShallowInitBox rvalues in the CBMC/GotoC backend.
kani-compiler/src/codegen_aeneas_llbc/mir_to_ullbc/mod.rs Drops the ShallowInitBox match arm from the experimental LLBC backend translation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@feliperodri

Copy link
Copy Markdown
Member

PR #4712 supersede this one

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Z-CompilerBenchCI Tag a PR to run benchmark CI Z-EndToEndBenchCI Tag a PR to run benchmark CI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants