1
Fork 0

Add Uint ty to SMIR

This commit is contained in:
Santiago Pastorino 2023-07-05 19:26:52 -03:00
parent 458ead41d6
commit 42eccffce3
No known key found for this signature in database
GPG key ID: 8131A24E0C79EFAF
3 changed files with 26 additions and 4 deletions

View file

@ -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!(),

View file

@ -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,
}