-
Notifications
You must be signed in to change notification settings - Fork 32
Multiple Errors #121
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Multiple Errors #121
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This reverts commit cad6b1b.
Errors thrown stopped package traversal, so we need to catch them earlier to continue processing files in the same package.
Wrap class annotation processing and child element visiting in separate try-catches so errors in one element don't prevent processing of sibling elements.
Changed from `pkg.accept()` to `pkg.getTypes().forEach()` in `RefinementProcessor` to prevent types in nested packages from being verified multiple times when `ProcessingManager` traverses the package hierarchy.
CatarinaGamboa
approved these changes
Nov 16, 2025
Collaborator
CatarinaGamboa
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great improvement 🔥🔥🔥
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 closes #82 and liquid-java/vscode-liquidjava#3, by making it possible for the verifier to report more than one error at a time. This was done by throwing an
LJErrorwhich stops the verification until it is caught in the method, class, interface or field visitors in theRefinementTypeCheckerand then resuming the verification. For the other visitor classes, a general try-catch is present in theRefinementProcessor.Tests were also added.
Additional Improvement
The verifier sometimes caught the same error twice, because spoon was calling the visitor methods more than once. Claude fixed this by changing
pkg.accept()topkg.getTypes().forEach()in theRefinementProcessor, to prevent types (classes, methods, interfaces, fields) in nested packages from being verified multiple times when theProcessingManagertraversed the package hierarchy.This change also makes the verification run faster.
Before
liquidjava/liquidjava-verifier/src/main/java/liquidjava/processor/RefinementProcessor.java
Lines 25 to 38 in 9b14c3f
After
liquidjava/liquidjava-verifier/src/main/java/liquidjava/processor/RefinementProcessor.java
Lines 28 to 53 in 3d8b2dc