Matthias Krüger
12cc9b4b6f
Rollup merge of #135044 - compiler-errors:better-infer-suggestions-in-const, r=oli-obk
...
Improve infer (`_`) suggestions in `const`s and `static`s
Fixes https://github.com/rust-lang/rust/issues/135010 .
This PR does a few things to (imo) greatly improve the error message when users write something like `static FOO: [i32; _] = [1, 2, 3]`.
Firstly, it adapts the recovery code for when we encounter `_` in a const/static to work a bit more like `fn foo() -> _`, and removes the somewhat redundant query `diagnostic_only_typeck`.
Secondly, it changes the lowering for `[T; _]` to always lower under the `feature(generic_arg_infer)` logic to `ConstArgKind::Infer`. We still issue the feature error, so it's not doing anything *observable* on the good path, but it does mean that we no longer erroneously interpret `[T; _]`'s array length as a `_` **wildcard expression** (à la destructuring assignment, like `(_, y) = expr`).
Lastly it makes the suggestions verbose and fixes (well, suppresses) a bug with stashing and suggestions.
r? oli-obk
2025-01-03 22:12:45 +01:00
..
2024-09-12 09:07:44 -04:00
2023-11-24 19:15:52 +01:00
2024-09-12 13:56:01 -04:00
2023-11-24 19:15:52 +01:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2025-01-02 15:21:41 +03:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2023-11-24 19:15:52 +01:00
2024-12-17 19:10:56 +08:00
2024-12-17 19:10:56 +08:00
2023-11-24 19:15:52 +01:00
2024-12-07 21:29:58 +00:00
2023-11-20 23:37:04 +00:00
2023-11-24 19:15:52 +01:00
2023-11-24 19:15:52 +01:00
2023-11-24 19:15:52 +01:00
2023-11-24 19:15:52 +01:00
2024-08-16 20:53:13 +01:00
2024-08-16 20:53:13 +01:00
2024-02-13 14:56:20 +00:00
2024-07-14 13:50:09 +09:00
2024-01-26 20:47:19 +00:00
2024-07-12 03:02:57 +00:00
2023-11-24 19:15:52 +01:00
2024-05-30 22:52:33 +02:00
2024-05-30 22:52:33 +02:00
2024-09-12 09:07:44 -04:00
2024-11-07 20:56:36 +00:00
2024-03-14 19:39:15 +00:00
2024-03-14 19:39:15 +00:00
2024-04-27 09:36:38 +05:30
2024-09-29 23:40:43 -05:00
2024-07-07 15:44:55 +05:30
2024-07-07 15:44:55 +05:30
2024-03-01 10:18:54 +11:00
2024-03-01 10:18:54 +11:00
2023-11-24 19:15:52 +01:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2023-11-24 19:15:52 +01:00
2023-11-24 19:15:52 +01:00
2023-11-24 19:15:52 +01:00
2024-03-07 06:27:09 +00:00
2024-03-07 06:27:09 +00:00
2024-03-16 23:20:42 +00:00
2024-02-09 15:43:08 -03:00
2024-02-09 15:43:08 -03:00
2024-02-16 20:02:50 +00:00
2023-11-24 19:15:52 +01:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2024-04-27 10:54:31 +03:00
2023-11-24 19:15:52 +01:00
2024-02-16 20:02:50 +00:00
2024-08-10 00:54:16 +00:00
2024-02-16 20:02:50 +00:00
2024-02-22 18:05:27 +00:00
2024-02-16 20:02:50 +00:00
2023-11-24 19:15:52 +01:00
2023-11-24 19:15:52 +01:00
2023-11-16 17:00:23 +00:00
2024-07-04 05:50:21 +00:00
2024-07-04 06:06:33 +00:00
2024-02-16 20:02:50 +00:00
2023-11-24 19:15:52 +01:00
2023-11-24 19:15:52 +01:00
2024-02-16 20:02:50 +00:00
2023-11-16 17:00:23 +00:00
2023-11-16 17:00:23 +00:00
2024-02-16 20:02:50 +00:00
2023-11-24 19:15:52 +01:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2025-01-02 23:39:16 +00:00
2025-01-02 23:39:16 +00:00
2024-02-16 20:02:50 +00:00
2024-09-22 13:55:06 -04:00
2024-02-16 20:02:50 +00:00
2024-08-28 12:54:39 +08:00
2024-02-16 20:02:50 +00:00
2023-11-24 19:15:52 +01:00
2024-05-30 22:52:33 +02:00
2024-05-30 22:52:33 +02:00
2023-11-24 19:15:52 +01:00
2024-05-30 22:52:33 +02:00
2024-05-30 22:52:33 +02:00
2023-11-24 19:15:52 +01:00
2023-11-24 19:15:52 +01:00
2024-02-16 20:02:50 +00:00
2023-11-24 19:15:52 +01:00
2023-11-29 18:11:57 +00:00
2024-10-24 03:17:28 -04:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2023-11-24 19:15:52 +01:00
2023-11-24 19:15:52 +01:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2023-11-24 19:15:52 +01:00
2023-11-24 19:15:52 +01:00
2023-11-24 19:15:52 +01:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2024-10-29 16:26:57 +00:00
2024-12-07 21:29:58 +00:00
2023-11-24 19:15:52 +01:00
2024-02-16 20:02:50 +00:00
2023-11-24 19:15:52 +01:00
2023-11-24 19:15:52 +01:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2023-11-24 19:15:52 +01:00
2024-05-30 22:52:33 +02:00
2024-05-30 22:52:33 +02:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2024-07-04 05:50:21 +00:00
2024-02-16 20:02:50 +00:00
2024-07-18 20:08:38 +00:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2023-11-24 19:15:52 +01:00
2023-11-24 19:15:52 +01:00
2023-11-24 19:15:52 +01:00
2023-11-16 17:00:23 +00:00
2023-11-24 19:15:52 +01:00
2024-04-30 12:46:59 +05:30
2024-04-30 12:46:59 +05:30
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2023-11-24 19:15:52 +01:00
2024-04-30 12:46:59 +05:30
2024-12-12 23:36:27 +00:00
2024-10-15 20:42:17 -04:00
2024-02-16 20:02:50 +00:00
2024-02-10 23:13:47 +01:00
2024-01-07 18:00:03 +00:00
2024-12-14 03:21:24 +00:00
2024-01-13 12:46:58 -05:00
2023-11-24 19:15:52 +01:00
2023-11-24 19:15:52 +01:00
2024-02-16 20:02:50 +00:00
2023-11-24 19:15:52 +01:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2024-01-09 21:08:16 +00:00
2023-12-22 11:01:07 -08:00
2024-04-10 19:37:48 +00:00
2024-04-10 19:37:48 +00:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2023-11-24 19:15:52 +01:00
2023-11-20 15:14:08 +05:30
2023-11-20 15:14:08 +05:30
2024-02-18 11:19:24 +03:00
2024-02-18 11:19:24 +03:00
2024-02-16 20:02:50 +00:00
2024-02-10 09:14:59 +11:00
2024-02-10 09:14:59 +11:00
2024-03-03 00:42:03 +01:00
2024-03-03 00:42:03 +01:00
2024-07-05 20:58:33 +00:00
2023-11-29 18:11:57 +00:00
2023-11-24 19:15:52 +01:00
2023-11-24 19:15:52 +01:00
2024-02-16 20:02:50 +00:00
2023-11-24 19:15:52 +01:00
2023-11-24 19:15:52 +01:00
2024-02-16 20:02:50 +00:00
2023-11-24 19:15:52 +01:00
2023-11-24 19:15:52 +01:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2024-07-05 20:38:21 +00:00
2024-04-10 19:37:48 +00:00
2024-04-10 19:37:48 +00:00
2023-11-24 19:15:52 +01:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2024-07-14 13:50:09 +09:00
2024-04-09 14:06:08 -04:00
2024-04-09 14:06:08 -04:00
2023-11-24 19:15:52 +01:00
2024-04-10 18:58:15 -04:00
2024-04-10 18:58:15 -04:00
2023-11-24 19:15:52 +01:00
2023-11-24 19:15:52 +01:00
2024-12-14 17:07:20 +08:00
2024-12-14 17:07:20 +08:00
2024-12-14 17:07:20 +08:00
2024-12-14 17:07:20 +08:00
2024-02-23 08:35:18 +11:00
2024-02-23 08:35:18 +11:00
2024-07-14 13:50:09 +09:00
2024-07-11 00:18:47 +08:00
2024-07-11 00:18:47 +08:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2024-08-09 05:03:55 +00:00
2024-08-09 05:03:55 +00:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2024-01-23 04:42:26 +00:00
2024-06-12 20:57:24 -04:00
2024-11-02 03:08:04 +00:00
2023-11-24 19:15:52 +01:00
2023-11-24 19:15:52 +01:00
2023-11-24 19:15:52 +01:00
2023-11-24 19:15:52 +01:00
2024-03-07 14:26:31 +00:00
2024-02-16 20:02:50 +00:00
2024-01-09 21:08:16 +00:00
2025-01-02 23:39:17 +00:00
2025-01-02 23:39:16 +00:00
2025-01-02 23:39:17 +00:00
2024-07-22 22:51:53 +00:00
2024-07-22 22:51:53 +00:00
2024-01-09 21:08:16 +00:00
2024-07-22 22:51:53 +00:00
2023-11-24 19:15:52 +01:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2023-11-24 19:15:52 +01:00
2024-02-19 17:41:48 -03:00
2024-09-26 17:17:11 +00:00
2023-11-24 19:15:52 +01:00
2024-10-29 16:26:57 +00:00
2024-12-07 21:29:58 +00:00
2024-02-16 20:02:50 +00:00
2024-10-29 16:26:57 +00:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2023-11-24 19:15:52 +01:00
2024-02-16 20:02:50 +00:00
2023-11-24 19:15:52 +01:00
2024-02-16 20:02:50 +00:00
2023-11-24 19:15:52 +01:00