anchor.diff:    final _explicitFiles = new LinkedHashSet<String>();
   
     /**
  -   * The set of files were reported as changed through [changeFile] and for
  -   * which API signatures should be recomputed and compared before performing
  -   * any other analysis.
  -   */
  -  final _filesToVerifyUnlinkedSignature = new Set<String>();
  +   * The set of files were reported as changed through [changeFile] and not
  +   * checked for actual changes yet.
  +   */
  +  final _changedFiles = new LinkedHashSet<String>();
   
     /**
      * The set of files that are currently scheduled for analysis.
  
positive.code:   }
  
    /**
     * Verify the API signatures for the changed files, and decide which linked
     * libraries should be invalidated, and files reanalyzed.
     *
     * TODO(scheglov) I see that adding a local var changes (full) API signature.
     */
    void _verifyUnlinkedSignatureOfChangedFiles() {
      if (_filesToVerifyUnlinkedSignature.isEmpty) {
        return;
      }
      int numOfFiles = _filesToVerifyUnlinkedSignature.length;
      _logger.run('Verify API signatures of $numOfFiles files', () {
        bool hasMismatch = false;
        for (String path in _filesToVerifyUnlinkedSignature) {
          String oldSignature = _fileApiSignatureMap[path];
          // Compute the new API signature.
          // _File.forResolution() also updates the content hash in the cache.
          _File newFile = _fileForPath(path);
          String newSignature = newFile.unlinked.apiSignature;
          // If the old API signature is not null, then the file was used to
          // compute at least one dependency signature. If the new API signature
          // is different, then potentially all dependency signatures and
          // resolution results are invalid.
          if (oldSignature != null && oldSignature != newSignature) {
            _logger.writeln('API signature mismatch found for $newFile.');
            hasMismatch = true;
          }
        }
        if (hasMismatch) {
          _dependencySignatureMap.clear();
          _filesToAnalyze.addAll(_explicitFiles);
        } else {
          _logger.writeln('All API signatures match.');
        }
        _filesToVerifyUnlinkedSignature.clear();
      });
    }
  }
  
  
negative.code:    * [changeFile] invocation.
     */
    void changeFile(String path) {
      _changedFiles.add(path);
      _filesToAnalyze.add(path);
      _hasWork.notify();
    }
  