Skip to content

Commit be05aa4

Browse files
committed
refactor: move IndexedVal from stable_mir to rustc_smir
1 parent 0e7a4a5 commit be05aa4

File tree

7 files changed

+21
-19
lines changed

7 files changed

+21
-19
lines changed

compiler/rustc_smir/src/rustc_internal/mod.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,10 @@ use rustc_span::Span;
1717
use rustc_span::def_id::{CrateNum, DefId};
1818
use scoped_tls::scoped_thread_local;
1919
use stable_mir::Error;
20-
use stable_mir::ty::IndexedVal;
2120

2221
use crate::rustc_smir::context::SmirCtxt;
2322
use crate::rustc_smir::{Stable, Tables};
24-
use crate::rustc_smir::{Bridge, SmirContainer, Tables};
23+
use crate::rustc_smir::{Bridge, IndexedVal, SmirContainer, Tables};
2524
use crate::stable_mir;
2625

2726
mod internal;

compiler/rustc_smir/src/rustc_smir/mod.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ use rustc_middle::ty::{self, Instance, Ty, TyCtxt};
1818
use rustc_span::def_id::{CrateNum, DefId, LOCAL_CRATE};
1919

2020
use crate::rustc_internal::IndexMap;
21-
use crate::stable_mir;
2221

2322
mod alloc;
2423
mod builder;
@@ -132,6 +131,12 @@ pub trait SmirError {
132131
fn from_internal<T: Debug>(err: T) -> Self;
133132
}
134133

134+
pub trait IndexedVal {
135+
fn to_val(index: usize) -> Self;
136+
137+
fn to_index(&self) -> usize;
138+
}
139+
135140
/// Iterate over the definitions of the given crate.
136141
pub(crate) fn filter_def_ids<F, T>(tcx: TyCtxt<'_>, krate: CrateNum, mut func: F) -> Vec<T>
137142
where

compiler/rustc_smir/src/stable_mir/abi.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use serde::Serialize;
66
use stable_mir::compiler_interface::with;
77
use stable_mir::mir::FieldIdx;
88
use stable_mir::target::{MachineInfo, MachineSize as Size};
9-
use stable_mir::ty::{Align, IndexedVal, Ty, VariantIdx};
9+
use stable_mir::ty::{Align, Ty, VariantIdx};
1010
use stable_mir::{Error, Opaque, error};
1111

1212
use crate::stable_mir;
@@ -119,7 +119,7 @@ impl Layout {
119119
}
120120
}
121121

122-
impl IndexedVal for Layout {
122+
impl crate::rustc_smir::IndexedVal for Layout {
123123
fn to_val(index: usize) -> Self {
124124
Layout(index)
125125
}

compiler/rustc_smir/src/stable_mir/mir/alloc.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,14 @@
22
33
use std::io::Read;
44

5+
use rustc_smir::IndexedVal;
56
use serde::Serialize;
67
use stable_mir::mir::mono::{Instance, StaticDef};
78
use stable_mir::target::{Endian, MachineInfo};
8-
use stable_mir::ty::{Allocation, Binder, ExistentialTraitRef, IndexedVal, Ty};
9+
use stable_mir::ty::{Allocation, Binder, ExistentialTraitRef, Ty};
910
use stable_mir::{Error, with};
1011

11-
use crate::stable_mir;
12+
use crate::{rustc_smir, stable_mir};
1213

1314
/// An allocation in the SMIR global memory can be either a function pointer,
1415
/// a static, or a "real" allocation with some data in it.

compiler/rustc_smir/src/stable_mir/mir/pretty.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@ use std::io::Write;
44
use std::{fmt, io, iter};
55

66
use fmt::{Display, Formatter};
7+
use rustc_smir::IndexedVal;
78
use stable_mir::mir::{
89
Operand, Place, RawPtrKind, Rvalue, StatementKind, UnwindAction, VarDebugInfoContents,
910
};
10-
use stable_mir::ty::{AdtKind, AssocKind, IndexedVal, MirConst, Ty, TyConst};
11+
use stable_mir::ty::{AdtKind, AssocKind, MirConst, Ty, TyConst};
1112
use stable_mir::{Body, CrateDef, Mutability, with};
1213

1314
use super::{AggregateKind, AssertMessage, BinOp, BorrowKind, FakeBorrowKind, TerminatorKind};
14-
use crate::stable_mir;
15+
use crate::{rustc_smir, stable_mir};
1516

1617
impl Display for Ty {
1718
fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {

compiler/rustc_smir/src/stable_mir/mod.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,16 @@ use std::fmt::Debug;
2828
use std::{fmt, io};
2929

3030
use rustc_hir::def::DefKind;
31+
use rustc_smir::IndexedVal;
3132
use serde::Serialize;
3233
use stable_mir::compiler_interface::with;
3334
pub use stable_mir::crate_def::{CrateDef, CrateDefItems, CrateDefType, DefId};
3435
pub use stable_mir::error::*;
3536
use stable_mir::mir::mono::StaticDef;
3637
use stable_mir::mir::{Body, Mutability};
37-
use stable_mir::ty::{AssocItem, FnDef, ForeignModuleDef, ImplDef, IndexedVal, Span, TraitDef, Ty};
38+
use stable_mir::ty::{AssocItem, FnDef, ForeignModuleDef, ImplDef, Span, TraitDef, Ty};
3839

39-
use crate::stable_mir;
40+
use crate::{rustc_smir, stable_mir};
4041

4142
pub mod abi;
4243
#[macro_use]

compiler/rustc_smir/src/stable_mir/ty.rs

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use std::fmt::{self, Debug, Display, Formatter};
22
use std::ops::Range;
33

4+
use rustc_smir::IndexedVal;
45
use serde::Serialize;
56
use stable_mir::abi::{FnAbi, Layout};
67
use stable_mir::crate_def::{CrateDef, CrateDefItems, CrateDefType};
@@ -11,7 +12,7 @@ use stable_mir::{Filename, Opaque};
1112

1213
use super::mir::{Body, Mutability, Safety};
1314
use super::{DefId, Error, Symbol, with};
14-
use crate::stable_mir;
15+
use crate::{rustc_smir, stable_mir};
1516

1617
#[derive(Copy, Clone, Eq, PartialEq, Hash, Serialize)]
1718
pub struct Ty(usize);
@@ -1528,15 +1529,9 @@ pub enum PredicatePolarity {
15281529
Negative,
15291530
}
15301531

1531-
pub trait IndexedVal {
1532-
fn to_val(index: usize) -> Self;
1533-
1534-
fn to_index(&self) -> usize;
1535-
}
1536-
15371532
macro_rules! index_impl {
15381533
($name:ident) => {
1539-
impl IndexedVal for $name {
1534+
impl crate::rustc_smir::IndexedVal for $name {
15401535
fn to_val(index: usize) -> Self {
15411536
$name(index)
15421537
}

0 commit comments

Comments
 (0)