Fix format on projects that contain subprojects #2078
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes the behaviour of the
format
command when run on a project that contains subprojects. Files in subprojects must not be processed by the formatter.The format issue was caused by a bug in the
walkDirRel
function that is used to traverse a file system tree:juvix/src/Juvix/Data/Effect/Files.hs
Line 36 in 9a64184
In this function, the passed handler can return a function that determines if a candidate subdirectory should be traversed. The first argument of this function indicates if the candidate subdirectory contains a juvix.yaml file. In the formatter and the path resolver we use this argument to exclude such subdirectories from the traversal.
Previously the first argument was calculated from the files in the current directory instead of the candidate subdirectory - which was the source of the bug.
The callers of walkDirRel are also fixed to match the updated behaviour.