Trevor Gross cff8e9ae14
Rollup merge of #140247 - BoxyUwU:iats_no_query_cycles, r=lcnr
Don't build `ParamEnv` and do trait solving in `ItemCtxt`s when lowering IATs

Fixes rust-lang/rust#108491

Fixes rust-lang/rust#125879
This was due to updating inhabited predicate stuff which I had to do to make constructing ADTs with IATs in fields not ICE

Fixes rust-lang/rust#136678 (but no test added, I don't rly care about weird IAT edge cases under GCE)
Fixes rust-lang/rust#138131

Avoids doing "fully correct" candidate selection for IATs during hir ty lowering when in item signatures as it almost always leads to a query cycle from trying to build a `ParamEnv`. I replaced it with a use `DeepRejectCtxt` which should be able to handle this kind of conservative "could these types unify" while in a context where we don't want to do type equality.

This is a relatively simple scheme and should be forwards compatible with doing something more complex/powerful.

I'm not really sure how this interacts with rust-lang/rust#126651, though I'm also not really sure its super important to support projecting IATs from IAT self types given we don't even support `T::Assoc::Other` for trait-associated types so didn't give much thought to how this might fit in with that.

r? `@compiler-errors`
cc `@fmease`
2025-06-18 20:22:48 -04:00
..
2025-05-21 20:20:19 +01:00
2025-01-25 23:40:35 +01:00
2025-06-11 15:30:15 +01:00
2024-12-08 14:17:25 +01:00
2024-12-08 14:17:25 +01:00
2024-12-08 14:17:25 +01:00
2024-12-08 14:17:25 +01:00
2024-12-08 14:17:25 +01:00
2024-12-08 14:17:25 +01:00
2024-12-08 14:17:25 +01:00
2025-05-01 20:05:07 +01:00
2024-12-08 14:17:25 +01:00
2024-12-15 17:27:52 +01:00
2024-12-08 13:09:46 +01:00
2024-12-12 22:09:39 +01:00
2024-12-12 22:09:39 +01:00
2024-12-12 22:09:39 +01:00
2024-12-12 22:09:39 +01:00
2024-12-15 17:27:52 +01:00
2024-12-12 22:55:31 +01:00
2024-12-12 22:55:31 +01:00
2024-12-12 22:55:31 +01:00
2024-12-12 22:55:31 +01:00
2024-12-15 17:27:52 +01:00
2024-12-12 22:55:31 +01:00
2025-01-04 14:38:06 +01:00
2025-01-04 14:38:06 +01:00
2025-01-04 14:38:06 +01:00
2025-01-04 14:38:06 +01:00
2025-01-04 14:38:06 +01:00
2025-01-12 10:11:29 +01:00
2025-02-09 10:40:18 +01:00
2025-02-09 10:40:18 +01:00
2025-02-09 10:40:18 +01:00
2025-02-09 10:40:18 +01:00
2025-02-09 10:40:18 +01:00
2025-03-08 20:13:07 +01:00
2025-03-08 20:13:07 +01:00
2025-03-08 20:13:07 +01:00
2025-03-08 20:13:07 +01:00
2025-03-08 20:13:07 +01:00
2025-03-08 20:13:07 +01:00
2025-03-08 20:13:07 +01:00
2025-03-08 20:13:07 +01:00
2025-03-08 20:13:07 +01:00
2025-03-08 20:13:07 +01:00
2025-03-08 20:13:07 +01:00
2025-03-08 20:13:07 +01:00
2025-03-08 20:13:07 +01:00
2025-03-08 20:13:07 +01:00
2025-03-08 20:13:07 +01:00
2025-03-08 20:13:07 +01:00
2025-03-08 20:13:07 +01:00
2025-03-08 20:13:07 +01:00
2025-03-08 20:13:07 +01:00
2025-03-08 20:13:07 +01:00
2025-03-08 20:13:07 +01:00
2025-03-08 20:13:07 +01:00
2025-03-08 20:13:07 +01:00
2025-03-08 20:13:07 +01:00
2025-03-08 20:13:07 +01:00
2025-03-08 20:13:07 +01:00
2025-03-08 20:13:07 +01:00
2025-03-08 20:13:07 +01:00
2025-05-01 17:04:37 +02:00
2025-05-01 17:04:37 +02:00
2025-05-01 17:04:37 +02:00
2025-05-01 17:04:37 +02:00
2025-05-01 17:04:37 +02:00
2025-05-01 17:04:37 +02:00
2025-05-01 17:04:37 +02:00
2025-05-01 17:04:37 +02:00
2025-05-01 17:04:37 +02:00
2025-05-01 17:04:37 +02:00
2025-05-01 17:04:37 +02:00
2025-05-01 17:04:37 +02:00
2025-05-01 17:04:37 +02:00
2025-05-01 17:04:37 +02:00
2025-05-01 17:04:37 +02:00
2025-05-01 17:04:37 +02:00
2025-05-01 17:04:37 +02:00
2025-05-01 17:04:37 +02:00
2025-05-01 17:04:37 +02:00
2025-05-01 17:04:37 +02:00
2025-05-18 17:25:34 +02:00
2025-05-18 17:25:34 +02:00
2025-05-18 17:25:34 +02:00
2025-05-18 17:25:34 +02:00
2025-05-18 17:25:34 +02:00
2025-05-18 17:25:34 +02:00
2025-05-18 17:25:34 +02:00
2025-05-18 17:25:34 +02:00
2025-05-18 17:25:34 +02:00
2025-05-18 17:25:34 +02:00
2025-05-18 17:25:34 +02:00
2025-05-18 17:25:34 +02:00
2025-05-18 17:25:34 +02:00
2025-05-18 17:25:34 +02:00
2025-05-18 17:25:34 +02:00
2025-05-18 17:25:34 +02:00
2025-05-18 17:25:34 +02:00
2025-05-18 17:25:34 +02:00
2025-05-18 17:25:34 +02:00
2025-05-18 17:25:34 +02:00
2025-05-18 17:25:34 +02:00

This is serves as a collection of crashes so that accidental ICE fixes are tracked. This was formally done at https://github.com/rust-lang/glacier but doing it inside the rustc testsuite is more convenient.

It is imperative that a test in the suite causes an internal compiler error/panic or makes rustc crash in some other way. A test will "pass" if rustc exits with something other than 1 or 0.

When adding crashes from https://github.com/rust-lang/rust/issues, the issue number should be noted in the file name (12345.rs should suffice) and also inside the file via //@ known-bug #4321 if possible.

If you happen to fix one of the crashes, please move it to a fitting subdirectory in tests/ui and give it a meaningful name. Also please add a doc comment at the top of the file explaining why this test exists. :) Adding Fixes #NNNNN Fixes #MMMMM to the description of your pull request will ensure the corresponding tickets will be closed automatically upon merge. The ticket ids can be found in the file name or the known-bug annotation inside the testfile.

Please do not re-report any crashes that you find here!