anchor.diff:  
     Map<String, _Package> _allDeps = {};
   
  -  List<String> _alteredDepsComments = [];
  -  List<String> _unresolvedDepsComments = [];
  -  List<String> _ignoredDepsComments = [];
  +  final _alteredDepsComments = new Set<String>();
  +  final _unresolvedDepsComments = new Set<String>();
  +  final _ignoredDepsComments = new Set<String>();
   
     BowerFetcher(this._packagesDir, this._packageSpecFileName);
   
  
positive.code:     // Resolve the branch.
      if (branch == null) {
        // Default to the latest stable.
        branch = null;
      } else {
        if (_PACKAGE_BRANCH_SIMPLE_REGEXP.matchAsPrefix(branch) == null) {
          // This is an extended semver version or version range.
          if (SparkFlags.bowerMapComplexVerToLatestStable) {
            resolution = _Resolved.COMPLEX_VERSION_DEFAULTED;
            branch = null;
          } else {
            // TODO(ussuri): Add full support for semver versions and ranges.
            resolution = _Unresolved.COMPLEX_VERSION;
  
negative.code:   static const STAR_PATH_MAPPED = const _Resolved._(
        '"*" path resolved using mappings from config files');
    static const NORMAL_PATH_OVERRIDDEN = const _Resolved._(
        'original path overridden using mappings from config files');
    static const COMPLEX_VERSION_DEFAULTED = const _Resolved._(
        'unsupported version spec defaulted to latest "master"');
  }
  
  class _Unresolved extends _Resolution {
  