Skip to content

Commit d38b8e6

Browse files
committed
Fix build and test failure
1 parent f9fece2 commit d38b8e6

File tree

15 files changed

+1509
-1519
lines changed

15 files changed

+1509
-1519
lines changed

src/liballoc/str.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,13 @@
2929
#![allow(unused_imports)]
3030

3131
use core::fmt;
32-
use core::str as core_str;
3332
use core::needle::{ext, Needle, Searcher, Consumer};
3433
use core::mem;
3534
use core::ptr;
3635
use core::iter::FusedIterator;
3736
use core::unicode::conversions;
3837

39-
use crate::borrow::ToOwned;
38+
use crate::borrow::{Borrow, ToOwned};
4039
use crate::boxed::Box;
4140
use crate::slice::{SliceConcatExt, SliceIndex};
4241
use crate::string::String;

src/liballoc/tests/lib.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
#![feature(exact_size_is_empty)]
55
#![feature(repeat_generic_slice)]
66
#![feature(needle)]
7-
#![feature(slice_sort_by_cached_key)]
8-
#![feature(str_escape)]
97
#![feature(try_reserve)]
108
#![feature(unboxed_closures)]
119
#![feature(vecdeque_rotate)]

src/liballoc/tests/slice.rs

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1683,24 +1683,20 @@ fn test_match_indices_nan_haystack() {
16831683
#[test]
16841684
fn test_match_indices_nan_needle() {
16851685
let haystack = &[1.0, 2.0, NAN, 1.0, 2.0, NAN, 1.0, NAN, NAN, NAN, 2.0, 1.0, 2.0][..];
1686-
let needle = &[1.0, 2.0][..];
1686+
let needle = &[2.0, NAN][..];
16871687

16881688
assert_eq!(haystack.match_indices(needle).collect::<Vec<_>>(), vec![
1689-
(0, needle),
1690-
(3, needle),
1691-
(11, needle),
16921689
]);
16931690
}
16941691

16951692
#[test]
16961693
fn test_match_indices_negative_zero() {
1697-
let haystack = &[1.0, 2.0, NAN, 1.0, 2.0, NAN, 1.0, NAN, NAN, NAN, 2.0, 1.0, 2.0][..];
1698-
let needle = &[1.0, 2.0][..];
1694+
let haystack = &[-0.0, 0.0, 0.0, -0.0, 0.0][..];
1695+
let needle = &[0.0, -0.0][..];
16991696

17001697
assert_eq!(haystack.match_indices(needle).collect::<Vec<_>>(), vec![
17011698
(0, needle),
1702-
(3, needle),
1703-
(11, needle),
1699+
(2, needle),
17041700
]);
17051701
}
17061702

src/liballoc/tests/str.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1724,7 +1724,8 @@ fn test_mut_str() {
17241724
assert_eq!(res, vec!["a", "b", "c", "d", "e"]);
17251725
}
17261726
{
1727-
let res: Vec<(Range<usize>, &mut str)> = s.match_ranges_mut(|c: char| c.is_ascii_digit()).collect();
1727+
let res: Vec<(Range<usize>, &mut str)> =
1728+
s.match_ranges_mut(|c: char| c.is_ascii_digit()).collect();
17281729
let res = res.into_iter().map(|(r, ss)| (r, &*ss)).collect::<Vec<_>>();
17291730
assert_eq!(res, vec![
17301731
(1..2, "1"),
@@ -1734,7 +1735,8 @@ fn test_mut_str() {
17341735
]);
17351736
}
17361737
{
1737-
let res: Vec<(Range<usize>, &mut str)> = s.rmatch_ranges_mut(|c: char| c.is_ascii_digit()).collect();
1738+
let res: Vec<(Range<usize>, &mut str)> =
1739+
s.rmatch_ranges_mut(|c: char| c.is_ascii_digit()).collect();
17381740
let res = res.into_iter().map(|(r, ss)| (r, &*ss)).collect::<Vec<_>>();
17391741
assert_eq!(res, vec![
17401742
(7..8, "4"),

src/liballoc/vec.rs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -65,16 +65,12 @@ use core::marker::PhantomData;
6565
use core::mem;
6666
use core::ops::{self, Index, IndexMut, RangeBounds};
6767
use core::ops::Bound::{Excluded, Included, Unbounded};
68-
use core::ops::{Index, IndexMut, RangeBounds};
69-
use core::ops;
70-
use core::ptr;
71-
use core::ptr::NonNull;
72-
use core::slice;
68+
use core::ptr::{self, NonNull};
69+
use core::slice::{self, SliceIndex};
7370
use core::needle::Needle;
7471

72+
use crate::borrow::{ToOwned, Cow};
7573
use crate::collections::CollectionAllocErr;
76-
use crate::borrow::ToOwned;
77-
use crate::borrow::Cow;
7874
use crate::boxed::Box;
7975
use crate::raw_vec::RawVec;
8076

src/libcore/needle/haystack.rs

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ use ops::{Deref, Range};
55
///
66
/// Every [`Haystack`] type can be borrowed as references to `Hay` types. This
77
/// allows multiple similar types to share the same implementation (e.g. the
8-
/// haystacks `&[T]`, `&mut [T]` and `Vec<T>` all have the same corresponding
9-
/// hay type `[T]`).
8+
/// haystacks `&[T]` and `&mut [T]` both have the same corresponding hay type
9+
/// `[T]`).
1010
///
1111
/// In the other words, a `Haystack` is a generalized reference to `Hay`.
1212
/// `Hay`s are typically implemented on unsized slice types like `str` and `[T]`.
@@ -91,7 +91,8 @@ pub unsafe trait Hay {
9191
/// # Examples
9292
///
9393
/// ```rust
94-
/// use pattern_3::Hay;
94+
/// #![feature(needle)]
95+
/// use std::needle::Hay;
9596
///
9697
/// let sample = "A→😀";
9798
/// unsafe {
@@ -115,7 +116,8 @@ pub unsafe trait Hay {
115116
/// # Examples
116117
///
117118
/// ```rust
118-
/// use pattern_3::Hay;
119+
/// #![feature(needle)]
120+
/// use std::needle::Hay;
119121
///
120122
/// let sample = "A→😀";
121123
/// unsafe {
@@ -210,8 +212,8 @@ pub unsafe trait Haystack: Deref + Sized where Self::Target: Hay {
210212
/// (original.start + parent.start)..(original.start + parent.end)
211213
/// ```
212214
///
213-
/// If this haystack is a [`SharedHaystack`], this method would never be
214-
/// called.
215+
/// If this haystack is a [`SharedHaystack`], this method should never be
216+
/// called, and calling it would cause an unreachable panic.
215217
///
216218
/// # Safety
217219
///
@@ -240,9 +242,13 @@ pub unsafe trait Haystack: Deref + Sized where Self::Target: Hay {
240242
/// #![feature(needle)]
241243
/// use std::needle::Haystack;
242244
///
243-
/// let hay = b"This is a sample haystack";
244-
/// let this = hay[2..23][3..19].to_vec();
245-
/// assert_eq!(&*this, &hay[this.restore_range(2..23, 3..19)]);
245+
/// let mut hay = *b"This is a sample haystack";
246+
/// let restored = {
247+
/// let this = &mut hay[2..23][3..19];
248+
/// assert_eq!(b"is a sample hays", this);
249+
/// this.restore_range(2..23, 3..19)
250+
/// };
251+
/// assert_eq!(b"is a sample hays", &hay[restored]);
246252
/// ```
247253
fn restore_range(
248254
&self,
@@ -412,7 +418,7 @@ where H::Target: Hay // FIXME: RFC 2089 or 2289
412418
/// let subspan = unsafe { span.slice_unchecked(4..8) };
413419
///
414420
/// // obtains the substring.
415-
/// let substring = subspan.into();
421+
/// let substring: &str = subspan.into();
416422
/// assert_eq!(substring, "o世");
417423
/// ```
418424
///
@@ -716,5 +722,3 @@ unsafe impl<'h, T: 'h> Haystack for &'h mut [T] {
716722
(subrange.start + range.start)..(subrange.end + range.start)
717723
}
718724
}
719-
720-

src/libcore/needle/needle.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ pub unsafe trait Consumer<A: Hay + ?Sized> {
215215
///
216216
/// ```rust
217217
/// #![feature(needle)]
218-
/// use std::needle::{Consumer, Needle, Span};
218+
/// use std::needle::{Consumer, Needle};
219219
///
220220
/// let mut consumer = Needle::<&str>::into_consumer('x');
221221
/// assert_eq!(consumer.trim_start("xxxyy"), 3);
@@ -331,7 +331,7 @@ pub unsafe trait ReverseConsumer<A: Hay + ?Sized>: Consumer<A> {
331331
///
332332
/// ```
333333
/// #![feature(needle)]
334-
/// use std:needle::{ReverseConsumer, Needle, Span};
334+
/// use std::needle::{ReverseConsumer, Needle, Span};
335335
///
336336
/// let mut consumer = Needle::<&str>::into_consumer(|c: char| c.is_ascii());
337337
/// let span = Span::from("Hi😋!!");
@@ -364,7 +364,7 @@ pub unsafe trait ReverseConsumer<A: Hay + ?Sized>: Consumer<A> {
364364
///
365365
/// ```rust
366366
/// #![feature(needle)]
367-
/// use std::needle::{ReverseConsumer, Needle, Span};
367+
/// use std::needle::{ReverseConsumer, Needle};
368368
///
369369
/// let mut consumer = Needle::<&str>::into_consumer('x');
370370
/// assert_eq!(consumer.trim_end("yyxxx"), 2);

src/libcore/slice/mod.rs

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ use crate::result::Result::{Ok, Err};
3434
use crate::ptr;
3535
use crate::mem;
3636
use crate::marker::{Copy, Send, Sync, Sized, self};
37-
use crate::iter_private::TrustedRandomAccess;
3837
use crate::needle::{
3938
ext, Needle, Searcher, ReverseSearcher, Consumer, ReverseConsumer, DoubleEndedConsumer,
4039
};
@@ -48,11 +47,8 @@ mod rotate;
4847
mod sort;
4948

5049
/// Needle implementations for slices
51-
#[unstable(
52-
feature = "slice_internals",
53-
issue = "0",
54-
reason = "exposed from core to be reused in std",
55-
)]
50+
#[unstable(feature = "slice_internals", issue = "0",
51+
reason = "exposed from core to be reused in std")]
5652
#[doc(hidden)]
5753
pub mod needles;
5854

@@ -1020,7 +1016,7 @@ impl<T> [T] {
10201016
///
10211017
/// ```
10221018
/// let slice = [10, 40, 33, 20];
1023-
/// let mut iter = slice.split(|num| num % 3 == 0);
1019+
/// let mut iter = slice.split(|num: &i32| num % 3 == 0);
10241020
///
10251021
/// assert_eq!(iter.next().unwrap(), &[10, 40]);
10261022
/// assert_eq!(iter.next().unwrap(), &[20]);
@@ -1034,7 +1030,7 @@ impl<T> [T] {
10341030
///
10351031
/// ```
10361032
/// let slice = [10, 40, 33];
1037-
/// let mut iter = slice.split(|num| num % 3 == 0);
1033+
/// let mut iter = slice.split(|num: &i32| num % 3 == 0);
10381034
///
10391035
/// assert_eq!(iter.next().unwrap(), &[10, 40]);
10401036
/// assert_eq!(iter.next().unwrap(), &[]);
@@ -1046,7 +1042,7 @@ impl<T> [T] {
10461042
///
10471043
/// ```
10481044
/// let slice = [10, 6, 33, 20];
1049-
/// let mut iter = slice.split(|num| num % 3 == 0);
1045+
/// let mut iter = slice.split(|num: &i32| num % 3 == 0);
10501046
///
10511047
/// assert_eq!(iter.next().unwrap(), &[10]);
10521048
/// assert_eq!(iter.next().unwrap(), &[]);
@@ -1072,7 +1068,7 @@ impl<T> [T] {
10721068
/// ```
10731069
/// let mut v = [10, 40, 30, 20, 60, 50];
10741070
///
1075-
/// for group in v.split_mut(|num| *num % 3 == 0) {
1071+
/// for group in v.split_mut(|num: &i32| *num % 3 == 0) {
10761072
/// group[0] = 1;
10771073
/// }
10781074
/// assert_eq!(v, [1, 40, 30, 1, 60, 1]);
@@ -1096,7 +1092,7 @@ impl<T> [T] {
10961092
///
10971093
/// ```
10981094
/// let slice = [11, 22, 33, 0, 44, 55];
1099-
/// let mut iter = slice.rsplit(|num| *num == 0);
1095+
/// let mut iter = slice.rsplit(|num: &i32| *num == 0);
11001096
///
11011097
/// assert_eq!(iter.next().unwrap(), &[44, 55]);
11021098
/// assert_eq!(iter.next().unwrap(), &[11, 22, 33]);
@@ -1108,7 +1104,7 @@ impl<T> [T] {
11081104
///
11091105
/// ```
11101106
/// let v = &[0, 1, 1, 2, 3, 5, 8];
1111-
/// let mut it = v.rsplit(|n| *n % 2 == 0);
1107+
/// let mut it = v.rsplit(|n: &i32| *n % 2 == 0);
11121108
/// assert_eq!(it.next().unwrap(), &[]);
11131109
/// assert_eq!(it.next().unwrap(), &[3, 5]);
11141110
/// assert_eq!(it.next().unwrap(), &[1, 1]);
@@ -1136,7 +1132,7 @@ impl<T> [T] {
11361132
/// let mut v = [100, 400, 300, 200, 600, 500];
11371133
///
11381134
/// let mut count = 0;
1139-
/// for group in v.rsplit_mut(|num| *num % 3 == 0) {
1135+
/// for group in v.rsplit_mut(|num: &i32| *num % 3 == 0) {
11401136
/// count += 1;
11411137
/// group[0] = count;
11421138
/// }
@@ -1169,7 +1165,7 @@ impl<T> [T] {
11691165
/// ```
11701166
/// let v = [10, 40, 30, 20, 60, 50];
11711167
///
1172-
/// for group in v.splitn(2, |num| *num % 3 == 0) {
1168+
/// for group in v.splitn(2, |num: &i32| *num % 3 == 0) {
11731169
/// println!("{:?}", group);
11741170
/// }
11751171
/// ```
@@ -1196,7 +1192,7 @@ impl<T> [T] {
11961192
/// ```
11971193
/// let mut v = [10, 40, 30, 20, 60, 50];
11981194
///
1199-
/// for group in v.splitn_mut(2, |num| *num % 3 == 0) {
1195+
/// for group in v.splitn_mut(2, |num: &i32| *num % 3 == 0) {
12001196
/// group[0] = 1;
12011197
/// }
12021198
/// assert_eq!(v, [1, 40, 30, 1, 60, 50]);
@@ -1228,7 +1224,7 @@ impl<T> [T] {
12281224
/// ```
12291225
/// let v = [10, 40, 30, 20, 60, 50];
12301226
///
1231-
/// for group in v.rsplitn(2, |num| *num % 3 == 0) {
1227+
/// for group in v.rsplitn(2, |num: &i32| *num % 3 == 0) {
12321228
/// println!("{:?}", group);
12331229
/// }
12341230
/// ```
@@ -1256,7 +1252,7 @@ impl<T> [T] {
12561252
/// ```
12571253
/// let mut s = [10, 40, 30, 20, 60, 50];
12581254
///
1259-
/// for group in s.rsplitn_mut(2, |num| *num % 3 == 0) {
1255+
/// for group in s.rsplitn_mut(2, |num: &i32| *num % 3 == 0) {
12601256
/// group[0] = 1;
12611257
/// }
12621258
/// assert_eq!(s, [1, 40, 30, 20, 60, 1]);

0 commit comments

Comments
 (0)