Skip to content

Commit 9707a9c

Browse files
Upgrade Rust toolchain to 2025-07-21 (#4241)
Relevant upstream PR: - rust-lang/rust#143848 (Rename `stable_mir` and `rustc_smir`) The update was done via ``` git grep -l 'stable_mir::' | xargs sed -i 's/stable_mir::/rustc_public::/' git grep -l 'rustc_smir::' | xargs sed -i 's/rustc_smir::/rustc_public_bridge::/' ``` followed by manual touch-ups in `kani-compiler/src/main.rs`, `kani-compiler/src/codegen_cprover_gotoc/codegen/function.rs`, `tools/scanner/src/lib.rs`, and then running `scripts/kani-fmt.sh`. Resolves: #4229 By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 and MIT licenses. --------- Co-authored-by: Carolyn Zech <[email protected]>
1 parent 587bd03 commit 9707a9c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+271
-272
lines changed

docs/src/rustc-hacks.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,11 @@ Here is an example:
6868
# ** At the bottom of the dependencies section: **
6969
# Adjust the path here to point to a local copy of the rust compiler.
7070
# E.g.: ~/.rustup/toolchains/<toolchain>/lib/rustlib/rustc-src/rust/compiler
71-
rustc_smir = { path = "<path_to_rustc>/rustc_smir", optional = true }
72-
stable_mir = { path = "<path_to_rustc>/stable_mir", optional = true }
71+
rustc_public_bridge = { path = "<path_to_rustc>/rustc_public_bridge", optional = true }
72+
rustc_public = { path = "<path_to_rustc>/rustc_public", optional = true }
7373

7474
[features]
75-
clion = ['rustc_smir', 'stable_mir']
75+
clion = ['rustc_public_bridge', 'rustc_public']
7676
```
7777

7878
**Don't forget to rollback the changes before you create your PR.**

docs/src/stable-mir.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ despite them not being stable yet.
88

99
### StableMIR APIs
1010

11-
For now, the StableMIR APIs are exposed as a crate in the compiler named `stable_mir`.
11+
For now, the StableMIR APIs are exposed as a crate in the compiler named `rustc_public`.
1212
This crate includes the definition of structures and methods to be stabilized,
1313
which are expected to become the stable APIs in the compiler.
1414
To reduce the migration burden, these APIs are somewhat close to the original compiler interfaces.
@@ -59,15 +59,15 @@ there are two helpful methods to convert StableMIR constructs to internal rustc
5959
- `rustc_internal::internal()`: Convert a Stable item into an internal one.
6060
- `rustc_internal::stable()`: Convert an internal item into a Stable one.
6161

62-
Both of these methods are inside `rustc_smir` crate in the `rustc_internal`
62+
Both of these methods are inside `rustc_public_bridge` crate in the `rustc_internal`
6363
module inside the compiler.
6464
Note that there is no plan to stabilize any of these methods,
6565
and there's also no guarantee on its support and coverage.
6666

6767
The conversion is not implemented for all items, and some conversions may be incomplete.
6868
Please proceed with caution when using these methods.
6969

70-
Besides that, do not invoke any other `rustc_smir` methods, except for `run`.
70+
Besides that, do not invoke any other `rustc_public_bridge` methods, except for `run`.
7171
This crate's methods are not meant to be invoked externally.
7272
Note that, the method `run` will also eventually be replaced by a Stable driver.
7373

kani-compiler/src/codegen_aeneas_llbc/compiler_interface.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,12 @@ use rustc_metadata::EncodedMetadata;
3333
use rustc_middle::dep_graph::{WorkProduct, WorkProductId};
3434
use rustc_middle::ty::TyCtxt;
3535
use rustc_middle::util::Providers;
36+
use rustc_public::mir::mono::{Instance, MonoItem};
37+
use rustc_public::rustc_internal;
38+
use rustc_public::{CrateDef, DefId};
3639
use rustc_session::Session;
3740
use rustc_session::config::{CrateType, OutputFilenames, OutputType};
3841
use rustc_session::output::out_filename;
39-
use stable_mir::mir::mono::{Instance, MonoItem};
40-
use stable_mir::rustc_internal;
41-
use stable_mir::{CrateDef, DefId};
4242
use std::any::Any;
4343
use std::fs::File;
4444
use std::path::Path;
@@ -253,8 +253,8 @@ impl CodegenBackend for LlbcCodegenBackend {
253253
ReachabilityType::PubFns => {
254254
let unit = CodegenUnit::default();
255255
let transformer = BodyTransformation::new(&queries, tcx, &unit);
256-
let main_instance =
257-
stable_mir::entry_fn().map(|main_fn| Instance::try_from(main_fn).unwrap());
256+
let main_instance = rustc_public::entry_fn()
257+
.map(|main_fn| Instance::try_from(main_fn).unwrap());
258258
let local_reachable = filter_crate_items(tcx, |_, instance| {
259259
let def_id = rustc_internal::internal(tcx, instance.def.def_id());
260260
Some(instance) == main_instance || tcx.is_reachable_non_generic(def_id)

kani-compiler/src/codegen_aeneas_llbc/mir_to_ullbc/mod.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,19 +56,19 @@ use charon_lib::{error_assert, error_or_panic};
5656
use core::panic;
5757
use rustc_data_structures::fx::FxHashMap;
5858
use rustc_middle::ty::{TyCtxt, TypingEnv};
59-
use stable_mir::mir::mono::{Instance, InstanceDef};
60-
use stable_mir::mir::{
59+
use rustc_public::mir::mono::{Instance, InstanceDef};
60+
use rustc_public::mir::{
6161
AggregateKind, BasicBlock, BinOp, Body, BorrowKind, CastKind, ConstOperand, Local, Mutability,
6262
Operand, Place, ProjectionElem, Rvalue, Statement, StatementKind, SwitchTargets, Terminator,
6363
TerminatorKind, UnOp, VarDebugInfoContents,
6464
};
65-
use stable_mir::rustc_internal;
66-
use stable_mir::ty::{
65+
use rustc_public::rustc_internal;
66+
use rustc_public::ty::{
6767
AdtDef, AdtKind, Allocation, ConstantKind, FnDef, GenericArgKind, GenericArgs,
6868
GenericParamDefKind, IntTy, MirConst, Region, RegionKind, RigidTy, Span, TraitDecl, TraitDef,
6969
Ty, TyConst, TyConstKind, TyKind, UintTy,
7070
};
71-
use stable_mir::{CrateDef, CrateDefType, DefId};
71+
use rustc_public::{CrateDef, CrateDefType, DefId};
7272
use std::collections::HashMap;
7373
use std::iter::zip;
7474
use std::path::PathBuf;
@@ -157,7 +157,7 @@ impl<'a, 'tcx> Context<'a, 'tcx> {
157157

158158
//This function extract the traitrefs and their span from a def_id
159159
//Those information will be added into generic args of the type or the func with the def_id
160-
//Note that Generic args of Charon contains trait_refs while those of stable_mir do not
160+
//Note that Generic args of Charon contains trait_refs while those of rustc_public do not
161161
fn get_traitrefs_and_span_from_defid(
162162
&mut self,
163163
defid: DefId,

kani-compiler/src/codegen_cprover_gotoc/codegen/assert.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ use super::source_region::SourceRegion;
2222
use crate::codegen_cprover_gotoc::GotocCtx;
2323
use cbmc::InternedString;
2424
use cbmc::goto_program::{Expr, Location, Stmt, Type};
25-
use stable_mir::mir::{Place, ProjectionElem};
26-
use stable_mir::ty::{Span as SpanStable, Ty};
25+
use rustc_public::mir::{Place, ProjectionElem};
26+
use rustc_public::ty::{Span as SpanStable, Ty};
2727
use strum_macros::{AsRefStr, EnumString};
2828
use tracing::debug;
2929

kani-compiler/src/codegen_cprover_gotoc/codegen/block.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// SPDX-License-Identifier: Apache-2.0 OR MIT
33

44
use crate::codegen_cprover_gotoc::GotocCtx;
5-
use stable_mir::mir::{BasicBlock, BasicBlockIdx, Body};
5+
use rustc_public::mir::{BasicBlock, BasicBlockIdx, Body};
66
use std::collections::HashSet;
77
use tracing::debug;
88

kani-compiler/src/codegen_cprover_gotoc/codegen/contract.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ use cbmc::goto_program::FunctionContract;
66
use cbmc::goto_program::{Expr, Lambda, Location, Type};
77
use kani_metadata::AssignsContract;
88
use rustc_hir::def_id::DefId as InternalDefId;
9-
use stable_mir::CrateDef;
10-
use stable_mir::mir::mono::{Instance, MonoItem};
11-
use stable_mir::mir::{Local, VarDebugInfoContents};
12-
use stable_mir::rustc_internal;
13-
use stable_mir::ty::{FnDef, RigidTy, TyKind};
9+
use rustc_public::CrateDef;
10+
use rustc_public::mir::mono::{Instance, MonoItem};
11+
use rustc_public::mir::{Local, VarDebugInfoContents};
12+
use rustc_public::rustc_internal;
13+
use rustc_public::ty::{FnDef, RigidTy, TyKind};
1414

1515
impl GotocCtx<'_> {
1616
/// Given the `proof_for_contract` target `function_under_contract` and the reachable `items`,

kani-compiler/src/codegen_cprover_gotoc/codegen/foreign_function.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ use crate::unwrap_or_return_codegen_unimplemented_stmt;
1515
use cbmc::goto_program::{Expr, Location, Stmt, Symbol, Type};
1616
use cbmc::{InternString, InternedString};
1717
use lazy_static::lazy_static;
18-
use stable_mir::CrateDef;
19-
use stable_mir::abi::{CallConvention, PassMode};
20-
use stable_mir::mir::Place;
21-
use stable_mir::mir::mono::Instance;
22-
use stable_mir::ty::{RigidTy, TyKind};
18+
use rustc_public::CrateDef;
19+
use rustc_public::abi::{CallConvention, PassMode};
20+
use rustc_public::mir::Place;
21+
use rustc_public::mir::mono::Instance;
22+
use rustc_public::ty::{RigidTy, TyKind};
2323
use tracing::{debug, trace};
2424

2525
lazy_static! {

kani-compiler/src/codegen_cprover_gotoc/codegen/function.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ use crate::codegen_cprover_gotoc::codegen::block::reverse_postorder;
88
use cbmc::InternString;
99
use cbmc::InternedString;
1010
use cbmc::goto_program::{Expr, Stmt, Symbol};
11-
use stable_mir::CrateDef;
12-
use stable_mir::mir::mono::Instance;
13-
use stable_mir::mir::{Body, Local};
14-
use stable_mir::ty::{RigidTy, TyKind};
11+
use rustc_public::CrateDef;
12+
use rustc_public::mir::mono::Instance;
13+
use rustc_public::mir::{Body, Local};
14+
use rustc_public::ty::{RigidTy, TyKind};
1515
use std::collections::BTreeMap;
1616
use tracing::{debug, debug_span};
1717

@@ -235,17 +235,17 @@ impl GotocCtx<'_> {
235235
}
236236
}
237237

238-
pub mod rustc_smir {
238+
pub mod rustc_public_bridge {
239239
use crate::codegen_cprover_gotoc::codegen::source_region::{SourceRegion, make_source_region};
240-
use crate::stable_mir::CrateDef;
240+
use crate::rustc_public::CrateDef;
241241
use rustc_middle::mir::coverage::BasicCoverageBlock;
242242
use rustc_middle::mir::coverage::MappingKind::Code;
243243
use rustc_middle::ty::TyCtxt;
244-
use stable_mir::mir::mono::Instance;
245-
use stable_mir::rustc_internal;
246-
use stable_mir::{Filename, Opaque};
244+
use rustc_public::mir::mono::Instance;
245+
use rustc_public::rustc_internal;
246+
use rustc_public::{Filename, Opaque};
247247

248-
type CoverageOpaque = stable_mir::Opaque;
248+
type CoverageOpaque = rustc_public::Opaque;
249249

250250
/// Retrieves the `SourceRegion` associated with the data in a
251251
/// `CoverageOpaque` object.

kani-compiler/src/codegen_cprover_gotoc/codegen/intrinsic.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ use crate::unwrap_or_return_codegen_unimplemented_stmt;
1010
use cbmc::goto_program::{BinaryOperator, BuiltinFn, Expr, Location, Stmt, Type};
1111
use rustc_middle::ty::TypingEnv;
1212
use rustc_middle::ty::layout::ValidityRequirement;
13-
use stable_mir::mir::mono::Instance;
14-
use stable_mir::mir::{BasicBlockIdx, Operand, Place};
15-
use stable_mir::rustc_internal;
16-
use stable_mir::ty::{GenericArgs, RigidTy, Span, Ty, TyKind, UintTy};
13+
use rustc_public::mir::mono::Instance;
14+
use rustc_public::mir::{BasicBlockIdx, Operand, Place};
15+
use rustc_public::rustc_internal;
16+
use rustc_public::ty::{GenericArgs, RigidTy, Span, Ty, TyKind, UintTy};
1717
use tracing::debug;
1818

1919
pub struct SizeAlign {

0 commit comments

Comments
 (0)