From c8ee46be75420eeee9527135ebb1047f751d4372 Mon Sep 17 00:00:00 2001 From: Eric Mark Martin Date: Thu, 13 Jul 2023 01:07:50 -0400 Subject: [PATCH] conversions to smir RawPtr and Ref --- compiler/rustc_smir/src/rustc_smir/mod.rs | 4 +++- compiler/rustc_smir/src/stable_mir/mir/body.rs | 4 +--- compiler/rustc_smir/src/stable_mir/ty.rs | 9 +++------ 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), }