@@ -1804,20 +1804,24 @@ fn test_range_inclusive_folds() {
18041804#[ test]
18051805fn test_range_size_hint ( ) {
18061806 use core:: usize:: MAX as UMAX ;
1807+ assert_eq ! ( ( 0 ..0usize ) . size_hint( ) , ( 0 , Some ( 0 ) ) ) ;
18071808 assert_eq ! ( ( 0 ..100usize ) . size_hint( ) , ( 100 , Some ( 100 ) ) ) ;
18081809 assert_eq ! ( ( 0 ..UMAX ) . size_hint( ) , ( UMAX , Some ( UMAX ) ) ) ;
18091810
18101811 let umax = u128:: try_from ( UMAX ) . unwrap ( ) ;
1812+ assert_eq ! ( ( 0 ..0u128 ) . size_hint( ) , ( 0 , Some ( 0 ) ) ) ;
18111813 assert_eq ! ( ( 0 ..100u128 ) . size_hint( ) , ( 100 , Some ( 100 ) ) ) ;
18121814 assert_eq ! ( ( 0 ..umax) . size_hint( ) , ( UMAX , Some ( UMAX ) ) ) ;
18131815 assert_eq ! ( ( 0 ..umax + 1 ) . size_hint( ) , ( UMAX , None ) ) ;
18141816
18151817 use core:: isize:: { MAX as IMAX , MIN as IMIN } ;
1818+ assert_eq ! ( ( 0 ..0isize ) . size_hint( ) , ( 0 , Some ( 0 ) ) ) ;
18161819 assert_eq ! ( ( -100 ..100isize ) . size_hint( ) , ( 200 , Some ( 200 ) ) ) ;
18171820 assert_eq ! ( ( IMIN ..IMAX ) . size_hint( ) , ( UMAX , Some ( UMAX ) ) ) ;
18181821
18191822 let imin = i128:: try_from ( IMIN ) . unwrap ( ) ;
18201823 let imax = i128:: try_from ( IMAX ) . unwrap ( ) ;
1824+ assert_eq ! ( ( 0 ..0i128 ) . size_hint( ) , ( 0 , Some ( 0 ) ) ) ;
18211825 assert_eq ! ( ( -100 ..100i128 ) . size_hint( ) , ( 200 , Some ( 200 ) ) ) ;
18221826 assert_eq ! ( ( imin..imax) . size_hint( ) , ( UMAX , Some ( UMAX ) ) ) ;
18231827 assert_eq ! ( ( imin..imax + 1 ) . size_hint( ) , ( UMAX , None ) ) ;
@@ -1826,23 +1830,31 @@ fn test_range_size_hint() {
18261830#[ test]
18271831fn test_range_inclusive_size_hint ( ) {
18281832 use core:: usize:: MAX as UMAX ;
1833+ assert_eq ! ( ( 1 ..=0usize ) . size_hint( ) , ( 0 , Some ( 0 ) ) ) ;
1834+ assert_eq ! ( ( 0 ..=0usize ) . size_hint( ) , ( 1 , Some ( 1 ) ) ) ;
18291835 assert_eq ! ( ( 0 ..=100usize ) . size_hint( ) , ( 101 , Some ( 101 ) ) ) ;
18301836 assert_eq ! ( ( 0 ..=UMAX - 1 ) . size_hint( ) , ( UMAX , Some ( UMAX ) ) ) ;
18311837 assert_eq ! ( ( 0 ..=UMAX ) . size_hint( ) , ( UMAX , None ) ) ;
18321838
18331839 let umax = u128:: try_from ( UMAX ) . unwrap ( ) ;
1840+ assert_eq ! ( ( 1 ..=0u128 ) . size_hint( ) , ( 0 , Some ( 0 ) ) ) ;
1841+ assert_eq ! ( ( 0 ..=0u128 ) . size_hint( ) , ( 1 , Some ( 1 ) ) ) ;
18341842 assert_eq ! ( ( 0 ..=100u128 ) . size_hint( ) , ( 101 , Some ( 101 ) ) ) ;
18351843 assert_eq ! ( ( 0 ..=umax - 1 ) . size_hint( ) , ( UMAX , Some ( UMAX ) ) ) ;
18361844 assert_eq ! ( ( 0 ..=umax) . size_hint( ) , ( UMAX , None ) ) ;
18371845 assert_eq ! ( ( 0 ..=umax + 1 ) . size_hint( ) , ( UMAX , None ) ) ;
18381846
18391847 use core:: isize:: { MAX as IMAX , MIN as IMIN } ;
1848+ assert_eq ! ( ( 0 ..=-1isize ) . size_hint( ) , ( 0 , Some ( 0 ) ) ) ;
1849+ assert_eq ! ( ( 0 ..=0isize ) . size_hint( ) , ( 1 , Some ( 1 ) ) ) ;
18401850 assert_eq ! ( ( -100 ..=100isize ) . size_hint( ) , ( 201 , Some ( 201 ) ) ) ;
18411851 assert_eq ! ( ( IMIN ..=IMAX - 1 ) . size_hint( ) , ( UMAX , Some ( UMAX ) ) ) ;
18421852 assert_eq ! ( ( IMIN ..=IMAX ) . size_hint( ) , ( UMAX , None ) ) ;
18431853
18441854 let imin = i128:: try_from ( IMIN ) . unwrap ( ) ;
18451855 let imax = i128:: try_from ( IMAX ) . unwrap ( ) ;
1856+ assert_eq ! ( ( 0 ..=-1i128 ) . size_hint( ) , ( 0 , Some ( 0 ) ) ) ;
1857+ assert_eq ! ( ( 0 ..=0i128 ) . size_hint( ) , ( 1 , Some ( 1 ) ) ) ;
18461858 assert_eq ! ( ( -100 ..=100i128 ) . size_hint( ) , ( 201 , Some ( 201 ) ) ) ;
18471859 assert_eq ! ( ( imin..=imax - 1 ) . size_hint( ) , ( UMAX , Some ( UMAX ) ) ) ;
18481860 assert_eq ! ( ( imin..=imax) . size_hint( ) , ( UMAX , None ) ) ;
0 commit comments