Chromium Code Reviews| Index: utils/pub/solver/backtracking_solver.dart |
| diff --git a/utils/pub/solver/backtracking_solver.dart b/utils/pub/solver/backtracking_solver.dart |
| index 0a583e2f6077cac765d207b3bf92181ea04d19de..94487920b6486d06026319334dd852335471a97d 100644 |
| --- a/utils/pub/solver/backtracking_solver.dart |
| +++ b/utils/pub/solver/backtracking_solver.dart |
| @@ -74,7 +74,7 @@ class BacktrackingVersionSolver extends VersionSolver { |
| /// The number of possible solutions that have been attempted. |
| int get attemptedSolutions => _attemptedSolutions; |
| - var _attemptedSolutions = 0; |
| + var _attemptedSolutions = 1; |
| BacktrackingVersionSolver(SourceRegistry sources, Package root, |
| LockFile lockFile, List<String> useLatest) |
| @@ -122,12 +122,13 @@ class BacktrackingVersionSolver extends VersionSolver { |
| /// previous selections, and so on. If there is nothing left to backtrack to, |
| /// completes to the last failure that occurred. |
| Future<List<PackageId>> _traverseSolution() { |
| - _attemptedSolutions++; |
| - |
| return new Traverser(this).traverse().catchError((error) { |
| if (error is! SolveFailure) throw error; |
| - if (_backtrack(error)) return _traverseSolution(); |
| + if (_backtrack(error)) { |
| + _attemptedSolutions++; |
|
nweiz
2013/04/16 23:52:32
Why is this moving in here? Won't this just decrem
Bob Nystrom
2013/04/17 17:28:44
This handles a weird little corner case. If the ro
|
| + return _traverseSolution(); |
| + } |
| // All out of solutions, so fail. |
| throw error; |
| @@ -307,6 +308,8 @@ class Traverser { |
| _visited.add(id); |
| return _solver.cache.getPubspec(id).then((pubspec) { |
| + validateSdkConstraint(pubspec); |
| + |
| var refs = pubspec.dependencies.toList(); |
| // Include dev dependencies of the root package. |