Repository navigation
Fix recursive generated tuple argument conversions - #7515
Conversation
|
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|
|
@codex review |
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. |
|
Review: nested tuple conversion in generated invokers (#7485) The approach is sound. Concerns
Good
I'd address (1), or at least confirm the output size for a 4+ level nesting, before merge. The rest are optional. |
|
Codex Review: Didn't find any major issues. Can't wait for the next one! 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". |
[Medium impact] The PR appears safe to merge; no actionable new issues were found. SummaryGenerated test invokers now rebuild mismatched value tuples recursively instead of directly casting boxed tuples.
|
|
Addressed in 2725146.
Validation: core generator suite 251 passed, 1 skipped; seven regression cases pass in each execution mode. Reviewed and accepted the four affected snapshots. No reflection or public API paths changed. Engine tests left to CI per repository guidance. |
|
@codex review |
ReviewThe approach is sound. Generated invokers now rebuild a mismatched I read the diff but did not build it or run any tests. What looks good:
Suggestions, none blocking:
Overall this is a good, focused fix. I'd approve it once the 8+ element coverage is confirmed and the code-size trade-off in (1) is considered. |
|
Codex Review: Didn't find any major issues. Already looking forward to the next diff. 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". |
2725146 to
a4b9973
Compare
|
Rebased onto origin/main and resolved the shared invoker conflict, preserving main's reference-tuple and cancellation-token handling and this PR's recursive value-tuple conversion. Snapshot refresh: a4b9973. Disposition of Claude's remaining suggestions:
Validation after rebase: generator suite 326 passed, 1 skipped; reviewed and accepted three snapshot refreshes; _7485 generated 7 passed and reflection 7 passed; _7402 generated 57 passed. Engine tests left to CI per repository instructions. Existing build warnings are tracked in #7410 and #7412. Keeping this PR draft for fresh reviews of the rebased head. |
|
@codex review |
|
Codex Review: Didn't find any major issues. Hooray! 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". |
Review of #7515: recursive tuple reconstruction in generated invokersI read the What it does well
Suggestions (non-blocking)
Overall the approach is sound and the tests are good. I have no blocking concerns, assuming CI and the engine tests pass in both modes. |
|
Current-head review disposition (a4b9973): Claude explicitly reports no blocking concerns, and Codex reports a completed review with no findings. Claude's non-blocking suggestions are dispositioned as follows: retain reconstruction for concrete element types because numeric and user-defined conversions can still require it, as explained in the prior disposition. Keep inline generated construction to preserve reflection-free AOT support; the existing helper comments explain this choice and the per-level bindings. Pattern bindings remain scoped to their switch arms; no hoisting is introduced. System.Tuple inputs are supported by reflection's CastInvocationArgument, which recognizes both tuple families, unwraps them, and reconstructs the target tuple. Extra custom-ITuple coverage and explanatory comments are optional future improvements rather than blockers for this fix. Marking ready for CI and the ready-for-review Claude run. Auto-merge must wait for that Claude run's verdict, per repository guidance. |
Review of #7515: recursive tuple reconstruction in generated invokersOverall this is a sound fix. I read What works
Suggestions (non-blocking)
I have no blocking concerns. The follow-up generic-instance-row defect is tracked separately in #7514, which is reasonable. |
|
The earlier blocker is cleared: run 41706580978 completed successfully on a4b9973. The ready-for-review Claude verdict has no blocking concerns, Codex reports a completed review without findings on the same head, and all CI checks have passed, including engine tests and AOT on all three platforms. The latest Claude suggestions repeat the already dispositioned inline-construction and fast-path trade-offs; no new changes are needed. CodeRabbit’s docstring-coverage warning is non-blocking: the new internal helper already explains invariance, reflection-free reconstruction, input binding, and nullable fallback in comments. Additional XML documentation is optional. The nullable-tuple thread is resolved with its fix commit and has no later reviewer reply. Proceeding through the repository merge gate. |
Generated invokers cast nested tuples directly, so a row such as
(int, (int, string))throws when a generic test accepts(T, (int, object)). Reconstruct mismatched value tuples recursively through their elements, preserving direct casts for already compatible tuples and avoiding reflection.Cover nested and deep/long tuples, separate parameters, and preserved instance-source rows. Update the affected generator snapshots. A separate generated-metadata defect affecting preserved generic instance rows is tracked in #7514.
Closes #7485
Validation:
InvalidCastException.Summary by CodeRabbit
Bug Fixes
Tests