about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2023-07-14 07:42:02 +0000
committerbors <bors@rust-lang.org>2023-07-14 07:42:02 +0000
commit320b412f9c55bf480d26276ff0ab480e4ecb29c0 (patch)
tree7d7ca03f439fe0751cd35a5a2fbd78cda0dc914f
parentfe03b46ee4688a99d7155b4f9dcd875b6903952d (diff)
parentfd5553ffea8573c1ecdb9c5a29cdd98d0b38d135 (diff)
downloadrust-320b412f9c55bf480d26276ff0ab480e4ecb29c0.tar.gz
rust-320b412f9c55bf480d26276ff0ab480e4ecb29c0.zip
Auto merge of #113639 - ericmarkmartin:more-smir-types, r=oli-obk
Add more ty conversions to smir

add str, slice, and array to smir types

r? `@spastorino`
-rw-r--r--compiler/rustc_smir/src/rustc_smir/mod.rs8
-rw-r--r--compiler/rustc_smir/src/stable_mir/ty.rs3
2 files changed, 8 insertions, 3 deletions
diff --git a/compiler/rustc_smir/src/rustc_smir/mod.rs b/compiler/rustc_smir/src/rustc_smir/mod.rs
index df682cd8f3a..6af6cfe58f1 100644
--- a/compiler/rustc_smir/src/rustc_smir/mod.rs
+++ b/compiler/rustc_smir/src/rustc_smir/mod.rs
@@ -114,9 +114,11 @@ impl<'tcx> Tables<'tcx> {
                 ),
             )),
             ty::Foreign(_) => todo!(),
-            ty::Str => todo!(),
-            ty::Array(_, _) => todo!(),
-            ty::Slice(_) => todo!(),
+            ty::Str => TyKind::RigidTy(RigidTy::Str),
+            ty::Array(ty, constant) => {
+                TyKind::RigidTy(RigidTy::Array(self.intern_ty(*ty), opaque(constant)))
+            }
+            ty::Slice(ty) => TyKind::RigidTy(RigidTy::Slice(self.intern_ty(*ty))),
             ty::RawPtr(_) => todo!(),
             ty::Ref(_, _, _) => todo!(),
             ty::FnDef(_, _) => todo!(),
diff --git a/compiler/rustc_smir/src/stable_mir/ty.rs b/compiler/rustc_smir/src/stable_mir/ty.rs
index 389e3364117..e9f17f92c04 100644
--- a/compiler/rustc_smir/src/stable_mir/ty.rs
+++ b/compiler/rustc_smir/src/stable_mir/ty.rs
@@ -26,6 +26,9 @@ pub enum RigidTy {
     Uint(UintTy),
     Float(FloatTy),
     Adt(AdtDef, AdtSubsts),
+    Str,
+    Array(Ty, Const),
+    Slice(Ty),
     Tuple(Vec<Ty>),
 }