Skip to content

Commit a029d3c

Browse files
committed
Fix build and test failure
1 parent 0faedb6 commit a029d3c

File tree

15 files changed

+1509
-1519
lines changed

15 files changed

+1509
-1519
lines changed

src/liballoc/str.rs

+1-2
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

-2
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

+4-8
Original file line numberDiff line numberDiff line change
@@ -1674,24 +1674,20 @@ fn test_match_indices_nan_haystack() {
16741674
#[test]
16751675
fn test_match_indices_nan_needle() {
16761676
let haystack = &[1.0, 2.0, NAN, 1.0, 2.0, NAN, 1.0, NAN, NAN, NAN, 2.0, 1.0, 2.0][..];
1677-
let needle = &[1.0, 2.0][..];
1677+
let needle = &[2.0, NAN][..];
16781678

16791679
assert_eq!(haystack.match_indices(needle).collect::<Vec<_>>(), vec![
1680-
(0, needle),
1681-
(3, needle),
1682-
(11, needle),
16831680
]);
16841681
}
16851682

16861683
#[test]
16871684
fn test_match_indices_negative_zero() {
1688-
let haystack = &[1.0, 2.0, NAN, 1.0, 2.0, NAN, 1.0, NAN, NAN, NAN, 2.0, 1.0, 2.0][..];
1689-
let needle = &[1.0, 2.0][..];
1685+
let haystack = &[-0.0, 0.0, 0.0, -0.0, 0.0][..];
1686+
let needle = &[0.0, -0.0][..];
16901687

16911688
assert_eq!(haystack.match_indices(needle).collect::<Vec<_>>(), vec![
16921689
(0, needle),
1693-
(3, needle),
1694-
(11, needle),
1690+
(2, needle),
16951691
]);
16961692
}
16971693

src/liballoc/tests/str.rs

+4-2
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

+3-7
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

+16-12
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

+3-3
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

+13-17
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ use result::Result::{Ok, Err};
3434
use ptr;
3535
use mem;
3636
use marker::{Copy, Send, Sync, Sized, self};
37-
use iter_private::TrustedRandomAccess;
3837
use needle::{ext, Needle, Searcher, ReverseSearcher, Consumer, ReverseConsumer,DoubleEndedConsumer};
3938

4039
#[unstable(feature = "slice_internals", issue = "0",
@@ -46,11 +45,8 @@ mod rotate;
4645
mod sort;
4746

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

@@ -1018,7 +1014,7 @@ impl<T> [T] {
10181014
///
10191015
/// ```
10201016
/// let slice = [10, 40, 33, 20];
1021-
/// let mut iter = slice.split(|num| num % 3 == 0);
1017+
/// let mut iter = slice.split(|num: &i32| num % 3 == 0);
10221018
///
10231019
/// assert_eq!(iter.next().unwrap(), &[10, 40]);
10241020
/// assert_eq!(iter.next().unwrap(), &[20]);
@@ -1032,7 +1028,7 @@ impl<T> [T] {
10321028
///
10331029
/// ```
10341030
/// let slice = [10, 40, 33];
1035-
/// let mut iter = slice.split(|num| num % 3 == 0);
1031+
/// let mut iter = slice.split(|num: &i32| num % 3 == 0);
10361032
///
10371033
/// assert_eq!(iter.next().unwrap(), &[10, 40]);
10381034
/// assert_eq!(iter.next().unwrap(), &[]);
@@ -1044,7 +1040,7 @@ impl<T> [T] {
10441040
///
10451041
/// ```
10461042
/// let slice = [10, 6, 33, 20];
1047-
/// let mut iter = slice.split(|num| num % 3 == 0);
1043+
/// let mut iter = slice.split(|num: &i32| num % 3 == 0);
10481044
///
10491045
/// assert_eq!(iter.next().unwrap(), &[10]);
10501046
/// assert_eq!(iter.next().unwrap(), &[]);
@@ -1070,7 +1066,7 @@ impl<T> [T] {
10701066
/// ```
10711067
/// let mut v = [10, 40, 30, 20, 60, 50];
10721068
///
1073-
/// for group in v.split_mut(|num| *num % 3 == 0) {
1069+
/// for group in v.split_mut(|num: &i32| *num % 3 == 0) {
10741070
/// group[0] = 1;
10751071
/// }
10761072
/// assert_eq!(v, [1, 40, 30, 1, 60, 1]);
@@ -1094,7 +1090,7 @@ impl<T> [T] {
10941090
///
10951091
/// ```
10961092
/// let slice = [11, 22, 33, 0, 44, 55];
1097-
/// let mut iter = slice.rsplit(|num| *num == 0);
1093+
/// let mut iter = slice.rsplit(|num: &i32| *num == 0);
10981094
///
10991095
/// assert_eq!(iter.next().unwrap(), &[44, 55]);
11001096
/// assert_eq!(iter.next().unwrap(), &[11, 22, 33]);
@@ -1106,7 +1102,7 @@ impl<T> [T] {
11061102
///
11071103
/// ```
11081104
/// let v = &[0, 1, 1, 2, 3, 5, 8];
1109-
/// let mut it = v.rsplit(|n| *n % 2 == 0);
1105+
/// let mut it = v.rsplit(|n: &i32| *n % 2 == 0);
11101106
/// assert_eq!(it.next().unwrap(), &[]);
11111107
/// assert_eq!(it.next().unwrap(), &[3, 5]);
11121108
/// assert_eq!(it.next().unwrap(), &[1, 1]);
@@ -1134,7 +1130,7 @@ impl<T> [T] {
11341130
/// let mut v = [100, 400, 300, 200, 600, 500];
11351131
///
11361132
/// let mut count = 0;
1137-
/// for group in v.rsplit_mut(|num| *num % 3 == 0) {
1133+
/// for group in v.rsplit_mut(|num: &i32| *num % 3 == 0) {
11381134
/// count += 1;
11391135
/// group[0] = count;
11401136
/// }
@@ -1167,7 +1163,7 @@ impl<T> [T] {
11671163
/// ```
11681164
/// let v = [10, 40, 30, 20, 60, 50];
11691165
///
1170-
/// for group in v.splitn(2, |num| *num % 3 == 0) {
1166+
/// for group in v.splitn(2, |num: &i32| *num % 3 == 0) {
11711167
/// println!("{:?}", group);
11721168
/// }
11731169
/// ```
@@ -1194,7 +1190,7 @@ impl<T> [T] {
11941190
/// ```
11951191
/// let mut v = [10, 40, 30, 20, 60, 50];
11961192
///
1197-
/// for group in v.splitn_mut(2, |num| *num % 3 == 0) {
1193+
/// for group in v.splitn_mut(2, |num: &i32| *num % 3 == 0) {
11981194
/// group[0] = 1;
11991195
/// }
12001196
/// assert_eq!(v, [1, 40, 30, 1, 60, 50]);
@@ -1226,7 +1222,7 @@ impl<T> [T] {
12261222
/// ```
12271223
/// let v = [10, 40, 30, 20, 60, 50];
12281224
///
1229-
/// for group in v.rsplitn(2, |num| *num % 3 == 0) {
1225+
/// for group in v.rsplitn(2, |num: &i32| *num % 3 == 0) {
12301226
/// println!("{:?}", group);
12311227
/// }
12321228
/// ```
@@ -1254,7 +1250,7 @@ impl<T> [T] {
12541250
/// ```
12551251
/// let mut s = [10, 40, 30, 20, 60, 50];
12561252
///
1257-
/// for group in s.rsplitn_mut(2, |num| *num % 3 == 0) {
1253+
/// for group in s.rsplitn_mut(2, |num: &i32| *num % 3 == 0) {
12581254
/// group[0] = 1;
12591255
/// }
12601256
/// assert_eq!(s, [1, 40, 30, 20, 60, 1]);

0 commit comments

Comments
 (0)