File tree Expand file tree Collapse file tree 2 files changed +16
-0
lines changed Expand file tree Collapse file tree 2 files changed +16
-0
lines changed Original file line number Diff line number Diff line change @@ -12,6 +12,9 @@ import struct PackageDescription.Version
12
12
13
13
/// An abstract definition for a set of versions.
14
14
public enum VersionSetSpecifier : Equatable {
15
+ /// The universal set.
16
+ case any
17
+
15
18
/// The empty set.
16
19
case empty
17
20
@@ -21,6 +24,10 @@ public enum VersionSetSpecifier: Equatable {
21
24
/// Compute the intersection of two set specifiers.
22
25
public func intersection( _ rhs: VersionSetSpecifier ) -> VersionSetSpecifier {
23
26
switch ( self , rhs) {
27
+ case ( . any, _) :
28
+ return rhs
29
+ case ( _, . any) :
30
+ return self
24
31
case ( . empty, _) :
25
32
return . empty
26
33
case ( _, . empty) :
@@ -46,11 +53,17 @@ public enum VersionSetSpecifier: Equatable {
46
53
return false
47
54
case . range( let range) :
48
55
return range. contains ( version)
56
+ case . any:
57
+ return true
49
58
}
50
59
}
51
60
}
52
61
public func == ( _ lhs: VersionSetSpecifier , _ rhs: VersionSetSpecifier ) -> Bool {
53
62
switch ( lhs, rhs) {
63
+ case ( . any, . any) :
64
+ return true
65
+ case ( . any, _) :
66
+ return false
54
67
case ( . empty, . empty) :
55
68
return true
56
69
case ( . empty, _) :
Original file line number Diff line number Diff line change @@ -120,6 +120,9 @@ class DependencyResolverTests: XCTestCase {
120
120
XCTAssert ( v1Range. intersection ( v2_0_0Range) == . empty)
121
121
XCTAssert ( v1Range. intersection ( v1_1Range) == v1_1Range)
122
122
XCTAssert ( v1_to_3Range. intersection ( v2_to_4Range) == . range( " 2.0.0 " ..< " 3.0.0 " ) )
123
+ XCTAssert ( v1Range. intersection ( . any) == v1Range)
124
+ XCTAssert ( VersionSetSpecifier . empty. intersection ( . any) == . empty)
125
+ XCTAssert ( VersionSetSpecifier . any. intersection ( . any) == . any)
123
126
}
124
127
125
128
func testVersionAssignment( ) {
You can’t perform that action at this time.
0 commit comments