<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_hir_analysis, 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-10-02T08:09:33+00:00</updated>
<entry>
<title>Auto merge of #147138 - jackh726:split-canonical-bound, r=lcnr</title>
<updated>2025-10-02T08:09:33+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2025-10-02T08:09:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4b9c62b4da3e17cee99d3d2052f1c576b188e2a8'/>
<id>urn:sha1:4b9c62b4da3e17cee99d3d2052f1c576b188e2a8</id>
<content type='text'>
Split Bound index into Canonical and Bound

See [#t-types/trait-system-refactor &gt; perf &amp;#96;async-closures/post-mono-higher-ranked-hang.rs&amp;#96;](https://rust-lang.zulipchat.com/#narrow/channel/364551-t-types.2Ftrait-system-refactor/topic/perf.20.60async-closures.2Fpost-mono-higher-ranked-hang.2Ers.60/with/541535613) for context

Things compile and tests pass, but not sure if this actually solves the perf issue (edit: it does). Opening up this to do a perf (and maybe crater) run.

r? lcnr
</content>
</entry>
<entry>
<title>Auto merge of #147235 - matthiaskrgr:rollup-a0es1x9, r=matthiaskrgr</title>
<updated>2025-10-01T18:45:43+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2025-10-01T18:45:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4da69dfff1929cc79872b3d05ab7112d84753dba'/>
<id>urn:sha1:4da69dfff1929cc79872b3d05ab7112d84753dba</id>
<content type='text'>
Rollup of 8 pull requests

Successful merges:

 - rust-lang/rust#146593 (Allow specifying multiple bounds for same associated item, except in trait objects)
 - rust-lang/rust#147177 ([DebugInfo] Fix MSVC tuple child creation)
 - rust-lang/rust#147195 (iter repeat: add tests for new count and last behavior)
 - rust-lang/rust#147202 (Swap order of `resolve_coroutine_interiors` and `handle_opaque_type_uses`)
 - rust-lang/rust#147204 (Refactor ArrayWindows to use a slice)
 - rust-lang/rust#147219 (Add proper error handling for closure in impl)
 - rust-lang/rust#147226 (include `outer_inclusive_binder` of pattern types)
 - rust-lang/rust#147230 (Fix typo in 'unfulfilled_lint_expectation' to plural)

r? `@ghost`
`@rustbot` modify labels: rollup
</content>
</entry>
<entry>
<title>Rollup merge of #147219 - Kivooeo:typeof-is-imposter, r=jdonszelmann</title>
<updated>2025-10-01T16:42:37+00:00</updated>
<author>
<name>Matthias Krüger</name>
<email>476013+matthiaskrgr@users.noreply.github.com</email>
</author>
<published>2025-10-01T16:42:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ae60ebd46daace4af7eae5e254b39f55b8b51e92'/>
<id>urn:sha1:ae60ebd46daace4af7eae5e254b39f55b8b51e92</id>
<content type='text'>
Add proper error handling for closure in impl

Fixes https://github.com/rust-lang/rust/issues/147146
Fixes https://github.com/rust-lang/rust/issues/146620

Not sure if it can cause any regressions or anything, as for test also have no idea where to store this one

cc ```@theemathas```

r? compiler
</content>
</entry>
<entry>
<title>Rollup merge of #146593 - Jules-Bertholet:restrict-e0719, r=BoxyUwU</title>
<updated>2025-10-01T16:42:34+00:00</updated>
<author>
<name>Matthias Krüger</name>
<email>476013+matthiaskrgr@users.noreply.github.com</email>
</author>
<published>2025-10-01T16:42:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=15b7792a65a5f50d22f77c02cff75f8015c48bc8'/>
<id>urn:sha1:15b7792a65a5f50d22f77c02cff75f8015c48bc8</id>
<content type='text'>
Allow specifying multiple bounds for same associated item, except in trait objects

Supersedes https://github.com/rust-lang/rust/pull/143146, fixes https://github.com/rust-lang/rust/issues/143143.

This PR proposes to stop enforcing E0719 in all contexts other than trait object types.

E0719 forbids constraining the same associated item twice within the same angle-bracket delimited associated item bound list (the `…` inside `T: Trait&lt;…&gt;`). For example, the following are forbidden:

| Forbidden                                  | Working alternative                                                |
|--------------------------------------------|--------------------------------------------------------------------|
| `T: Trait&lt;Gat&lt;u32&gt; = u32, Gat&lt;u64&gt; = u64&gt;` | `T: Trait&lt;Gat&lt;u32&gt; = u32&gt; + Trait&lt;Gat&lt;u64&gt; = u64&gt;`                 |
| `T: Iterator&lt;Item = u32, Item = i32&gt;`      | `T: Iterator&lt;Item = u32&gt; + Iterator&lt;Item = i32&gt;` (trivially false) |
| `T: Iterator&lt;Item = u32, Item = u32&gt;`      | `T: Iterator&lt;Item = u32&gt;`                                          |
| `T: Iterator&lt;Item: Send, Item: Sync&gt;`      | `T: Iterator&lt;Item: Send + Sync&gt;`                                   |
| `T: Trait&lt;ASSOC = 3, ASSOC = 4&gt;`           | `T: Trait&lt;ASSOC = 3&gt; + Trait&lt;ASSOC = 4&gt;` (trivially false)         |
| `T: Trait&lt;ASSOC = 3, ASSOC = 3&gt;`           | `T: Trait&lt;ASSOC = 3&gt;`                                              |

With this PR, all those previously forbidden examples would start working, as well as their APIT and RPIT equivalents.

Types like `dyn Iterator&lt;Item = u32, Item = u32&gt;` will continue to be rejected, however. See https://github.com/rust-lang/rust/pull/143146#issuecomment-3274421752 for the reason why.

```@rustbot``` label T-lang T-types needs-fcp
</content>
</entry>
<entry>
<title>added error for closures case in impl</title>
<updated>2025-10-01T12:38:16+00:00</updated>
<author>
<name>Kivooeo</name>
<email>Kivooeo123@gmail.com</email>
</author>
<published>2025-10-01T11:53:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b810a68197515bfbe5afd8557b566d6817035389'/>
<id>urn:sha1:b810a68197515bfbe5afd8557b566d6817035389</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rollup merge of #146980 - hkBst:hir-analysis-1, r=jdonszelmann</title>
<updated>2025-10-01T12:14:58+00:00</updated>
<author>
<name>Stuart Cook</name>
<email>Zalathar@users.noreply.github.com</email>
</author>
<published>2025-10-01T12:14:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f8ae00a8c56421826551948132ded2c0c35e5703'/>
<id>urn:sha1:f8ae00a8c56421826551948132ded2c0c35e5703</id>
<content type='text'>
simplify setup_constraining_predicates, and note it is potentially cubic
</content>
</entry>
<entry>
<title>Split Bound into Canonical and Bound</title>
<updated>2025-09-30T16:58:28+00:00</updated>
<author>
<name>jackh726</name>
<email>git@jackhuey.me</email>
</author>
<published>2025-09-28T23:04:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d1bbd39c59523d7a5499816a9da200a5910f8b7f'/>
<id>urn:sha1:d1bbd39c59523d7a5499816a9da200a5910f8b7f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rollup merge of #147109 - BoxyUwU:rename_concrete_opaques, r=lcnr</title>
<updated>2025-09-30T12:25:17+00:00</updated>
<author>
<name>Stuart Cook</name>
<email>Zalathar@users.noreply.github.com</email>
</author>
<published>2025-09-30T12:25:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=156d150381ab2e5f2dc2c78eb83b76d7ae95733c'/>
<id>urn:sha1:156d150381ab2e5f2dc2c78eb83b76d7ae95733c</id>
<content type='text'>
Rename various "concrete opaque type" things to say "hidden type"

r? lcnr

I've found "concrete opaque type" terminology to be somewhat confusing as in conversation and when explaining opaque type stuff to people I always just talk about things in terms of hidden types. Also the hidden types of opaques are very much not *concrete* in the same sense that a type without any generic parameters is concrete which is an unfortunate overlap in terminology.

I've tried to update comments to also stop referring to things as concrete opaque types but this is mostly best effort as it difficult to find all such cases amongst the massive amounts of uses of "concrete" or "hidden" across the whole compiler.
</content>
</entry>
<entry>
<title>Rollup merge of #146649 - folkertdev:cmse-call-erase-regions, r=lcnr</title>
<updated>2025-09-30T12:25:16+00:00</updated>
<author>
<name>Stuart Cook</name>
<email>Zalathar@users.noreply.github.com</email>
</author>
<published>2025-09-30T12:25:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5a6ac8c322a95e9607d7dc9f5760a60ff44d2c9a'/>
<id>urn:sha1:5a6ac8c322a95e9607d7dc9f5760a60ff44d2c9a</id>
<content type='text'>
cmse: fix 'region variables should not be hashed'

tracking issue: https://github.com/rust-lang/rust/issues/81391
fixes https://github.com/rust-lang/rust/issues/131639

Some background: the `cmse-nonsecure-call` calling convention is used for a call from "secure" to "non-secure" code. To make sure that "non-secure" cannot read any secrets, restrictions are put on the signatures of functions with this calling convention: they can only use 4 arguments for passing arguments, and one register for passing a result. No arguments are passed via the stack, and all other registers are cleared before the call.

We check during `hir_ty_lowering` that the signature follows these rules. We do that by determining and then inspecting the layout of the type. That works well overall, but can run into asserts when the type itself is ill-formed. This PR fixes one such case.

I believe that the fix here, just erasing the regions, is the right shape, but there may be some nuance that I'm missing.

r? types
</content>
</entry>
<entry>
<title>Auto merge of #147143 - estebank:verbose-ret-type, r=fee1-dead</title>
<updated>2025-09-30T05:48:32+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2025-09-30T05:48:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a2db9280539229a3b8a084a09886670a57bc7e9c'/>
<id>urn:sha1:a2db9280539229a3b8a084a09886670a57bc7e9c</id>
<content type='text'>
Make replacement suggestion `_` in type verbose

```
error[E0121]: the placeholder `_` is not allowed within types on item signatures for return types
  --&gt; $DIR/in-signature.rs:6:21
   |
LL | fn arr_fn() -&gt; [u8; _] {
   |                     ^ not allowed in type signatures
   |
help: replace with the correct return type
   |
LL - fn arr_fn() -&gt; [u8; _] {
LL + fn arr_fn() -&gt; [u8; 3] {
   |
```
</content>
</entry>
</feed>
