diff options
| author | Makai <m4kai410@gmail.com> | 2025-05-05 15:20:40 +0800 |
|---|---|---|
| committer | Makai <m4kai410@gmail.com> | 2025-07-04 01:33:17 +0000 |
| commit | 3a43ed2f377cb449856d53b564f4a464792ffdfe (patch) | |
| tree | 214586fc6d154b02cca777c8fcc74dd16a47d4e5 | |
| parent | 7f5e382df4807577e3b2cb2b4c283bb37bc8e5c4 (diff) | |
| download | rust-3a43ed2f377cb449856d53b564f4a464792ffdfe.tar.gz rust-3a43ed2f377cb449856d53b564f4a464792ffdfe.zip | |
refactor: move `IndexedVal` from `stable_mir` to `rustc_smir`
| -rw-r--r-- | compiler/rustc_smir/src/rustc_internal/mod.rs | 3 | ||||
| -rw-r--r-- | compiler/rustc_smir/src/rustc_smir/mod.rs | 7 | ||||
| -rw-r--r-- | compiler/rustc_smir/src/stable_mir/abi.rs | 4 | ||||
| -rw-r--r-- | compiler/rustc_smir/src/stable_mir/mir/alloc.rs | 5 | ||||
| -rw-r--r-- | compiler/rustc_smir/src/stable_mir/mir/pretty.rs | 5 | ||||
| -rw-r--r-- | compiler/rustc_smir/src/stable_mir/mod.rs | 5 | ||||
| -rw-r--r-- | compiler/rustc_smir/src/stable_mir/ty.rs | 11 |
7 files changed, 21 insertions, 19 deletions
diff --git a/compiler/rustc_smir/src/rustc_internal/mod.rs b/compiler/rustc_smir/src/rustc_internal/mod.rs index 3434c9fbf92..c343242ddfc 100644 --- a/compiler/rustc_smir/src/rustc_internal/mod.rs +++ b/compiler/rustc_smir/src/rustc_internal/mod.rs @@ -17,11 +17,10 @@ use rustc_span::Span; use rustc_span::def_id::{CrateNum, DefId}; use scoped_tls::scoped_thread_local; use stable_mir::Error; -use stable_mir::ty::IndexedVal; use crate::rustc_smir::context::SmirCtxt; use crate::rustc_smir::{Stable, Tables}; -use crate::rustc_smir::{Bridge, SmirContainer, Tables}; +use crate::rustc_smir::{Bridge, IndexedVal, SmirContainer, Tables}; use crate::stable_mir; mod internal; diff --git a/compiler/rustc_smir/src/rustc_smir/mod.rs b/compiler/rustc_smir/src/rustc_smir/mod.rs index 95ae99bb794..edaec47fe7d 100644 --- a/compiler/rustc_smir/src/rustc_smir/mod.rs +++ b/compiler/rustc_smir/src/rustc_smir/mod.rs @@ -19,7 +19,6 @@ use rustc_middle::ty::{self, Instance, Ty, TyCtxt}; use rustc_span::def_id::{CrateNum, DefId, LOCAL_CRATE}; use crate::rustc_internal::IndexMap; -use crate::stable_mir; mod alloc; mod builder; @@ -133,6 +132,12 @@ pub trait SmirError { fn from_internal<T: Debug>(err: T) -> Self; } +pub trait IndexedVal { + fn to_val(index: usize) -> Self; + + fn to_index(&self) -> usize; +} + /// Iterate over the definitions of the given crate. pub(crate) fn filter_def_ids<F, T>(tcx: TyCtxt<'_>, krate: CrateNum, mut func: F) -> Vec<T> where diff --git a/compiler/rustc_smir/src/stable_mir/abi.rs b/compiler/rustc_smir/src/stable_mir/abi.rs index d8a2b97662c..3c8bdb243d4 100644 --- a/compiler/rustc_smir/src/stable_mir/abi.rs +++ b/compiler/rustc_smir/src/stable_mir/abi.rs @@ -6,7 +6,7 @@ use serde::Serialize; use stable_mir::compiler_interface::with; use stable_mir::mir::FieldIdx; use stable_mir::target::{MachineInfo, MachineSize as Size}; -use stable_mir::ty::{Align, IndexedVal, Ty, VariantIdx}; +use stable_mir::ty::{Align, Ty, VariantIdx}; use stable_mir::{Error, Opaque, error}; use crate::stable_mir; @@ -119,7 +119,7 @@ impl Layout { } } -impl IndexedVal for Layout { +impl crate::rustc_smir::IndexedVal for Layout { fn to_val(index: usize) -> Self { Layout(index) } diff --git a/compiler/rustc_smir/src/stable_mir/mir/alloc.rs b/compiler/rustc_smir/src/stable_mir/mir/alloc.rs index 782f52888b7..325f26da8bb 100644 --- a/compiler/rustc_smir/src/stable_mir/mir/alloc.rs +++ b/compiler/rustc_smir/src/stable_mir/mir/alloc.rs @@ -2,13 +2,14 @@ use std::io::Read; +use rustc_smir::IndexedVal; use serde::Serialize; use stable_mir::mir::mono::{Instance, StaticDef}; use stable_mir::target::{Endian, MachineInfo}; -use stable_mir::ty::{Allocation, Binder, ExistentialTraitRef, IndexedVal, Ty}; +use stable_mir::ty::{Allocation, Binder, ExistentialTraitRef, Ty}; use stable_mir::{Error, with}; -use crate::stable_mir; +use crate::{rustc_smir, stable_mir}; /// An allocation in the SMIR global memory can be either a function pointer, /// a static, or a "real" allocation with some data in it. diff --git a/compiler/rustc_smir/src/stable_mir/mir/pretty.rs b/compiler/rustc_smir/src/stable_mir/mir/pretty.rs index b068a9a1081..6fe455e17ec 100644 --- a/compiler/rustc_smir/src/stable_mir/mir/pretty.rs +++ b/compiler/rustc_smir/src/stable_mir/mir/pretty.rs @@ -4,14 +4,15 @@ use std::io::Write; use std::{fmt, io, iter}; use fmt::{Display, Formatter}; +use rustc_smir::IndexedVal; use stable_mir::mir::{ Operand, Place, RawPtrKind, Rvalue, StatementKind, UnwindAction, VarDebugInfoContents, }; -use stable_mir::ty::{AdtKind, AssocKind, IndexedVal, MirConst, Ty, TyConst}; +use stable_mir::ty::{AdtKind, AssocKind, MirConst, Ty, TyConst}; use stable_mir::{Body, CrateDef, Mutability, with}; use super::{AggregateKind, AssertMessage, BinOp, BorrowKind, FakeBorrowKind, TerminatorKind}; -use crate::stable_mir; +use crate::{rustc_smir, stable_mir}; impl Display for Ty { fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { diff --git a/compiler/rustc_smir/src/stable_mir/mod.rs b/compiler/rustc_smir/src/stable_mir/mod.rs index 0ced493b9ab..1c992ec5dbb 100644 --- a/compiler/rustc_smir/src/stable_mir/mod.rs +++ b/compiler/rustc_smir/src/stable_mir/mod.rs @@ -28,15 +28,16 @@ use std::fmt::Debug; use std::{fmt, io}; use rustc_hir::def::DefKind; +use rustc_smir::IndexedVal; use serde::Serialize; use stable_mir::compiler_interface::with; pub use stable_mir::crate_def::{CrateDef, CrateDefItems, CrateDefType, DefId}; pub use stable_mir::error::*; use stable_mir::mir::mono::StaticDef; use stable_mir::mir::{Body, Mutability}; -use stable_mir::ty::{AssocItem, FnDef, ForeignModuleDef, ImplDef, IndexedVal, Span, TraitDef, Ty}; +use stable_mir::ty::{AssocItem, FnDef, ForeignModuleDef, ImplDef, Span, TraitDef, Ty}; -use crate::stable_mir; +use crate::{rustc_smir, stable_mir}; pub mod abi; #[macro_use] diff --git a/compiler/rustc_smir/src/stable_mir/ty.rs b/compiler/rustc_smir/src/stable_mir/ty.rs index 9a30b231e0c..9933a8e9f7f 100644 --- a/compiler/rustc_smir/src/stable_mir/ty.rs +++ b/compiler/rustc_smir/src/stable_mir/ty.rs @@ -1,6 +1,7 @@ use std::fmt::{self, Debug, Display, Formatter}; use std::ops::Range; +use rustc_smir::IndexedVal; use serde::Serialize; use stable_mir::abi::{FnAbi, Layout}; use stable_mir::crate_def::{CrateDef, CrateDefItems, CrateDefType}; @@ -12,7 +13,7 @@ use stable_mir::{Filename, Opaque}; use super::abi::ReprOptions; use super::mir::{Body, Mutability, Safety}; use super::{DefId, Error, Symbol, with}; -use crate::stable_mir; +use crate::{rustc_smir, stable_mir}; #[derive(Copy, Clone, Eq, PartialEq, Hash, Serialize)] pub struct Ty(usize); @@ -1563,15 +1564,9 @@ pub enum PredicatePolarity { Negative, } -pub trait IndexedVal { - fn to_val(index: usize) -> Self; - - fn to_index(&self) -> usize; -} - macro_rules! index_impl { ($name:ident) => { - impl IndexedVal for $name { + impl crate::rustc_smir::IndexedVal for $name { fn to_val(index: usize) -> Self { $name(index) } |
