anchor.diff:          return new BuildMode(resourceProvider, options, stats).analyze();
         }
       });
  -  }
  -
  -  /// Determine whether the context created during a previous call to
  -  /// [_analyzeAll] can be re-used in order to analyze using [options].
  -  bool _canContextBeReused(
  -      CommandLineOptions options, AnalysisOptionsImpl other) {
  -    // TODO(paulberry): add a command-line option that disables context re-use.
  -    if (_context == null) {
  -      return false;
  -    }
  -
  -    // Check command line options.
  -    if (options.packageRootPath != _previousOptions.packageRootPath) {
  -      return false;
  -    }
  -    if (options.packageConfigPath != _previousOptions.packageConfigPath) {
  -      return false;
  -    }
  -    if (!_equalMaps(
  -        options.definedVariables, _previousOptions.definedVariables)) {
  -      return false;
  -    }
  -    if (options.log != _previousOptions.log) {
  -      return false;
  -    }
  -    if (options.disableHints != _previousOptions.disableHints) {
  -      return false;
  -    }
  -    if (options.enableStrictCallChecks !=
  -        _previousOptions.enableStrictCallChecks) {
  -      return false;
  -    }
  -    if (options.enableAssertInitializer !=
  -        _previousOptions.enableAssertInitializer) {
  -      return false;
  -    }
  -    if (options.showPackageWarnings != _previousOptions.showPackageWarnings) {
  -      return false;
  -    }
  -    if (options.showPackageWarningsPrefix !=
  -        _previousOptions.showPackageWarningsPrefix) {
  -      return false;
  -    }
  -    if (options.showSdkWarnings != _previousOptions.showSdkWarnings) {
  -      return false;
  -    }
  -    if (options.lints != _previousOptions.lints) {
  -      return false;
  -    }
  -    if (options.strongMode != _previousOptions.strongMode) {
  -      return false;
  -    }
  -    if (options.enableSuperMixins != _previousOptions.enableSuperMixins) {
  -      return false;
  -    }
  -    if (!_equalLists(
  -        options.buildSummaryInputs, _previousOptions.buildSummaryInputs)) {
  -      return false;
  -    }
  -    if (options.disableCacheFlushing != _previousOptions.disableCacheFlushing) {
  -      return false;
  -    }
  -
  -    // Check analysis options.
  -    var c = _context.analysisOptions;
  -    if (!(other.enableAssertInitializer == c.enableAssertInitializer &&
  -        other.enableStrictCallChecks == c.enableStrictCallChecks &&
  -        other.enableLazyAssignmentOperators ==
  -            c.enableLazyAssignmentOperators &&
  -        other.enableSuperMixins == c.enableSuperMixins &&
  -        other.enableTiming == c.enableTiming &&
  -        other.generateImplicitErrors == c.generateImplicitErrors &&
  -        other.generateSdkErrors == c.generateSdkErrors &&
  -        other.hint == c.hint &&
  -        other.lint == c.lint &&
  -        AnalysisOptionsImpl.compareLints(other.lintRules, c.lintRules) &&
  -        other.preserveComments == c.preserveComments &&
  -        other.strongMode == c.strongMode)) {
  -      return false;
  -    }
  -
  -    return true;
     }
   
     /// Decide on the appropriate policy for which files need to be fully parsed
  
positive.code:       outSink.writeln(text);
      }
  
      AnalysisOptionsImpl contextOptions = new ContextBuilder(
              resourceProvider, null, null,
              options: options.contextBuilderOptions)
          .getAnalysisOptions(contextRoot,
              verbosePrint: options.verbose ? verbosePrint : null);
  
negative.code: 
      // Set context options.
      context.analysisOptions = analysisOptions;
    }
  
    /// Return whether the [newOptions] are equal to the [previous].
    static bool _equalCommandLineOptions(
        CommandLineOptions previous, CommandLineOptions newOptions) {
      if (previous == null || newOptions == null) {
        return false;
      }
      if (newOptions.packageRootPath != previous.packageRootPath) {
        return false;
      }
      if (newOptions.packageConfigPath != previous.packageConfigPath) {
        return false;
      }
      if (!_equalMaps(newOptions.definedVariables, previous.definedVariables)) {
        return false;
      }
      if (newOptions.log != previous.log) {
        return false;
      }
      if (newOptions.disableHints != previous.disableHints) {
        return false;
      }
      if (newOptions.enableStrictCallChecks != previous.enableStrictCallChecks) {
        return false;
      }
      if (newOptions.enableAssertInitializer !=
          previous.enableAssertInitializer) {
        return false;
      }
      if (newOptions.showPackageWarnings != previous.showPackageWarnings) {
        return false;
      }
      if (newOptions.showPackageWarningsPrefix !=
          previous.showPackageWarningsPrefix) {
        return false;
      }
      if (newOptions.showSdkWarnings != previous.showSdkWarnings) {
        return false;
      }
      if (newOptions.lints != previous.lints) {
        return false;
      }
      if (newOptions.strongMode != previous.strongMode) {
        return false;
      }
      if (newOptions.enableSuperMixins != previous.enableSuperMixins) {
        return false;
      }
      if (!_equalLists(
          newOptions.buildSummaryInputs, previous.buildSummaryInputs)) {
        return false;
      }
      if (newOptions.disableCacheFlushing != previous.disableCacheFlushing) {
        return false;
      }
      return true;
    }
  
    /// Perform a deep comparison of two string lists.
  