always fail on librustc bug
diff --git a/rust-toolchain b/rust-toolchain
index 4390c8a..fb7648c 100644
--- a/rust-toolchain
+++ b/rust-toolchain
@@ -1 +1 @@
-nightly-2019-08-01
+nightly-2019-10-04
diff --git a/sgx_tstd/src/collections/hash/map.rs b/sgx_tstd/src/collections/hash/map.rs
index 1a37532..d3eacfb 100644
--- a/sgx_tstd/src/collections/hash/map.rs
+++ b/sgx_tstd/src/collections/hash/map.rs
@@ -39,7 +39,7 @@
use core::iter::{FromIterator, FusedIterator};
use core::mem::{self, replace};
use core::ops::{Deref, DerefMut, Index};
-use crate::collections::CollectionAllocErr;
+use crate::collections::TryReserveError;
use crate::sys;
use super::table::{self, Bucket, EmptyBucket, Fallibility, FullBucket, FullBucketMut, RawTable,
@@ -64,7 +64,7 @@
/// provide that capacity, accounting for maximum loading. The raw capacity
/// is always zero or a power of two.
#[inline]
- fn try_raw_capacity(&self, len: usize) -> Result<usize, CollectionAllocErr> {
+ fn try_raw_capacity(&self, len: usize) -> Result<usize, TryReserveError> {
if len == 0 {
Ok(0)
} else {
@@ -74,7 +74,7 @@
let mut raw_cap = len.checked_mul(11)
.map(|l| l / 10)
.and_then(|l| l.checked_next_power_of_two())
- .ok_or(CollectionAllocErr::CapacityOverflow)?;
+ .ok_or(TryReserveError::CapacityOverflow)?;
raw_cap = max(MIN_NONZERO_RAW_CAPACITY, raw_cap);
Ok(raw_cap)
@@ -731,8 +731,8 @@
#[inline]
pub fn reserve(&mut self, additional: usize) {
match self.reserve_internal(additional, Infallible) {
- Err(CollectionAllocErr::CapacityOverflow) => panic!("capacity overflow"),
- Err(CollectionAllocErr::AllocErr) => unreachable!(),
+ Err(TryReserveError::CapacityOverflow) => panic!("capacity overflow"),
+ Err(TryReserveError::AllocErr) => unreachable!(),
Ok(()) => { /* yay */ }
}
}
@@ -746,19 +746,19 @@
/// If the capacity overflows, or the allocator reports a failure, then an error
/// is returned.
///
- pub fn try_reserve(&mut self, additional: usize) -> Result<(), CollectionAllocErr> {
+ pub fn try_reserve(&mut self, additional: usize) -> Result<(), TryReserveError> {
self.reserve_internal(additional, Fallible)
}
#[inline]
fn reserve_internal(&mut self, additional: usize, fallibility: Fallibility)
- -> Result<(), CollectionAllocErr> {
+ -> Result<(), TryReserveError> {
let remaining = self.capacity() - self.len(); // this can't overflow
if remaining < additional {
let min_cap = self.len()
.checked_add(additional)
- .ok_or(CollectionAllocErr::CapacityOverflow)?;
+ .ok_or(TryReserveError::CapacityOverflow)?;
let raw_cap = self.resize_policy.try_raw_capacity(min_cap)?;
self.try_resize(raw_cap, fallibility)?;
} else if self.table.tag() && remaining <= self.len() {
@@ -781,7 +781,7 @@
&mut self,
new_raw_cap: usize,
fallibility: Fallibility,
- ) -> Result<(), CollectionAllocErr> {
+ ) -> Result<(), TryReserveError> {
assert!(self.table.size() <= new_raw_cap);
assert!(new_raw_cap.is_power_of_two() || new_raw_cap == 0);
diff --git a/sgx_tstd/src/collections/hash/table.rs b/sgx_tstd/src/collections/hash/table.rs
index 91afbef..fb43c34 100644
--- a/sgx_tstd/src/collections/hash/table.rs
+++ b/sgx_tstd/src/collections/hash/table.rs
@@ -27,7 +27,7 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
use crate::alloc::{Global, Alloc, Layout, LayoutErr, handle_alloc_error};
-use crate::collections::CollectionAllocErr;
+use crate::collections::TryReserveError;
use core::hash::{BuildHasher, Hash, Hasher};
use core::marker;
use core::mem::{self, size_of, needs_drop};
@@ -690,7 +690,7 @@
unsafe fn new_uninitialized_internal(
capacity: usize,
fallibility: Fallibility,
- ) -> Result<RawTable<K, V>, CollectionAllocErr> {
+ ) -> Result<RawTable<K, V>, TryReserveError> {
if capacity == 0 {
return Ok(RawTable {
size: 0,
@@ -722,8 +722,8 @@
/// at the very least, set every hash to EMPTY_BUCKET.
unsafe fn new_uninitialized(capacity: usize) -> RawTable<K, V> {
match Self::new_uninitialized_internal(capacity, Infallible) {
- Err(CollectionAllocErr::CapacityOverflow) => panic!("capacity overflow"),
- Err(CollectionAllocErr::AllocErr) => unreachable!(),
+ Err(TryReserveError::CapacityOverflow) => panic!("capacity overflow"),
+ Err(TryReserveError::AllocErr) => unreachable!(),
Ok(table) => { table }
}
}
@@ -747,7 +747,7 @@
fn new_internal(
capacity: usize,
fallibility: Fallibility,
- ) -> Result<RawTable<K, V>, CollectionAllocErr> {
+ ) -> Result<RawTable<K, V>, TryReserveError> {
unsafe {
let ret = RawTable::new_uninitialized_internal(capacity, fallibility)?;
if capacity > 0 {
@@ -760,7 +760,7 @@
/// Tries to create a new raw table from a given capacity. If it cannot allocate,
/// it returns with AllocErr.
#[inline]
- pub fn try_new(capacity: usize) -> Result<RawTable<K, V>, CollectionAllocErr> {
+ pub fn try_new(capacity: usize) -> Result<RawTable<K, V>, TryReserveError> {
Self::new_internal(capacity, Fallible)
}
@@ -769,8 +769,8 @@
#[inline]
pub fn new(capacity: usize) -> RawTable<K, V> {
match Self::new_internal(capacity, Infallible) {
- Err(CollectionAllocErr::CapacityOverflow) => panic!("capacity overflow"),
- Err(CollectionAllocErr::AllocErr) => unreachable!(),
+ Err(TryReserveError::CapacityOverflow) => panic!("capacity overflow"),
+ Err(TryReserveError::AllocErr) => unreachable!(),
Ok(table) => { table }
}
}
diff --git a/sgx_tstd/src/collections/mod.rs b/sgx_tstd/src/collections/mod.rs
index 4c8d085..b023f60 100644
--- a/sgx_tstd/src/collections/mod.rs
+++ b/sgx_tstd/src/collections/mod.rs
@@ -43,7 +43,7 @@
pub use self::hash_map::HashMap;
pub use self::hash_set::HashSet;
-pub use alloc_crate::collections::CollectionAllocErr;
+pub use alloc_crate::collections::TryReserveError;
mod hash;
diff --git a/sgx_tstd/src/prelude/v1.rs b/sgx_tstd/src/prelude/v1.rs
index 5720cb3..9f6a26c 100644
--- a/sgx_tstd/src/prelude/v1.rs
+++ b/sgx_tstd/src/prelude/v1.rs
@@ -49,7 +49,6 @@
#[doc(no_inline)]
pub use core::prelude::v1::{
- __rust_unstable_column,
asm,
assert,
cfg,
@@ -81,9 +80,7 @@
Clone,
Copy,
Debug,
- Decodable,
Default,
- Encodable,
Eq,
Hash,
Ord,