<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_mir_dataflow/src/framework/tests.rs, 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-06-29T12:39:13+00:00</updated>
<entry>
<title>mir: Use the `new` method for `BasicBlockData`</title>
<updated>2025-06-29T12:39:13+00:00</updated>
<author>
<name>dianqk</name>
<email>dianqk@dianqk.net</email>
</author>
<published>2025-06-16T14:31:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=24e553e6bcfa329b04b93c0978e00b492224a255'/>
<id>urn:sha1:24e553e6bcfa329b04b93c0978e00b492224a255</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>Separate `Analysis` and `Results`.</title>
<updated>2025-04-24T01:36:07+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2025-04-18T00:46:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=92799b6f89d2d9bbfcb9b11d1bac57899d0bc435'/>
<id>urn:sha1:92799b6f89d2d9bbfcb9b11d1bac57899d0bc435</id>
<content type='text'>
`Results` contains and `Analysis` and an `EntryStates`. The unfortunate
thing about this is that the analysis needs to be mutable everywhere
(`&amp;mut Analysis`) which forces the `Results` to be mutable everywhere,
even though `EntryStates` is immutable everywhere.

To fix this, this commit renames `Results` as `AnalysisAndResults`,
renames `EntryStates` as `Results`, and separates the analysis and
results as much as possible. (`AnalysisAndResults` doesn't get much use,
it's mostly there to facilitate method chaining of
`iterate_to_fixpoint`.)

`Results` is immutable everywhere, which:
- is a bit clearer on how the data is used,
- avoids an unnecessary clone of entry states in
  `locals_live_across_suspend_points`, and
- moves the results outside the `RefCell` in Formatter.

The commit also reformulates `ResultsHandle` as the generic `CowMut`,
which is simpler than `ResultsHandle` because it doesn't need the
`'tcx` lifetime and the trait bounds. It also which sits nicely
alongside the new use of `Cow` in `ResultsCursor`.
</content>
</entry>
<entry>
<title>Rustfmt</title>
<updated>2025-02-08T22:12:13+00:00</updated>
<author>
<name>bjorn3</name>
<email>17426603+bjorn3@users.noreply.github.com</email>
</author>
<published>2025-02-08T22:12:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=1fcae03369abb4c2cc180cd5a49e1f4440a81300'/>
<id>urn:sha1:1fcae03369abb4c2cc180cd5a49e1f4440a81300</id>
<content type='text'>
</content>
</entry>
<entry>
<title>rename `BitSet` to `DenseBitSet`</title>
<updated>2025-01-11T11:34:01+00:00</updated>
<author>
<name>Rémy Rakic</name>
<email>remy.rakic+github@gmail.com</email>
</author>
<published>2025-01-07T15:19:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a13354bea05968799a5be5521691322274fa6a9e'/>
<id>urn:sha1:a13354bea05968799a5be5521691322274fa6a9e</id>
<content type='text'>
This should make it clearer that this bitset is dense, with the
advantages and disadvantages that it entails.
</content>
</entry>
<entry>
<title>Reorder some `Analysis` methods.</title>
<updated>2024-12-10T01:09:25+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2024-11-26T07:15:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=dddc09d2c359b57e43a0a6729e0d5e84894fbfe9'/>
<id>urn:sha1:dddc09d2c359b57e43a0a6729e0d5e84894fbfe9</id>
<content type='text'>
In most places, the `early` method is listed before the corresponding
`primary` method, like you'd expect. This commit fixes two places where
that isn't the case.
</content>
</entry>
<entry>
<title>Rename some `Analysis` and `ResultsVisitor` methods.</title>
<updated>2024-12-10T01:07:13+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2024-11-26T04:31:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=1d56943f34ee3e1d28ae7677b8410af867f267da'/>
<id>urn:sha1:1d56943f34ee3e1d28ae7677b8410af867f267da</id>
<content type='text'>
The words "before" and "after" have an obvious temporal meaning, e.g.
`seek_before_primary_effect`,
`visit_statement_{before,after}_primary_effect`. But "before" is also
used to name the effect that occurs before the primary effect of a
statement/terminator; this is `Effect::Before`. This leads to the
confusing possibility of talking about things happening "before/after
the before event".

This commit removes this awkward overloading of "before" by renaming
`Effect::Before` as `Effect::Early`. It also renames some of the
`Analysis` and `ResultsVisitor` methods to be more consistent.

Here are the before and after names:

- `Effect::{Before,Primary}`              -&gt; `Effect::{Early,Primary}`
- `apply_before_statement_effect`         -&gt; `apply_early_statement_effect`
- `apply_statement_effect`                -&gt; `apply_primary_statement_effect`
- `visit_statement_before_primary_effect` -&gt; `visit_after_early_statement_effect`
- `visit_statement_after_primary_effect`  -&gt; `visit_after_primary_statement_effect`

(And s/statement/terminator/ for all the terminator events.)
</content>
</entry>
<entry>
<title>Rename `EntrySets` as `EntryStates`.</title>
<updated>2024-12-10T01:04:45+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2024-11-26T03:21:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b059ea857cb39606c297378fefe6689d5723a4f6'/>
<id>urn:sha1:b059ea857cb39606c297378fefe6689d5723a4f6</id>
<content type='text'>
"Set" doesn't make much sense here, we refer to domain values as "state"
everywhere else. (This name confused me for a while.)
</content>
</entry>
<entry>
<title>Add defaults for `Analysis::apply_{call_return_effect,terminator_effect}`.</title>
<updated>2024-10-14T05:35:47+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2024-10-10T01:06:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=33abf6a0c8b9a051c06dcb43935f3e15c96ade45'/>
<id>urn:sha1:33abf6a0c8b9a051c06dcb43935f3e15c96ade45</id>
<content type='text'>
To avoid some low-value boilerplate code.
</content>
</entry>
<entry>
<title>Merge `AnalysisDomain` into `Analysis`.</title>
<updated>2024-10-14T05:35:47+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2024-10-10T00:46:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ba13775319fa51933da6e90053a9f96778b15b6b'/>
<id>urn:sha1:ba13775319fa51933da6e90053a9f96778b15b6b</id>
<content type='text'>
With `GenKillAnalysis` gone, there is no need for them to be separate.
</content>
</entry>
</feed>
