Repository navigation
Preserve generic tuple rows from instance data sources - #7548
Conversation
Walkthrough
Pre-merge checks:
|
|
@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 of #7548I found no blocking issues. The fix is small and targeted. What I checked
Non-blocking suggestions
Good to go once CI is green. |
|
Codex Review: Didn't find any major issues. 👍 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; the reported nested-singleton failure is fixed. SummaryPreserves generic tuple rows from instance data sources without losing nested elements.
The numbered previous finding is fixed. The earlier reference-tuple, null-element, and singleton-conversion threads also match the current fixes. No new actionable issues were found. Tests were not rerun during this review.
|
|
@codex review Fixed Greptile's confirmed reference-tuple regression in 68028a5. The preservation predicate now applies only to value tuples. Added the suggested explanation at the row branch; retained the existing name check to keep this fix focused. All 16 targeted tuple tests pass in each discovery mode. Existing analyzer/generator build warnings are tracked by #7410. |
Review of #7548The fix is targeted and reads correctly. I couldn't run the full code-review skill (it errored), so this is a manual read of the diff. I didn't build the code or run the tests. What I checked
Suggestions (non-blocking)
No blocking issues found. Engine integration tests are left to CI, as the PR description says. 🤖 Generated with Claude Code |
|
Codex Review: Didn't find any major issues. Keep them coming! 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". |
|
@codex review Fixed the confirmed multi-element reference-tuple truncation in 330e157. Both new regressions fail before the fix; all 18 targeted tests pass in each discovery mode. The shared flattening helper also addresses Claude's suggestion to keep the two binding paths aligned. Retained the parameter-counting and TypeInfo name checks to keep this fix focused; both counting paths exclude CancellationToken. |
ReviewThe fix looks correct and well scoped. Instance method data sources now keep a generic tuple row whole when generated metadata erases the parameter to I have no blocking concerns. Two optional suggestions:
I did not run the tests. The PR description reports 18 targeted tuple tests passing in each discovery mode, and CI will run the engine suite. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 330e157f12
ℹ️ 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".
Review of #7548: Preserve generic tuple rows from instance data sourcesThe fix looks correct and well targeted. I found no blocking issues. What I checked
Suggestions (non-blocking)
CI still has to run the engine integration suite. Overall this looks good to merge. |
|
Codex Review: Didn't find any major issues. Bravo. 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". |
|
@codex review Fixed in 0285bc3. Confirmed both value-tuple and reference-tuple singleton null rows failed before the fix. The shared helper now preserves their containers for single-element reference-tuple targets, allowing the existing invoker to distinguish a tuple containing null from a null row. All 22 targeted tuple tests pass in each discovery mode; netstandard2.0 engine build passed with zero warnings. Engine integration remains for CI. Claude suggestions: the shared decision now uses a named reference-target boolean. Retaining the existing name matching and invocation-time parameter lookup keeps the null-row fix focused; no caching or performance change is claimed. |
Review of #7548I read the diff only. I didn't build the PR or run the tests. The fix targets the right problem. Generated metadata erases a generic tuple parameter to Suggestions, none blocking:
Overall this is a solid, well-tested fix. Please confirm the engine integration CI is green before merging. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0285bc375c
ℹ️ 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".
|
@codex review Please confirm the singleton value-tuple disposition: #7548 (comment) . Added three tests; all 14 tests in this class pass in each discovery mode. |
Review of #7548 (preserve erased generic tuple rows)I read the diff and found no correctness bugs. I didn't build the PR or run any tests. What I checked
Design suggestions (non-blocking)
Overall this is a solid fix with good regression coverage. |
Summary
Instance method data sources lost tuple elements when generated metadata represented a generic tuple parameter as
object. Preserve that row using its existingTypeInfoshape in both the runtime source reader and engine unwrapping, while retaining flattened binding for mutable tuple elements.Add regression coverage for nested tuples with explicit generic arguments, cancellation-token injection, separate parameters, scalar binding, and single- and multi-element reference-tuple conversions. Reference tuples retain flattened binding for those conversions.
Closes #7514
Validation
PreservedGenericTupleTests: 7 passed in each discovery mode.NestedTupleBindingTests: 7 passed in each discovery mode.GenericTupleBindingTests: 4 passed in each discovery mode.Review follow-up: confirmed both new multi-element reference-tuple regressions failed before the fix. All 18 targeted tuple tests pass in each discovery mode; the .NET Standard 2.0 engine build passes without warnings. Shared tuple-binding helpers keep the runtime source reader and engine unwrapper aligned.
Cross-family review follow-up: reference-tuple targets now flatten value-tuple sources using the retained target metadata in both binding paths. Both added regressions fail before the fix; all 20 targeted tuple tests pass in each discovery mode, and the .NET Standard 2.0 engine build passes without warnings. Engine integration remains for CI per repository instructions.
Null-row review follow-up: preserved singleton tuple containers containing null for reference-tuple targets. Both new regressions fail before the fix; all 22 targeted tests pass in each discovery mode. The netstandard2.0 engine build passed without warnings.
Singleton value-tuple review follow-up: the reported conversion passes without a production change. Added explicit element-type, matching-element, and null-element coverage; all 14 PreservedGenericTupleTests pass in each discovery mode.
Singleton binding follow-up: routed incompatible preserved singleton containers through element-wise conversion in the generated invoker. Added a generator snapshot, cancellation-token coverage, and reference-source coverage. All 16 focused tests, 12 existing singleton tests, and 7 nested tuple tests pass in both modes. Generator suite: 330 passed, one skipped. Corrected two unrelated stale generator snapshots for existing constructor/property output. Allocation follow-up: #7552. Engine integration remains for CI.
Nested singleton follow-up: retained outer singleton value-tuple rows through binding in both discovery modes and aligned reflection invocation with generated invocation. Four regressions fail before the fix; all 20 focused tests pass in both modes and Native AOT. Mutable (10) and nested tuple (7) tests pass in each mode; generator snapshot and netstandard2.0 build pass. Existing warnings: #7410 and #7430. Engine integration remains for CI.
Summary by CodeRabbit