Gate cryptocorrosion impls with their type - #3628
Conversation
cryptocorrosion_derive_traits! applied item attributes only to its generated type declaration. A false cfg could therefore remove that declaration while leaving unsafe trait impls to bind to a different same-named type. Parse cfg predicates separately and apply them to one expansion containing the representation check, declaration, and every unsafe impl. Normalize the small set of non-structural attributes the compatibility macro needs, reject other attributes, and restrict repeated field types to a macro-free grammar so a stateful proc macro cannot change the declaration independently of its bounds. Exercise both public and directly callable internal macro arms. Closes #3616 *Authored by an AI agent acting on Josh Liebow-Feeser's behalf.* gherrit-pr-id: Gfrchqtqurjfjrevgaq4eppd7settyyyn
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3628 +/- ##
=======================================
Coverage 91.85% 91.85%
=======================================
Files 20 20
Lines 6093 6093
=======================================
Hits 5597 5597
Misses 496 496 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
@codex review |
|
Codex Review: Didn't find any major issues. Delightful! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
cryptocorrosion_derive_traits! applied item attributes only to its generated
type declaration. A false cfg could therefore remove that declaration while
leaving unsafe trait impls to bind to a different same-named type.
Parse cfg predicates separately and apply them to one expansion containing the
representation check, declaration, and every unsafe impl. Normalize the small
set of non-structural attributes the compatibility macro needs, reject other
attributes, and restrict repeated field types to a macro-free grammar so a
stateful proc macro cannot change the declaration independently of its bounds.
Exercise both public and directly callable internal macro arms.
Closes #3616
Authored by an AI agent acting on Josh Liebow-Feeser's behalf.
⬇️ Download this PR
Branch
git fetch origin refs/heads/Gfrchqtqurjfjrevgaq4eppd7settyyyn && git checkout -b pr-Gfrchqtqurjfjrevgaq4eppd7settyyyn FETCH_HEADCheckout
git fetch origin refs/heads/Gfrchqtqurjfjrevgaq4eppd7settyyyn && git checkout FETCH_HEADCherry Pick
git fetch origin refs/heads/Gfrchqtqurjfjrevgaq4eppd7settyyyn && git cherry-pick FETCH_HEADPull
Stacked PRs enabled by GHerrit.