-
Notifications
You must be signed in to change notification settings - Fork 138
Simplify projection methods #2895
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
Conversation
Summary of ChangesHello @joshlf, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request refactors the projection mechanisms within the Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
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.
Code Review
This pull request simplifies projection methods by removing the high-level HasField::project_inner method and renaming HasField::project_raw to HasField::project. The logic from project_inner is now part of inherent methods on PtrInner and Ptr, which reduces indirection. I have reviewed the changes across all modified files, including the trait definitions, implementations, and derive macros. The refactoring has been applied consistently and correctly. The renames are complete, and the removal of project_inner is compensated by the new logic in PtrInner::project. The changes are sound and improve the API's clarity. I have not found any issues.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #2895 +/- ##
==========================================
+ Coverage 91.82% 91.90% +0.07%
==========================================
Files 20 20
Lines 5883 5878 -5
==========================================
Hits 5402 5402
+ Misses 481 476 -5 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
ccfcfc0 to
897a5a3
Compare
Remove high-level `HasField::project_inner`, and rename `HasField::project_raw` to `HasField::project`. The new plan is for `pointer::cast::Project` and `HasField` to only have `project` methods which project from `PtrInner<Src>` to `*mut Dst`, and for callers who want `PtrInner -> PtrInner` or `Ptr -> Ptr` to use inherent methods on `PtrInner` and `Ptr`. Compared to a default-impl'd method on `HasField`, this reduces indirection and reduces pressure on the optimizer. Reverts #2884, #2885 gherrit-pr-id: G481927cb6e9ca76c1531c05465f608e1b2607a62
897a5a3 to
a8b0bbc
Compare
Remove high-level
HasField::project_inner, and renameHasField::project_rawtoHasField::project.The new plan is for
pointer::cast::ProjectandHasFieldto only haveprojectmethods which project fromPtrInner<Src>to*mut Dst, andfor callers who want
PtrInner -> PtrInnerorPtr -> Ptrto useinherent methods on
PtrInnerandPtr. Compared to a default-impl'dmethod on
HasField, this reduces indirection and reduces pressure onthe optimizer.
Reverts #2884, #2885
Latest Update: v9 — Compare vs v8
📚 Full Patch History
Links show the diff between the row version and the column version.