@@ -741,14 +741,29 @@ show(io::IO, r::AbstractRange) = print(io, repr(first(r)), ':', repr(step(r)), '
741
741
show (io:: IO , r:: UnitRange ) = print (io, repr (first (r)), ' :' , repr (last (r)))
742
742
show (io:: IO , r:: OneTo ) = print (io, " Base.OneTo(" , r. stop, " )" )
743
743
744
- == (r:: T , s:: T ) where {T<: AbstractRange } =
745
- (isempty (r) & isempty (s)) | ((first (r) == first (s)) & (step (r) == step (s)) & (last (r) == last (s)))
746
- == (r:: OrdinalRange , s:: OrdinalRange ) =
747
- (isempty (r) & isempty (s)) | ((first (r) == first (s)) & (step (r) == step (s)) & (last (r) == last (s)))
744
+ function == (r:: T , s:: T ) where {T<: AbstractRange }
745
+ isempty (r) && return isempty (s)
746
+ _has_length_one (r) && return _has_length_one (s) & (first (r) == first (s))
747
+ (first (r) == first (s)) & (step (r) == step (s)) & (last (r) == last (s))
748
+ end
749
+
750
+ function == (r:: OrdinalRange , s:: OrdinalRange )
751
+ isempty (r) && return isempty (s)
752
+ _has_length_one (r) && return _has_length_one (s) & (first (r) == first (s))
753
+ (first (r) == first (s)) & (step (r) == step (s)) & (last (r) == last (s))
754
+ end
755
+
748
756
== (r:: T , s:: T ) where {T<: Union{StepRangeLen,LinRange} } =
749
757
(isempty (r) & isempty (s)) | ((first (r) == first (s)) & (length (r) == length (s)) & (last (r) == last (s)))
750
- == (r:: Union{StepRange{T},StepRangeLen{T,T}} , s:: Union{StepRange{T},StepRangeLen{T,T}} ) where {T} =
751
- (isempty (r) & isempty (s)) | ((first (r) == first (s)) & (step (r) == step (s)) & (last (r) == last (s)))
758
+
759
+ function == (r:: Union{StepRange{T},StepRangeLen{T,T}} , s:: Union{StepRange{T},StepRangeLen{T,T}} ) where {T}
760
+ isempty (r) && return isempty (s)
761
+ _has_length_one (r) && return _has_length_one (s) & (first (r) == first (s))
762
+ (first (r) == first (s)) & (step (r) == step (s)) & (last (r) == last (s))
763
+ end
764
+
765
+ _has_length_one (r:: OrdinalRange ) = first (r) == last (r)
766
+ _has_length_one (r:: AbstractRange ) = isone (length (r))
752
767
753
768
function == (r:: AbstractRange , s:: AbstractRange )
754
769
lr = length (r)
0 commit comments