about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--compiler/rustc_smir/src/rustc_smir/mod.rs4
-rw-r--r--compiler/rustc_smir/src/stable_mir/mir/body.rs4
-rw-r--r--compiler/rustc_smir/src/stable_mir/ty.rs9
3 files changed, 7 insertions, 10 deletions
diff --git a/compiler/rustc_smir/src/rustc_smir/mod.rs b/compiler/rustc_smir/src/rustc_smir/mod.rs
index a9307a807c9..0e5de1e74d3 100644
--- a/compiler/rustc_smir/src/rustc_smir/mod.rs
+++ b/compiler/rustc_smir/src/rustc_smir/mod.rs
@@ -122,7 +122,9 @@ impl<'tcx> Tables<'tcx> {
             ty::RawPtr(ty::TypeAndMut { ty, mutbl }) => {
                 TyKind::RigidTy(RigidTy::RawPtr(self.intern_ty(*ty), mutbl.stable()))
             }
-            ty::Ref(_, _, _) => todo!(),
+            ty::Ref(region, ty, mutbl) => {
+                TyKind::RigidTy(RigidTy::Ref(opaque(region), self.intern_ty(*ty), mutbl.stable()))
+            }
             ty::FnDef(_, _) => todo!(),
             ty::FnPtr(_) => todo!(),
             ty::Dynamic(_, _, _) => todo!(),
diff --git a/compiler/rustc_smir/src/stable_mir/mir/body.rs b/compiler/rustc_smir/src/stable_mir/mir/body.rs
index 02ac907f09a..831eb6589e4 100644
--- a/compiler/rustc_smir/src/stable_mir/mir/body.rs
+++ b/compiler/rustc_smir/src/stable_mir/mir/body.rs
@@ -1,4 +1,4 @@
-use crate::rustc_internal::Opaque;
+use crate::stable_mir::ty::Region;
 use crate::stable_mir::{self, ty::Ty};
 
 #[derive(Clone, Debug)]
@@ -137,8 +137,6 @@ pub enum Statement {
     Nop,
 }
 
-type Region = Opaque;
-
 // FIXME this is incomplete
 #[derive(Clone, Debug)]
 pub enum Rvalue {
diff --git a/compiler/rustc_smir/src/stable_mir/ty.rs b/compiler/rustc_smir/src/stable_mir/ty.rs
index 92d7c1e60b1..7ae07efb729 100644
--- a/compiler/rustc_smir/src/stable_mir/ty.rs
+++ b/compiler/rustc_smir/src/stable_mir/ty.rs
@@ -1,8 +1,6 @@
-use super::{with, DefId};
+use super::{mir::Mutability, with, DefId};
 use crate::rustc_internal::Opaque;
 
-type Const = Opaque;
-
 #[derive(Copy, Clone, Debug)]
 pub struct Ty(pub usize);
 
@@ -13,15 +11,13 @@ impl Ty {
 }
 
 type Const = Opaque;
-type Region = Opaque;
+pub(crate) type Region = Opaque;
 
 #[derive(Clone, Debug)]
 pub enum TyKind {
     RigidTy(RigidTy),
 }
 
-type Region = Opaque;
-
 #[derive(Clone, Debug)]
 pub enum RigidTy {
     Bool,
@@ -34,6 +30,7 @@ pub enum RigidTy {
     Array(Ty, Const),
     Slice(Ty),
     RawPtr(Ty, Mutability),
+    Ref(Region, Ty, Mutability),
     Tuple(Vec<Ty>),
 }