anchor.diff:    void changeFile(String path) {
       // TODO(scheglov) Don't clear, schedule API signature validation.
       _fileContentHashMap.clear();
  +    _linkedHashMap.clear();
       _filesToAnalyze.add(path);
       _filesToAnalyze.addAll(_explicitFiles);
       // TODO(scheglov) name?!
  
positive.code:   /**
     * The current file state.
     *
     * It maps file paths to MD5 hash of the file content.
     */
    final _fileContentHashMap = <String, String>{};
  
    /**
     * TODO(scheglov) document and improve
  
negative.code:    * TODO(scheglov) replace with actual [AnalysisResult] computing.
     */
    List<String> _computeAndPrintErrors(_File file) {
      // TODO(scheglov) Computing resolved unit fails for these units.
      // pkg/analyzer/lib/plugin/embedded_resolver_provider.dart
      // pkg/analyzer/lib/plugin/embedded_resolver_provider.dart
      if (file.path.endsWith(
              'pkg/analyzer/lib/plugin/embedded_resolver_provider.dart') ||
          file.path.endsWith('pkg/analyzer/lib/source/embedder.dart') ||
          file.path.endsWith('pkg/analyzer/lib/src/generated/ast.dart') ||
          file.path.endsWith('pkg/analyzer/lib/src/generated/element.dart') ||
          file.path
              .endsWith('pkg/analyzer/lib/src/generated/element_handle.dart') ||
          file.path.endsWith('pkg/analyzer/lib/src/generated/error.dart') ||
          file.path.endsWith('pkg/analyzer/lib/src/generated/scanner.dart') ||
          file.path.endsWith('pkg/analyzer/lib/src/generated/sdk_io.dart') ||
          file.path.endsWith('pkg/analyzer/lib/src/generated/visitors.dart') ||
          file.path.endsWith('pkg/analyzer/test/generated/constant_test.dart') ||
          file.path.endsWith('pkg/analyzer/test/source/embedder_test.dart')) {
        return [];
      }
  
      List<String> errorStrings = _logger.run('Compute errors $file', () {
        LibraryContext libraryContext = _createLibraryContext(file);
  
  