]> git.lizzy.rs Git - rust.git/commit - src/tools/miri
Auto merge of #87408 - kornelski:try_reserve_error, r=yaahc
authorbors <bors@rust-lang.org>
Sat, 7 Aug 2021 01:26:15 +0000 (01:26 +0000)
committerbors <bors@rust-lang.org>
Sat, 7 Aug 2021 01:26:15 +0000 (01:26 +0000)
commit996ff2e0a0f911f52bb1de6bdd0cfd5704de1fc9
treef10bdc2b1742f123ce140d43cb11d8f07dabfe92
parentdb3cb435c1197ef3e3919c03b7f81ca8bffbd007
parenta294aa8d3d7b73b7de60c629ae202194cffeb2f4
Auto merge of #87408 - kornelski:try_reserve_error, r=yaahc

Hide allocator details from TryReserveError

I think there's [no need for TryReserveError to carry detailed information](https://github.com/rust-lang/rust/issues/48043#issuecomment-825139280), but I wouldn't want that issue to delay stabilization of the `try_reserve` feature.

So I'm proposing to stabilize `try_reserve` with a `TryReserveError` as an opaque structure, and if needed, expose error details later.

This PR moves the `enum` to an unstable inner `TryReserveErrorKind` that lives under a separate feature flag. `TryReserveErrorKind` could possibly be left as an implementation detail forever, and the `TryReserveError` get methods such as `allocation_size() -> Option<usize>` or `layout() -> Option<Layout>` instead, or the details could be dropped completely to make try-reserve errors just a unit struct, and thus smaller and cheaper.
compiler/rustc_middle/src/lib.rs
compiler/rustc_mir/src/lib.rs
library/alloc/src/collections/vec_deque/mod.rs
library/std/src/collections/hash/map.rs
library/std/src/collections/hash/map/tests.rs
library/std/src/lib.rs