chiark / gitweb /
avoid blanket impl
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 15 Nov 2024 10:30:51 +0000 (10:30 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 15 Nov 2024 10:30:51 +0000 (10:30 +0000)
src/lib.rs

index 9e70b57dd67c0f286951bc3bbb5d4ad62586497e..4910df5c26e50e84b6b2316d7b5cf3e3afee805c 100644 (file)
@@ -265,19 +265,19 @@ unsafe impl<'a> IsTokenMut<'a> for &'a mut NoAliasSingleton {}
 unsafe impl<'a> IsTokenRef<'a> for TokenRef<'a> {}
 unsafe impl<'a> IsTokenRef<'a> for TokenMut<'a> {}
 unsafe impl<'a> IsTokenMut<'a> for TokenMut<'a> {}
-unsafe impl<'a, A: IsTokenRef<'a>> IsTokenRef<'a> for &'a A {}
 
-unsafe impl<'r, 'a, 'aa, A> IsTokenRef<'r> for &'aa mut A
-where A: IsTokenMut<'a>, 'a: 'r, 'aa: 'r {}
-
-unsafe impl<'r, 'a, 'aa, A> IsTokenMut<'r> for &'aa mut A
-where A: IsTokenMut<'a>, 'a: 'r, 'aa: 'r {}
-
-impl Sealed for TokenRef<'_> {}
-impl Sealed for TokenMut<'_> {}
-impl Sealed for NoAliasSingleton {}
-impl<T: Sealed> Sealed for &    T {}
-impl<T: Sealed> Sealed for &mut T {}
+unsafe impl<'o, 'i: 'o, 'j: 'o> IsTokenRef<'o> for &'i     TokenRef<'j> {}
+unsafe impl<'o, 'i: 'o, 'j: 'o> IsTokenRef<'o> for &'i     TokenMut<'j> {}
+unsafe impl<'o, 'i: 'o, 'j: 'o> IsTokenRef<'o> for &'i mut TokenMut<'j> {}
+unsafe impl<'o, 'i: 'o, 'j: 'o> IsTokenMut<'o> for &'i mut TokenMut<'j> {}
+
+impl Sealed for &    NoAliasSingleton {}
+impl Sealed for &mut NoAliasSingleton {}
+impl Sealed for      TokenRef<'_> {}
+impl Sealed for      TokenMut<'_> {}
+impl Sealed for &    TokenRef<'_> {}
+impl Sealed for &    TokenMut<'_> {}
+impl Sealed for &mut TokenMut<'_> {}
 
 //---------- principal API for borrowing etc. ----------