anchor.diff:      analysisContext.sourceFactory = _sourceFactory.clone();
       analysisContext.contentCache = new _ContentCacheWrapper(_fsState);
       this._context = analysisContext;
  +  }
  +
  +  /**
  +   * Return a subset of the given [errors] that are not marked as ignored in
  +   * the [file].
  +   */
  +  List<AnalysisError> _filterIgnoredErrors(
  +      FileState file, List<AnalysisError> errors) {
  +    if (errors.isEmpty) {
  +      return errors;
  +    }
  +
  +    IgnoreInfo ignoreInfo = _fileToIgnoreInfo[file];
  +    if (!ignoreInfo.hasIgnores) {
  +      return errors;
  +    }
  +
  +    LineInfo lineInfo = _fileToLineInfo[file];
  +
  +    bool isIgnored(AnalysisError error) {
  +      int errorLine = lineInfo.getLocation(error.offset).lineNumber;
  +      String errorCode = error.errorCode.name.toLowerCase();
  +      // Ignores can be on the line or just preceding the error.
  +      return ignoreInfo.ignoredAt(errorCode, errorLine) ||
  +          ignoreInfo.ignoredAt(errorCode, errorLine - 1);
  +    }
  +
  +    return errors.where((AnalysisError e) => !isIgnored(e)).toList();
     }
   
     RecordingErrorListener _getErrorListener(FileState file) =>
  
positive.code:   StoreBasedSummaryResynthesizer _resynthesizer;
    LibraryElement _libraryElement;
  
    final Map<FileState, RecordingErrorListener> _errorListeners = {};
    final Map<FileState, ErrorReporter> _errorReporters = {};
    final List<UsedImportedElements> _usedImportedElementsList = [];
  
negative.code:     Map<FileState, UnitAnalysisResult> results = {};
      units.forEach((file, unit) {
        List<AnalysisError> errors = _getErrorListener(file).errors;
        errors = _filterIgnoredErrors(file, errors);
        results[file] = new UnitAnalysisResult(file, unit, errors);
      });
      return results;
  