Noah Lev
f2c1265483
Add ConstArgKind::Path
and make ConstArg
its own HIR node
...
This is a very large commit since a lot needs to be changed in order to
make the tests pass. The salient changes are:
- `ConstArgKind` gets a new `Path` variant, and all const params are now
represented using it. Non-param paths still use `ConstArgKind::Anon`
to prevent this change from getting too large, but they will soon use
the `Path` variant too.
- `ConstArg` gets a distinct `hir_id` field and its own variant in
`hir::Node`. This affected many parts of the compiler that expected
the parent of an `AnonConst` to be the containing context (e.g., an
array repeat expression). They have been changed to check the
"grandparent" where necessary.
- Some `ast::AnonConst`s now have their `DefId`s created in
rustc_ast_lowering rather than `DefCollector`. This is because in some
cases they will end up becoming a `ConstArgKind::Path` instead, which
has no `DefId`. We have to solve this in a hacky way where we guess
whether the `AnonConst` could end up as a path const since we can't
know for sure until after name resolution (`N` could refer to a free
const or a nullary struct). If it has no chance as being a const
param, then we create a `DefId` in `DefCollector` -- otherwise we
decide during ast_lowering. This will have to be updated once all path
consts use `ConstArgKind::Path`.
- We explicitly use `ConstArgHasType` for array lengths, rather than
implicitly relying on anon const type feeding -- this is due to the
addition of `ConstArgKind::Path`.
- Some tests have their outputs changed, but the changes are for the
most part minor (including removing duplicate or almost-duplicate
errors). One test now ICEs, but it is for an incomplete, unstable
feature and is now tracked at #127009 .
2024-07-16 19:27:28 -07:00
..
2024-07-16 19:27:28 -07:00
2024-06-27 18:56:04 +02:00
2024-05-02 17:26:44 +02:00
2024-06-25 17:50:48 +02:00
2024-07-11 15:44:03 +02:00
2024-07-04 05:04:48 +00:00
2024-06-13 12:30:48 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-06-13 12:30:48 +02:00
2024-06-25 17:50:48 +02:00
2024-06-25 17:50:48 +02:00
2024-06-25 17:50:48 +02:00
2024-06-25 17:50:48 +02:00
2024-06-25 17:50:48 +02:00
2024-05-02 19:42:37 -04:00
2024-05-02 19:42:37 -04:00
2024-05-02 19:42:37 -04:00
2024-06-19 13:30:21 -04:00
2024-06-19 13:30:21 -04:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2023-08-24 21:32:12 +02:00
2024-06-27 18:56:04 +02:00
2024-06-27 18:56:04 +02:00
2024-05-21 10:39:30 -07:00
2024-06-25 17:50:48 +02:00
2024-06-25 17:50:48 +02:00
2024-06-25 17:50:48 +02:00
2024-06-13 12:30:48 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-06-20 04:25:17 +00:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-02-27 15:50:17 +01:00
2024-02-08 20:24:42 +01:00
2024-05-02 17:26:44 +02:00
2024-05-02 17:26:44 +02:00
2024-05-02 17:26:44 +02:00
2024-06-25 17:50:48 +02:00
2024-06-25 17:50:48 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-02-27 15:50:17 +01:00
2024-06-19 13:30:21 -04:00
2024-06-19 13:30:21 -04:00
2024-06-19 13:30:21 -04:00
2024-06-19 13:30:21 -04:00
2024-06-19 13:30:21 -04:00
2024-06-27 18:56:04 +02:00
2024-06-19 13:30:21 -04:00
2024-06-19 13:30:21 -04:00
2024-06-27 18:56:04 +02:00
2024-06-27 18:56:04 +02:00
2024-06-24 16:08:51 +03:00
2024-06-06 20:39:54 +00:00
2024-06-06 20:39:54 +00:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-05-02 17:26:44 +02:00
2024-05-02 17:26:44 +02:00
2024-05-02 17:26:44 +02:00
2024-02-27 15:50:17 +01:00
2024-06-27 18:56:04 +02:00
2024-06-27 18:56:04 +02:00
2023-08-24 21:32:12 +02:00
2024-06-25 17:50:48 +02:00
2024-06-25 17:50:48 +02:00
2024-06-25 17:50:48 +02:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-06-25 17:50:48 +02:00
2024-06-25 17:50:48 +02:00
2024-06-25 17:50:48 +02:00
2024-07-11 15:44:03 +02:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-05-21 10:39:30 -07:00
2024-05-08 21:37:55 +02:00
2024-05-08 21:37:55 +02:00
2024-05-08 21:37:55 +02:00
2024-03-29 13:34:01 -07:00
2024-06-19 13:30:21 -04:00
2024-06-19 13:30:21 -04:00
2024-03-21 22:20:40 +01:00
2024-02-27 15:50:17 +01:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-06-25 17:50:48 +02:00
2024-06-25 17:50:48 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-02-17 13:59:45 +01:00
2024-06-27 18:56:04 +02:00
2024-06-27 18:56:04 +02:00
2023-08-24 21:32:12 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-06-19 13:30:21 -04:00
2024-06-19 13:30:21 -04:00
2024-06-19 13:30:21 -04:00
2024-06-19 13:30:21 -04:00
2024-06-19 13:30:21 -04:00
2024-06-19 13:30:21 -04:00
2024-06-19 13:30:21 -04:00
2024-06-19 13:30:21 -04:00
2024-06-19 13:30:21 -04:00
2024-06-19 13:30:21 -04:00
2024-06-19 13:30:21 -04:00
2024-06-19 13:30:21 -04:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-02-27 15:50:17 +01:00
2023-08-24 21:32:12 +02:00
2024-04-27 10:54:35 +03:00
2024-05-21 10:39:30 -07:00
2024-05-21 10:39:30 -07:00
2024-05-21 10:39:30 -07:00
2024-06-27 18:56:04 +02:00
2024-06-27 18:56:04 +02:00
2024-06-27 18:56:04 +02:00
2023-08-24 21:32:12 +02:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-05-20 19:21:38 -04:00
2024-05-20 19:21:38 -04:00
2024-05-20 19:21:38 -04:00
2024-07-11 15:44:03 +02:00
2023-08-24 21:32:12 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-05-30 10:49:05 +02:00
2024-05-30 10:49:05 +02:00
2024-05-30 10:49:05 +02:00
2024-06-13 12:30:48 +02:00
2023-12-01 18:21:58 +01:00
2023-08-24 21:32:12 +02:00
2024-05-02 17:26:44 +02:00
2024-05-02 17:26:44 +02:00
2024-05-30 10:49:05 +02:00
2024-05-30 10:49:05 +02:00
2024-05-30 10:49:05 +02:00
2024-06-25 17:50:48 +02:00
2024-06-25 17:50:48 +02:00
2024-06-25 17:50:48 +02:00
2024-06-19 13:30:21 -04:00
2024-06-19 13:30:21 -04:00
2024-06-19 13:30:21 -04:00
2024-06-25 17:50:48 +02:00
2024-06-25 17:50:48 +02:00
2024-06-25 17:50:48 +02:00
2024-06-25 17:50:48 +02:00
2024-02-08 20:24:42 +01:00
2024-06-19 13:30:21 -04:00
2024-06-19 13:30:21 -04:00
2024-06-27 18:56:04 +02:00
2024-06-27 18:56:04 +02:00
2024-07-11 15:44:03 +02:00
2024-05-02 17:26:44 +02:00
2024-05-02 17:26:44 +02:00
2024-05-02 17:26:44 +02:00
2023-08-24 21:32:12 +02:00
2024-06-25 17:50:48 +02:00
2024-06-25 17:50:48 +02:00
2024-06-27 18:56:04 +02:00
2024-06-27 18:56:04 +02:00
2024-06-27 18:56:04 +02:00
2024-05-02 19:42:37 -04:00
2024-05-02 19:42:37 -04:00
2024-05-02 19:42:37 -04:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-07-04 05:04:48 +00:00
2024-04-27 10:54:35 +03:00
2024-02-27 15:50:17 +01:00
2024-06-27 18:56:04 +02:00
2024-06-27 18:56:04 +02:00
2024-06-13 12:30:48 +02:00
2024-06-27 18:56:04 +02:00
2024-06-27 18:56:04 +02:00
2024-06-27 18:56:04 +02:00
2024-05-30 10:49:05 +02:00
2024-05-30 10:49:05 +02:00
2024-03-21 22:20:40 +01:00
2024-05-02 19:42:37 -04:00
2024-05-02 19:42:37 -04:00
2024-06-27 18:56:04 +02:00
2024-06-27 18:56:04 +02:00
2024-06-27 18:56:04 +02:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-05-21 10:39:30 -07:00
2024-05-21 10:39:30 -07:00
2024-05-21 10:39:30 -07:00
2024-05-21 10:39:30 -07:00
2024-05-02 19:42:37 -04:00
2024-05-02 19:42:37 -04:00
2024-07-16 19:27:28 -07:00
2024-02-27 15:50:17 +01:00
2023-12-16 14:12:50 +01:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-03-21 22:20:40 +01:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-05-21 10:39:30 -07:00
2024-05-02 17:26:44 +02:00
2024-05-02 17:26:44 +02:00
2024-06-19 13:30:21 -04:00
2024-06-19 13:30:21 -04:00
2024-05-02 17:26:44 +02:00
2024-05-02 17:26:44 +02:00
2024-06-25 17:50:48 +02:00
2024-06-25 17:50:48 +02:00
2024-06-25 17:50:48 +02:00
2024-05-21 10:39:30 -07:00
2024-05-21 10:39:30 -07:00
2024-05-21 10:39:30 -07:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-06-20 04:25:17 +00:00
2024-05-02 17:26:44 +02:00
2024-05-02 17:26:44 +02:00
2024-06-20 04:25:17 +00:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-02-27 15:50:17 +01:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-02-27 15:50:17 +01:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2023-08-24 21:32:12 +02:00
2024-06-13 12:24:31 +02:00
2024-06-13 12:24:31 +02:00
2024-05-21 10:39:30 -07:00
2024-05-21 10:39:30 -07:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-05-02 17:26:44 +02:00
2024-05-02 17:26:44 +02:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-06-25 17:50:48 +02:00
2024-06-25 17:50:48 +02:00
2024-06-27 18:56:04 +02:00
2024-06-27 18:56:04 +02:00
2024-02-27 15:50:17 +01:00
2024-06-27 18:56:04 +02:00
2024-06-27 18:56:04 +02:00
2024-06-27 18:56:04 +02:00
2024-07-06 14:24:20 +02:00
2024-06-13 12:30:48 +02:00
2024-07-06 14:24:20 +02:00
2023-08-24 21:32:12 +02:00
2024-06-25 17:50:48 +02:00
2024-06-25 17:50:48 +02:00
2024-06-25 17:50:48 +02:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-02-27 15:50:17 +01:00
2024-06-25 17:50:48 +02:00
2024-06-25 17:50:48 +02:00
2024-07-11 15:44:03 +02:00
2024-02-27 15:50:17 +01:00
2024-02-27 15:50:17 +01:00
2024-05-02 17:26:44 +02:00
2024-05-02 17:26:44 +02:00
2024-02-27 15:50:17 +01:00
2024-06-25 17:50:48 +02:00
2024-06-25 17:50:48 +02:00
2024-06-25 17:50:48 +02:00
2024-05-02 17:26:44 +02:00
2024-05-02 17:26:44 +02:00
2024-05-02 17:26:44 +02:00
2024-05-02 17:26:44 +02:00
2024-06-25 17:50:48 +02:00
2024-06-25 17:50:48 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-04-27 10:54:35 +03:00
2024-06-25 17:50:48 +02:00
2024-06-25 17:50:48 +02:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-07-04 05:04:48 +00:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-05-02 17:26:44 +02:00
2024-05-02 17:26:44 +02:00
2024-05-02 17:26:44 +02:00
2024-06-07 08:37:05 +08:00
2024-06-07 08:37:05 +08:00
2024-06-07 08:37:05 +08:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-04-27 10:54:35 +03:00
2023-08-24 21:32:12 +02:00
2023-08-24 21:32:12 +02:00
2024-06-24 16:08:51 +03:00
2023-04-23 13:28:56 +02:00
2024-07-15 20:16:12 -04:00
2024-06-19 13:30:21 -04:00
2024-06-19 13:30:21 -04:00
2024-06-19 13:30:21 -04:00
2024-05-08 21:37:54 +02:00
2024-05-08 21:37:54 +02:00
2024-05-08 21:37:54 +02:00
2024-06-19 13:30:21 -04:00
2024-06-19 13:30:21 -04:00
2023-08-24 21:32:12 +02:00
2024-02-27 15:50:17 +01:00
2024-05-02 17:26:44 +02:00
2024-05-02 17:26:44 +02:00
2024-05-02 17:26:44 +02:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-02-27 15:50:17 +01:00
2023-08-24 21:32:12 +02:00
2024-06-09 07:47:42 +01:00
2024-06-13 12:30:48 +02:00
2024-06-24 16:08:51 +03:00
2024-02-27 15:50:17 +01:00
2024-05-30 10:49:05 +02:00
2024-05-30 10:49:05 +02:00
2024-05-30 10:49:05 +02:00
2024-02-27 15:50:17 +01:00
2024-06-27 18:56:04 +02:00
2024-06-27 18:56:04 +02:00
2024-06-27 18:56:04 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-02-08 20:24:42 +01:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-01-02 15:34:37 -05:00
2024-06-25 17:50:48 +02:00
2024-06-25 17:50:48 +02:00
2024-06-19 13:30:21 -04:00
2024-06-19 13:30:21 -04:00
2024-06-19 13:30:21 -04:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-06-25 17:50:48 +02:00
2024-05-21 10:39:30 -07:00
2024-05-21 10:39:30 -07:00
2024-06-13 12:30:48 +02:00
2024-06-13 12:30:48 +02:00
2024-05-21 10:39:30 -07:00
2024-05-21 10:39:30 -07:00
2024-02-08 20:24:42 +01:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2024-07-11 15:44:03 +02:00
2023-10-06 17:35:45 +02:00
2024-02-27 15:50:17 +01:00