<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/tests/ui/borrowck, branch perf-tmp</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=perf-tmp</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=perf-tmp'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2025-09-28T20:55:35+00:00</updated>
<entry>
<title>reword note</title>
<updated>2025-09-28T20:55:35+00:00</updated>
<author>
<name>Esteban Küber</name>
<email>esteban@kuber.com.ar</email>
</author>
<published>2025-08-31T20:42:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4973903cd204dd2cd36e15267de72ed6d954e3a6'/>
<id>urn:sha1:4973903cd204dd2cd36e15267de72ed6d954e3a6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Point at lifetime requirement origin in more cases</title>
<updated>2025-09-28T20:55:34+00:00</updated>
<author>
<name>Esteban Küber</name>
<email>esteban@kuber.com.ar</email>
</author>
<published>2025-08-29T20:14:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=7a0319f01d08e541c8e16febaa68c5fa8b66b586'/>
<id>urn:sha1:7a0319f01d08e541c8e16febaa68c5fa8b66b586</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Point at fn bound that introduced lifetime obligation</title>
<updated>2025-09-28T20:55:34+00:00</updated>
<author>
<name>Esteban Küber</name>
<email>esteban@kuber.com.ar</email>
</author>
<published>2025-08-29T19:35:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c3e0b29e79f347edf7e0ae559bfec2d3cdf353d8'/>
<id>urn:sha1:c3e0b29e79f347edf7e0ae559bfec2d3cdf353d8</id>
<content type='text'>
```
error[E0597]: `c` does not live long enough
  --&gt; $DIR/without-precise-captures-we-are-powerless.rs:19:20
   |
LL | fn simple&lt;'a&gt;(x: &amp;'a i32) {
   |           -- lifetime `'a` defined here
...
LL |     let c = async move || { println!("{}", *x); };
   |         - binding `c` declared here
LL |     outlives::&lt;'a&gt;(c());
   |     ---------------^---
   |     |              |
   |     |              borrowed value does not live long enough
   |     argument requires that `c` is borrowed for `'a`
LL |     outlives::&lt;'a&gt;(call_once(c));
LL | }
   | - `c` dropped here while still borrowed
   |
note: requirement that `c` is borrowed for `'a` introduced here
  --&gt; $DIR/without-precise-captures-we-are-powerless.rs:7:33
   |
LL | fn outlives&lt;'a&gt;(_: impl Sized + 'a) {}
   |                                 ^^
