<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/tests/ui/pattern/usefulness/integer-ranges, branch 1.78.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.78.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.78.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2024-03-13T13:17:11+00:00</updated>
<entry>
<title>Remove `MaybeInfiniteInt::JustAfterMax`</title>
<updated>2024-03-13T13:17:11+00:00</updated>
<author>
<name>Nadrieril</name>
<email>nadrieril+git@gmail.com</email>
</author>
<published>2024-03-13T13:17:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c4236785c72fdf04176716393c910b1fb011d15f'/>
<id>urn:sha1:c4236785c72fdf04176716393c910b1fb011d15f</id>
<content type='text'>
It was inherited from before half-open ranges, but it doesn't pull its
weight anymore. We lose a tiny bit of diagnostic precision.
</content>
</entry>
<entry>
<title>Rollup merge of #121908 - Nadrieril:dynamic-variant-collection, r=matthewjasper</title>
<updated>2024-03-13T05:41:21+00:00</updated>
<author>
<name>Matthias Krüger</name>
<email>matthias.krueger@famsik.de</email>
</author>
<published>2024-03-13T05:41:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=e6ba504029792871ce9ddc3d74e99316d7b64b5c'/>
<id>urn:sha1:e6ba504029792871ce9ddc3d74e99316d7b64b5c</id>
<content type='text'>
match lowering: don't collect test alternatives ahead of time

I'm very happy with this one. Before this, when sorting candidates into the possible test branches, we manually computed `usize` indices to determine in which branch each candidate goes. To make this work we had a first pass that collected the possible alternatives we'd have to deal with, and a second pass that actually sorts the candidates.

In this PR, I replace `usize` indices with a dedicated enum. This makes `sort_candidates` easier to follow, and we don't need the first pass anymore.

r? ``@matthewjasper``
</content>
</entry>
<entry>
<title>Lint small gaps between ranges</title>
<updated>2024-03-09T00:14:22+00:00</updated>
<author>
<name>Nadrieril</name>
<email>nadrieril+git@gmail.com</email>
</author>
<published>2024-01-14T21:24:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8ac9a04257f73d9861625816d4c741096dd69c67'/>
<id>urn:sha1:8ac9a04257f73d9861625816d4c741096dd69c67</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Allow lint where we don't care</title>
<updated>2024-03-09T00:13:42+00:00</updated>
<author>
<name>Nadrieril</name>
<email>nadrieril+git@gmail.com</email>
</author>
<published>2024-01-17T13:50:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f783043ebf49e3a51daf271b335a74320155f965'/>
<id>urn:sha1:f783043ebf49e3a51daf271b335a74320155f965</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix a subtle regression</title>
<updated>2024-03-02T17:38:37+00:00</updated>
<author>
<name>Nadrieril</name>
<email>nadrieril+git@gmail.com</email>
</author>
<published>2024-03-02T01:49:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d46ff6415c033ccfebac3d2a757908611a67d324'/>
<id>urn:sha1:d46ff6415c033ccfebac3d2a757908611a67d324</id>
<content type='text'>
Before, the SwitchInt cases were computed in two passes: if the first
pass accepted e.g. 0..=5 and then 1, the second pass would not accept
0..=5 anymore because 1 would be listed in the SwitchInt options.

Now there's a single pass, so if we sort 0..=5 we must take care to not
sort a subsequent 1.
</content>
</entry>
<entry>
<title>[AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives</title>
<updated>2024-02-16T20:02:50+00:00</updated>
<author>
<name>许杰友 Jieyou Xu (Joe)</name>
<email>jieyouxu@outlook.com</email>
</author>
<published>2024-02-16T20:02:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ec2cc761bc7067712ecc7734502f703fe3b024c8'/>
<id>urn:sha1:ec2cc761bc7067712ecc7734502f703fe3b024c8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Only lint ranges that really overlap</title>
<updated>2024-01-11T13:04:11+00:00</updated>
<author>
<name>Nadrieril</name>
<email>nadrieril+git@gmail.com</email>
</author>
<published>2023-12-29T18:21:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a24f4db41ba629a2477d6d332585faf5610c9210'/>
<id>urn:sha1:a24f4db41ba629a2477d6d332585faf5610c9210</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove the `precise_pointer_size_matching` feature gate</title>
<updated>2023-12-04T10:56:21+00:00</updated>
<author>
<name>Nadrieril</name>
<email>nadrieril+git@gmail.com</email>
</author>
<published>2023-12-04T10:22:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5e470db05cc842593c7d2e59bc5c2e8ae71a7025'/>
<id>urn:sha1:5e470db05cc842593c7d2e59bc5c2e8ae71a7025</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Auto merge of #117611 - Nadrieril:linear-pass-take-4, r=cjgillot</title>
<updated>2023-11-26T00:14:14+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2023-11-26T00:14:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ee80c8d0a8bc63b69f68216c5d37f9ab837eedd0'/>
<id>urn:sha1:ee80c8d0a8bc63b69f68216c5d37f9ab837eedd0</id>
<content type='text'>
Rewrite exhaustiveness in one pass

This is at least my 4th attempt at this in as many years x) Previous attempts were all too complicated or too slow. But we're finally here!

The previous version of the exhaustiveness algorithm computed reachability for each arm then exhaustiveness of the whole match. Since each of these steps does roughly the same things, this rewrites the algorithm to do them all in one go. I also think this makes things much simpler.

I also rewrote the documentation of the algorithm in depth. Hopefully it's up-to-date and easier to follow now. Plz comment if anything's unclear.

r? `@oli-obk` I think you're one of the rare other people to understand the exhaustiveness algorithm?

cc `@varkor` I know you're not active anymore, but if you feel like having a look you might enjoy this :D

Fixes https://github.com/rust-lang/rust/issues/79307
</content>
</entry>
<entry>
<title>Show number in error message even for one error</title>
<updated>2023-11-24T18:15:52+00:00</updated>
<author>
<name>Nilstrieb</name>
<email>48135649+Nilstrieb@users.noreply.github.com</email>
</author>
<published>2023-11-21T15:44:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=41e8d152dc5abb5a706999ada8b059d3420af8f3'/>
<id>urn:sha1:41e8d152dc5abb5a706999ada8b059d3420af8f3</id>
<content type='text'>
Co-authored-by: Adrian &lt;adrian.iosdev@gmail.com&gt;
</content>
</entry>
</feed>
