anchor.diff:            // If it fails for any reason, just treat that as no versions. This
             // will sort this reference higher so that we can traverse into it
             // and report the error more properly.
  +          log.solver("Could not get versions for $ref:\n$error\n\n"
  +              "${getAttachedStackTrace(error)}");
             return new Pair<PackageRef, int>(ref, 0);
           });
         }
  
positive.code:   /// Returns a string describing the dependency chain if it does, or `null` if
    /// there is no dependency.
    String _getDependencyPath(PackageId depender, String dependent) {
      var visited = new Set<String>();
      var resultPath;
      var currentPath = '${depender.name}';
  
      walkDeps(PackageId package) {
        if (visited.contains(package.name)) return false;
        visited.add(package.name);
  
        var pubspec = cache.getCachedPubspec(package);
        if (pubspec == null) return false;
  
        for (var dep in pubspec.dependencies) {
          var previousPath = currentPath;
          currentPath = '$currentPath -> ${dep.name}';
  
          if (dep.name == dependent) {
            resultPath = currentPath;
            return true;
          }
  
          var selected = getSelected(dep.name);
          // Ignore unselected dependencies. We haven't traversed into them yet,
          // so they can't affect backjumping.
          if (selected == null) continue;
  
          if (walkDeps(selected)) return true;
  
          currentPath = previousPath;
        }
  
        return false;
      }
  
      return walkDeps(depender) ? resultPath : null;
    }
  
    /// Logs [message] in the context of the current selected packages. If
  
negative.code:     // Move onto the next package if we've traversed all of these references.
      if (refs.isEmpty) return _traversePackage();
  
      // Pump the event loop to flatten the stack trace and workaround #9583.
      // If that bug is fixed, this can be Future.sync() instead.
      return new Future(() {
        var ref = refs.removeFirst();
  
  