Files
Louis Vignier ecb429a9f1 [codeInspection] Fix devkit inspection descriptions
GitOrigin-RevId: d5f8323eb560b9f63c7fa6589bb4aa1bbc9ff93d
2023-04-28 13:13:30 +00:00

35 lines
859 B
HTML

<html>
<body>
Reports usage of <code>VirtualFile.getChildren()</code> inside recursive methods.
<p>
This may cause endless loops when iterating over cyclic symlinks.
Use <code>VfsUtilCore.visitChildrenRecursively()</code> instead.
</p>
<pre><code lang="java">
void processDirectory(VirtualFile dir) {
for (VirtualFile file : dir.getChildren()) { // bad
if (!file.isDirectory()) {
processFile(file);
} else {
processDirectory(file); // recursive call
}
}
}
</code>
</pre>
<pre><code lang="java">
void processDirectory(VirtualFile dir) {
VfsUtilCore.visitChildrenRecursively(dir, new VirtualFileVisitor&lt;Void>() { // good
@Override
public boolean visitFile(@NotNull VirtualFile file) {
if (!file.isDirectory()) {
processFile(file);
}
return true;
}
});
}
</code></pre>
</body>
</html>