where $($T: ::rustc_data_structures::stable_hasher::HashStable<$crate::ich::StableHashingContext<'a>>),*
{
#[inline]
- fn hash_stable<W: ::rustc_data_structures::stable_hasher::StableHasherResult>(&self,
- __ctx: &mut $crate::ich::StableHashingContext<'a>,
- __hasher: &mut ::rustc_data_structures::stable_hasher::StableHasher<W>) {
+ fn hash_stable(&self,
+ __ctx: &mut $crate::ich::StableHashingContext<'a>,
+ __hasher: &mut ::rustc_data_structures::stable_hasher::StableHasher) {
use $enum_path::*;
::std::mem::discriminant(self).hash_stable(__ctx, __hasher);
where $($T: ::rustc_data_structures::stable_hasher::HashStable<$crate::ich::StableHashingContext<'a>>),*
{
#[inline]
- fn hash_stable<W: ::rustc_data_structures::stable_hasher::StableHasherResult>(&self,
- __ctx: &mut $crate::ich::StableHashingContext<'a>,
- __hasher: &mut ::rustc_data_structures::stable_hasher::StableHasher<W>) {
+ fn hash_stable(&self,
+ __ctx: &mut $crate::ich::StableHashingContext<'a>,
+ __hasher: &mut ::rustc_data_structures::stable_hasher::StableHasher) {
let $struct_name {
$(ref $field),*
} = *self;
where $($T: ::rustc_data_structures::stable_hasher::HashStable<$crate::ich::StableHashingContext<'a>>),*
{
#[inline]
- fn hash_stable<W: ::rustc_data_structures::stable_hasher::StableHasherResult>(&self,
- __ctx: &mut $crate::ich::StableHashingContext<'a>,
- __hasher: &mut ::rustc_data_structures::stable_hasher::StableHasher<W>) {
+ fn hash_stable(&self,
+ __ctx: &mut $crate::ich::StableHashingContext<'a>,
+ __hasher: &mut ::rustc_data_structures::stable_hasher::StableHasher) {
let $struct_name (
$(ref $field),*
) = *self;
impl HashStable<StableHashingContext<'a>> for ::syntax::source_map::Spanned<$T>
{
#[inline]
- fn hash_stable<W: StableHasherResult>(&self,
- hcx: &mut StableHashingContext<'a>,
- hasher: &mut StableHasher<W>) {
+ fn hash_stable(&self,
+ hcx: &mut StableHashingContext<'a>,
+ hasher: &mut StableHasher) {
self.node.hash_stable(hcx, hasher);
self.span.hash_stable(hcx, hasher);
}
$(
impl<$tcx> $crate::ty::Lift<$tcx> for $ty {
type Lifted = Self;
- fn lift_to_tcx<'gcx>(&self, _: $crate::ty::TyCtxt<'gcx, $tcx>) -> Option<Self> {
+ fn lift_to_tcx(&self, _: $crate::ty::TyCtxt<$tcx>) -> Option<Self> {
Some(Clone::clone(self))
}
}
(for <$tcx:lifetime> { $($ty:ty,)+ }) => {
$(
impl<$tcx> $crate::ty::fold::TypeFoldable<$tcx> for $ty {
- fn super_fold_with<'gcx: $tcx, F: $crate::ty::fold::TypeFolder<'gcx, $tcx>>(
+ fn super_fold_with<F: $crate::ty::fold::TypeFolder<$tcx>>(
&self,
_: &mut F
) -> $ty {
}
}
-#[macro_export]
-macro_rules! BraceStructLiftImpl {
- (impl<$($p:tt),*> Lift<$tcx:tt> for $s:path {
- type Lifted = $lifted:ty;
- $($field:ident),* $(,)?
- } $(where $($wc:tt)*)*) => {
- impl<$($p),*> $crate::ty::Lift<$tcx> for $s
- $(where $($wc)*)*
- {
- type Lifted = $lifted;
-
- fn lift_to_tcx<'gcx>(&self, tcx: TyCtxt<'gcx, 'tcx>) -> Option<$lifted> {
- $(let $field = tcx.lift(&self.$field)?;)*
- Some(Self::Lifted { $($field),* })
- }
- }
- };
-}
-
#[macro_export]
macro_rules! EnumLiftImpl {
(impl<$($p:tt),*> Lift<$tcx:tt> for $s:path {
{
type Lifted = $lifted;
- fn lift_to_tcx<'gcx>(&self, tcx: TyCtxt<'gcx, 'tcx>) -> Option<$lifted> {
+ fn lift_to_tcx(&self, tcx: TyCtxt<$tcx>) -> Option<$lifted> {
EnumLiftImpl!(@Variants(self, tcx) input($($variants)*) output())
}
}
};
}
-#[macro_export]
-macro_rules! BraceStructTypeFoldableImpl {
- (impl<$($p:tt),*> TypeFoldable<$tcx:tt> for $s:path {
- $($field:ident),* $(,)?
- } $(where $($wc:tt)*)*) => {
- impl<$($p),*> $crate::ty::fold::TypeFoldable<$tcx> for $s
- $(where $($wc)*)*
- {
- fn super_fold_with<'gcx: $tcx, V: $crate::ty::fold::TypeFolder<'gcx, $tcx>>(
- &self,
- folder: &mut V,
- ) -> Self {
- let $s { $($field,)* } = self;
- $s { $($field: $crate::ty::fold::TypeFoldable::fold_with($field, folder),)* }
- }
-
- fn super_visit_with<V: $crate::ty::fold::TypeVisitor<$tcx>>(
- &self,
- visitor: &mut V,
- ) -> bool {
- let $s { $($field,)* } = self;
- false $(|| $crate::ty::fold::TypeFoldable::visit_with($field, visitor))*
- }
- }
- };
-}
-
-#[macro_export]
-macro_rules! TupleStructTypeFoldableImpl {
- (impl<$($p:tt),*> TypeFoldable<$tcx:tt> for $s:path {
- $($field:ident),* $(,)?
- } $(where $($wc:tt)*)*) => {
- impl<$($p),*> $crate::ty::fold::TypeFoldable<$tcx> for $s
- $(where $($wc)*)*
- {
- fn super_fold_with<'gcx: $tcx, V: $crate::ty::fold::TypeFolder<'gcx, $tcx>>(
- &self,
- folder: &mut V,
- ) -> Self {
- let $s($($field,)*)= self;
- $s($($crate::ty::fold::TypeFoldable::fold_with($field, folder),)*)
- }
-
- fn super_visit_with<V: $crate::ty::fold::TypeVisitor<$tcx>>(
- &self,
- visitor: &mut V,
- ) -> bool {
- let $s($($field,)*) = self;
- false $(|| $crate::ty::fold::TypeFoldable::visit_with($field, visitor))*
- }
- }
- };
-}
-
#[macro_export]
macro_rules! EnumTypeFoldableImpl {
(impl<$($p:tt),*> TypeFoldable<$tcx:tt> for $s:path {
impl<$($p),*> $crate::ty::fold::TypeFoldable<$tcx> for $s
$(where $($wc)*)*
{
- fn super_fold_with<'gcx: $tcx, V: $crate::ty::fold::TypeFolder<'gcx, $tcx>>(
+ fn super_fold_with<V: $crate::ty::fold::TypeFolder<$tcx>>(
&self,
folder: &mut V,
) -> Self {