Skip to content

as cast improvements #1732

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Feb 11, 2025
Merged

Conversation

WaffleLapkin
Copy link
Member

Improve the description of as casts, see individual commits for more info.

`&m1 T -> *m2 T` is not specific to `as` casts (it's a coercion!), but
`*[T; N]` -> `*T` is! (previously only the reference source version was
documented)
@rustbot rustbot added the S-waiting-on-review Status: The marked PR is awaiting review from a maintainer label Feb 9, 2025
@WaffleLapkin
Copy link
Member Author

WaffleLapkin commented Feb 9, 2025

Am I reading the CI failure correctly? It seems to imply that footnotes are global and you can't have [^1] in two different files. Why so?...

@ehuss
Copy link
Contributor

ehuss commented Feb 9, 2025

Because all pages are concatenated together to generate the print page. mdbook currently doesn't have the ability to rewrite the markdown to make the footnotes unique.

Copy link
Contributor

@ehuss ehuss left a comment

Choose a reason for hiding this comment

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

Looks good. Will merge with the footnote labels fixed (probably can pick some short words for those?).

I suppose eventually we should be a little clearer about the normative nature of whether or not a footnote counts.

apparently mdbook requires them to have globally unique identifiers
(but they are still rendered as ^1, ^2, ...)
@WaffleLapkin
Copy link
Member Author

@ehuss fixed 👍🏻

@ehuss ehuss added this pull request to the merge queue Feb 11, 2025
Merged via the queue into rust-lang:master with commit 4d5e128 Feb 11, 2025
5 checks passed
@WaffleLapkin WaffleLapkin deleted the as-cast-improvements branch February 11, 2025 22:11
jhpratt added a commit to jhpratt/rust that referenced this pull request Feb 13, 2025
Update books

## rust-lang/book

1 commits in e2fa4316c5a7c0d2499c5d6b799adcfad6ef7a45..d4d2c18cbd20876b2130a546e790446a8444cb32
2025-02-12 16:22:54 UTC to 2025-02-12 16:22:54 UTC

- Fix example for `cargo fix` (rust-lang/book#4226)

## rust-lang/reference

3 commits in de2d5289e45506b11dd652bef4f99de64be70e1c..6195dbd70fc6f0980c314b4d23875ac570d8253a
2025-02-12 15:40:30 UTC to 2025-02-11 20:35:17 UTC

- Revert "Update function-pointer.md for stabilization of `extended_varargs_abi_support`" (rust-lang/reference#1734)
- Rework error handling in mdbook-spec (rust-lang/reference#1733)
- `as` cast improvements (rust-lang/reference#1732)
jhpratt added a commit to jhpratt/rust that referenced this pull request Feb 13, 2025
Update books

## rust-lang/book

1 commits in e2fa4316c5a7c0d2499c5d6b799adcfad6ef7a45..d4d2c18cbd20876b2130a546e790446a8444cb32
2025-02-12 16:22:54 UTC to 2025-02-12 16:22:54 UTC

- Fix example for `cargo fix` (rust-lang/book#4226)

## rust-lang/reference

3 commits in de2d5289e45506b11dd652bef4f99de64be70e1c..6195dbd70fc6f0980c314b4d23875ac570d8253a
2025-02-12 15:40:30 UTC to 2025-02-11 20:35:17 UTC

- Revert "Update function-pointer.md for stabilization of `extended_varargs_abi_support`" (rust-lang/reference#1734)
- Rework error handling in mdbook-spec (rust-lang/reference#1733)
- `as` cast improvements (rust-lang/reference#1732)
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Feb 13, 2025
Rollup merge of rust-lang#136937 - rustbot:docs-update, r=ehuss

Update books

## rust-lang/book

1 commits in e2fa4316c5a7c0d2499c5d6b799adcfad6ef7a45..d4d2c18cbd20876b2130a546e790446a8444cb32
2025-02-12 16:22:54 UTC to 2025-02-12 16:22:54 UTC

- Fix example for `cargo fix` (rust-lang/book#4226)

## rust-lang/reference

3 commits in de2d5289e45506b11dd652bef4f99de64be70e1c..6195dbd70fc6f0980c314b4d23875ac570d8253a
2025-02-12 15:40:30 UTC to 2025-02-11 20:35:17 UTC

- Revert "Update function-pointer.md for stabilization of `extended_varargs_abi_support`" (rust-lang/reference#1734)
- Rework error handling in mdbook-spec (rust-lang/reference#1733)
- `as` cast improvements (rust-lang/reference#1732)
github-actions bot pushed a commit to rust-lang/miri that referenced this pull request Feb 15, 2025
Update books

## rust-lang/book

1 commits in e2fa4316c5a7c0d2499c5d6b799adcfad6ef7a45..d4d2c18cbd20876b2130a546e790446a8444cb32
2025-02-12 16:22:54 UTC to 2025-02-12 16:22:54 UTC

- Fix example for `cargo fix` (rust-lang/book#4226)

## rust-lang/reference

3 commits in de2d5289e45506b11dd652bef4f99de64be70e1c..6195dbd70fc6f0980c314b4d23875ac570d8253a
2025-02-12 15:40:30 UTC to 2025-02-11 20:35:17 UTC

- Revert "Update function-pointer.md for stabilization of `extended_varargs_abi_support`" (rust-lang/reference#1734)
- Rework error handling in mdbook-spec (rust-lang/reference#1733)
- `as` cast improvements (rust-lang/reference#1732)
| [Function pointer] | Integer | Function pointer to address cast |
| Closure [^no-capture] | Function pointer | Closure to function pointer cast |

[^meta-compat]: where `T` and `V` have compatible metadata:
Copy link
Member

Choose a reason for hiding this comment

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

This being a footnote makes it really difficult to actually find this information. Why is it not just present in the pointer-to-pointer cast section as proper text?

Copy link
Member Author

Choose a reason for hiding this comment

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

Can you expand on this being difficult to find? You can just click the footnote link, right?

The reason it's not in pointer-to-pointer cast section is that it's a requirement, rather than effect.

I wish footnotes would be rendered where they are defined, rather than at the bottom. And if it's impossible I suppose we could refactor this so it doesn't use footnotes...

Copy link
Member

Choose a reason for hiding this comment

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

I don't know or expect to have to click the footnote to find fundamental information about how the cast behaves, especially when there's already a non-footnote section about the behaviour of the cast. Footnotes are for "unimportant" extra bits of important information, not main parts of the text.

Copy link
Member

Choose a reason for hiding this comment

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

The little footnote indicator is also just really easy to miss as part of a big table of information. (But even if I had noticed it I would not have clicked on it to try and find this information)

Copy link
Member Author

Choose a reason for hiding this comment

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

If the notes would be right next to the table, would that work for you?

this page rendered on doc.rust-lang.org/reference with footnotes moved right next to the table

Copy link
Member

Choose a reason for hiding this comment

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

Honestly I could still imagine missing it, when I see that table my first instinct is to click on the "Pointer to pointer casts" header to see all information about pointer to pointer casts. Having the footnotes right below would definitely be an improvement though

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-review Status: The marked PR is awaiting review from a maintainer
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants