OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 import 'version.dart'; | 5 import 'version.dart'; |
6 import 'version_constraint.dart'; | 6 import 'version_constraint.dart'; |
7 import 'version_union.dart'; | 7 import 'version_union.dart'; |
8 | 8 |
9 /// Constrains versions to a fall within a given range. | 9 /// Constrains versions to a fall within a given range. |
10 /// | 10 /// |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
117 bool _equalsWithoutPreRelease(Version version1, Version version2) => | 117 bool _equalsWithoutPreRelease(Version version1, Version version2) => |
118 version1.major == version2.major && | 118 version1.major == version2.major && |
119 version1.minor == version2.minor && | 119 version1.minor == version2.minor && |
120 version1.patch == version2.patch; | 120 version1.patch == version2.patch; |
121 | 121 |
122 bool allowsAll(VersionConstraint other) { | 122 bool allowsAll(VersionConstraint other) { |
123 if (other.isEmpty) return true; | 123 if (other.isEmpty) return true; |
124 if (other is Version) return allows(other); | 124 if (other is Version) return allows(other); |
125 | 125 |
126 if (other is VersionUnion) { | 126 if (other is VersionUnion) { |
127 return other.constraints.every((constraint) => allowsAll(constraint)); | 127 return other.ranges.every((constraint) => allowsAll(constraint)); |
128 } | 128 } |
129 | 129 |
130 if (other is VersionRange) { | 130 if (other is VersionRange) { |
131 if (min != null) { | 131 if (min != null) { |
132 if (other.min == null) return false; | 132 if (other.min == null) return false; |
133 if (min > other.min) return false; | 133 if (min > other.min) return false; |
134 if (min == other.min && !includeMin && other.includeMin) return false; | 134 if (min == other.min && !includeMin && other.includeMin) return false; |
135 } | 135 } |
136 | 136 |
137 if (max != null) { | 137 if (max != null) { |
138 if (other.max == null) return false; | 138 if (other.max == null) return false; |
139 if (max < other.max) return false; | 139 if (max < other.max) return false; |
140 if (max == other.max && !includeMax && other.includeMax) return false; | 140 if (max == other.max && !includeMax && other.includeMax) return false; |
141 } | 141 } |
142 | 142 |
143 return true; | 143 return true; |
144 } | 144 } |
145 | 145 |
146 throw new ArgumentError('Unknown VersionConstraint type $other.'); | 146 throw new ArgumentError('Unknown VersionConstraint type $other.'); |
147 } | 147 } |
148 | 148 |
149 bool allowsAny(VersionConstraint other) { | 149 bool allowsAny(VersionConstraint other) { |
150 if (other.isEmpty) return false; | 150 if (other.isEmpty) return false; |
151 if (other is Version) return allows(other); | 151 if (other is Version) return allows(other); |
152 | 152 |
153 if (other is VersionUnion) { | 153 if (other is VersionUnion) { |
154 return other.constraints.any((constraint) => allowsAny(constraint)); | 154 return other.ranges.any((constraint) => allowsAny(constraint)); |
155 } | 155 } |
156 | 156 |
157 if (other is VersionRange) { | 157 if (other is VersionRange) { |
158 // If neither range has a minimum, they'll overlap at some point. | 158 // If neither range has a minimum, they'll overlap at some point. |
159 // | 159 // |
160 // ... this ] | 160 // ... this ] |
161 // ... other ] | 161 // ... other ] |
162 if (min == null && other.min == null) return true; | 162 if (min == null && other.min == null) return true; |
163 | 163 |
164 // If this range has a lower minimum than the other range, it overlaps as | 164 // If this range has a lower minimum than the other range, it overlaps as |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
326 if (max != null) { | 326 if (max != null) { |
327 if (min != null) buffer.write(' '); | 327 if (min != null) buffer.write(' '); |
328 buffer.write(includeMax ? '<=' : '<'); | 328 buffer.write(includeMax ? '<=' : '<'); |
329 buffer.write(max); | 329 buffer.write(max); |
330 } | 330 } |
331 | 331 |
332 if (min == null && max == null) buffer.write('any'); | 332 if (min == null && max == null) buffer.write('any'); |
333 return buffer.toString(); | 333 return buffer.toString(); |
334 } | 334 } |
335 } | 335 } |
OLD | NEW |