Repository navigation
Conversation
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 @@
## Gzdelmzn5y42ab3htat7lqrwovbusi5sh #3741 +/- ##
==================================================================
Coverage 91.90% 91.90%
==================================================================
Files 20 20
Lines 6177 6177
==================================================================
Hits 5677 5677
Misses 500 500 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: aa92971bce
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
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".
| methods = [function for function in syntax[scope['file']]['functions'] | ||
| if function['method'] and function['inherent'] | ||
| and function['impl_type'] == scope['type']] |
There was a problem hiding this comment.
Reject macros in closed impl coverage
When a covered impl contains at least one explicit method plus an associated-item macro such as generate_methods!(), the syntax tool reports only the explicit ImplItemFn nodes, so this list can be fully matched while the macro expands to additional unregistered methods. That makes the new “closed” coverage check silently certify incomplete coverage; either expand such macros or fail closed whenever a covered impl contains an uninspectable associated-item macro.
Useful? React with 👍 / 👎.
| display = re.match(r'/-- \[(zerocopy::[^\]\n]+)\]:', match[0]) | ||
| if not display: | ||
| continue | ||
| rust = identity(display[1]) | ||
| if rust not in by_rust: |
There was a problem hiding this comment.
Skip unknown roots before enforcing inherent identity syntax
When generated Funs.lean contains an unregistered dependency with a braced identity outside this narrow inherent-method grammar—for example a local trait method displayed as {impl Trait for Type}::method—identity() raises here before the subsequent rust not in by_rust branch can preserve it as scaffolding. Consequently --update-goldens fails instead of retaining valid dependency output; unsupported identities should only be rejected when they correspond to an inventoried root.
Useful? React with 👍 / 👎.
| # Loop helpers carry the owner's Rust identity; retain their generated | ||
| # definitions independently rather than substituting an inline body. | ||
| declaration = next((line for line in lines if line.startswith('def ')), '') | ||
| if re.match(rf'def {re.escape(entry["model"])}_loop(?:\.body)?(?=\s|\(|$)', declaration): | ||
| continue |
There was a problem hiding this comment.
Preserve every numbered loop helper
When an annotated function has multiple loops, Aeneas must disambiguate the later generated loop declarations with a numbered variant of the model’s _loop name while their documentation still carries the owning Rust identity. This regex accepts only the unsuffixed first helper, so a later helper is treated as the registered root and fails the following model-identity check, preventing golden updates for multi-loop functions. Classify loop helpers from their generated attribute/documentation or accept the generator’s numbered loop-name variants.
Useful? React with 👍 / 👎.
aa92971 to
e58d473
Compare
10ce2c7 to
a2024a1
Compare
Resolve annotations on parameterized inherent impls and generic methods against Charon's exact Self identity. Optional closed impl scopes reject every unregistered method, including inactive cfg alternatives. Add bijective named proof slots so support lemmas can sit between registered proofs. Keep generated constants, dependencies, and loop helpers in independently compared scaffolding. Follow helper declarations throughout the proof namespace when checking declared theorem dependencies. gherrit-pr-id: Ggyxdemsrutwypf7tui4otq6shrm2ivah Validation: 25 Python tests and 3 Rust annotation-tool tests; full final golden/live replay and dependency failure controls.
a2024a1 to
f7e72dc
Compare
e58d473 to
b84003e
Compare
Resolve annotations on parameterized inherent impls and generic methods against Charon's exact Self identity. Optional closed impl scopes reject every unregistered method, including inactive cfg alternatives.
Add bijective named proof slots so support lemmas can sit between registered proofs. Keep generated constants, dependencies, and loop helpers in independently compared scaffolding. Follow helper declarations throughout the proof namespace when checking declared theorem dependencies.
gherrit-pr-id: Ggyxdemsrutwypf7tui4otq6shrm2ivah
Validation: 25 Python tests and 3 Rust annotation-tool tests; full final golden/live replay and dependency failure controls.
Latest Update: v5 — Compare vs v4
📚 Full Patch History
Links show the diff between the row version and the column version.
⬇️ Download this PR
Branch
git fetch origin refs/heads/Ggyxdemsrutwypf7tui4otq6shrm2ivah && git checkout -b pr-Ggyxdemsrutwypf7tui4otq6shrm2ivah FETCH_HEADCheckout
git fetch origin refs/heads/Ggyxdemsrutwypf7tui4otq6shrm2ivah && git checkout FETCH_HEADCherry Pick
git fetch origin refs/heads/Ggyxdemsrutwypf7tui4otq6shrm2ivah && git cherry-pick FETCH_HEADPull
Stacked PRs enabled by GHerrit.