Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1170)

Side by Side Diff: lib/src/version_range.dart

Issue 687973004: Add VersionRange.hashCode. (Closed) Base URL: git@github.com:dart-lang/pub_semver@master
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « CHANGELOG.md ('k') | pubspec.yaml » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 library pub_semver.src.version_range; 5 library pub_semver.src.version_range;
6 6
7 import 'version.dart'; 7 import 'version.dart';
8 import 'version_constraint.dart'; 8 import 'version_constraint.dart';
9 9
10 /// Constrains versions to a fall within a given range. 10 /// Constrains versions to a fall within a given range.
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 59
60 bool operator ==(other) { 60 bool operator ==(other) {
61 if (other is! VersionRange) return false; 61 if (other is! VersionRange) return false;
62 62
63 return min == other.min && 63 return min == other.min &&
64 max == other.max && 64 max == other.max &&
65 includeMin == other.includeMin && 65 includeMin == other.includeMin &&
66 includeMax == other.includeMax; 66 includeMax == other.includeMax;
67 } 67 }
68 68
69 int get hashCode => min.hashCode ^ (max.hashCode * 3) ^
70 (includeMin.hashCode * 5) ^ (includeMax.hashCode * 7);
Bob Nystrom 2014/10/30 16:45:24 Idle thought: these multiplications can push the r
71
69 bool get isEmpty => false; 72 bool get isEmpty => false;
70 73
71 bool get isAny => min == null && max == null; 74 bool get isAny => min == null && max == null;
72 75
73 /// Tests if [other] falls within this version range. 76 /// Tests if [other] falls within this version range.
74 bool allows(Version other) { 77 bool allows(Version other) {
75 if (min != null) { 78 if (min != null) {
76 if (other < min) return false; 79 if (other < min) return false;
77 if (!includeMin && other == min) return false; 80 if (!includeMin && other == min) return false;
78 } 81 }
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 if (max != null) { 173 if (max != null) {
171 if (min != null) buffer.write(' '); 174 if (min != null) buffer.write(' ');
172 buffer.write(includeMax ? '<=' : '<'); 175 buffer.write(includeMax ? '<=' : '<');
173 buffer.write(max); 176 buffer.write(max);
174 } 177 }
175 178
176 if (min == null && max == null) buffer.write('any'); 179 if (min == null && max == null) buffer.write('any');
177 return buffer.toString(); 180 return buffer.toString();
178 } 181 }
179 } 182 }
OLDNEW
« no previous file with comments | « CHANGELOG.md ('k') | pubspec.yaml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698