int (@NotNull VirtualFile file1, @NotNull VirtualFile file2) { VirtualFile r1 = myProjectFileIndex.getModuleSourceOrLibraryClassesRoot(file1); VirtualFile r2 = myProjectFileIndex.getModuleSourceOrLibraryClassesRoot(file2); if (Comparing.equal(r1, r2)) return 0; if (r1 == null) return -1; if (r2 == null) return 1; Object2IntMap<VirtualFile> roots = myRoots; int i1 = roots.getInt(r1); int i2 = roots.getInt(r2); if (i1 == 0 && i2 == 0) return 0; if (i1 > 0 && i2 > 0) return i2 - i1; return i1 > 0 ? 1 : -1; }