Skip to content

Document metadata of ptrs to indirectly unsized types#2289

Merged
traviscross merged 1 commit into
masterfrom
TC/document-metadata-of-pointers-to-indirectly-sized-types
Jun 16, 2026
Merged

Document metadata of ptrs to indirectly unsized types#2289
traviscross merged 1 commit into
masterfrom
TC/document-metadata-of-pointers-to-indirectly-sized-types

Conversation

@traviscross

@traviscross traviscross commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

We say that pointers to DSTs store metadata and what that metadata is for pointers to slices, str, and trait objects. But a struct or tuple with an unsized tail is itself a DST, and we hadn't said what the metadata is for pointers to these unsized types.

Now that we've defined metadata and unsized tail, let's complete this enumeration.


I'm breaking this out from #2282 so that we can merge the prerequisites before considering the new lang guarantees.

This is stacked on #2286 and #2287 and #2288 and #2290 (yes, that one is out of order) and those should be merged first.

cc @ehuss @RalfJung @Mark-Simulacrum

@rustbot rustbot added the S-waiting-on-review Status: The marked PR is awaiting review from a maintainer label Jun 16, 2026
@traviscross traviscross force-pushed the TC/document-metadata-of-pointers-to-indirectly-sized-types branch from d94966e to 6da94b1 Compare June 16, 2026 04:42
@traviscross traviscross changed the title Generalize the wide-pointer total-size bound Document metadata of ptrs to indirectly unsized types Jun 16, 2026
@traviscross traviscross force-pushed the TC/document-metadata-of-pointers-to-indirectly-sized-types branch 2 times, most recently from 0442f1d to f0c3d8c Compare June 16, 2026 04:49
@rustbot

This comment has been minimized.

@ehuss ehuss left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ehuss ehuss removed the S-waiting-on-review Status: The marked PR is awaiting review from a maintainer label Jun 16, 2026
We say that pointers to DSTs store metadata and what that metadata
is for pointers to slices, `str`, and trait objects.  But a struct or
tuple with an unsized tail is itself a DST, and we hadn't said what
the metadata is for pointers to these unsized types.

Now that we've defined *metadata* and *unsized tail*, let's complete
this enumeration.
@traviscross traviscross force-pushed the TC/document-metadata-of-pointers-to-indirectly-sized-types branch from f0c3d8c to ab30b8a Compare June 16, 2026 19:48
@rustbot

rustbot commented Jun 16, 2026

Copy link
Copy Markdown
Collaborator

This PR was rebased onto a different master commit. Here's a range-diff highlighting what actually changed.

Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers.

@traviscross traviscross added this pull request to the merge queue Jun 16, 2026
Merged via the queue into master with commit f6f674f Jun 16, 2026
6 checks passed
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Jun 30, 2026
Update books

## rust-lang/nomicon

1 commits in cc6a6bae8c3bfa389974e533c54694662c1a9de6..5012a37c682b26c4e19433888ed2ca9b129696ca
2026-06-25 10:05:58 UTC to 2026-06-25 10:05:58 UTC

- Clarify when safety may rely on correctness (rust-lang/nomicon#523)

## rust-lang/reference

10 commits in 2c27905c15a51983b54d84f050d3bda096194d27..86635e30bf861a038dc197d7e16fd09e7e514e7a
2026-06-25 17:00:32 UTC to 2026-06-16 18:56:35 UTC

- use-declarations.md: move example to where it's described (rust-lang/reference#2295)
- fix link target (rust-lang/reference#2299)
- remove broken text (rust-lang/reference#2297)
- type-layout: rewrite `#[repr(C)]` struct layout algorithm (rust-lang/reference#2243)
- Fix grammar rules containing or pertaining to bounds (rust-lang/reference#2257)
- Document metadata of ptrs to indirectly unsized types (rust-lang/reference#2289)
- Generalize the wide-pointer total-size bound (rust-lang/reference#2290)
- Cover `str` in the wide-pointer metadata rule (rust-lang/reference#2288)
- Define an unsized tail (rust-lang/reference#2287)
- Define pointer metadata (rust-lang/reference#2286)
@rustbot rustbot added this to the 1.98.0 milestone Jun 30, 2026
rust-timer added a commit to rust-lang/rust that referenced this pull request Jun 30, 2026
Rollup merge of #158571 - rustbot:docs-update, r=ehuss

Update books

## rust-lang/nomicon

1 commits in cc6a6bae8c3bfa389974e533c54694662c1a9de6..5012a37c682b26c4e19433888ed2ca9b129696ca
2026-06-25 10:05:58 UTC to 2026-06-25 10:05:58 UTC

- Clarify when safety may rely on correctness (rust-lang/nomicon#523)

## rust-lang/reference

10 commits in 2c27905c15a51983b54d84f050d3bda096194d27..86635e30bf861a038dc197d7e16fd09e7e514e7a
2026-06-25 17:00:32 UTC to 2026-06-16 18:56:35 UTC

- use-declarations.md: move example to where it's described (rust-lang/reference#2295)
- fix link target (rust-lang/reference#2299)
- remove broken text (rust-lang/reference#2297)
- type-layout: rewrite `#[repr(C)]` struct layout algorithm (rust-lang/reference#2243)
- Fix grammar rules containing or pertaining to bounds (rust-lang/reference#2257)
- Document metadata of ptrs to indirectly unsized types (rust-lang/reference#2289)
- Generalize the wide-pointer total-size bound (rust-lang/reference#2290)
- Cover `str` in the wide-pointer metadata rule (rust-lang/reference#2288)
- Define an unsized tail (rust-lang/reference#2287)
- Define pointer metadata (rust-lang/reference#2286)
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.

3 participants