From: Ian Jackson Date: Fri, 15 Nov 2024 10:30:51 +0000 (+0000) Subject: avoid blanket impl X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=b2e0b497ab564bdfdd8906775dbdddfb07e98929;p=manually-boxed avoid blanket impl --- diff --git a/src/lib.rs b/src/lib.rs index 9e70b57..4910df5 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -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 Sealed for & T {} -impl 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. ----------