anchor.diff:      AnalysisEngine.instance.logger.logInformation(message);
     }
   
  -  bool _notEqual<T>(List<T> first, List<T> second) {
  -    int length = first.length;
  -    if (length != second.length) {
  -      return true;
  -    }
  -    for (int i = 0; i < length; i++) {
  -      if (first[i] != second[i]) {
  -        return true;
  -      }
  -    }
  -    return false;
  -  }
  -
     /**
      * Notify all of the analysis listeners that the errors associated with the
      * given [source] has been updated to the given [errors].
  
positive.code: 
    @override
    void set analysisOptions(AnalysisOptions options) {
      bool needsRecompute = this._options.analyzeFunctionBodiesPredicate !=
              options.analyzeFunctionBodiesPredicate ||
          this._options.generateImplicitErrors !=
              options.generateImplicitErrors ||
          this._options.generateSdkErrors != options.generateSdkErrors ||
          this._options.dart2jsHint != options.dart2jsHint ||
          _notEqual(
              this._options.enabledPluginNames, options.enabledPluginNames) ||
          _notEqual(this._options.errorProcessors, options.errorProcessors) ||
          _notEqual(this._options.excludePatterns, options.excludePatterns) ||
          (this._options.hint && !options.hint) ||
          (this._options.lint && !options.lint) ||
          _notEqual(this._options.lintRules, options.lintRules) ||
          this._options.preserveComments != options.preserveComments ||
          this._options.useFastaParser != options.useFastaParser ||
          this._options.enableLazyAssignmentOperators !=
              options.enableLazyAssignmentOperators ||
          ((options is AnalysisOptionsImpl)
              ? this._options.strongModeHints != options.strongModeHints
              : false) ||
          ((options is AnalysisOptionsImpl)
              ? this._options.implicitCasts != options.implicitCasts
              : false) ||
          ((options is AnalysisOptionsImpl)
              ? this._options.implicitDynamic != options.implicitDynamic
              : false) ||
          !_samePatchPaths(this._options.patchPaths, options.patchPaths);
      this._options.analyzeFunctionBodiesPredicate =
          options.analyzeFunctionBodiesPredicate;
      this._options.generateImplicitErrors = options.generateImplicitErrors;
      this._options.generateSdkErrors = options.generateSdkErrors;
      this._options.dart2jsHint = options.dart2jsHint;
      this._options.enableLazyAssignmentOperators =
          options.enableLazyAssignmentOperators;
      this._options.enableTiming = options.enableTiming;
      this._options.enabledPluginNames = options.enabledPluginNames;
      this._options.errorProcessors = options.errorProcessors;
      this._options.excludePatterns = options.excludePatterns;
      this._options.hint = options.hint;
      this._options.lint = options.lint;
      this._options.lintRules = options.lintRules;
      this._options.preserveComments = options.preserveComments;
      this._options.useFastaParser = options.useFastaParser;
      this._options.trackCacheDependencies = options.trackCacheDependencies;
      this._options.disableCacheFlushing = options.disableCacheFlushing;
      this._options.patchPaths = options.patchPaths;
      if (options is AnalysisOptionsImpl) {
        this._options.strongModeHints = options.strongModeHints;
        this._options.implicitCasts = options.implicitCasts;
        this._options.implicitDynamic = options.implicitDynamic;
      }
      if (needsRecompute) {
        for (WorkManager workManager in workManagers) {
          workManager.onAnalysisOptionsChanged();
        }
      }
    }
  
  
negative.code:     _removeFromCache(source);
      _removeFromPriorityOrder(source);
    }
  }
  
  /**
  