```

When encountering a `ConstraintCategory::Predicate` in a funtion call, point at the `Span` for that `Predicate` to explain where the lifetime obligation originates from.
</content>
</entry>
<entry>
<title>Rollup merge of #145838 - dianne:non-extending-super-let, r=jackh726,traviscross</title>
<updated>2025-09-17T04:56:45+00:00</updated>
<author>
<name>Stuart Cook</name>
<email>Zalathar@users.noreply.github.com</email>
</author>
<published>2025-09-17T04:56:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c2e8264b342b8e3547bfdbb6d4a7c11972affd94'/>
<id>urn:sha1:c2e8264b342b8e3547bfdbb6d4a7c11972affd94</id>
<content type='text'>
don't apply temporary lifetime extension rules to non-extended `super let`

Reference PR: rust-lang/reference#1980

This changes the semantics for `super let` (and macros implemented in terms of it, such as `pin!`, `format_args!`, `write!`, and `println!`) as suggested by ````@theemathas```` in https://github.com/rust-lang/rust/issues/145784#issuecomment-3218658335, making `super let` initializers only count as [extending expressions](https://doc.rust-lang.org/nightly/reference/destructors.html#extending-based-on-expressions) when the `super let` itself is within an extending block. Since `super let` initializers aren't temporary drop scopes, their temporaries outside of inner temporary scopes are effectively always extended, even when not in extending positions; this only affects two cases as far as I can tell:
- Block tail expressions in Rust 2024. This PR makes `f(pin!({ &amp;temp() }))` drop `temp()` at the end of the block in Rust 2024, whereas previously it would live until after the call to `f` because syntactically the `temp()` was in an extending position as a result of `super let` in `pin!`'s expansion.
- `super let` nested within a non-extended `super let` is no longer extended. i.e. a normal `let` is required to treat `super let`s as extending (in which case nested `super let`s will also be extending).

Closes rust-lang/rust#145784

This is a breaking change. Both static and dynamic semantics are affected. The most likely breakage is for programs to stop compiling, but it's technically possible for drop order to silently change as well (as in rust-lang/rust#145784). Since this affects stable macros, it probably would need a crater run.

Nominating for discussion alongside rust-lang/rust#145784: ````@rustbot```` label +I-lang-nominated +I-libs-api-nominated

Tracking issue for `super let`: rust-lang/rust#139076
</content>
</entry>
<entry>
<title>don't extend non-extended `super let` initializers' block tail temps</title>
<updated>2025-09-04T17:14:25+00:00</updated>
<author>
<name>dianne</name>
<email>diannes.gm@gmail.com</email>
</author>
<published>2025-08-25T05:48:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=0976d6ccac3d71befb58ceefd3109864f0eb210d'/>
<id>urn:sha1:0976d6ccac3d71befb58ceefd3109864f0eb210d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add test batch 1</title>
<updated>2025-08-27T04:23:26+00:00</updated>
<author>
<name>Oneirical</name>
<email>manchot@videotron.ca</email>
</author>
<published>2025-08-20T18:02:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=2e659f58940a31fa625e88f75f78111ed773f32d'/>
<id>urn:sha1:2e659f58940a31fa625e88f75f78111ed773f32d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>add tests, some with incorrect lifetime extension behavior</title>
<updated>2025-08-26T02:35:26+00:00</updated>
<author>
<name>dianne</name>
<email>diannes.gm@gmail.com</email>
</author>
<published>2025-08-13T06:55:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9fd57df6397b0e2b0cd4db32884ed5e5443c7906'/>
<id>urn:sha1:9fd57df6397b0e2b0cd4db32884ed5e5443c7906</id>
<content type='text'>
</content>
</entry>
<entry>
<title>bless tests with new lint messages</title>
<updated>2025-08-19T19:27:10+00:00</updated>
<author>
<name>Karol Zwolak</name>
<email>karolzwolak7@gmail.com</email>
</author>
<published>2025-04-28T11:47:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d14b83e378c421dd09320ace833a9d47848e3046'/>
<id>urn:sha1:d14b83e378c421dd09320ace833a9d47848e3046</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rollup merge of #144983 - Oneirical:uncountable-integer, r=jieyouxu</title>
<updated>2025-08-19T11:42:06+00:00</updated>
<author>
<name>许杰友 Jieyou Xu (Joe)</name>
<email>39484203+jieyouxu@users.noreply.github.com</email>
</author>
<published>2025-08-19T11:42:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=2d058708975587e2ef189489e34b7c78efcfcc42'/>
<id>urn:sha1:2d058708975587e2ef189489e34b7c78efcfcc42</id>
<content type='text'>
Rehome 37 `tests/ui/issues/` tests to other subdirectories under `tests/ui/`

Part of rust-lang/rust#133895

Methodology:

1. Refer to the previously written `tests/ui/SUMMARY.md`
2. Find an appropriate category for the test, using the original issue thread and the test contents.
3. Add the issue URL at the bottom (not at the top, as that would mess up stderr line numbers)
4. Rename the tests to make their purpose clearer

Inspired by the methodology that ``@Kivooeo`` was using.

r? ``@jieyouxu``
</content>
</entry>
<entry>
<title>Rollup merge of #145041 - lcnr:borrowck-limitations-error, r=BoxyUwU</title>
<updated>2025-08-19T04:18:22+00:00</updated>
<author>
<name>Stuart Cook</name>
<email>Zalathar@users.noreply.github.com</email>
</author>
<published>2025-08-19T04:18:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f3f1847e40f0b33dcf7bee55af49054f7ec1875c'/>
<id>urn:sha1:f3f1847e40f0b33dcf7bee55af49054f7ec1875c</id>
<content type='text'>
rework GAT borrowck limitation error

The old one depends on the `ConstraintCategory` of the constraint which meant we did not emit this note if we had to prove the higher ranked trait bound due to e.g. normalization.

This made it annoying brittle and caused MIR borrowck errors to be order dependent, fixes the issue in https://github.com/rust-lang/rust/pull/140737#discussion_r2259592651.

r? types cc ```@amandasystems```
</content>
</entry>
</feed>
