diff options
| author | Santiago Pastorino <spastorino@gmail.com> | 2023-07-21 14:18:32 -0300 |
|---|---|---|
| committer | Santiago Pastorino <spastorino@gmail.com> | 2023-07-26 09:26:39 -0300 |
| commit | 648cf070ebcb52a42fb2e10febace4e8027557c7 (patch) | |
| tree | 7fce88944e88feffa1c2d1f06c2884429a797480 | |
| parent | a6236fa460811bbd4a08a94db249c344fa9f2220 (diff) | |
| download | rust-648cf070ebcb52a42fb2e10febace4e8027557c7.tar.gz rust-648cf070ebcb52a42fb2e10febace4e8027557c7.zip | |
Add Param ty to SMIR
| -rw-r--r-- | compiler/rustc_smir/src/rustc_smir/mod.rs | 10 | ||||
| -rw-r--r-- | compiler/rustc_smir/src/stable_mir/ty.rs | 7 |
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, +} |
