<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_parse/src/parser/generics.rs, branch cargo_update</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=cargo_update</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=cargo_update'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2025-08-16T14:15:58+00:00</updated>
<entry>
<title>Clean up parsers related to generic bounds</title>
<updated>2025-08-16T14:15:58+00:00</updated>
<author>
<name>León Orell Valerian Liehr</name>
<email>me@fmease.dev</email>
</author>
<published>2025-08-15T21:01:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f8f7c27d4f723913a6929e591c612865a7b62f70'/>
<id>urn:sha1:f8f7c27d4f723913a6929e591c612865a7b62f70</id>
<content type='text'>
</content>
</entry>
<entry>
<title>remove `P`</title>
<updated>2025-08-09T07:47:01+00:00</updated>
<author>
<name>Deadbeef</name>
<email>ent3rm4n@gmail.com</email>
</author>
<published>2025-08-09T05:24:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ad1113f87ef828b300ebb8fca397efd358580da3'/>
<id>urn:sha1:ad1113f87ef828b300ebb8fca397efd358580da3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Replace kw_span by full span.</title>
<updated>2025-07-03T14:59:27+00:00</updated>
<author>
<name>Camille GILLOT</name>
<email>gillot.camille@gmail.com</email>
</author>
<published>2024-07-02T09:38:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=3380bfd1a00fe3f85e8597bfdb9ad4d65df75da9'/>
<id>urn:sha1:3380bfd1a00fe3f85e8597bfdb9ad4d65df75da9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Better recovery</title>
<updated>2025-06-26T18:11:14+00:00</updated>
<author>
<name>Michael Goulet</name>
<email>michael@errs.io</email>
</author>
<published>2025-06-26T18:08:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4e51e67a24d940d3c8069062d07f663ee2034ac3'/>
<id>urn:sha1:4e51e67a24d940d3c8069062d07f663ee2034ac3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove `token::{Open,Close}Delim`.</title>
<updated>2025-04-20T21:35:56+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2025-04-16T06:13:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=bf8ce32558a4657d077a6761eaa293d0645c2e16'/>
<id>urn:sha1:bf8ce32558a4657d077a6761eaa293d0645c2e16</id>
<content type='text'>
By replacing them with `{Open,Close}{Param,Brace,Bracket,Invisible}`.

PR #137902 made `ast::TokenKind` more like `lexer::TokenKind` by
replacing the compound `BinOp{,Eq}(BinOpToken)` variants with fieldless
variants `Plus`, `Minus`, `Star`, etc. This commit does a similar thing
with delimiters. It also makes `ast::TokenKind` more similar to
`parser::TokenType`.

This requires a few new methods:
- `TokenKind::is_{,open_,close_}delim()` replace various kinds of
  pattern matches.
- `Delimiter::as_{open,close}_token_kind` are used to convert
  `Delimiter` values to `TokenKind`.

Despite these additions, it's a net reduction in lines of code. This is
because e.g. `token::OpenParen` is so much shorter than
`token::OpenDelim(Delimiter::Parenthesis)` that many multi-line forms
reduce to single line forms. And many places where the number of lines
doesn't change are still easier to read, just because the names are
shorter, e.g.:
```
-   } else if self.token != token::CloseDelim(Delimiter::Brace) {
+   } else if self.token != token::CloseBrace {
```
</content>
</entry>
<entry>
<title>Implment `#[cfg]` and `#[cfg_attr]` in `where` clauses</title>
<updated>2025-03-01T14:02:46+00:00</updated>
<author>
<name>Frank King</name>
<email>frankking1729@gmail.com</email>
</author>
<published>2025-02-05T10:58:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=42f51d4fd42c95e0c51c3f8742d63db0548cd5a0'/>
<id>urn:sha1:42f51d4fd42c95e0c51c3f8742d63db0548cd5a0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Stop using span hack for contracts feature gating</title>
<updated>2025-02-10T19:51:26+00:00</updated>
<author>
<name>Michael Goulet</name>
<email>michael@errs.io</email>
</author>
<published>2025-02-10T19:47:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=28164e3c047991294a3d4e7afd6b820c0c2f86ee'/>
<id>urn:sha1:28164e3c047991294a3d4e7afd6b820c0c2f86ee</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rename rustc_contract to contract</title>
<updated>2025-02-03T21:55:15+00:00</updated>
<author>
<name>Celina G. Val</name>
<email>celinval@amazon.com</email>
</author>
<published>2025-01-31T01:06:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ddbf54b67d9befcf1fb90613d2a6f7f6aa03141e'/>
<id>urn:sha1:ddbf54b67d9befcf1fb90613d2a6f7f6aa03141e</id>
<content type='text'>
This has now been approved as a language feature and no longer needs
a `rustc_` prefix.

Also change the `contracts` feature to be marked as incomplete and
`contracts_internals` as internal.
</content>
</entry>
<entry>
<title>Separate contract feature gates for the internal machinery</title>
<updated>2025-02-03T21:55:15+00:00</updated>
<author>
<name>Felix S. Klock II</name>
<email>pnkfelix@pnkfx.org</email>
</author>
<published>2024-12-03T16:13:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6a6c6b891bb0350b3f16abd3e84ff12dbd1b4c5b'/>
<id>urn:sha1:6a6c6b891bb0350b3f16abd3e84ff12dbd1b4c5b</id>
<content type='text'>
The extended syntax for function signature that includes contract clauses
should never be user exposed versus the interface we want to ship
externally eventually.
</content>
</entry>
<entry>
<title>Express contracts as part of function header and lower it to the contract lang items</title>
<updated>2025-02-03T20:54:00+00:00</updated>
<author>
<name>Celina G. Val</name>
<email>celinval@amazon.com</email>
</author>
<published>2025-01-09T00:38:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=38eff16d0aa029706a0b5845961f9b5ccddfd999'/>
<id>urn:sha1:38eff16d0aa029706a0b5845961f9b5ccddfd999</id>
<content type='text'>
includes post-developed commit: do not suggest internal-only keywords as corrections to parse failures.

includes post-developed commit: removed tabs that creeped in into rustfmt tool source code.

includes post-developed commit, placating rustfmt self dogfooding.

includes post-developed commit: add backquotes to prevent markdown checking from trying to treat an attr as a markdown hyperlink/

includes post-developed commit: fix lowering to keep contracts from being erroneously inherited by nested bodies (like closures).

Rebase Conflicts:
 - compiler/rustc_parse/src/parser/diagnostics.rs
 - compiler/rustc_parse/src/parser/item.rs
 - compiler/rustc_span/src/hygiene.rs

Remove contracts keywords from diagnostic messages
</content>
</entry>
</feed>
