<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_mir_build/src/builder/scope.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-07T23:51:41+00:00</updated>
<entry>
<title>only introduce a guard scope for arms with guards</title>
<updated>2025-08-07T23:51:41+00:00</updated>
<author>
<name>dianne</name>
<email>diannes.gm@gmail.com</email>
</author>
<published>2025-08-07T23:17:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=0bdaef5b63fe2d557483e72732e463b86ffb041b'/>
<id>urn:sha1:0bdaef5b63fe2d557483e72732e463b86ffb041b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>add a scope for `if let` guard temporaries and bindings</title>
<updated>2025-08-07T23:43:20+00:00</updated>
<author>
<name>dianne</name>
<email>diannes.gm@gmail.com</email>
</author>
<published>2025-07-03T13:10:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b2241c78c86a15b8e7e842f036135df4478de0fe'/>
<id>urn:sha1:b2241c78c86a15b8e7e842f036135df4478de0fe</id>
<content type='text'>
This ensures `if let` guard temporaries and bindings are dropped before
the match arm's pattern's bindings.
</content>
</entry>
<entry>
<title>`loop_match`: suggest extracting to a `const` item</title>
<updated>2025-07-25T22:10:56+00:00</updated>
<author>
<name>Folkert de Vries</name>
<email>folkert@folkertdev.nl</email>
</author>
<published>2025-07-07T12:37:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=730d33dd6476ebe4342da9e14c1079f277e1ee74'/>
<id>urn:sha1:730d33dd6476ebe4342da9e14c1079f277e1ee74</id>
<content type='text'>
if the expression cannot be evaluated in a straightforward way
</content>
</entry>
<entry>
<title>Auto merge of #143472 - dianne:deref-pat-column-check, r=Nadrieril</title>
<updated>2025-07-09T09:45:36+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2025-07-09T09:45:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6b3ae3f6e45a33c2d95fa0362c9b2593e567fd34'/>
<id>urn:sha1:6b3ae3f6e45a33c2d95fa0362c9b2593e567fd34</id>
<content type='text'>
`rustc_pattern_analysis`: always check that deref patterns don't match on the same place as normal constructors

In rust-lang/rust#140106, deref pattern validation was tied to the `deref_patterns` feature to temporarily avoid affecting perf. However:
- As of rust-lang/rust#143414, box patterns are represented as deref patterns in `rustc_pattern_analysis`. Since they can be used by enabling `box_patterns` instead of `deref_patterns`, it was possible for them to skip validation, resulting in an ICE. This fixes that and adds a regression test.
- External tooling (e.g. rust-analyzer) will also need to validate matches containing deref patterns, which was not possible. This fixes that by making `compute_match_usefulness` validate deref patterns by default.

In order to avoid doing an extra pass for anything with patterns, the second commit makes `RustcPatCtxt` keep track of whether it encounters a deref pattern, so that it only does the check if so. This is purely for performance. If the perf impact of the first commit is negligible and the complexity cost introduced by the second commit is significant, it may be worth dropping the latter.

r? `@Nadrieril`
</content>
</entry>
<entry>
<title>`loop_match`: fix 'no terminator on block'</title>
<updated>2025-07-07T11:55:40+00:00</updated>
<author>
<name>Folkert de Vries</name>
<email>folkert@folkertdev.nl</email>
</author>
<published>2025-07-07T11:55:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6d58a88c3ca2eefc24654700db522bfed668e1cb'/>
<id>urn:sha1:6d58a88c3ca2eefc24654700db522bfed668e1cb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>only check for mixed deref/normal constructors when needed</title>
<updated>2025-07-05T06:47:31+00:00</updated>
<author>
<name>dianne</name>
<email>diannes.gm@gmail.com</email>
</author>
<published>2025-07-05T04:53:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=bb643159786c789c0b64f819d36a0979c63f9791'/>
<id>urn:sha1:bb643159786c789c0b64f819d36a0979c63f9791</id>
<content type='text'>
</content>
</entry>
<entry>
<title>mir: Add a `new` method to `statement`</title>
<updated>2025-06-29T12:13:36+00:00</updated>
<author>
<name>dianqk</name>
<email>dianqk@dianqk.net</email>
</author>
<published>2025-06-08T07:30:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9f9cd5e2837f57504b92b5acbadb48ff0cb9e29c'/>
<id>urn:sha1:9f9cd5e2837f57504b92b5acbadb48ff0cb9e29c</id>
<content type='text'>
Avoid introducing a large number of changes when adding optional initialization fields.
</content>
</entry>
<entry>
<title>Add `#[loop_match]` for improved DFA codegen</title>
<updated>2025-06-23T18:43:04+00:00</updated>
<author>
<name>bjorn3</name>
<email>17426603+bjorn3@users.noreply.github.com</email>
</author>
<published>2025-02-18T13:16:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ba5556d239c11232dc8d95123ea70a2783019476'/>
<id>urn:sha1:ba5556d239c11232dc8d95123ea70a2783019476</id>
<content type='text'>
Co-authored-by: Folkert de Vries &lt;folkert@folkertdev.nl&gt;
</content>
</entry>
<entry>
<title>Avoid `fold`/`flat_map`.</title>
<updated>2025-05-26T23:28:39+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2025-05-20T19:54:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ec8baa5d43903a6f39ebc36370120db129a52deb'/>
<id>urn:sha1:ec8baa5d43903a6f39ebc36370120db129a52deb</id>
<content type='text'>
This pattern of iterating over scopes and drops occurs multiple times in
this file, with slight variations. All of them use `for` loops except
this one. This commits changes it for consistency.
</content>
</entry>
<entry>
<title>Factor out some repeated code in `build_exit_tree`.</title>
<updated>2025-05-26T23:28:39+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2025-05-20T19:48:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=84bb48fc886d5de72c86fb56c11f8586ca465647'/>
<id>urn:sha1:84bb48fc886d5de72c86fb56c11f8586ca465647</id>
<content type='text'>
</content>
</entry>
</feed>
