lift_to_tcx -> lift_to_interner

This commit is contained in:
Michael Goulet 2024-07-16 00:03:37 -04:00
parent 3de0a7c716
commit a6510507e7
9 changed files with 17 additions and 17 deletions

View File

@ -45,7 +45,7 @@ pub fn lift_derive(mut s: synstructure::Structure<'_>) -> proc_macro2::TokenStre
quote! { quote! {
type Lifted = #lifted; type Lifted = #lifted;
fn lift_to_tcx(self, __tcx: ::rustc_middle::ty::TyCtxt<'__lifted>) -> Option<#lifted> { fn lift_to_interner(self, __tcx: ::rustc_middle::ty::TyCtxt<'__lifted>) -> Option<#lifted> {
Some(match self { #body }) Some(match self { #body })
} }
}, },

View File

@ -59,7 +59,7 @@ macro_rules! TrivialLiftImpls {
$( $(
impl<'tcx> $crate::ty::Lift<$crate::ty::TyCtxt<'tcx>> for $ty { impl<'tcx> $crate::ty::Lift<$crate::ty::TyCtxt<'tcx>> for $ty {
type Lifted = Self; type Lifted = Self;
fn lift_to_tcx(self, _: $crate::ty::TyCtxt<'tcx>) -> Option<Self> { fn lift_to_interner(self, _: $crate::ty::TyCtxt<'tcx>) -> Option<Self> {
Some(self) Some(self)
} }
} }

View File

@ -1484,7 +1484,7 @@ impl<'tcx> TyCtxt<'tcx> {
} }
pub fn lift<T: Lift<TyCtxt<'tcx>>>(self, value: T) -> Option<T::Lifted> { pub fn lift<T: Lift<TyCtxt<'tcx>>>(self, value: T) -> Option<T::Lifted> {
value.lift_to_tcx(self) value.lift_to_interner(self)
} }
/// Creates a type context. To use the context call `fn enter` which /// Creates a type context. To use the context call `fn enter` which
@ -2087,7 +2087,7 @@ macro_rules! nop_lift {
($set:ident; $ty:ty => $lifted:ty) => { ($set:ident; $ty:ty => $lifted:ty) => {
impl<'a, 'tcx> Lift<TyCtxt<'tcx>> for $ty { impl<'a, 'tcx> Lift<TyCtxt<'tcx>> for $ty {
type Lifted = $lifted; type Lifted = $lifted;
fn lift_to_tcx(self, tcx: TyCtxt<'tcx>) -> Option<Self::Lifted> { fn lift_to_interner(self, tcx: TyCtxt<'tcx>) -> Option<Self::Lifted> {
// Assert that the set has the right type. // Assert that the set has the right type.
// Given an argument that has an interned type, the return type has the type of // Given an argument that has an interned type, the return type has the type of
// the corresponding interner set. This won't actually return anything, we're // the corresponding interner set. This won't actually return anything, we're
@ -2122,7 +2122,7 @@ macro_rules! nop_list_lift {
($set:ident; $ty:ty => $lifted:ty) => { ($set:ident; $ty:ty => $lifted:ty) => {
impl<'a, 'tcx> Lift<TyCtxt<'tcx>> for &'a List<$ty> { impl<'a, 'tcx> Lift<TyCtxt<'tcx>> for &'a List<$ty> {
type Lifted = &'tcx List<$lifted>; type Lifted = &'tcx List<$lifted>;
fn lift_to_tcx(self, tcx: TyCtxt<'tcx>) -> Option<Self::Lifted> { fn lift_to_interner(self, tcx: TyCtxt<'tcx>) -> Option<Self::Lifted> {
// Assert that the set has the right type. // Assert that the set has the right type.
if false { if false {
let _x: &InternedSet<'tcx, List<$lifted>> = &tcx.interners.$set; let _x: &InternedSet<'tcx, List<$lifted>> = &tcx.interners.$set;
@ -2160,7 +2160,7 @@ macro_rules! nop_slice_lift {
($ty:ty => $lifted:ty) => { ($ty:ty => $lifted:ty) => {
impl<'a, 'tcx> Lift<TyCtxt<'tcx>> for &'a [$ty] { impl<'a, 'tcx> Lift<TyCtxt<'tcx>> for &'a [$ty] {
type Lifted = &'tcx [$lifted]; type Lifted = &'tcx [$lifted];
fn lift_to_tcx(self, tcx: TyCtxt<'tcx>) -> Option<Self::Lifted> { fn lift_to_interner(self, tcx: TyCtxt<'tcx>) -> Option<Self::Lifted> {
if self.is_empty() { if self.is_empty() {
return Some(&[]); return Some(&[]);
} }

View File

@ -308,7 +308,7 @@ impl<'tcx> GenericArg<'tcx> {
impl<'a, 'tcx> Lift<TyCtxt<'tcx>> for GenericArg<'a> { impl<'a, 'tcx> Lift<TyCtxt<'tcx>> for GenericArg<'a> {
type Lifted = GenericArg<'tcx>; type Lifted = GenericArg<'tcx>;
fn lift_to_tcx(self, tcx: TyCtxt<'tcx>) -> Option<Self::Lifted> { fn lift_to_interner(self, tcx: TyCtxt<'tcx>) -> Option<Self::Lifted> {
match self.unpack() { match self.unpack() {
GenericArgKind::Lifetime(lt) => tcx.lift(lt).map(|lt| lt.into()), GenericArgKind::Lifetime(lt) => tcx.lift(lt).map(|lt| lt.into()),
GenericArgKind::Type(ty) => tcx.lift(ty).map(|ty| ty.into()), GenericArgKind::Type(ty) => tcx.lift(ty).map(|ty| ty.into()),

View File

@ -283,7 +283,7 @@ TrivialTypeTraversalAndLiftImpls! {
impl<'tcx, T: Lift<TyCtxt<'tcx>>> Lift<TyCtxt<'tcx>> for Option<T> { impl<'tcx, T: Lift<TyCtxt<'tcx>>> Lift<TyCtxt<'tcx>> for Option<T> {
type Lifted = Option<T::Lifted>; type Lifted = Option<T::Lifted>;
fn lift_to_tcx(self, tcx: TyCtxt<'tcx>) -> Option<Self::Lifted> { fn lift_to_interner(self, tcx: TyCtxt<'tcx>) -> Option<Self::Lifted> {
Some(match self { Some(match self {
Some(x) => Some(tcx.lift(x)?), Some(x) => Some(tcx.lift(x)?),
None => None, None => None,
@ -293,7 +293,7 @@ impl<'tcx, T: Lift<TyCtxt<'tcx>>> Lift<TyCtxt<'tcx>> for Option<T> {
impl<'a, 'tcx> Lift<TyCtxt<'tcx>> for Term<'a> { impl<'a, 'tcx> Lift<TyCtxt<'tcx>> for Term<'a> {
type Lifted = ty::Term<'tcx>; type Lifted = ty::Term<'tcx>;
fn lift_to_tcx(self, tcx: TyCtxt<'tcx>) -> Option<Self::Lifted> { fn lift_to_interner(self, tcx: TyCtxt<'tcx>) -> Option<Self::Lifted> {
match self.unpack() { match self.unpack() {
TermKind::Ty(ty) => tcx.lift(ty).map(Into::into), TermKind::Ty(ty) => tcx.lift(ty).map(Into::into),
TermKind::Const(c) => tcx.lift(c).map(Into::into), TermKind::Const(c) => tcx.lift(c).map(Into::into),

View File

@ -49,10 +49,10 @@ where
{ {
type Lifted = Binder<U, T::Lifted>; type Lifted = Binder<U, T::Lifted>;
fn lift_to_tcx(self, tcx: U) -> Option<Self::Lifted> { fn lift_to_interner(self, tcx: U) -> Option<Self::Lifted> {
Some(Binder { Some(Binder {
value: self.value.lift_to_tcx(tcx)?, value: self.value.lift_to_interner(tcx)?,
bound_vars: self.bound_vars.lift_to_tcx(tcx)?, bound_vars: self.bound_vars.lift_to_interner(tcx)?,
}) })
} }
} }

View File

@ -17,5 +17,5 @@
/// e.g., `()` or `u8`, was interned in a different context. /// e.g., `()` or `u8`, was interned in a different context.
pub trait Lift<I>: std::fmt::Debug { pub trait Lift<I>: std::fmt::Debug {
type Lifted: std::fmt::Debug; type Lifted: std::fmt::Debug;
fn lift_to_tcx(self, tcx: I) -> Option<Self::Lifted>; fn lift_to_interner(self, tcx: I) -> Option<Self::Lifted>;
} }

View File

@ -34,8 +34,8 @@ where
{ {
type Lifted = OutlivesPredicate<U, A::Lifted>; type Lifted = OutlivesPredicate<U, A::Lifted>;
fn lift_to_tcx(self, tcx: U) -> Option<Self::Lifted> { fn lift_to_interner(self, tcx: U) -> Option<Self::Lifted> {
Some(OutlivesPredicate(self.0.lift_to_tcx(tcx)?, self.1.lift_to_tcx(tcx)?)) Some(OutlivesPredicate(self.0.lift_to_interner(tcx)?, self.1.lift_to_interner(tcx)?))
} }
} }

View File

@ -71,7 +71,7 @@ fn lift_derive(mut s: synstructure::Structure<'_>) -> proc_macro2::TokenStream {
wc.push(parse_quote! { #ty: ::rustc_type_ir::lift::Lift<J, Lifted = #lifted_ty> }); wc.push(parse_quote! { #ty: ::rustc_type_ir::lift::Lift<J, Lifted = #lifted_ty> });
let bind = &bindings[index]; let bind = &bindings[index];
quote! { quote! {
#bind.lift_to_tcx(interner)? #bind.lift_to_interner(interner)?
} }
}) })
}); });
@ -89,7 +89,7 @@ fn lift_derive(mut s: synstructure::Structure<'_>) -> proc_macro2::TokenStream {
quote! { quote! {
type Lifted = #lifted_ty; type Lifted = #lifted_ty;
fn lift_to_tcx( fn lift_to_interner(
self, self,
interner: J, interner: J,
) -> Option<Self::Lifted> { ) -> Option<Self::Lifted> {