about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSantiago Pastorino <spastorino@gmail.com>2023-07-21 14:18:32 -0300
committerSantiago Pastorino <spastorino@gmail.com>2023-07-26 09:26:39 -0300
commit648cf070ebcb52a42fb2e10febace4e8027557c7 (patch)
tree7fce88944e88feffa1c2d1f06c2884429a797480
parenta6236fa460811bbd4a08a94db249c344fa9f2220 (diff)
downloadrust-648cf070ebcb52a42fb2e10febace4e8027557c7.tar.gz
rust-648cf070ebcb52a42fb2e10febace4e8027557c7.zip
Add Param ty to SMIR
-rw-r--r--compiler/rustc_smir/src/rustc_smir/mod.rs10
-rw-r--r--compiler/rustc_smir/src/stable_mir/ty.rs7
2 files changed, 16 insertions, 1 deletions
diff --git a/compiler/rustc_smir/src/rustc_smir/mod.rs b/compiler/rustc_smir/src/rustc_smir/mod.rs
index 044e2f8f325..0e7673d25fb 100644
--- a/compiler/rustc_smir/src/rustc_smir/mod.rs
+++ b/compiler/rustc_smir/src/rustc_smir/mod.rs
@@ -825,7 +825,7 @@ impl<'tcx> Stable<'tcx> for Ty<'tcx> {
             ty::Alias(alias_kind, alias_ty) => {
                 TyKind::Alias(alias_kind.stable(tables), alias_ty.stable(tables))
             }
-            ty::Param(_) => todo!(),
+            ty::Param(param_ty) => TyKind::Param(param_ty.stable(tables)),
             ty::Bound(_, _) => todo!(),
             ty::Placeholder(..)
             | ty::GeneratorWitness(_)
@@ -837,3 +837,11 @@ impl<'tcx> Stable<'tcx> for Ty<'tcx> {
         }
     }
 }
+
+impl<'tcx> Stable<'tcx> for rustc_middle::ty::ParamTy {
+    type T = stable_mir::ty::ParamTy;
+    fn stable(&self, _: &mut Tables<'tcx>) -> Self::T {
+        use stable_mir::ty::ParamTy;
+        ParamTy { index: self.index, name: self.name.to_string() }
+    }
+}
diff --git a/compiler/rustc_smir/src/stable_mir/ty.rs b/compiler/rustc_smir/src/stable_mir/ty.rs
index 7b4747a7fe2..62dd02c1808 100644
--- a/compiler/rustc_smir/src/stable_mir/ty.rs
+++ b/compiler/rustc_smir/src/stable_mir/ty.rs
@@ -18,6 +18,7 @@ type Span = Opaque;
 pub enum TyKind {
     RigidTy(RigidTy),
     Alias(AliasKind, AliasTy),
+    Param(ParamTy),
 }
 
 #[derive(Clone, Debug)]
@@ -228,3 +229,9 @@ pub struct ExistentialProjection {
     pub generic_args: GenericArgs,
     pub term: TermKind,
 }
+
+#[derive(Clone, Debug)]
+pub struct ParamTy {
+    pub index: u32,
+    pub name: String,
+}