diff options
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/rustc_smir/src/rustc_smir/mod.rs | 11 | ||||
| -rw-r--r-- | compiler/rustc_smir/src/stable_mir/ty.rs | 11 |
2 files changed, 20 insertions, 2 deletions
diff --git a/compiler/rustc_smir/src/rustc_smir/mod.rs b/compiler/rustc_smir/src/rustc_smir/mod.rs index d2b13c32cc2..adce55d639f 100644 --- a/compiler/rustc_smir/src/rustc_smir/mod.rs +++ b/compiler/rustc_smir/src/rustc_smir/mod.rs @@ -7,7 +7,7 @@ //! //! For now, we are developing everything inside `rustc`, thus, we keep this module private. -use crate::stable_mir::ty::{IntTy, RigidTy, TyKind}; +use crate::stable_mir::ty::{IntTy, RigidTy, TyKind, UintTy}; use crate::stable_mir::{self, Context}; use rustc_middle::mir; use rustc_middle::ty::{self, Ty, TyCtxt}; @@ -80,7 +80,14 @@ impl<'tcx> Tables<'tcx> { ty::IntTy::I64 => TyKind::RigidTy(RigidTy::Int(IntTy::I64)), ty::IntTy::I128 => TyKind::RigidTy(RigidTy::Int(IntTy::I128)), }, - ty::Uint(_) => todo!(), + ty::Uint(uint_ty) => match uint_ty { + ty::UintTy::Usize => TyKind::RigidTy(RigidTy::Uint(stable_mir::ty::UintTy::Usize)), + ty::UintTy::U8 => TyKind::RigidTy(RigidTy::Uint(UintTy::U8)), + ty::UintTy::U16 => TyKind::RigidTy(RigidTy::Uint(UintTy::U16)), + ty::UintTy::U32 => TyKind::RigidTy(RigidTy::Uint(UintTy::U32)), + ty::UintTy::U64 => TyKind::RigidTy(RigidTy::Uint(UintTy::U64)), + ty::UintTy::U128 => TyKind::RigidTy(RigidTy::Uint(UintTy::U128)), + }, ty::Float(_) => todo!(), ty::Adt(_, _) => todo!(), ty::Foreign(_) => todo!(), diff --git a/compiler/rustc_smir/src/stable_mir/ty.rs b/compiler/rustc_smir/src/stable_mir/ty.rs index f31c078b4ab..2db3bdb7af1 100644 --- a/compiler/rustc_smir/src/stable_mir/ty.rs +++ b/compiler/rustc_smir/src/stable_mir/ty.rs @@ -19,6 +19,7 @@ pub enum RigidTy { Bool, Char, Int(IntTy), + Uint(UintTy), Tuple(Vec<Ty>), } @@ -31,3 +32,13 @@ pub enum IntTy { I64, I128, } + +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub enum UintTy { + Usize, + U8, + U16, + U32, + U64, + U128, +} |
