1#[macro_export]
4macro_rules! TrivialTypeTraversalImpls {
5 ($($ty:ty,)+) => {
6 $(
7 impl<I: $crate::Interner> $crate::TypeFoldable<I> for $ty {
8 fn try_fold_with<F: $crate::FallibleTypeFolder<I>>(
9 self,
10 _: &mut F,
11 ) -> ::std::result::Result<Self, F::Error> {
12 Ok(self)
13 }
14
15 #[inline]
16 fn fold_with<F: $crate::TypeFolder<I>>(
17 self,
18 _: &mut F,
19 ) -> Self {
20 self
21 }
22 }
23
24 impl<I: $crate::Interner> $crate::TypeVisitable<I> for $ty {
25 #[inline]
26 fn visit_with<F: $crate::TypeVisitor<I>>(
27 &self,
28 _: &mut F)
29 -> F::Result
30 {
31 <F::Result as $crate::VisitorResult>::output()
32 }
33 }
34
35 unsafe impl<V> $crate::GenericTypeVisitable<V> for $ty {
38 fn generic_visit_with(&self, _visitor: &mut V) {}
39 }
40 )+
41 };
42}
43
44impl<I: crate::Interner> crate::TypeFoldable<I> for () {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for () {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for () {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for bool {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for bool {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for bool {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for i8 {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for i8 {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for i8 {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for i16 {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for i16 {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for i16 {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for i32 {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for i32 {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for i32 {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for i64 {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for i64 {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for i64 {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for i128 {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for i128 {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for i128 {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for isize {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for isize {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for isize {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for u8 {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for u8 {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for u8 {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for u16 {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for u16 {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for u16 {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for u32 {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for u32 {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for u32 {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for u64 {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for u64 {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for u64 {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for usize {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for usize {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for usize {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for crate::BoundConstness {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for crate::BoundConstness {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for crate::BoundConstness {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for crate::BoundVar {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for crate::BoundVar {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for crate::BoundVar {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for crate::ClausePolarity {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for crate::ClausePolarity {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for crate::ClausePolarity {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for crate::DebruijnIndex {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for crate::DebruijnIndex {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for crate::DebruijnIndex {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for crate::FloatTy {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for crate::FloatTy {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for crate::FloatTy {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for crate::InferConst {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for crate::InferConst {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for crate::InferConst {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for crate::InferTy {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for crate::InferTy {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for crate::InferTy {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for crate::IntTy {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for crate::IntTy {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for crate::IntTy {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for crate::RegionVid {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for crate::RegionVid {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for crate::RegionVid {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for crate::TypeFlags {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for crate::TypeFlags {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for crate::TypeFlags {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for crate::UintTy {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for crate::UintTy {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for crate::UintTy {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for crate::UniverseIndex {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for crate::UniverseIndex {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for crate::UniverseIndex {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for crate::Variance {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for crate::Variance {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for crate::Variance {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for
crate::solve::BuiltinImplSource {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for
crate::solve::BuiltinImplSource {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for
crate::solve::BuiltinImplSource {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for crate::solve::Certainty {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for crate::solve::Certainty {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for crate::solve::Certainty {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for crate::solve::GoalSource {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for crate::solve::GoalSource
{
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for crate::solve::GoalSource {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for
crate::solve::VisibleForLeakCheck {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for
crate::solve::VisibleForLeakCheck {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for
crate::solve::VisibleForLeakCheck {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for rustc_abi::ExternAbi {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for rustc_abi::ExternAbi {
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for rustc_abi::ExternAbi {
fn generic_visit_with(&self, _visitor: &mut V) {}
}
impl<I: crate::Interner> crate::TypeFoldable<I> for rustc_ast_ir::Mutability {
fn try_fold_with<F: crate::FallibleTypeFolder<I>>(self, _: &mut F)
-> ::std::result::Result<Self, F::Error> {
Ok(self)
}
#[inline]
fn fold_with<F: crate::TypeFolder<I>>(self, _: &mut F) -> Self { self }
}
impl<I: crate::Interner> crate::TypeVisitable<I> for rustc_ast_ir::Mutability
{
#[inline]
fn visit_with<F: crate::TypeVisitor<I>>(&self, _: &mut F) -> F::Result {
<F::Result as crate::VisitorResult>::output()
}
}
unsafe impl<V> crate::GenericTypeVisitable<V> for rustc_ast_ir::Mutability {
fn generic_visit_with(&self, _visitor: &mut V) {}
}TrivialTypeTraversalImpls! {
51 (),
52 bool,
53 i8,
54 i16,
55 i32,
56 i64,
57 i128,
58 isize,
59 u8,
60 u16,
61 u32,
62 u64,
63 usize,
64 crate::BoundConstness,
66 crate::BoundVar,
67 crate::ClausePolarity,
68 crate::DebruijnIndex,
69 crate::FloatTy,
70 crate::InferConst,
71 crate::InferTy,
72 crate::IntTy,
73 crate::RegionVid,
74 crate::TypeFlags,
75 crate::UintTy,
76 crate::UniverseIndex,
77 crate::Variance,
78 crate::solve::BuiltinImplSource,
79 crate::solve::Certainty,
80 crate::solve::GoalSource,
81 crate::solve::VisibleForLeakCheck,
82 rustc_abi::ExternAbi,
83 rustc_ast_ir::Mutability,
84 }
86
87macro_rules! TrivialLiftImpls {
88 ($($ty:ty),+ $(,)?) => {
89 $(
90 impl<I: $crate::Interner> $crate::lift::Lift<I> for $ty {
91 type Lifted = Self;
92 fn lift_to_interner(self, _: I) -> Self {
93 self
94 }
95 }
96 )+
97 };
98}
99
100impl<I: crate::Interner> crate::lift::Lift<I> for crate::LateParamRegion<I> {
type Lifted = Self;
fn lift_to_interner(self, _: I) -> Self { self }
}TrivialLiftImpls! {
101 crate::LateParamRegion<I>
102}