anchor.diff:      RegExp ignorePattern = new RegExp(r'// analyzer says "([^"]+)"');
       RegExp conflictingNamesPattern = new RegExp('^The imported libraries \'([^\']+)\' and \'([^\']+)\' cannot have the same name \'([^\']+)\'\$');
   
  +    Set<String> changedFiles = new Set<String>(); // files about which we've complained that they changed
  +
       List<String> errorLines = output.toString().split('\n');
       for (String errorLine in errorLines) {
         if (patternsToSkip.every((Pattern pattern) => pattern.allMatches(errorLine).isEmpty)) {
  
positive.code:     return 0;
    }
  }
  
negative.code:           int colNumber = int.parse(groups[5]);
            File source = new File(filename);
            List<String> sourceLines = source.readAsLinesSync();
            String sourceLine;
            try {
              if (lineNumber > sourceLines.length)
                throw new FileChanged();
              sourceLine = sourceLines[lineNumber-1];
              if (colNumber > sourceLine.length)
                throw new FileChanged();
            } on FileChanged {
              if (changedFiles.add(filename))
                printError('[warning] File shrank during analysis ($filename)');
              sourceLine = '';
              lineNumber = 1;
              colNumber = 1;
            }
            bool shouldIgnore = false;
            if (filename == mainFile.path) {
              Match libs = conflictingNamesPattern.firstMatch(errorMessage);
  