Index: utils/pub/version.dart |
diff --git a/utils/pub/version.dart b/utils/pub/version.dart |
index 50174cc40cb6f676821ea71c7f9778d1746b341e..567a7a7117434e6fbeca619036740dfab9e264fb 100644 |
--- a/utils/pub/version.dart |
+++ b/utils/pub/version.dart |
@@ -2,20 +2,18 @@ |
// for details. All rights reserved. Use of this source code is governed by a |
// BSD-style license that can be found in the LICENSE file. |
-/** |
- * Handles version numbers, following the [Semantic Versioning][semver] spec. |
- * |
- * [semver]: http://semver.org/ |
- */ |
+/// Handles version numbers, following the [Semantic Versioning][semver] spec. |
+/// |
+/// [semver]: http://semver.org/ |
library version; |
import 'dart:math'; |
import 'utils.dart'; |
-/** A parsed semantic version number. */ |
+/// A parsed semantic version number. |
class Version implements Comparable, VersionConstraint { |
- /** No released version: i.e. "0.0.0". */ |
+ /// No released version: i.e. "0.0.0". |
static Version get none => new Version(0, 0, 0); |
static final _PARSE_REGEX = new RegExp( |
@@ -25,22 +23,22 @@ class Version implements Comparable, VersionConstraint { |
r'(\+([0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*))?' // Build. |
r'$'); // Consume entire string. |
- /** The major version number: "1" in "1.2.3". */ |
+ /// The major version number: "1" in "1.2.3". |
final int major; |
- /** The minor version number: "2" in "1.2.3". */ |
+ /// The minor version number: "2" in "1.2.3". |
final int minor; |
- /** The patch version number: "3" in "1.2.3". */ |
+ /// The patch version number: "3" in "1.2.3". |
final int patch; |
- /** The pre-release identifier: "foo" in "1.2.3-foo". May be `null`. */ |
+ /// The pre-release identifier: "foo" in "1.2.3-foo". May be `null`. |
final String preRelease; |
- /** The build identifier: "foo" in "1.2.3+foo". May be `null`. */ |
+ /// The build identifier: "foo" in "1.2.3+foo". May be `null`. |
final String build; |
- /** Creates a new [Version] object. */ |
+ /// Creates a new [Version] object. |
Version(this.major, this.minor, this.patch, {String pre, this.build}) |
: preRelease = pre { |
if (major < 0) throw new ArgumentError( |
@@ -51,9 +49,7 @@ class Version implements Comparable, VersionConstraint { |
'Patch version must be non-negative.'); |
} |
- /** |
- * Creates a new [Version] by parsing [text]. |
- */ |
+ /// Creates a new [Version] by parsing [text]. |
factory Version.parse(String text) { |
final match = _PARSE_REGEX.firstMatch(text); |
if (match == null) { |
@@ -86,7 +82,7 @@ class Version implements Comparable, VersionConstraint { |
bool get isEmpty => false; |
- /** Tests if [other] matches this version exactly. */ |
+ /// Tests if [other] matches this version exactly. |
bool allows(Version other) => this == other; |
VersionConstraint intersect(VersionConstraint other) { |
@@ -136,11 +132,9 @@ class Version implements Comparable, VersionConstraint { |
return buffer.toString(); |
} |
- /** |
- * Compares the string part of two versions. This is used for the pre-release |
- * and build version parts. This follows Rule 12. of the Semantic Versioning |
- * spec. |
- */ |
+ /// Compares the string part of two versions. This is used for the pre-release |
+ /// and build version parts. This follows Rule 12. of the Semantic Versioning |
+ /// spec. |
int _compareStrings(String a, String b) { |
var aParts = _splitParts(a); |
var bParts = _splitParts(b); |
@@ -175,10 +169,8 @@ class Version implements Comparable, VersionConstraint { |
} |
} |
- /** |
- * Splits a string of dot-delimited identifiers into their component parts. |
- * Identifiers that are numeric are converted to numbers. |
- */ |
+ /// Splits a string of dot-delimited identifiers into their component parts. |
+ /// Identifiers that are numeric are converted to numbers. |
List _splitParts(String text) { |
return text.split('.').map((part) { |
try { |
@@ -191,33 +183,27 @@ class Version implements Comparable, VersionConstraint { |
} |
} |
-/** |
- * A [VersionConstraint] is a predicate that can determine whether a given |
- * version is valid or not. For example, a ">= 2.0.0" constraint allows any |
- * version that is "2.0.0" or greater. Version objects themselves implement |
- * this to match a specific version. |
- */ |
+/// A [VersionConstraint] is a predicate that can determine whether a given |
+/// version is valid or not. For example, a ">= 2.0.0" constraint allows any |
+/// version that is "2.0.0" or greater. Version objects themselves implement |
+/// this to match a specific version. |
abstract class VersionConstraint { |
- /** |
- * A [VersionConstraint] that allows no versions: i.e. the empty set. |
- */ |
+ /// A [VersionConstraint] that allows no versions: i.e. the empty set. |
factory VersionConstraint.empty() => const _EmptyVersion(); |
- /** |
- * Parses a version constraint. This string is a space-separated series of |
- * version parts. Each part can be one of: |
- * |
- * * A version string like `1.2.3`. In other words, anything that can be |
- * parsed by [Version.parse()]. |
- * * A comparison operator (`<`, `>`, `<=`, or `>=`) followed by a version |
- * string. There cannot be a space between the operator and the version. |
- * |
- * Examples: |
- * |
- * 1.2.3-alpha |
- * <=5.1.4 |
- * >2.0.4 <=2.4.6 |
- */ |
+ /// Parses a version constraint. This string is a space-separated series of |
+ /// version parts. Each part can be one of: |
+ /// |
+ /// * A version string like `1.2.3`. In other words, anything that can be |
+ /// parsed by [Version.parse()]. |
+ /// * A comparison operator (`<`, `>`, `<=`, or `>=`) followed by a version |
+ /// string. There cannot be a space between the operator and the version. |
+ /// |
+ /// Examples: |
+ /// |
+ /// 1.2.3-alpha |
+ /// <=5.1.4 |
+ /// >2.0.4 <=2.4.6 |
factory VersionConstraint.parse(String text) { |
if (text.trim() == '') { |
throw new FormatException('Cannot parse an empty string.'); |
@@ -232,12 +218,10 @@ abstract class VersionConstraint { |
return new VersionConstraint.intersection(constraints); |
} |
- /** |
- * Creates a new version constraint that is the intersection of [constraints]. |
- * It will only allow versions that all of those constraints allow. If |
- * constraints is empty, then it returns a VersionConstraint that allows all |
- * versions. |
- */ |
+ /// Creates a new version constraint that is the intersection of |
+ /// [constraints]. It will only allow versions that all of those constraints |
+ /// allow. If constraints is empty, then it returns a VersionConstraint that |
+ /// allows all versions. |
factory VersionConstraint.intersection( |
Collection<VersionConstraint> constraints) { |
var constraint = new VersionRange(); |
@@ -247,20 +231,14 @@ abstract class VersionConstraint { |
return constraint; |
} |
- /** |
- * Returns `true` if this constraint allows no versions. |
- */ |
+ /// Returns `true` if this constraint allows no versions. |
bool get isEmpty; |
- /** |
- * Returns `true` if this constraint allows [version]. |
- */ |
+ /// Returns `true` if this constraint allows [version]. |
bool allows(Version version); |
- /** |
- * Creates a new [VersionConstraint] that only allows [Version]s allowed by |
- * both this and [other]. |
- */ |
+ /// Creates a new [VersionConstraint] that only allows [Version]s allowed by |
+ /// both this and [other]. |
VersionConstraint intersect(VersionConstraint other); |
static VersionConstraint _parseSingleConstraint(String text) { |
@@ -290,12 +268,10 @@ abstract class VersionConstraint { |
} |
} |
-/** |
- * Constrains versions to a fall within a given range. If there is a minimum, |
- * then this only allows versions that are at that minimum or greater. If there |
- * is a maximum, then only versions less than that are allowed. In other words, |
- * this allows `>= min, < max`. |
- */ |
+/// Constrains versions to a fall within a given range. If there is a minimum, |
+/// then this only allows versions that are at that minimum or greater. If there |
+/// is a maximum, then only versions less than that are allowed. In other words, |
+/// this allows `>= min, < max`. |
class VersionRange implements VersionConstraint { |
final Version min; |
final Version max; |
@@ -321,7 +297,7 @@ class VersionRange implements VersionConstraint { |
bool get isEmpty => false; |
- /** Tests if [other] matches falls within this version range. */ |
+ /// Tests if [other] matches falls within this version range. |
bool allows(Version other) { |
if (min != null && other < min) return false; |
if (min != null && !includeMin && other == min) return false; |