From 4547b622d8d29df964fa2914213088b148c498fc Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:18:32 +0200 Subject: Merging upstream version 1.67.1+dfsg1. Signed-off-by: Daniel Baumann --- vendor/chalk-ir-0.80.0/src/visit/boring_impls.rs | 261 ----------------------- 1 file changed, 261 deletions(-) delete mode 100644 vendor/chalk-ir-0.80.0/src/visit/boring_impls.rs (limited to 'vendor/chalk-ir-0.80.0/src/visit/boring_impls.rs') diff --git a/vendor/chalk-ir-0.80.0/src/visit/boring_impls.rs b/vendor/chalk-ir-0.80.0/src/visit/boring_impls.rs deleted file mode 100644 index d4e52d15b..000000000 --- a/vendor/chalk-ir-0.80.0/src/visit/boring_impls.rs +++ /dev/null @@ -1,261 +0,0 @@ -//! This module contains "rote and uninteresting" impls of `Visit` for -//! various types. In general, we prefer to derive `Visit`, but -//! sometimes that doesn't work for whatever reason. -//! -//! The more interesting impls of `Visit` remain in the `visit` module. - -use crate::{ - try_break, AdtId, AssocTypeId, ClausePriority, ClosureId, Constraints, ControlFlow, - DebruijnIndex, FloatTy, FnDefId, ForeignDefId, GeneratorId, GenericArg, Goals, ImplId, IntTy, - Interner, Mutability, OpaqueTyId, PlaceholderIndex, ProgramClause, ProgramClauses, - QuantifiedWhereClauses, QuantifierKind, Safety, Scalar, Substitution, SuperVisit, TraitId, - UintTy, UniverseIndex, Visit, Visitor, -}; -use std::{marker::PhantomData, sync::Arc}; - -/// Convenience function to visit all the items in the iterator it. -pub fn visit_iter<'i, T, I, B>( - it: impl Iterator, - visitor: &mut dyn Visitor, - outer_binder: DebruijnIndex, -) -> ControlFlow -where - T: Visit, - I: 'i + Interner, -{ - for e in it { - try_break!(e.visit_with(visitor, outer_binder)); - } - ControlFlow::Continue(()) -} - -impl, I: Interner> Visit for &T { - fn visit_with( - &self, - visitor: &mut dyn Visitor, - outer_binder: DebruijnIndex, - ) -> ControlFlow { - T::visit_with(self, visitor, outer_binder) - } -} - -impl, I: Interner> Visit for Vec { - fn visit_with( - &self, - visitor: &mut dyn Visitor, - outer_binder: DebruijnIndex, - ) -> ControlFlow { - visit_iter(self.iter(), visitor, outer_binder) - } -} - -impl, I: Interner> Visit for &[T] { - fn visit_with( - &self, - visitor: &mut dyn Visitor, - outer_binder: DebruijnIndex, - ) -> ControlFlow { - visit_iter(self.iter(), visitor, outer_binder) - } -} - -impl, I: Interner> Visit for Box { - fn visit_with( - &self, - visitor: &mut dyn Visitor, - outer_binder: DebruijnIndex, - ) -> ControlFlow { - T::visit_with(self, visitor, outer_binder) - } -} - -impl, I: Interner> Visit for Arc { - fn visit_with( - &self, - visitor: &mut dyn Visitor, - outer_binder: DebruijnIndex, - ) -> ControlFlow { - T::visit_with(self, visitor, outer_binder) - } -} - -macro_rules! tuple_visit { - ($($n:ident),*) => { - impl<$($n: Visit,)* I: Interner> Visit for ($($n,)*) { - fn visit_with(&self, visitor: &mut dyn Visitor, outer_binder: DebruijnIndex) -> ControlFlow { - #[allow(non_snake_case)] - let &($(ref $n),*) = self; - $( - try_break!($n.visit_with(visitor, outer_binder)); - )* - ControlFlow::Continue(()) - } - } - } -} - -tuple_visit!(A, B); -tuple_visit!(A, B, C); -tuple_visit!(A, B, C, D); -tuple_visit!(A, B, C, D, E); - -impl, I: Interner> Visit for Option { - fn visit_with( - &self, - visitor: &mut dyn Visitor, - outer_binder: DebruijnIndex, - ) -> ControlFlow { - match self { - Some(e) => e.visit_with(visitor, outer_binder), - None => ControlFlow::Continue(()), - } - } -} - -impl Visit for GenericArg { - fn visit_with( - &self, - visitor: &mut dyn Visitor, - outer_binder: DebruijnIndex, - ) -> ControlFlow { - let interner = visitor.interner(); - self.data(interner).visit_with(visitor, outer_binder) - } -} - -impl Visit for Substitution { - fn visit_with( - &self, - visitor: &mut dyn Visitor, - outer_binder: DebruijnIndex, - ) -> ControlFlow { - let interner = visitor.interner(); - visit_iter(self.iter(interner), visitor, outer_binder) - } -} - -impl Visit for Goals { - fn visit_with( - &self, - visitor: &mut dyn Visitor, - outer_binder: DebruijnIndex, - ) -> ControlFlow { - let interner = visitor.interner(); - visit_iter(self.iter(interner), visitor, outer_binder) - } -} - -#[doc(hidden)] -#[macro_export] -macro_rules! const_visit { - ($t:ty) => { - impl $crate::visit::Visit for $t { - fn visit_with( - &self, - _visitor: &mut dyn ($crate::visit::Visitor), - _outer_binder: DebruijnIndex, - ) -> ControlFlow { - ControlFlow::Continue(()) - } - } - }; -} - -const_visit!(bool); -const_visit!(usize); -const_visit!(UniverseIndex); -const_visit!(PlaceholderIndex); -const_visit!(QuantifierKind); -const_visit!(DebruijnIndex); -const_visit!(ClausePriority); -const_visit!(()); -const_visit!(Scalar); -const_visit!(UintTy); -const_visit!(IntTy); -const_visit!(FloatTy); -const_visit!(Mutability); -const_visit!(Safety); - -#[doc(hidden)] -#[macro_export] -macro_rules! id_visit { - ($t:ident) => { - impl $crate::visit::Visit for $t { - fn visit_with( - &self, - _visitor: &mut dyn ($crate::visit::Visitor), - _outer_binder: DebruijnIndex, - ) -> ControlFlow { - ControlFlow::Continue(()) - } - } - }; -} - -id_visit!(ImplId); -id_visit!(AdtId); -id_visit!(TraitId); -id_visit!(OpaqueTyId); -id_visit!(AssocTypeId); -id_visit!(FnDefId); -id_visit!(ClosureId); -id_visit!(GeneratorId); -id_visit!(ForeignDefId); - -impl SuperVisit for ProgramClause { - fn super_visit_with( - &self, - visitor: &mut dyn Visitor, - outer_binder: DebruijnIndex, - ) -> ControlFlow { - let interner = visitor.interner(); - - self.data(interner).0.visit_with(visitor, outer_binder) - } -} - -impl Visit for ProgramClauses { - fn visit_with( - &self, - visitor: &mut dyn Visitor, - outer_binder: DebruijnIndex, - ) -> ControlFlow { - let interner = visitor.interner(); - - visit_iter(self.iter(interner), visitor, outer_binder) - } -} - -impl Visit for Constraints { - fn visit_with( - &self, - visitor: &mut dyn Visitor, - outer_binder: DebruijnIndex, - ) -> ControlFlow { - let interner = visitor.interner(); - - visit_iter(self.iter(interner), visitor, outer_binder) - } -} - -impl Visit for QuantifiedWhereClauses { - fn visit_with( - &self, - visitor: &mut dyn Visitor, - outer_binder: DebruijnIndex, - ) -> ControlFlow { - let interner = visitor.interner(); - - visit_iter(self.iter(interner), visitor, outer_binder) - } -} - -impl Visit for PhantomData { - fn visit_with( - &self, - _visitor: &mut dyn Visitor, - _outer_binder: DebruijnIndex, - ) -> ControlFlow { - ControlFlow::Continue(()) - } -} -- cgit v1.2.3