anchor.diff:   * TODO(scheglov) Clean up the list of implicitly analyzed files.
    */
   class AnalysisDriver {
  +  final PerformanceLog _logger;
  +
  +  /**
  +   * The resource provider for working with files.
  +   */
  +  final ResourceProvider _resourceProvider;
  +
     /**
      * The byte storage to get and put serialized data.
      *
      * It can be shared with other [AnalysisDriver]s.
      */
     final ByteStore _byteStore;
  +
  +  /**
  +   * This [ContentCache] is consulted for a file content before reading
  +   * the content from the file.
  +   */
  +  final ContentCache _contentCache;
   
     /**
      * The [SourceFactory] is used to resolve URIs to paths and restore URIs
  
positive.code:    * [changeFile] invocation.
     */
    void changeFile(String path) {
      // TODO(scheglov) implement
    }
  
    /**
  
negative.code:   final SourceFactory _sourceFactory;
  
    /**
     * The analysis options to analyze with.
     */
    final AnalysisOptions _analysisOptions;
  
    /**
     * The combined unlinked and linked package for the SDK, extracted from
     * the given [_sourceFactory].
     */
    PackageBundle _sdkBundle;
  
    /**
     * The mapping from the files for which analysis was requested using
     * [getResult] to the [Completer]s to report the result.
     */
    final _requestedFiles = <String, Completer<AnalysisResult>>{};
  
    /**
     * The set of explicitly analyzed files.
     */
    final _explicitFiles = new LinkedHashSet<String>();
  
    /**
     * The set of files that are currently scheduled for analysis.
     */
    final _filesToAnalyze = new LinkedHashSet<String>();
  
    /**
     * The current file state.
     *
     * It maps file paths to MD5 hash of the file content.
     */
    final _fileContentHashMap = <String, String>{};
  
    /**
     * TODO(scheglov) document and improve
     */
    final _hasWorkStreamController = new StreamController<String>();
  
    AnalysisDriver(this._logger, this._resourceProvider, this._byteStore,
        this._contentCache, this._sourceFactory, this._analysisOptions) {
      _sdkBundle = _sourceFactory.dartSdk.getLinkedBundle();
    }
  
    /**
     * Set the list of files that the driver should try to analyze sooner.
  