1
1
use crate :: convert:: TryFrom ;
2
- use crate :: marker:: Destruct ;
3
2
use crate :: mem;
4
3
use crate :: num:: NonZeroUsize ;
5
4
use crate :: ops:: { self , Try } ;
@@ -22,8 +21,7 @@ unsafe_impl_trusted_step![char i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usi
22
21
/// The *successor* operation moves towards values that compare greater.
23
22
/// The *predecessor* operation moves towards values that compare lesser.
24
23
#[ unstable( feature = "step_trait" , reason = "recently redesigned" , issue = "42168" ) ]
25
- #[ const_trait]
26
- pub trait Step : ~const Clone + ~const PartialOrd + Sized {
24
+ pub trait Step : Clone + PartialOrd + Sized {
27
25
/// Returns the number of *successor* steps required to get from `start` to `end`.
28
26
///
29
27
/// Returns `None` if the number of steps would overflow `usize`
@@ -237,8 +235,7 @@ macro_rules! step_integer_impls {
237
235
$(
238
236
#[ allow( unreachable_patterns) ]
239
237
#[ unstable( feature = "step_trait" , reason = "recently redesigned" , issue = "42168" ) ]
240
- #[ rustc_const_unstable( feature = "const_iter" , issue = "92476" ) ]
241
- impl const Step for $u_narrower {
238
+ impl Step for $u_narrower {
242
239
step_identical_methods!( ) ;
243
240
244
241
#[ inline]
@@ -270,8 +267,7 @@ macro_rules! step_integer_impls {
270
267
271
268
#[ allow( unreachable_patterns) ]
272
269
#[ unstable( feature = "step_trait" , reason = "recently redesigned" , issue = "42168" ) ]
273
- #[ rustc_const_unstable( feature = "const_iter" , issue = "92476" ) ]
274
- impl const Step for $i_narrower {
270
+ impl Step for $i_narrower {
275
271
step_identical_methods!( ) ;
276
272
277
273
#[ inline]
@@ -335,8 +331,7 @@ macro_rules! step_integer_impls {
335
331
$(
336
332
#[ allow( unreachable_patterns) ]
337
333
#[ unstable( feature = "step_trait" , reason = "recently redesigned" , issue = "42168" ) ]
338
- #[ rustc_const_unstable( feature = "const_iter" , issue = "92476" ) ]
339
- impl const Step for $u_wider {
334
+ impl Step for $u_wider {
340
335
step_identical_methods!( ) ;
341
336
342
337
#[ inline]
@@ -361,8 +356,7 @@ macro_rules! step_integer_impls {
361
356
362
357
#[ allow( unreachable_patterns) ]
363
358
#[ unstable( feature = "step_trait" , reason = "recently redesigned" , issue = "42168" ) ]
364
- #[ rustc_const_unstable( feature = "const_iter" , issue = "92476" ) ]
365
- impl const Step for $i_wider {
359
+ impl Step for $i_wider {
366
360
step_identical_methods!( ) ;
367
361
368
362
#[ inline]
@@ -412,8 +406,7 @@ step_integer_impls! {
412
406
}
413
407
414
408
#[ unstable( feature = "step_trait" , reason = "recently redesigned" , issue = "42168" ) ]
415
- #[ rustc_const_unstable( feature = "const_iter" , issue = "92476" ) ]
416
- impl const Step for char {
409
+ impl Step for char {
417
410
#[ inline]
418
411
fn steps_between ( & start: & char , & end: & char ) -> Option < usize > {
419
412
let start = start as u32 ;
@@ -431,7 +424,6 @@ impl const Step for char {
431
424
}
432
425
433
426
#[ inline]
434
- #[ rustc_allow_const_fn_unstable( const_try) ]
435
427
fn forward_checked ( start : char , count : usize ) -> Option < char > {
436
428
let start = start as u32 ;
437
429
let mut res = Step :: forward_checked ( start, count) ?;
@@ -448,7 +440,6 @@ impl const Step for char {
448
440
}
449
441
450
442
#[ inline]
451
- #[ rustc_allow_const_fn_unstable( const_try) ]
452
443
fn backward_checked ( start : char , count : usize ) -> Option < char > {
453
444
let start = start as u32 ;
454
445
let mut res = Step :: backward_checked ( start, count) ?;
@@ -524,7 +515,6 @@ macro_rules! range_incl_exact_iter_impl {
524
515
}
525
516
526
517
/// Specialization implementations for `Range`.
527
- #[ const_trait]
528
518
trait RangeIteratorImpl {
529
519
type Item ;
530
520
@@ -539,7 +529,7 @@ trait RangeIteratorImpl {
539
529
fn spec_advance_back_by ( & mut self , n : usize ) -> Result < ( ) , NonZeroUsize > ;
540
530
}
541
531
542
- impl < A : ~ const Step + ~ const Destruct > const RangeIteratorImpl for ops:: Range < A > {
532
+ impl < A : Step > RangeIteratorImpl for ops:: Range < A > {
543
533
type Item = A ;
544
534
545
535
#[ inline]
@@ -625,7 +615,7 @@ impl<A: ~const Step + ~const Destruct> const RangeIteratorImpl for ops::Range<A>
625
615
}
626
616
}
627
617
628
- impl < T : ~ const TrustedStep + ~ const Destruct > const RangeIteratorImpl for ops:: Range < T > {
618
+ impl < T : TrustedStep > RangeIteratorImpl for ops:: Range < T > {
629
619
#[ inline]
630
620
fn spec_next ( & mut self ) -> Option < T > {
631
621
if self . start < self . end {
@@ -713,8 +703,7 @@ impl<T: ~const TrustedStep + ~const Destruct> const RangeIteratorImpl for ops::R
713
703
}
714
704
715
705
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
716
- #[ rustc_const_unstable( feature = "const_iter" , issue = "92476" ) ]
717
- impl < A : ~const Step + ~const Destruct > const Iterator for ops:: Range < A > {
706
+ impl < A : Step > Iterator for ops:: Range < A > {
718
707
type Item = A ;
719
708
720
709
#[ inline]
@@ -824,8 +813,7 @@ range_incl_exact_iter_impl! {
824
813
}
825
814
826
815
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
827
- #[ rustc_const_unstable( feature = "const_iter" , issue = "92476" ) ]
828
- impl < A : ~const Step + ~const Destruct > const DoubleEndedIterator for ops:: Range < A > {
816
+ impl < A : Step > DoubleEndedIterator for ops:: Range < A > {
829
817
#[ inline]
830
818
fn next_back ( & mut self ) -> Option < A > {
831
819
self . spec_next_back ( )
0 commit comments