Fix async and nested scope tracking - #14
Merged
Merged
Conversation
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (6)
📝 WalkthroughWalkthroughThe change updates ChangesDependency scope attribution
Estimated code review effort: 3 (Moderate) | ~25 minutes Sequence Diagram(s)sequenceDiagram
participant PythonAST
participant DependencyVisitor
participant FunctionCallCollector
PythonAST->>DependencyVisitor: traverse function, async function, and class nodes
DependencyVisitor->>DependencyVisitor: save and restore current_code_element
DependencyVisitor->>FunctionCallCollector: attribute nested call dependencies
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Vashkatsi
marked this pull request as ready for review
August 7, 2026 16:53
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.
What changed
FunctionDefandAsyncFunctionDefthrough shared dependency handlingRoot cause
DependencyVisitordid not handleAsyncFunctionDefand stored only one mutablecurrent_code_element. Entering nested definitions either retained the outer element or cleared it permanently, causing missing or misattributed dependencies.Impact
Top-level async dependencies are now detected, nested sync/async functions and classes own their dependencies, and traversal resumes in the correct enclosing scope. CLI, configuration, and report interfaces are unchanged.
Validation
./.venv/bin/python -m unittest tests.test_dependency_visitor— 9 passedmake check— ruff, mypy, pip-audit, 155 tests passedmake mutation— 1668 mutants completed; no timeout, suspicious, or untested-file resultsgit diff --checkSummary by CodeRabbit
Improvements
Documentation
git diff --no-indexresults.Tests