| Index: utils/pub/package.dart
|
| diff --git a/utils/pub/package.dart b/utils/pub/package.dart
|
| index d3d9819088ce9d30a76baab19871991b658034f0..1e2d993c32055ab78949a547b048a1ecf5d16579 100644
|
| --- a/utils/pub/package.dart
|
| +++ b/utils/pub/package.dart
|
| @@ -103,6 +103,13 @@ class PackageId implements Comparable<PackageId> {
|
|
|
| PackageId(this.name, this.source, this.version, this.description);
|
|
|
| + /// Creates an ID for the given root package.
|
| + PackageId.root(Package package)
|
| + : name = package.name,
|
| + source = null,
|
| + version = package.version,
|
| + description = package.name;
|
| +
|
| /// Whether this ID identifies the root package.
|
| bool get isRoot => source == null;
|
|
|
| @@ -143,6 +150,17 @@ class PackageId implements Comparable<PackageId> {
|
|
|
| /// Returns a future that completes to the resovled [PackageId] for this id.
|
| Future<PackageId> get resolved => source.resolveId(this);
|
| +
|
| + /// Returns a [PackageRef] that references this package and constrains its
|
| + /// version to exactly match [version].
|
| + PackageRef toRef() {
|
| + return new PackageRef(name, source, version, description);
|
| + }
|
| +
|
| + /// Returns `true` if this id's description matches [other]'s.
|
| + bool descriptionEquals(PackageRef other) {
|
| + return source.descriptionsEqual(description, other.description);
|
| + }
|
| }
|
|
|
| /// A reference to a package. Unlike a [PackageId], a PackageRef may not
|
| @@ -165,6 +183,7 @@ class PackageRef {
|
|
|
| PackageRef(this.name, this.source, this.constraint, this.description);
|
|
|
| + // TODO(rnystrom): Remove this if the old version solver is removed.
|
| /// Creates a reference to the given root package.
|
| PackageRef.root(Package package)
|
| : name = package.name,
|
| @@ -184,6 +203,11 @@ class PackageRef {
|
| /// concrete version.
|
| PackageId atVersion(Version version) =>
|
| new PackageId(name, source, version, description);
|
| +
|
| + /// Returns `true` if this reference's description matches [other]'s.
|
| + bool descriptionEquals(PackageRef other) {
|
| + return source.descriptionsEqual(description, other.description);
|
| + }
|
| }
|
|
|
| class PubspecNotFoundException implements Exception {
|
|
|