@@ -105,7 +105,7 @@ impl<S: Borrow<str>> SliceConcatExt<str> for [S] {
105
105
///
106
106
/// For use with the `std::iter` module.
107
107
#[ derive( Clone ) ]
108
- #[ unstable( feature = "str_utf16" ) ]
108
+ #[ unstable( feature = "str_utf16" , issue = "27714" ) ]
109
109
pub struct Utf16Units < ' a > {
110
110
encoder : Utf16Encoder < Chars < ' a > >
111
111
}
@@ -211,7 +211,8 @@ impl str {
211
211
reason = "it is unclear whether this method pulls its weight \
212
212
with the existence of the char_indices iterator or \
213
213
this method may want to be replaced with checked \
214
- slicing") ]
214
+ slicing",
215
+ issue = "27754" ) ]
215
216
#[ inline]
216
217
pub fn is_char_boundary ( & self , index : usize ) -> bool {
217
218
core_str:: StrExt :: is_char_boundary ( self , index)
@@ -275,7 +276,8 @@ impl str {
275
276
/// Takes a bytewise mutable slice from a string.
276
277
///
277
278
/// Same as `slice_unchecked`, but works with `&mut str` instead of `&str`.
278
- #[ unstable( feature = "str_slice_mut" , reason = "recently added" ) ]
279
+ #[ unstable( feature = "str_slice_mut" , reason = "recently added" ,
280
+ issue = "27793" ) ]
279
281
#[ inline]
280
282
pub unsafe fn slice_mut_unchecked ( & mut self , begin : usize , end : usize ) -> & mut str {
281
283
core_str:: StrExt :: slice_mut_unchecked ( self , begin, end)
@@ -329,7 +331,8 @@ impl str {
329
331
#[ unstable( feature = "str_char" ,
330
332
reason = "often replaced by char_indices, this method may \
331
333
be removed in favor of just char_at() or eventually \
332
- removed altogether") ]
334
+ removed altogether",
335
+ issue = "27754" ) ]
333
336
#[ inline]
334
337
pub fn char_range_at ( & self , start : usize ) -> CharRange {
335
338
core_str:: StrExt :: char_range_at ( self , start)
@@ -388,7 +391,8 @@ impl str {
388
391
#[ unstable( feature = "str_char" ,
389
392
reason = "often replaced by char_indices, this method may \
390
393
be removed in favor of just char_at_reverse() or \
391
- eventually removed altogether") ]
394
+ eventually removed altogether",
395
+ issue = "27754" ) ]
392
396
#[ inline]
393
397
pub fn char_range_at_reverse ( & self , start : usize ) -> CharRange {
394
398
core_str:: StrExt :: char_range_at_reverse ( self , start)
@@ -416,7 +420,8 @@ impl str {
416
420
method may be removed or possibly renamed in the \
417
421
future; it is normally replaced by chars/char_indices \
418
422
iterators or by getting the first char from a \
419
- subslice") ]
423
+ subslice",
424
+ issue = "27754" ) ]
420
425
#[ inline]
421
426
pub fn char_at ( & self , i : usize ) -> char {
422
427
core_str:: StrExt :: char_at ( self , i)
@@ -443,7 +448,8 @@ impl str {
443
448
#[ unstable( feature = "str_char" ,
444
449
reason = "see char_at for more details, but reverse semantics \
445
450
are also somewhat unclear, especially with which \
446
- cases generate panics") ]
451
+ cases generate panics",
452
+ issue = "27754" ) ]
447
453
#[ inline]
448
454
pub fn char_at_reverse ( & self , i : usize ) -> char {
449
455
core_str:: StrExt :: char_at_reverse ( self , i)
@@ -478,7 +484,8 @@ impl str {
478
484
#[ unstable( feature = "str_char" ,
479
485
reason = "awaiting conventions about shifting and slices and \
480
486
may not be warranted with the existence of the chars \
481
- and/or char_indices iterators") ]
487
+ and/or char_indices iterators",
488
+ issue = "27754" ) ]
482
489
#[ inline]
483
490
pub fn slice_shift_char ( & self ) -> Option < ( char , & str ) > {
484
491
core_str:: StrExt :: slice_shift_char ( self )
@@ -508,14 +515,16 @@ impl str {
508
515
/// assert_eq!(b, " 老虎 Léopard");
509
516
/// ```
510
517
#[ inline]
511
- #[ unstable( feature = "str_split_at" , reason = "recently added" ) ]
518
+ #[ unstable( feature = "str_split_at" , reason = "recently added" ,
519
+ issue = "27792" ) ]
512
520
pub fn split_at ( & self , mid : usize ) -> ( & str , & str ) {
513
521
core_str:: StrExt :: split_at ( self , mid)
514
522
}
515
523
516
524
/// Divide one mutable string slice into two at an index.
517
525
#[ inline]
518
- #[ unstable( feature = "str_split_at" , reason = "recently added" ) ]
526
+ #[ unstable( feature = "str_split_at" , reason = "recently added" ,
527
+ issue = "27792" ) ]
519
528
pub fn split_at_mut ( & mut self , mid : usize ) -> ( & mut str , & mut str ) {
520
529
core_str:: StrExt :: split_at_mut ( self , mid)
521
530
}
@@ -652,7 +661,8 @@ impl str {
652
661
653
662
/// Returns an iterator of `u16` over the string encoded as UTF-16.
654
663
#[ unstable( feature = "str_utf16" ,
655
- reason = "this functionality may only be provided by libunicode" ) ]
664
+ reason = "this functionality may only be provided by libunicode" ,
665
+ issue = "27714" ) ]
656
666
pub fn utf16_units ( & self ) -> Utf16Units {
657
667
Utf16Units { encoder : Utf16Encoder :: new ( self [ ..] . chars ( ) ) }
658
668
}
@@ -1186,7 +1196,8 @@ impl str {
1186
1196
/// assert_eq!(v, [(0, 3)]); // only the first `aba`
1187
1197
/// ```
1188
1198
#[ unstable( feature = "str_match_indices" ,
1189
- reason = "might have its iterator type changed" ) ]
1199
+ reason = "might have its iterator type changed" ,
1200
+ issue = "27743" ) ]
1190
1201
// NB: Right now MatchIndices yields `(usize, usize)`, but it would
1191
1202
// be more consistent with `matches` and `char_indices` to return `(usize, &str)`
1192
1203
pub fn match_indices < ' a , P : Pattern < ' a > > ( & ' a self , pat : P ) -> MatchIndices < ' a , P > {
@@ -1231,7 +1242,8 @@ impl str {
1231
1242
/// assert_eq!(v, [(2, 5)]); // only the last `aba`
1232
1243
/// ```
1233
1244
#[ unstable( feature = "str_match_indices" ,
1234
- reason = "might have its iterator type changed" ) ]
1245
+ reason = "might have its iterator type changed" ,
1246
+ issue = "27743" ) ]
1235
1247
// NB: Right now RMatchIndices yields `(usize, usize)`, but it would
1236
1248
// be more consistent with `rmatches` and `char_indices` to return `(usize, &str)`
1237
1249
pub fn rmatch_indices < ' a , P : Pattern < ' a > > ( & ' a self , pat : P ) -> RMatchIndices < ' a , P >
@@ -1476,21 +1488,24 @@ impl str {
1476
1488
1477
1489
/// Escapes each char in `s` with `char::escape_default`.
1478
1490
#[ unstable( feature = "str_escape" ,
1479
- reason = "return type may change to be an iterator" ) ]
1491
+ reason = "return type may change to be an iterator" ,
1492
+ issue = "27791" ) ]
1480
1493
pub fn escape_default ( & self ) -> String {
1481
1494
self . chars ( ) . flat_map ( |c| c. escape_default ( ) ) . collect ( )
1482
1495
}
1483
1496
1484
1497
/// Escapes each char in `s` with `char::escape_unicode`.
1485
1498
#[ unstable( feature = "str_escape" ,
1486
- reason = "return type may change to be an iterator" ) ]
1499
+ reason = "return type may change to be an iterator" ,
1500
+ issue = "27791" ) ]
1487
1501
pub fn escape_unicode ( & self ) -> String {
1488
1502
self . chars ( ) . flat_map ( |c| c. escape_unicode ( ) ) . collect ( )
1489
1503
}
1490
1504
1491
1505
/// Converts the `Box<str>` into a `String` without copying or allocating.
1492
1506
#[ unstable( feature = "box_str" ,
1493
- reason = "recently added, matches RFC" ) ]
1507
+ reason = "recently added, matches RFC" ,
1508
+ issue = "27785" ) ]
1494
1509
pub fn into_string ( self : Box < str > ) -> String {
1495
1510
unsafe {
1496
1511
let slice = mem:: transmute :: < Box < str > , Box < [ u8 ] > > ( self ) ;
0 commit comments