-
Notifications
You must be signed in to change notification settings - Fork 530
Improve documentation of struct expressions #1799
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
Conversation
335767e
to
119164c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
I opened #1802 to capture my thoughts on this in general, and to consider just removing all of this. (Not a blocker for this PR.) I've never been particularly comfortable with how this is presented.
src/expressions/struct-expr.md
Outdated
StructExprTuple -> | ||
PathInExpression `(` | ||
PathExpression `(` | ||
( Expression (`,` Expression)* `,`? )? | ||
`)` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe to simplify this further it can be StructExprTuple -> CallExpression
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done ✅
+ simplify/clarify the grammar
119164c
to
f025b98
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
Update books ## rust-lang/reference 9 commits in 3bf3402aea982b876eb56c87da17b0685c6461d5..387392674d74656f7cb437c05a96f0c52ea8e601 2025-05-03 21:29:09 UTC to 2025-04-22 15:25:03 UTC - Document `let_chains` again (rust-lang/reference#1740) - Add: orphan rule rationale. (rust-lang/reference#1755) - Remove apologies about the Reference (rust-lang/reference#1792) - Clean up some inline assembly examples (rust-lang/reference#1804) - Remove StructExprTuple and StructExprUnit (rust-lang/reference#1803) - Improve documentation of struct expressions (rust-lang/reference#1799) - Clarify interaction of asm-goto with IBT (rust-lang/reference#1790) - naked functions (rust-lang/reference#1689) - Relabel grammarRailroad-Button (rust-lang/reference#1798) ## rust-lang/rust-by-example 3 commits in 0d7964d5b22cf920237ef1282d869564b4883b88..8a8918c698534547fa8a1a693cb3e7277f0bfb2f 2025-04-30 12:20:49 UTC to 2025-04-22 17:42:30 UTC - The example is not meant to be compiled. Changed the code block ann… (rust-lang/rust-by-example#1926) - Non-tail recursive call note in testcase_linked_list.md (rust-lang/rust-by-example#1924) - docs: mark illustrative 'static lifetime example with `ignore` (rust-lang/rust-by-example#1923)
Rollup merge of rust-lang#140676 - rustbot:docs-update, r=ehuss Update books ## rust-lang/reference 9 commits in 3bf3402aea982b876eb56c87da17b0685c6461d5..387392674d74656f7cb437c05a96f0c52ea8e601 2025-05-03 21:29:09 UTC to 2025-04-22 15:25:03 UTC - Document `let_chains` again (rust-lang/reference#1740) - Add: orphan rule rationale. (rust-lang/reference#1755) - Remove apologies about the Reference (rust-lang/reference#1792) - Clean up some inline assembly examples (rust-lang/reference#1804) - Remove StructExprTuple and StructExprUnit (rust-lang/reference#1803) - Improve documentation of struct expressions (rust-lang/reference#1799) - Clarify interaction of asm-goto with IBT (rust-lang/reference#1790) - naked functions (rust-lang/reference#1689) - Relabel grammarRailroad-Button (rust-lang/reference#1798) ## rust-lang/rust-by-example 3 commits in 0d7964d5b22cf920237ef1282d869564b4883b88..8a8918c698534547fa8a1a693cb3e7277f0bfb2f 2025-04-30 12:20:49 UTC to 2025-04-22 17:42:30 UTC - The example is not meant to be compiled. Changed the code block ann… (rust-lang/rust-by-example#1926) - Non-tail recursive call note in testcase_linked_list.md (rust-lang/rust-by-example#1924) - docs: mark illustrative 'static lifetime example with `ignore` (rust-lang/rust-by-example#1923)
This compiles:
So qualified paths can be used when constructing tuple/unit variants. This PR documents that. (note that tuple/unit struct expressions aren't really a thing -- they are just calls/paths, so this doesn't necessarily change much, calls/paths already have correct docs)
Additionally I added more mentions of the fact that these expressions are the same for enums.