anchor.diff:      _requestedFiles
           .putIfAbsent(path, () => <Completer<AnalysisResult>>[])
           .add(completer);
  -    _hasWorkStreamController.add(path);
  +    _hasWork.notify();
       return completer.future;
     }
   
  
positive.code:    */
    Stream<AnalysisResult> get results async* {
      try {
        while (true) {
          // TODO(scheglov) implement state transitioning
          await for (String why in _hasWorkStreamController.stream) {
            _verifyUnlinkedSignatureOfChangedFiles();
  
            // Analyze the first file in the general queue.
            if (_filesToAnalyze.isNotEmpty) {
              PerformanceLogSection analysisSection =
                  _logger.enter('Analyze ${_filesToAnalyze.length} files');
              try {
                // TODO(scheglov) The loop is strange for now.
                while (_filesToAnalyze.isNotEmpty) {
                  String path = _filesToAnalyze.first;
                  _filesToAnalyze.remove(path);
                  _File file = _fileForPath(path);
                  AnalysisResult result = _computeAnalysisResult(file);
                  yield result;
                }
              } finally {
                analysisSection.exit();
              }
            }
          }
          // TODO(scheglov) implement
        }
      } finally {
        print('The stream was cancelled.');
      }
  
negative.code:   void addFile(String path) {
      _explicitFiles.add(path);
      _filesToAnalyze.add(path);
      _hasWork.notify();
    }
  
    /**
  