From 1fca2ce9010a581798fa39d1742eddcaada359ad Mon Sep 17 00:00:00 2001 From: Matt Brubeck Date: Tue, 28 Sep 2021 16:27:47 -0700 Subject: [PATCH] Additional docs about Vec::leak behavior --- library/alloc/src/vec/mod.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/library/alloc/src/vec/mod.rs b/library/alloc/src/vec/mod.rs index a8b939bc249..30cd95d6959 100644 --- a/library/alloc/src/vec/mod.rs +++ b/library/alloc/src/vec/mod.rs @@ -1952,8 +1952,11 @@ pub fn resize_with(&mut self, new_len: usize, f: F) /// `'a`. If the type has only static references, or none at all, then this /// may be chosen to be `'static`. /// - /// This function is similar to the [`leak`][Box::leak] function on [`Box`] - /// except that there is no way to recover the leaked memory. + /// This method does not reallocate or shrink the `Vec`, so the leaked + /// allocation may include unused capacity that is not part of the returned + /// slice. Unsafe code that later reconstructs or deallocates the `Vec` + /// (for example, by calling [`Vec::from_raw_parts`]) must keep track of the + /// original capacity. /// /// This function is mainly useful for data that lives for the remainder of /// the program's life. Dropping the returned reference will cause a memory