Skip to content

Separate cast plans from pointer reconstruction - #3825

Open
joshlf wants to merge 1 commit into
Glzjt2cwoexxyhj2f2lgnba524ajc2cqpfrom
G5bbi6lfcow3sjrplwzweldyeyjggh3at
Open

joshlf wants to merge 1 commit into
Glzjt2cwoexxyhj2f2lgnba524ajc2cqpfrom
G5bbi6lfcow3sjrplwzweldyeyjggh3at

Conversation

@joshlf

@joshlf joshlf commented Oct 8, 2026 •

Copy link
Copy Markdown
Member

The numerical cast decisions are nested inside the generic pointer
projection, which makes them difficult to extract and prove independently.
Move them into a non-generic CastPlan with separate selection and metadata
conversion methods.

Keep CastParams<Src, Dst> as the witness connecting a plan to its
KnownLayout pair. Its associated constant preserves compile-time rejection
of unsupported casts. Pointer projection reads metadata, applies that plan
and reconstructs the destination pointer. Preserve the existing complete
size comparisons and unchecked arithmetic.

Authored by an AI agent acting on joshlf's behalf.


Latest Update: v31 — Compare vs v30

📚 Full Patch History

Links show the diff between the row version and the column version.

Version v30 v29 v28 v27 v26 v25 v24 v23 v22 v21 v20 v19 v18 v17 v16 v15 v14 v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v31 v30 v29 v28 v27 v26 v25 v24 v23 v22 v21 v20 v19 v18 v17 v16 v15 v14 v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v30 v29 v28 v27 v26 v25 v24 v23 v22 v21 v20 v19 v18 v17 v16 v15 v14 v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v29 v28 v27 v26 v25 v24 v23 v22 v21 v20 v19 v18 v17 v16 v15 v14 v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v28 v27 v26 v25 v24 v23 v22 v21 v20 v19 v18 v17 v16 v15 v14 v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v27 v26 v25 v24 v23 v22 v21 v20 v19 v18 v17 v16 v15 v14 v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v26 v25 v24 v23 v22 v21 v20 v19 v18 v17 v16 v15 v14 v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v25 v24 v23 v22 v21 v20 v19 v18 v17 v16 v15 v14 v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v24 v23 v22 v21 v20 v19 v18 v17 v16 v15 v14 v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v23 v22 v21 v20 v19 v18 v17 v16 v15 v14 v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v22 v21 v20 v19 v18 v17 v16 v15 v14 v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v21 v20 v19 v18 v17 v16 v15 v14 v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v20 v19 v18 v17 v16 v15 v14 v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v19 v18 v17 v16 v15 v14 v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v18 v17 v16 v15 v14 v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v17 v16 v15 v14 v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v16 v15 v14 v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v15 v14 v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v14 v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v13 v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v12 v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v11 v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v10 v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v9 v8 v7 v6 v5 v4 v3 v2 v1 Base
v8 v7 v6 v5 v4 v3 v2 v1 Base
v7 v6 v5 v4 v3 v2 v1 Base
v6 v5 v4 v3 v2 v1 Base
v5 v4 v3 v2 v1 Base
v4 v3 v2 v1 Base
v3 v2 v1 Base
v2 v1 Base
v1 Base
⬇️ Download this PR

Branch

git fetch origin refs/heads/G5bbi6lfcow3sjrplwzweldyeyjggh3at && git checkout -b pr-G5bbi6lfcow3sjrplwzweldyeyjggh3at FETCH_HEAD

Checkout

git fetch origin refs/heads/G5bbi6lfcow3sjrplwzweldyeyjggh3at && git checkout FETCH_HEAD

Cherry Pick

git fetch origin refs/heads/G5bbi6lfcow3sjrplwzweldyeyjggh3at && git cherry-pick FETCH_HEAD

Pull

git pull origin refs/heads/G5bbi6lfcow3sjrplwzweldyeyjggh3at

Stacked PRs enabled by GHerrit.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-08T10:22:36.469381Z ce12010 PR opened
🔒 Security Review ✅ Completed 2026-10-08T10:23:30.619702Z ce12010 PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@codecov-commenter

codecov-commenter commented Oct 8, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 9.75610% with 74 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (Glzjt2cwoexxyhj2f2lgnba524ajc2cqp@8479254). Learn more about missing BASE report.

Files with missing lines Patch % Lines
zerocopy/src/layout/cast_from.rs 9.75% 74 Missing ⚠️
Additional details and impacted files
@@                         Coverage Diff                          @@
##             Glzjt2cwoexxyhj2f2lgnba524ajc2cqp    #3825   +/-   ##
====================================================================
  Coverage                                     ?   61.20%           
====================================================================
  Files                                        ?       20           
  Lines                                        ?     3727           
  Branches                                     ?        0           
====================================================================
  Hits                                         ?     2281           
  Misses                                       ?     1446           
  Partials                                     ?        0           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@joshlf
joshlf force-pushed the G5bbi6lfcow3sjrplwzweldyeyjggh3at branch from e595a60 to 2b81695 Compare October 14, 2026 03:39
@joshlf
joshlf force-pushed the G5bbi6lfcow3sjrplwzweldyeyjggh3at branch from 2b81695 to 92559e5 Compare October 14, 2026 18:32
@joshlf
joshlf force-pushed the G5bbi6lfcow3sjrplwzweldyeyjggh3at branch from 92559e5 to 3924d25 Compare October 14, 2026 21:43
@joshlf
joshlf force-pushed the Glzjt2cwoexxyhj2f2lgnba524ajc2cqp branch from 0fd7b2e to d66a3dc Compare October 15, 2026 00:40
@joshlf
joshlf force-pushed the G5bbi6lfcow3sjrplwzweldyeyjggh3at branch from 3924d25 to ce0aad4 Compare October 15, 2026 00:40
The numerical cast decisions are nested inside the generic pointer
projection, which makes them difficult to extract and prove independently.
Move them into a non-generic CastPlan with separate selection and metadata
conversion methods.

Keep CastParams<Src, Dst> as the witness connecting a plan to its
KnownLayout pair. Its associated constant preserves compile-time rejection
of unsupported casts. Pointer projection reads metadata, applies that plan
and reconstructs the destination pointer. Preserve the existing complete
size comparisons and unchecked arithmetic.

gherrit-pr-id: G5bbi6lfcow3sjrplwzweldyeyjggh3at
Agent-authored-by: AI agent acting on joshlf's behalf

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants