Skip to content

Commit

Permalink
Merge pull request #29 from YOCKOW/development
Browse files Browse the repository at this point in the history
Avoid operator collisions: << and >>.
  • Loading branch information
YOCKOW committed Nov 8, 2020
2 parents a8ac561 + 9ae2906 commit 82be3d7
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 10 deletions.
11 changes: 5 additions & 6 deletions Sources/Ranges/AnyRange.swift
Expand Up @@ -161,13 +161,12 @@ extension AnyRange {
}
}

infix operator <<: ComparisonPrecedence
infix operator >>: ComparisonPrecedence
extension AnyRange {
internal static func <<(lhs: AnyRange, rhs: AnyRange) -> Bool {
return lhs < rhs && !lhs.overlaps(rhs)
internal func _isLessThanAndApartFrom(_ other: AnyRange) -> Bool {
return self < other && !self.overlaps(other)
}
internal static func >>(lhs: AnyRange, rhs: AnyRange) -> Bool {
return rhs << lhs

internal func _isGreaterThanAndApartFrom(_ other: AnyRange) -> Bool {
return other._isLessThanAndApartFrom(self)
}
}
10 changes: 6 additions & 4 deletions Sources/Ranges/RangeDictionary.swift
Expand Up @@ -46,7 +46,9 @@ public struct RangeDictionary<Bound, Value> where Bound: Comparable {
default:
for ii in 0..<(nn - 1) {
let (range0, range1) = self._twoRanges(from: ii)
guard !range0.isEmpty && !range1.isEmpty && range0 << range1 else { return false }
guard !range0.isEmpty && !range1.isEmpty && range0._isLessThanAndApartFrom(range1) else {
return false
}
}
return true
}
Expand Down Expand Up @@ -121,14 +123,14 @@ public struct RangeDictionary<Bound, Value> where Bound: Comparable {
if self._rangesAndValues.isEmpty {
return .insertable(0)
}
if range << self._rangesAndValues.first!.range {
if range._isLessThanAndApartFrom(self._rangesAndValues.first!.range) {
return .insertable(0)
}
if range.overlaps(self._rangesAndValues.first!.range) {
overlap_first = 0
break determineFirstIndexOfOverlap
}
if self._rangesAndValues.last!.range << range {
if self._rangesAndValues.last!.range._isLessThanAndApartFrom(range) {
return .insertable(numberOfPairs)
}
assert(numberOfPairs > 1, "Must be already handled if the number of pairs is less than 2.")
Expand All @@ -139,7 +141,7 @@ public struct RangeDictionary<Bound, Value> where Bound: Comparable {
overlap_first = ii + 1
break determineFirstIndexOfOverlap
}
if range0 << range && range << range1 {
if range0._isLessThanAndApartFrom(range) && range._isLessThanAndApartFrom(range1) {
return .insertable(ii + 1)
}
}
Expand Down

0 comments on commit 82be3d7

Please sign in to comment.