code: public boolean isEquivalent(CompilationUnit other) {
          if (!destination.getAbsoluteFile().equals(other.destination.getAbsoluteFile())) return false;
          if (encoding != null ? !encoding.equals(other.encoding) : other.encoding != null) return false;
          if (resourceReader != null ? !resourceReader.equals(other.resourceReader) : other.resourceReader != null)
              return false;
          if (!options.equals(other.options)) return false;
          if (sourceMapFile != null ? !sourceMapFile.equals(other.sourceMapFile) : other.sourceMapFile != null)
              return false;
          return sourceLocation.equals(other.sourceLocation);
      }
docs: Checks whether two compilation units represent the same compilation.
  Only the imports may be different when they have not yet been set.
  
  @param other CompilationUnit to compare with
  @return true if the source, destination, encoding, options and resourceReader are the same.