anchor.diff:      return _taskManager;
     }
   
  -  /**
  -   * Clear any caches holding on to analysis results so that a full re-analysis
  -   * will be performed the next time an analysis context is created.
  -   */
  +  /// Clear any caches holding on to analysis results so that a full re-analysis
  +  /// will be performed the next time an analysis context is created.
     void clearCaches() {
       partitionManager.clearCache();
       // See https://github.com/dart-lang/sdk/issues/30314.
       StringToken.canonicalizer.clear();
     }
   
  -  /**
  -   * Create and return a new context in which analysis can be performed.
  -   */
  +  /// Create and return a new context in which analysis can be performed.
     AnalysisContext createAnalysisContext() {
       return new AnalysisContextImpl();
     }
   
  -  /**
  -   * A utility method that clients can use to process all of the required
  -   * plugins. This method can only be used by clients that do not need to
  -   * process any other plugins.
  -   */
  +  /// A utility method that clients can use to process all of the required
  +  /// plugins. This method can only be used by clients that do not need to
  +  /// process any other plugins.
     @deprecated
     void processRequiredPlugins() {}
   
  -  /**
  -   * Return `true` if the given [fileName] is an analysis options file.
  -   */
  +  /// Return `true` if the given [fileName] is an analysis options file.
     static bool isAnalysisOptionsFileName(String fileName,
         [pathos.Context context]) {
       if (fileName == null) {
  
positive.code:   }
  }
  
  /**
   * [SourcesChangedEvent] indicates which sources have been added, removed,
   * or whose contents have changed.
   */
  class SourcesChangedEvent {
    /**
     * The internal representation of what has changed. Clients should not access
     * this field directly.
     */
    final ChangeSet _changeSet;
  
    /**
     * Construct an instance representing the given changes.
     */
    SourcesChangedEvent(ChangeSet changeSet) : _changeSet = changeSet;
  
    /**
     * Construct an instance representing a source content change.
     */
    factory SourcesChangedEvent.changedContent(Source source, String contents) {
      ChangeSet changeSet = new ChangeSet();
      changeSet.changedContent(source, contents);
      return new SourcesChangedEvent(changeSet);
    }
  
    /**
     * Construct an instance representing a source content change.
     */
    factory SourcesChangedEvent.changedRange(Source source, String contents,
        int offset, int oldLength, int newLength) {
      ChangeSet changeSet = new ChangeSet();
  
negative.code:     }
    }
  
    /// Return the logger that should receive information about errors within the
    /// analysis engine.
    Logger get logger => _logger;
  
    /// Set the logger that should receive information about errors within the
    /// analysis engine to the given [logger].
    void set logger(Logger logger) {
      this._logger = logger ?? Logger.NULL;
    }
  
    /// Return the task manager used to manage the tasks used to analyze code.
    TaskManager get taskManager {
      if (_taskManager == null) {
        _taskManager = new TaskManager();
  