<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_pattern_analysis, branch try</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=try</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=try'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2025-07-20T16:23:18+00:00</updated>
<entry>
<title>Don't consider unstable fields always-inhabited</title>
<updated>2025-07-20T16:23:18+00:00</updated>
<author>
<name>Nadrieril</name>
<email>nadrieril+git@gmail.com</email>
</author>
<published>2025-07-20T12:28:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=3567ab19a0edb4f6c7ca88157d84caa3e1564326'/>
<id>urn:sha1:3567ab19a0edb4f6c7ca88157d84caa3e1564326</id>
<content type='text'>
This reverts the hack in https://github.com/rust-lang/rust/pull/133889
now that `Pin`'s field is no longer public.
</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>always check for mixed deref pattern and normal constructors</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:17:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=50061f3b11f51d7a6e3acd8ce793a1f17f99b597'/>
<id>urn:sha1:50061f3b11f51d7a6e3acd8ce793a1f17f99b597</id>
<content type='text'>
This makes it work for box patterns and in rust-analyzer.
</content>
</entry>
<entry>
<title>treat box patterns as deref patterns in THIR and usefulness analysis</title>
<updated>2025-07-04T08:28:35+00:00</updated>
<author>
<name>dianne</name>
<email>diannes.gm@gmail.com</email>
</author>
<published>2025-07-04T08:23:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=98659a339dd7203e0f23871b327b9305940e0d61'/>
<id>urn:sha1:98659a339dd7203e0f23871b327b9305940e0d61</id>
<content type='text'>
This removes special-casing of boxes from `rustc_pattern_analysis`, as a
first step in replacing `box_patterns` with `deref_patterns`.
Incidentally, it fixes a bug caused by box patterns being represented as
structs rather than pointers, where `exhaustive_patterns` could generate
spurious `unreachable_patterns` lints on arms required for
exhaustiveness; following the lint's advice would result in an error.
</content>
</entry>
<entry>
<title>setup CI and tidy to use typos for spellchecking and fix few typos</title>
<updated>2025-07-03T07:51:06+00:00</updated>
<author>
<name>klensy</name>
<email>klensy@users.noreply.github.com</email>
</author>
<published>2024-12-07T10:51:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c76d032f0144b650a438ee1efba89c475e0b115b'/>
<id>urn:sha1:c76d032f0144b650a438ee1efba89c475e0b115b</id>
<content type='text'>
</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>Use `builin_index` instead of hand-rolling it</title>
<updated>2025-05-28T10:03:01+00:00</updated>
<author>
<name>Oli Scherer</name>
<email>github333195615777966@oli-obk.de</email>
</author>
<published>2025-05-26T10:38:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=550aed825b3a630b5b2bd235e193bfce065268c2'/>
<id>urn:sha1:550aed825b3a630b5b2bd235e193bfce065268c2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Revert "Fix stack overflow in exhaustiveness due to recursive HIR opaque type values"</title>
<updated>2025-05-20T10:09:01+00:00</updated>
<author>
<name>Michael Goulet</name>
<email>michael@errs.io</email>
</author>
<published>2025-04-28T19:41:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=47b9e373cba69d66da9f91345219ff4f07eba84a'/>
<id>urn:sha1:47b9e373cba69d66da9f91345219ff4f07eba84a</id>
<content type='text'>
This reverts commit b08e9c2a60f4dbab4bdaa733727947b3395de329.
</content>
</entry>
<entry>
<title>Remove #![feature(let_chains)] from library and src/librustdoc</title>
<updated>2025-05-16T14:14:24+00:00</updated>
<author>
<name>est31</name>
<email>MTest31@outlook.com</email>
</author>
<published>2025-05-13T13:10:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=258e8808616e4cb5c65d2692c66a6c61e17cc09f'/>
<id>urn:sha1:258e8808616e4cb5c65d2692c66a6c61e17cc09f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>error early when mixing deref patterns with normal constructors</title>
<updated>2025-05-07T01:53:55+00:00</updated>
<author>
<name>dianne</name>
<email>diannes.gm@gmail.com</email>
</author>
<published>2025-04-21T06:57:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=fb261a179d2c210785b6e9005201e262dac801b5'/>
<id>urn:sha1:fb261a179d2c210785b6e9005201e262dac801b5</id>
<content type='text'>
Without adding proper support for mixed exhaustiveness, mixing deref
patterns with normal constructors would either violate
`ConstructorSet::split`'s invariant 4 or 7. We'd either be ignoring rows
with normal constructors or we'd have problems in unspecialization from
non-disjoint constructors. Checking mixed exhaustivenss similarly to how
unions are currently checked should work, but the diagnostics for unions
are confusing. Since mixing deref patterns with normal constructors is
pretty niche (currently it only makes sense for `Cow`), emitting an
error lets us avoid committing to supporting mixed exhaustiveness
without a good answer for the diagnostics.
</content>
</entry>
</feed>
