anchor.diff:  
       // 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.
  
positive.code:       contextOptions.enableAssertInitializer = options.enableAssertInitializer;
      }
  
      return contextOptions;
    }
  
  
negative.code:       outSink.writeln(text);
      }
  
      // Prepare the directory which is, or contains, the context root.
      String contextRootDirectory;
      if (resourceProvider.getFolder(contextRoot).exists) {
        contextRootDirectory = contextRoot;
      } else {
        contextRootDirectory = resourceProvider.pathContext.dirname(contextRoot);
      }
  
      // Check if there is the options object for the content directory.
      AnalysisOptionsImpl contextOptions =
          _directoryToAnalysisOptions[contextRootDirectory];
      if (contextOptions != null) {
        return contextOptions;
      }
  
      contextOptions = new ContextBuilder(resourceProvider, null, null,
              options: options.contextBuilderOptions)
          .getAnalysisOptions(contextRoot,
              verbosePrint: options.verbose ? verbosePrint : null);
  