about summary refs log tree commit diff
path: root/compiler
diff options
context:
space:
mode:
authorSantiago Pastorino <spastorino@gmail.com>2023-07-05 19:26:52 -0300
committerSantiago Pastorino <spastorino@gmail.com>2023-07-07 13:47:33 -0300
commit42eccffce3e950e95d9e965d4dd58ecb44633d55 (patch)
tree010ba5a518c91addbc5d670ee753d3ca72359ed0 /compiler
parent458ead41d621a6aacdf0d27169a4aa9d1ff54f98 (diff)
downloadrust-42eccffce3e950e95d9e965d4dd58ecb44633d55.tar.gz
rust-42eccffce3e950e95d9e965d4dd58ecb44633d55.zip
Add Uint ty to SMIR
Diffstat (limited to 'compiler')
-rw-r--r--compiler/rustc_smir/src/rustc_smir/mod.rs11
-rw-r--r--compiler/rustc_smir/src/stable_mir/ty.rs11
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,
+}