diff --git a/src/pointer/invariant.rs b/src/pointer/invariant.rs index e52a458650..dc11465940 100644 --- a/src/pointer/invariant.rs +++ b/src/pointer/invariant.rs @@ -65,9 +65,6 @@ pub trait Aliasing: Sealed { /// Aliasing>::Variance<'a, T>` to inherit this variance. #[doc(hidden)] type Variance<'a, T: 'a + ?Sized>; - - #[doc(hidden)] - type MappedTo: Aliasing; } /// The alignment invariant of a [`Ptr`][super::Ptr]. @@ -113,7 +110,6 @@ impl Aliasing for Inaccessible { // // [1] https://doc.rust-lang.org/1.81.0/reference/subtyping.html#variance type Variance<'a, T: 'a + ?Sized> = &'a T; - type MappedTo = M::FromInaccessible; } /// The `Ptr<'a, T>` adheres to the aliasing rules of a `&'a T`. @@ -128,7 +124,6 @@ pub enum Shared {} impl Aliasing for Shared { const IS_EXCLUSIVE: bool = false; type Variance<'a, T: 'a + ?Sized> = &'a T; - type MappedTo = M::FromShared; } impl Reference for Shared {} @@ -141,7 +136,6 @@ pub enum Exclusive {} impl Aliasing for Exclusive { const IS_EXCLUSIVE: bool = true; type Variance<'a, T: 'a + ?Sized> = &'a mut T; - type MappedTo = M::FromExclusive; } impl Reference for Exclusive {} @@ -257,23 +251,6 @@ pub use mapping::*; mod mapping { use super::*; - /// A mapping from one [`Aliasing`] type to another. - /// - /// An `AliasingMapping` is a type-level map which maps one `Aliasing` type - /// to another. It is always "total" in the sense of having a mapping for - /// any `A: Aliasing`. - /// - /// Given `A: Aliasing` and `M: AliasingMapping`, `M` can be applied to `A` - /// as [`MappedAliasing`](MappedAliasing). - /// - /// Mappings are used by [`Ptr`](crate::Ptr) conversion methods to preserve - /// or modify invariants as required by each method's semantics. - pub trait AliasingMapping { - type FromInaccessible: Aliasing; - type FromShared: Aliasing; - type FromExclusive: Aliasing; - } - /// A mapping from one [`Alignment`] type to another. /// /// An `AlignmentMapping` is a type-level map which maps one `Alignment` @@ -308,10 +285,6 @@ mod mapping { type FromValid: Validity; } - /// The application of the [`AliasingMapping`] `M` to the [`Aliasing`] `A`. - #[allow(type_alias_bounds)] - pub type MappedAliasing = A::MappedTo; - /// The application of the [`AlignmentMapping`] `M` to the [`Alignment`] `A`. #[allow(type_alias_bounds)] pub type MappedAlignment = A::MappedTo; @@ -320,14 +293,6 @@ mod mapping { #[allow(type_alias_bounds)] pub type MappedValidity = V::MappedTo; - impl AliasingMapping - for ((Inaccessible, FromInaccessible), (Shared, FromShared), (Exclusive, FromExclusive)) - { - type FromInaccessible = FromInaccessible; - type FromShared = FromShared; - type FromExclusive = FromExclusive; - } - impl AlignmentMapping for ((Unknown, FromUnknown), (Shared, FromAligned)) {