void (@NotNull NavigableSet<String> recursiveRoots, @NotNull String path) { if (!isCoveredRecursively(recursiveRoots, path)) { recursiveRoots.add(path); // Remove any roots covered by newly added String higher; while ((higher = recursiveRoots.higher(path)) != null && OSAgnosticPathUtil.startsWith(higher, path)) { recursiveRoots.remove(higher); } } }