fix: add TermInfo for mut vars in ControlStack.stateT.runInBase#12661
Merged
fix: add TermInfo for mut vars in ControlStack.stateT.runInBase#12661
ControlStack.stateT.runInBase#12661Conversation
This PR fixes false-positive "unused variable" warnings for mutable variables reassigned inside `try`/`catch` blocks with the new do elaborator. The root cause was that `ControlStack.stateT.runInBase` packed mutable variables into a state tuple without calling `Term.addTermInfo'`, so the unused variable linter could not see that the variables were used. The fix mirrors how the `for` loop elaborator handles the same pattern in `useLoopMutVars`. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
6d61743 to
778ffd2
Compare
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
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 fixes false-positive "unused variable" warnings for mutable variables reassigned inside
try/catchblocks with the new do elaborator.The root cause was that
ControlStack.stateT.runInBasepacked mutable variables into a state tuple without callingTerm.addTermInfo', so the unused variable linter could not see that the variables were used. The fix mirrors how theforloop elaborator handles the same pattern inuseLoopMutVars.🤖 Generated with Claude Code