Index: sdk/lib/_internal/pub/lib/src/solver/version_queue.dart |
diff --git a/sdk/lib/_internal/pub/lib/src/solver/version_queue.dart b/sdk/lib/_internal/pub/lib/src/solver/version_queue.dart |
deleted file mode 100644 |
index a6723aac50c3d6d18593f2a2ae1caab72dd98520..0000000000000000000000000000000000000000 |
--- a/sdk/lib/_internal/pub/lib/src/solver/version_queue.dart |
+++ /dev/null |
@@ -1,105 +0,0 @@ |
-// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
-// 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. |
- |
-library pub.solver.version_queue; |
- |
-import 'dart:async'; |
-import 'dart:collection' show Queue; |
- |
-import '../package.dart'; |
- |
-/// A function that asynchronously returns a sequence of package IDs. |
-typedef Future<Iterable<PackageId>> PackageIdGenerator(); |
- |
-/// A prioritized, asynchronous queue of the possible versions that can be |
-/// selected for one package. |
-/// |
-/// If there is a locked version, that comes first, followed by other versions |
-/// in descending order. This avoids requesting the list of versions until |
-/// needed (i.e. after any locked version has been consumed) to avoid unneeded |
-/// network requests. |
-class VersionQueue { |
- /// The set of allowed versions that match [_constraint]. |
- /// |
- /// If [_locked] is not `null`, this will initially be `null` until we |
- /// advance past the locked version. |
- Queue<PackageId> _allowed; |
- |
- /// The callback that will generate the sequence of packages. This will be |
- /// called as lazily as possible. |
- final PackageIdGenerator _allowedGenerator; |
- |
- /// The currently locked version of the package, or `null` if there is none, |
- /// or we have advanced past it. |
- PackageId _locked; |
- |
- /// Gets the currently selected version. |
- PackageId get current { |
- if (_locked != null) return _locked; |
- return _allowed.first; |
- } |
- |
- /// Whether the currently selected version has been responsible for a solve |
- /// failure, or depends on a package that has. |
- /// |
- /// The solver uses this to determine which packages to backtrack to after a |
- /// failure occurs. Any selected package that did *not* cause the failure can |
- /// be skipped by the backtracker. |
- bool get hasFailed => _hasFailed; |
- bool _hasFailed = false; |
- |
- /// Creates a new [VersionQueue] queue for starting with the optional |
- /// [locked] package followed by the results of calling [allowedGenerator]. |
- /// |
- /// This is asynchronous so that [current] can always be accessed |
- /// synchronously. If there is no locked version, we need to get the list of |
- /// versions asynchronously before we can determine what the first one is. |
- static Future<VersionQueue> create(PackageId locked, |
- PackageIdGenerator allowedGenerator) async { |
- var versions = new VersionQueue._(locked, allowedGenerator); |
- |
- // If there isn't a locked version, it needs to be calculated before we can |
- // return. |
- if (locked == null) await versions._calculateAllowed(); |
- return versions; |
- } |
- |
- VersionQueue._(this._locked, this._allowedGenerator); |
- |
- /// Tries to advance to the next possible version. |
- /// |
- /// Returns `true` if it moved to a new version (which can be accessed from |
- /// [current]. Returns `false` if there are no more versions. |
- Future<bool> advance() async { |
- // Any failure was the fault of the previous version, not necessarily the |
- // new one. |
- _hasFailed = false; |
- |
- // If we have a locked version, consume it first. |
- if (_locked != null) { |
- // Advancing past the locked version, so need to load the others now |
- // so that [current] is available. |
- await _calculateAllowed(); |
- _locked = null; |
- } else { |
- // Move to the next allowed version. |
- _allowed.removeFirst(); |
- } |
- |
- return _allowed.isNotEmpty; |
- } |
- |
- /// Marks the selected version as being directly or indirectly responsible |
- /// for a solve failure. |
- void fail() { |
- _hasFailed = true; |
- } |
- |
- /// Determines the list of allowed versions matching its constraint and places |
- /// them in [_allowed]. |
- Future _calculateAllowed() async { |
- var allowed = await _allowedGenerator(); |
- _allowed = new Queue<PackageId>.from(allowed); |
- } |
-} |