Skip to content

Commit ab0d48f

Browse files
committed
make lifetime_expansion unsized
1 parent 3d364e7 commit ab0d48f

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/lifetime_expansion.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,16 @@
2525
/// borrow data that's already been dropped.
2626
/// - Therefore, `val_b`, which has a lifetime of `'b`, is valid for `'a`.
2727
#[inline(never)]
28-
pub const fn lifetime_translator<'a, 'b, T>(_val_a: &'a &'b (), val_b: &'b T) -> &'a T {
28+
pub const fn lifetime_translator<'a, 'b, T: ?Sized>(_val_a: &'a &'b (), val_b: &'b T) -> &'a T {
2929
val_b
3030
}
3131

3232
/// This does the same thing as [`lifetime_translator`], just for mutable refs.
3333
#[inline(never)]
34-
pub fn lifetime_translator_mut<'a, 'b, T>(_val_a: &'a &'b (), val_b: &'b mut T) -> &'a mut T {
34+
pub fn lifetime_translator_mut<'a, 'b, T: ?Sized>(
35+
_val_a: &'a &'b (),
36+
val_b: &'b mut T,
37+
) -> &'a mut T {
3538
val_b
3639
}
3740

@@ -40,7 +43,7 @@ pub fn lifetime_translator_mut<'a, 'b, T>(_val_a: &'a &'b (), val_b: &'b mut T)
4043
/// # Safety
4144
///
4245
/// Safety? What's that?
43-
pub fn expand<'a, 'b, T>(x: &'a T) -> &'b T {
46+
pub fn expand<'a, 'b, T: ?Sized>(x: &'a T) -> &'b T {
4447
let f: fn(_, &'a T) -> &'b T = lifetime_translator;
4548
f(STATIC_UNIT, x)
4649
}
@@ -50,7 +53,7 @@ pub fn expand<'a, 'b, T>(x: &'a T) -> &'b T {
5053
/// # Safety
5154
///
5255
/// Safety? What's that?
53-
pub fn expand_mut<'a, 'b, T>(x: &'a mut T) -> &'b mut T {
56+
pub fn expand_mut<'a, 'b, T: ?Sized>(x: &'a mut T) -> &'b mut T {
5457
let f: fn(_, &'a mut T) -> &'b mut T = lifetime_translator_mut;
5558
f(STATIC_UNIT, x)
5659
}

0 commit comments

Comments
 (0)