Skip to content

Commit ff25ebc

Browse files
add str, slice, and array to smir types
1 parent 33a2c24 commit ff25ebc

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

compiler/rustc_smir/src/rustc_smir/mod.rs

+5-3
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,11 @@ impl<'tcx> Tables<'tcx> {
9696
},
9797
ty::Adt(_, _) => todo!(),
9898
ty::Foreign(_) => todo!(),
99-
ty::Str => todo!(),
100-
ty::Array(_, _) => todo!(),
101-
ty::Slice(_) => todo!(),
99+
ty::Str => TyKind::RigidTy(RigidTy::Str),
100+
ty::Array(ty, constant) => {
101+
TyKind::RigidTy(RigidTy::Array(self.intern_ty(*ty), opaque(constant)))
102+
}
103+
ty::Slice(ty) => TyKind::RigidTy(RigidTy::Slice(self.intern_ty(*ty))),
102104
ty::RawPtr(_) => todo!(),
103105
ty::Ref(_, _, _) => todo!(),
104106
ty::FnDef(_, _) => todo!(),

compiler/rustc_smir/src/stable_mir/ty.rs

+6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
use super::with;
2+
use crate::rustc_internal::Opaque;
23

34
#[derive(Copy, Clone, Debug)]
45
pub struct Ty(pub usize);
@@ -21,6 +22,9 @@ pub enum RigidTy {
2122
Int(IntTy),
2223
Uint(UintTy),
2324
Float(FloatTy),
25+
Str,
26+
Array(Ty, Const),
27+
Slice(Ty),
2428
Tuple(Vec<Ty>),
2529
}
2630

@@ -49,3 +53,5 @@ pub enum FloatTy {
4953
F32,
5054
F64,
5155
}
56+
57+
type Const = Opaque;

0 commit comments

Comments
 (0)