diff options
| author | bors <bors@rust-lang.org> | 2020-03-12 16:20:52 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2020-03-12 16:20:52 +0000 |
| commit | 54b7d21f59a363e53eb1c31d76b40af2ff99321c (patch) | |
| tree | 927ba9a9388c1384392cd56cfbde1f5a74eb935c /src/liballoc | |
| parent | 23de8275c9b5e5812dc54a12bdba6d80870d9dc8 (diff) | |
| parent | 9463cf3361d14d435263c3d3cd651c985cbbc485 (diff) | |
| download | rust-54b7d21f59a363e53eb1c31d76b40af2ff99321c.tar.gz rust-54b7d21f59a363e53eb1c31d76b40af2ff99321c.zip | |
Auto merge of #69950 - Centril:rollup-xh0hmvx, r=Centril
Rollup of 10 pull requests Successful merges: - #68899 (Add Display and Error impls for proc_macro::LexError) - #69011 (Document unsafe blocks in core::fmt) - #69674 (Rename DefKind::Method and TraitItemKind::Method ) - #69705 (Toolstate: remove redundant beta-week check.) - #69722 (Tweak output for invalid negative impl AST errors) - #69747 (Rename rustc guide) - #69792 (Implement Error for TryReserveError) - #69830 (miri: ICE on invalid terminators) - #69921 (rustdoc: remove unused import) - #69945 (update outdated comment) Failed merges: r? @ghost
Diffstat (limited to 'src/liballoc')
| -rw-r--r-- | src/liballoc/collections/mod.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/liballoc/collections/mod.rs b/src/liballoc/collections/mod.rs index 0bb62373fab..6b21e54f66a 100644 --- a/src/liballoc/collections/mod.rs +++ b/src/liballoc/collections/mod.rs @@ -42,6 +42,7 @@ pub use linked_list::LinkedList; pub use vec_deque::VecDeque; use crate::alloc::{Layout, LayoutErr}; +use core::fmt::Display; /// The error type for `try_reserve` methods. #[derive(Clone, PartialEq, Eq, Debug)] @@ -77,6 +78,23 @@ impl From<LayoutErr> for TryReserveError { } } +#[unstable(feature = "try_reserve", reason = "new API", issue = "48043")] +impl Display for TryReserveError { + fn fmt( + &self, + fmt: &mut core::fmt::Formatter<'_>, + ) -> core::result::Result<(), core::fmt::Error> { + fmt.write_str("memory allocation failed")?; + let reason = match &self { + TryReserveError::CapacityOverflow => { + " because the computed capacity exceeded the collection's maximum" + } + TryReserveError::AllocError { .. } => " because the memory allocator returned a error", + }; + fmt.write_str(reason) + } +} + /// An intermediate trait for specialization of `Extend`. #[doc(hidden)] trait SpecExtend<I: IntoIterator> { |
