<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_borrowck/src/constraints, branch master</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=master</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2025-06-03T10:20:15+00:00</updated>
<entry>
<title>Move placeholder handling to a proper preprocessing step</title>
<updated>2025-06-03T10:20:15+00:00</updated>
<author>
<name>Amanda Stjerna</name>
<email>amanda.stjerna@it.uu.se</email>
</author>
<published>2025-04-29T15:12:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=aca36fd12a3277ce17eb94e4e89567843bf137f7'/>
<id>urn:sha1:aca36fd12a3277ce17eb94e4e89567843bf137f7</id>
<content type='text'>
This commit breaks out the logic of placheolder rewriting
into its own preprocessing step.

The only functional change from this is that the preprocessing
step (where extra `r: 'static` constraints are added) is
performed upstream of Polonius legacy, finally affecting
Polonius. That is mostly a by-product, though.
</content>
</entry>
<entry>
<title>Decouple SCC annotations from SCCs</title>
<updated>2025-04-28T12:59:04+00:00</updated>
<author>
<name>Amanda Stjerna</name>
<email>amanda.stjerna@it.uu.se</email>
</author>
<published>2025-04-17T10:11:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6c934f65640f4f6a4056f6f1e60c05be8bbcf21d'/>
<id>urn:sha1:6c934f65640f4f6a4056f6f1e60c05be8bbcf21d</id>
<content type='text'>
This rewires SCC annotations to have them be a separate,
visitor-type data structure. It was broken out of #130227,
which needed them to be able to remove unused annotations
after computation without recomputing the SCCs themselves.

As a drive-by it also removes some redundant code from
the hot loop in SCC construction for a performance improvement.
</content>
</entry>
<entry>
<title>Split the `Edges` iterator.</title>
<updated>2025-02-27T22:25:01+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2025-02-26T22:00:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=afc5e1fba5e12da77c6bcb8183c277c6e61de6a3'/>
<id>urn:sha1:afc5e1fba5e12da77c6bcb8183c277c6e61de6a3</id>
<content type='text'>
The `Edges` iterator returns `OutlivesConstraint` elements, which are 72
bytes. This is big enough to affect performance. Return
`&amp;OutlivesConstraint` would be better. However, each `Edges` iterator is
really one of two different iterators. The "from graph" case does a
graph traversal and could return `&amp;OutlivesConstraint`. But the "from
static" case just does a `0..n` iteration and constructs a new
`OutlivesConstraint` from that, so it can't return a reference.

This commit splits `Edges into `EdgesFromGraph` and `EdgesFromStatic`,
which allows them to have different return types. This is a perf win for
the `wg-grammar` benchmark.
</content>
</entry>
<entry>
<title>Adjust `ConstraintGraphDirection` methods.</title>
<updated>2025-02-27T21:23:29+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2025-02-26T21:55:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=60bf07a26c88b6ebd2522e5ae9cd1afcfa3887f4'/>
<id>urn:sha1:60bf07a26c88b6ebd2522e5ae9cd1afcfa3887f4</id>
<content type='text'>
This facilitates the next commit.
</content>
</entry>
<entry>
<title>Reduce visibilities.</title>
<updated>2024-11-04T04:43:45+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2024-10-04T00:04:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6676cec925772d74a9dd6eb4042b58ab2cc7fbfe'/>
<id>urn:sha1:6676cec925772d74a9dd6eb4042b58ab2cc7fbfe</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rename and reorder lots of lifetimes.</title>
<updated>2024-09-13T05:46:20+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2024-09-11T23:25:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8d32578fe1d05e0faa973b7fccf3359f8421e20d'/>
<id>urn:sha1:8d32578fe1d05e0faa973b7fccf3359f8421e20d</id>
<content type='text'>
- Replace non-standard names like 's, 'p, 'rg, 'ck, 'parent, 'this, and
  'me with vanilla 'a. These are cases where the original name isn't
  really any more informative than 'a.
- Replace names like 'cx, 'mir, and 'body with vanilla 'a when the lifetime
  applies to multiple fields and so the original lifetime name isn't
  really accurate.
- Put 'tcx last in lifetime lists, and 'a before 'b.
</content>
</entry>
<entry>
<title>Remove `#[macro_use] extern crate tracing` from `rustc_borrowck`.</title>
<updated>2024-08-30T07:14:53+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2024-08-29T22:39:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=67556eca99e044370a6ec85e1610c2e090ee7401'/>
<id>urn:sha1:67556eca99e044370a6ec85e1610c2e090ee7401</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Reformat `use` declarations.</title>
<updated>2024-07-28T22:26:52+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2024-07-28T22:13:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=84ac80f1921afc243d71fd0caaa4f2838c294102'/>
<id>urn:sha1:84ac80f1921afc243d71fd0caaa4f2838c294102</id>
<content type='text'>
The previous commit updated `rustfmt.toml` appropriately. This commit is
the outcome of running `x fmt --all` with the new formatting options.
</content>
</entry>
<entry>
<title>Add description for why this PR was made</title>
<updated>2024-07-01T09:52:38+00:00</updated>
<author>
<name>Amanda Stjerna</name>
<email>amanda.stjerna@it.uu.se</email>
</author>
<published>2024-07-01T09:51:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9be3a3d761060a047667226bd742346f8c25c6cf'/>
<id>urn:sha1:9be3a3d761060a047667226bd742346f8c25c6cf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Handle universe leaks by rewriting the constraint graph</title>
<updated>2024-07-01T08:39:42+00:00</updated>
<author>
<name>Amanda Stjerna</name>
<email>amanda.stjerna@it.uu.se</email>
</author>
<published>2024-06-13T14:35:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b3ef0e8487286b90e60261b9ac8d26dbb91b7e99'/>
<id>urn:sha1:b3ef0e8487286b90e60261b9ac8d26dbb91b7e99</id>
<content type='text'>
This version is a squash-rebased version of a series
of exiermental commits, since large parts of them
were broken out into PR #125069.

It explicitly handles universe violations in higher-kinded
outlives constraints by adding extra outlives static constraints.
</content>
</entry>
</feed>
