<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_mir_dataflow, branch 1.58.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.58.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.58.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2021-11-23T17:44:33+00:00</updated>
<entry>
<title>Auto merge of #90788 - ecstatic-morse:issue-90752, r=wesleywiser</title>
<updated>2021-11-23T17:44:33+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2021-11-23T17:44:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=7b3cd075bbe309031b418650a9c32baf0b4a3276'/>
<id>urn:sha1:7b3cd075bbe309031b418650a9c32baf0b4a3276</id>
<content type='text'>
Mark places as initialized when mutably borrowed

Fixes the example in #90752, but does not handle some corner cases involving raw pointers and unsafe. See [this comment](https://github.com/rust-lang/rust/issues/90752#issuecomment-965822895) for more information, or the second test.

Although I talked about both `MaybeUninitializedPlaces` and `MaybeInitializedPlaces` in #90752, this PR only changes the latter. That's because "maybe uninitialized" is the conservative choice, and marking them as definitely initialized (`!maybe_uninitialized`) when a mutable borrow is created could lead to problems if `addr_of_mut` to an uninitialized local is allowed. Additionally, places cannot become uninitialized via a mutable reference, so if a place is definitely initialized, taking a mutable reference to it should not change that.

I think it's correct to ignore interior mutability as nbdd0121 suggests below. Their analysis doesn't work inside of `core::cell`, which *does* have access to `UnsafeCell`'s field, but that won't be an issue unless we explicitly instantiate one with an `enum` within that module.

r? `@wesleywiser`
</content>
</entry>
<entry>
<title>Mark mutably borrowed places as maybe initialized</title>
<updated>2021-11-13T19:16:57+00:00</updated>
<author>
<name>Dylan MacKenzie</name>
<email>ecstaticmorse@gmail.com</email>
</author>
<published>2021-11-11T00:21:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=bea1bde8c7e5616a9dc9d501622bdeb5772501b9'/>
<id>urn:sha1:bea1bde8c7e5616a9dc9d501622bdeb5772501b9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use `associated_item_def_ids` more</title>
<updated>2021-11-11T23:15:57+00:00</updated>
<author>
<name>Matthew Jasper</name>
<email>mjjasper1@gmail.com</email>
</author>
<published>2021-11-05T18:47:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ba518ffdd3db0b8f211e410d4f5cd7891f1891ba'/>
<id>urn:sha1:ba518ffdd3db0b8f211e410d4f5cd7891f1891ba</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove `MaybeMutBorrowedLocals`</title>
<updated>2021-11-03T15:43:12+00:00</updated>
<author>
<name>Tomasz Miąsko</name>
<email>tomasz.miasko@gmail.com</email>
</author>
<published>2021-10-29T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b285e0c5d828d958ac22efa1e82648b178d1cbd5'/>
<id>urn:sha1:b285e0c5d828d958ac22efa1e82648b178d1cbd5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Ignore errors re: unreachable blocks in dataflow cursor unit tests</title>
<updated>2021-10-24T01:55:57+00:00</updated>
<author>
<name>Dylan MacKenzie</name>
<email>ecstaticmorse@gmail.com</email>
</author>
<published>2021-10-22T22:47:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=abd3fe347b41328b556c333330bbc815b5ec99e5'/>
<id>urn:sha1:abd3fe347b41328b556c333330bbc815b5ec99e5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>update cfg(bootstrap)</title>
<updated>2021-10-24T01:55:57+00:00</updated>
<author>
<name>Pietro Albini</name>
<email>pietro.albini@ferrous-systems.com</email>
</author>
<published>2021-10-19T07:27:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b63ab8005a76844a0330d45bf48b6d71e9422de3'/>
<id>urn:sha1:b63ab8005a76844a0330d45bf48b6d71e9422de3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Adopt let_else across the compiler</title>
<updated>2021-10-16T05:18:05+00:00</updated>
<author>
<name>est31</name>
<email>MTest31@outlook.com</email>
</author>
<published>2021-10-16T01:45:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=1418df5888131578eae04b39360f30df4ffe5599'/>
<id>urn:sha1:1418df5888131578eae04b39360f30df4ffe5599</id>
<content type='text'>
This performs a substitution of code following the pattern:

let &lt;id&gt; = if let &lt;pat&gt; = ... { identity } else { ... : ! };

To simplify it to:

let &lt;pat&gt; = ... { identity } else { ... : ! };

By adopting the let_else feature.
</content>
</entry>
<entry>
<title>comma-related changes</title>
<updated>2021-10-07T18:29:47+00:00</updated>
<author>
<name>Eliza Weisman</name>
<email>eliza@buoyant.io</email>
</author>
<published>2021-10-07T18:29:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b6f09a19b2345a6a898d176570496dea44b06aac'/>
<id>urn:sha1:b6f09a19b2345a6a898d176570496dea44b06aac</id>
<content type='text'>
Signed-off-by: Eliza Weisman &lt;eliza@buoyant.io&gt;
</content>
</entry>
<entry>
<title>make them structured while i'm here</title>
<updated>2021-10-07T17:46:47+00:00</updated>
<author>
<name>Eliza Weisman</name>
<email>eliza@buoyant.io</email>
</author>
<published>2021-10-07T17:46:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=928c787fcee7a15f20da3407d479b69da601644a'/>
<id>urn:sha1:928c787fcee7a15f20da3407d479b69da601644a</id>
<content type='text'>
Signed-off-by: Eliza Weisman &lt;eliza@buoyant.io&gt;
</content>
</entry>
<entry>
<title>demote `rustc_peek` traces look not user-facing</title>
<updated>2021-10-07T17:45:39+00:00</updated>
<author>
<name>Eliza Weisman</name>
<email>eliza@buoyant.io</email>
</author>
<published>2021-10-07T17:45:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=01803025d2afd7b6869878734fa411e8c659f68b'/>
<id>urn:sha1:01803025d2afd7b6869878734fa411e8c659f68b</id>
<content type='text'>
Signed-off-by: Eliza Weisman &lt;eliza@buoyant.io&gt;
</content>
</entry>
</feed>
