Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughThe Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 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 |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@scripts/setup-llvm.py`:
- Around line 205-215: The config parsing loop in scripts/setup-llvm.py is too
strict: change the loop that reads cfg.read_text(...) so it normalizes each line
(strip leading/trailing whitespace), accepts both "--sysroot=PATH" and
"--sysroot PATH" forms, strips surrounding quotes from PATH, resolves and
validates the Path, and continue scanning all lines but keep the last valid
sysroot found (instead of returning the first); ensure you still handle OSError
as before and return None if no valid sysroot is found. Use the existing
variables/functions (cfg.read_text, sysroot, Path.resolve(), sysroot.exists())
to locate and update the parsing logic.
- Around line 341-358: The code currently sets needs_install=True when a
provided candidate exists but fails llvm_install_matches_compiler, but leaves
install_path unset so the bundled LLVM is extracted into install_root instead of
the user-specified path; update the branch that checks
llvm_install_matches_compiler(candidate) to explicitly honor the user's
candidate by setting install_path = candidate (and leave needs_install = True so
installation proceeds), and change the log message to clearly state "will
install bundled LLVM to provided path {candidate} (outside active compiler
sysroot)"; reference the symbols args.install_path, candidate,
llvm_install_matches_compiler, install_path, needs_install and install_root to
locate and modify the logic and message.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: f72d2ccd-4edb-4fa8-b426-72644940a542
📒 Files selected for processing (3)
cmake/llvm.cmakescripts/setup-llvm.pysrc/semantic/filtered_ast_visitor.h
There was a problem hiding this comment.
Pull request overview
This PR refactors AST traversal to remove redundant implicit-declaration/template-instantiation filtering, and hardens LLVM dependency setup to avoid linking against LLVM installs that are ABI-incompatible with sandboxed toolchains (e.g., pixi/NixOS).
Changes:
- Simplifies
FilteredASTVisitorby dropping explicit filtering of implicit decls and implicit template instantiations. - Enhances
setup-llvm.pyto detect the active compiler sysroot and reject LLVM installs outside it. - Updates LLVM CMake integration to also include
${binary_dir}/includeso downloaded “private” Clang headers are found.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
src/semantic/filtered_ast_visitor.h |
Removes implicit/implicit-instantiation skip logic from decl traversal. |
scripts/setup-llvm.py |
Adds compiler sysroot detection and filters out LLVM installs that fall outside the sysroot. |
cmake/llvm.cmake |
Adds build-tree include directory for fetched private Clang headers. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
RecursiveASTVisitor already skips implicit decls and implicit template instantiations by default via shouldVisitImplicitCode() and shouldVisitTemplateInstantiations(). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
0769540 to
4fa9fe6
Compare
Summary by CodeRabbit