<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_mir_dataflow/src/framework, branch 1.76.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.76.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.76.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2023-12-10T02:56:22+00:00</updated>
<entry>
<title>remove redundant imports</title>
<updated>2023-12-10T02:56:22+00:00</updated>
<author>
<name>surechen</name>
<email>chenshuo17@huawei.com</email>
</author>
<published>2023-11-10T02:11:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=40ae34194c586eea3614d3216322053d2e8e7b37'/>
<id>urn:sha1:40ae34194c586eea3614d3216322053d2e8e7b37</id>
<content type='text'>
detects redundant imports that can be eliminated.

for #117772 :

In order to facilitate review and modification, split the checking code and
removing redundant imports code into two PR.
</content>
</entry>
<entry>
<title>Tweak `GenKillAnalysis`.</title>
<updated>2023-12-07T22:49:11+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2023-12-07T22:35:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4b364b6f0f1d7d6db1b289777068a11c1021bc24'/>
<id>urn:sha1:4b364b6f0f1d7d6db1b289777068a11c1021bc24</id>
<content type='text'>
`GenKillAnalysis` has five methods that take a transfer function arg:
- `statement_effect`
- `before_statement_effect`
- `terminator_effect`
- `before_terminator_effect`
- `call_return_effect`

All the transfer function args have type `&amp;mut impl GenKill&lt;Self::Idx&gt;`,
except for `terminator_effect`, which takes the simpler `Self::Domain`.

But only the first two need to be `impl GenKill`. The other
three can all be `Self::Domain`, just like `Analysis`. So this commit
changes the last two to take `Self::Domain`, making `GenKillAnalysis`
and `Analysis` more similar.

(Another idea would be to make all these methods `impl GenKill`. But
that doesn't work: `MaybeInitializedPlaces::terminator_effect` requires
the arg be `Self::Domain` so that `self_is_unwind_dead(place, state)`
can be called on it.)
</content>
</entry>
<entry>
<title>Remove `impl_visitable!`.</title>
<updated>2023-12-07T20:55:17+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2023-11-25T21:31:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=60e7c6898b2c8e67ec8754cd31f686217d4a944f'/>
<id>urn:sha1:60e7c6898b2c8e67ec8754cd31f686217d4a944f</id>
<content type='text'>
It is used just once. With it removed, the relevant code is a little
boilerplate-y but much easier to read, and is the same length. Overall I
think it's an improvement.
</content>
</entry>
<entry>
<title>Remove unused arguments from `ResultsVisitor::visit_block_{start,end}`.</title>
<updated>2023-12-07T20:55:17+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2023-11-25T19:58:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f312775e4fe78278b48df8f016418adf2c5c413d'/>
<id>urn:sha1:f312775e4fe78278b48df8f016418adf2c5c413d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Deparameterize `Results` and `ResultsCursor`.</title>
<updated>2023-11-26T23:35:43+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2023-11-24T00:28:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=e966c894179969e22d51982ac85da58e8b8862bb'/>
<id>urn:sha1:e966c894179969e22d51982ac85da58e8b8862bb</id>
<content type='text'>
They both now only ever contain a `Results&lt;'tcx, A&gt;`.

This means `AnalysisResults` can be removed, as can many
`borrow`/`borrow_mut` calls. Also `Results` no longer needs a
`PhantomData` because `'tcx` is now named by `entry_sets`.
</content>
</entry>
<entry>
<title>Remove `ResultsCloned` and `ResultsClonedCursor`.</title>
<updated>2023-11-26T23:35:43+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2023-11-24T00:18:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=34aa36b266f4e94c73392353e5651797997f5845'/>
<id>urn:sha1:34aa36b266f4e94c73392353e5651797997f5845</id>
<content type='text'>
They're now unused.
</content>
</entry>
<entry>
<title>Remove uses of `ResultsClonedCursor`.</title>
<updated>2023-11-26T23:35:43+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2023-11-24T00:14:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=500e55ba8c07d0e2a4dce4e51ad79dac21c94d6f'/>
<id>urn:sha1:500e55ba8c07d0e2a4dce4e51ad79dac21c94d6f</id>
<content type='text'>
By just cloning the entire `Results` in the one place where
`ResultsClonedCursor` was used. This is extra allocations but the
performance effect is negligible.
</content>
</entry>
<entry>
<title>Remove `ResultsRefCursor`.</title>
<updated>2023-11-26T23:35:43+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2023-11-23T07:50:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5f5263bfc82a199dfc1121022d855bb7545046ac'/>
<id>urn:sha1:5f5263bfc82a199dfc1121022d855bb7545046ac</id>
<content type='text'>
It's no longer used.
</content>
</entry>
<entry>
<title>Remove another use of `as_results_cursor`.</title>
<updated>2023-11-26T23:35:43+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2023-11-23T07:19:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=cf82b410f91082bce79bb70d5d94633f946a3b77'/>
<id>urn:sha1:cf82b410f91082bce79bb70d5d94633f946a3b77</id>
<content type='text'>
The new code is a little clunky, but I couldn't see how to make it
better.
</content>
</entry>
<entry>
<title>Remove `CloneAnalysis`.</title>
<updated>2023-11-26T23:35:42+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2023-11-23T06:17:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d957c4718377b8cb0dacc58cdbaa5a3fe82c53cc'/>
<id>urn:sha1:d957c4718377b8cb0dacc58cdbaa5a3fe82c53cc</id>
<content type='text'>
It's only implemented for analyses that implement `Copy`, which means
it's basically a complicated synonym for `Copy`. So this commit removes
it and uses `Copy` directly. (That direct use will be removed in a later
commit.)
</content>
</entry>
</feed>
