Matthias Krüger
3216098e53
Rollup merge of #140218 - fmease:hirtylo-clean-up-path-low, r=compiler-errors
...
HIR ty lowering: Clean up & refactor the lowering of type-relative paths
While rebasing #126651 I realized that HIR ty lowering could benefit from some *spring cleaning* now that it's been extended to handle RTN and mGCA paths.
More seriously, similar to my merged PR #118668 which unified the handling of all *associated item constraints* (assoc ty, const (ACE) & fn (RTN)), this PR (commit 695fcf517d ) partially[^1] deduplicates the resolution code for all *type-relative paths* (assoc ty, const (mGCA) & fn (RTN)).
**Why**? DRY'ing that part of the code means PR #126651 will automatically support RTN paths like `Ty::AssocTy::assoc_fn(..)` and it also implies shared diagnostic code and thus better diagnostics for RTN.
---
The other commits represent cleanups, renamings, moves. More notably, I've renamed path lowering methods to be a lot more descriptive, so ones lowering `QPath(Resolved)` paths now have `_resolved_` in their name and ones lowering `QPath(TypeRelative)` paths now have `_type_relative_` in their name. This should make it stupidly obvious what their purpose is.
---
Best reviewed commit by commit. The changes are close to trivial but the diff might make it look hairier.
r? compiler-errors
[^1]: Sadly, I couldn't unify as much compared to the other PR without introducing unnecessary `unreachable!()`s or rendering the code otherwise illegible with flags and micro helper traits.
2025-05-22 16:02:28 +02:00
..
2024-11-27 07:18:25 -08:00
2025-01-22 00:00:31 -05:00
2025-04-19 01:10:26 -06:00
2025-02-10 20:21:39 +00:00
2025-05-08 21:17:33 +08:00
2025-04-03 11:08:55 +03:00
2024-09-27 14:29:34 -07:00
2024-10-28 16:57:08 +11:00
2025-04-17 19:45:28 +08:00
2025-04-08 20:49:50 +02:00
2025-03-11 12:05:02 +00:00
2024-12-18 19:27:44 +00:00
2025-04-13 21:48:53 +03:00
2025-04-20 19:24:23 +02:00
2024-11-27 07:18:25 -08:00
2025-04-07 21:42:12 +02:00
2025-04-16 11:10:10 +02:00
2025-04-08 23:06:31 +03:00
2025-04-17 19:45:28 +08:00
2024-11-27 07:18:25 -08:00
2025-04-17 06:25:15 +02:00
2024-07-31 00:07:42 -04:00
2025-02-10 20:21:39 +00:00
2025-04-03 11:08:55 +03:00
2025-05-06 17:04:03 +02:00
2025-02-23 11:29:35 +08:00
2024-09-27 16:37:43 +08:00
2024-09-27 16:37:43 +08:00
2024-09-13 11:51:17 +02:00
2025-02-11 08:52:08 +00:00
2025-03-06 10:50:23 +00:00
2025-04-16 22:44:02 +03:00
2025-04-16 22:44:02 +03:00
2025-04-16 22:44:02 +03:00
2025-04-16 22:44:02 +03:00
2025-04-13 21:48:53 +03:00
2024-08-31 14:00:54 +00:00
2024-08-08 13:09:58 +00:00
2025-04-03 11:08:55 +03:00
2024-12-23 20:25:41 +00:00
2024-10-18 18:18:41 +02:00
2024-10-18 18:18:41 +02:00
2024-10-18 18:18:41 +02:00
2024-10-18 18:18:41 +02:00
2024-05-24 19:31:57 +08:00
2024-05-24 19:31:57 +08:00
2024-05-24 19:31:57 +08:00
2024-05-24 19:31:57 +08:00
2024-05-24 19:31:57 +08:00
2024-08-22 13:32:01 +02:00
2024-08-22 13:32:01 +02:00
2024-08-22 13:32:01 +02:00
2024-05-29 17:40:34 +08:00
2024-05-29 16:53:28 +08:00
2024-05-29 16:53:28 +08:00
2024-05-29 16:53:28 +08:00
2024-05-29 16:53:28 +08:00
2024-06-25 17:22:22 +02:00
2025-04-17 19:45:28 +08:00
2025-05-07 00:29:20 +00:00
2024-12-13 19:16:15 +01:00
2024-06-25 22:32:46 +02:00
2024-06-25 22:32:46 +02:00
2024-09-06 20:51:06 +00:00
2024-12-09 17:31:16 +08:00
2024-12-09 17:31:16 +08:00
2024-12-15 23:46:42 +01:00
2024-12-20 23:48:46 +01:00
2024-12-20 23:48:46 +01:00
2024-12-02 18:43:37 +01:00
2024-12-02 18:43:37 +01:00
2024-12-02 18:43:37 +01:00
2024-12-02 18:43:37 +01:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2024-11-27 21:48:23 +01:00
2024-11-27 21:48:23 +01:00
2024-11-27 21:48:23 +01:00
2024-11-27 21:48:23 +01:00
2024-11-27 21:48:23 +01:00
2024-11-27 21:48:23 +01:00
2024-11-27 21:48:23 +01:00
2024-11-27 21:48:23 +01:00
2024-11-27 21:48:23 +01:00
2024-11-27 15:27:41 +01:00
2024-11-27 15:27:41 +01:00
2024-10-18 18:18:41 +02:00
2024-10-18 18:18:41 +02:00
2024-10-18 18:18:41 +02:00
2024-05-29 16:53:37 +08:00
2024-05-29 16:53:37 +08:00
2024-05-29 16:53:37 +08:00
2024-05-29 17:40:34 +08:00
2024-05-29 17:40:34 +08:00
2024-05-29 17:40:34 +08:00
2024-05-29 17:40:34 +08:00
2024-05-29 17:40:34 +08:00
2024-05-29 17:40:34 +08:00
2025-01-07 16:04:14 +01:00
2025-05-14 18:58:38 +02:00
2025-05-14 18:58:38 +02:00
2025-05-14 23:53:40 +02:00
2024-12-09 17:39:08 +08:00
2024-12-09 17:39:08 +08:00
2025-04-03 18:10:48 +00:00
2025-04-03 18:10:48 +00:00
2025-04-20 11:18:38 +02:00
2025-04-20 11:18:38 +02:00
2025-04-06 21:41:47 +02:00
2025-03-11 21:56:53 +01:00
2025-03-11 21:56:53 +01:00
2025-04-24 13:14:36 +07:00
2025-04-24 13:14:36 +07:00
2025-01-09 23:47:11 -08:00
2024-10-31 21:26:36 -05:00
2024-10-31 21:26:36 -05:00
2024-10-31 21:26:36 -05:00
2024-10-31 21:26:36 -05:00
2024-10-31 21:26:36 -05:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2024-08-19 21:39:57 +02:00
2025-02-10 20:21:39 +00:00
2024-10-18 18:18:41 +02:00
2024-11-27 15:27:41 +01:00
2025-03-11 12:05:02 +00:00
2025-03-11 12:05:02 +00:00
2024-11-16 20:03:31 +00:00
2025-04-03 11:08:55 +03:00
2025-04-03 11:08:55 +03:00
2025-02-02 01:00:33 +00:00
2025-02-02 01:00:33 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-04-18 15:57:29 +02:00
2025-01-20 16:46:00 -05:00
2025-01-20 16:46:00 -05:00
2025-03-21 13:59:29 +00:00
2025-02-10 20:21:39 +00:00
2025-04-17 19:45:28 +08:00
2025-04-08 23:06:31 +03:00
2024-08-16 14:10:06 -04:00
2025-01-06 03:17:04 +00:00
2025-03-11 12:05:02 +00:00
2025-03-11 12:05:02 +00:00
2025-03-11 12:05:02 +00:00
2025-03-11 12:05:02 +00:00
2025-03-11 12:05:02 +00:00
2025-03-11 12:05:02 +00:00
2025-03-11 12:05:02 +00:00
2025-03-11 12:05:02 +00:00
2025-03-11 12:05:02 +00:00
2025-03-11 12:05:02 +00:00
2025-03-11 12:05:02 +00:00
2024-12-09 17:31:16 +08:00
2024-12-09 17:31:16 +08:00
2024-12-09 17:31:16 +08:00
2025-03-20 02:01:48 +00:00
2025-03-20 02:01:48 +00:00
2024-12-09 17:31:16 +08:00
2024-12-09 17:31:16 +08:00
2024-09-23 12:55:56 -04:00
2025-01-07 16:04:14 +01:00
2025-01-07 16:04:14 +01:00
2024-10-06 22:36:51 -04:00
2024-10-06 22:36:51 -04:00
2025-01-26 12:18:33 +01:00
2025-01-26 12:18:33 +01:00
2024-06-21 19:00:18 -04:00
2025-02-20 13:39:39 +00:00
2025-02-20 13:39:39 +00:00
2024-12-23 20:25:41 +00:00
2024-12-23 20:25:41 +00:00
2024-09-09 14:51:39 +02:00
2024-09-09 14:51:39 +02:00
2024-10-23 18:05:27 +00:00
2024-09-11 12:14:35 +02:00
2024-08-16 14:10:06 -04:00
2024-11-26 02:50:48 +08:00
2024-11-03 13:55:52 -08:00
2025-02-09 20:39:43 +08:00
2025-02-09 20:39:43 +08:00
2024-12-27 19:58:16 +11:00
2025-04-03 11:08:55 +03:00
2025-04-13 21:48:53 +03:00
2025-04-13 21:48:53 +03:00
2025-04-13 21:48:53 +03:00
2025-04-13 21:48:53 +03:00
2025-04-13 21:48:53 +03:00
2025-04-13 21:48:53 +03:00
2025-04-13 21:48:53 +03:00
2025-04-13 21:48:53 +03:00
2025-04-03 11:08:55 +03:00
2025-04-03 11:08:55 +03:00
2025-04-03 11:08:55 +03:00
2025-04-03 11:08:55 +03:00
2024-11-03 13:55:52 -08:00
2024-11-03 13:55:52 -08:00
2024-11-03 13:55:52 -08:00
2024-11-03 13:55:52 -08:00
2024-11-03 13:55:52 -08:00
2024-10-21 15:22:17 +01:00
2025-02-10 20:21:39 +00:00
2024-10-21 15:22:17 +01:00
2025-02-14 00:44:10 -08:00
2025-01-26 12:18:33 +01:00
2025-01-26 12:18:33 +01:00
2024-07-07 17:11:05 +02:00
2024-07-07 17:11:05 +02:00
2025-03-25 17:33:09 +03:00
2024-08-31 14:00:54 +00:00
2025-04-13 21:48:53 +03:00
2024-08-31 14:00:54 +00:00
2025-04-13 21:48:53 +03:00
2024-08-31 14:00:54 +00:00
2024-08-18 19:46:53 +02:00
2024-08-18 19:46:53 +02:00
2024-08-18 19:46:53 +02:00
2025-04-08 23:06:31 +03:00
2024-12-12 23:36:27 +00:00
2024-09-14 16:12:00 +05:30
2024-05-22 12:46:08 -04:00
2024-07-31 19:36:47 +02:00
2024-07-31 19:36:47 +02:00
2025-03-11 12:05:02 +00:00
2025-03-11 12:05:02 +00:00
2025-03-11 12:05:02 +00:00
2025-03-11 12:05:02 +00:00
2024-11-27 15:27:41 +01:00
2024-06-27 08:55:28 +10:00
2024-06-27 08:55:28 +10:00
2024-06-25 17:22:22 +02:00
2024-06-25 17:22:22 +02:00
2024-06-25 17:22:22 +02:00
2024-06-25 17:22:22 +02:00
2025-02-10 20:21:39 +00:00
2024-12-01 11:31:09 +13:00
2024-09-21 08:59:52 -07:00
2025-04-26 14:48:30 +09:00
2025-04-26 14:48:30 +09:00
2025-04-26 14:48:30 +09:00
2024-06-23 22:00:52 +00:00
2025-03-14 19:50:03 +00:00
2025-02-28 07:25:52 +05:30
2025-02-28 07:25:52 +05:30
2025-02-21 17:50:11 +00:00
2024-08-08 11:58:11 -04:00
2024-08-08 11:58:11 -04:00
2024-08-08 11:58:11 -04:00
2024-12-24 11:35:38 +08:00
2024-10-05 00:19:26 +00:00
2024-10-21 21:33:33 +08:00
2024-10-21 21:33:33 +08:00
2025-04-10 09:56:37 +02:00
2024-09-23 11:57:28 +02:00
2024-11-04 19:09:40 +01:00
2024-11-04 19:09:40 +01:00
2024-11-04 19:09:40 +01:00
2025-05-04 18:27:45 +03:00
2025-05-04 18:27:45 +03:00
2025-05-04 18:27:45 +03:00
2025-04-03 11:08:55 +03:00
2025-04-03 11:08:55 +03:00
2025-05-04 18:27:45 +03:00
2025-05-04 18:27:45 +03:00
2025-05-04 18:27:45 +03:00
2025-04-08 23:06:31 +03:00
2025-04-30 01:29:44 +08:00
2025-04-30 01:29:44 +08:00
2025-04-30 01:29:44 +08:00
2024-11-27 07:18:25 -08:00
2024-09-30 20:43:51 +03:00
2024-11-26 02:50:48 +08:00
2025-04-22 15:11:23 -07:00
2025-04-22 15:11:23 -07:00
2025-02-14 00:27:13 -08:00