Stuart Cook
f87f9a456c
Rollup merge of #147734 - fmease:tighten-relaxed, r=lcnr
...
Further tighten up relaxed bounds
Follow-up to rust-lang/rust#142693 , rust-lang/rust#135331 and rust-lang/rust#135841 .
Fixes rust-lang/rust#143122 .
* Reject relaxed bounds `?Trait` in the bounds of trait aliases.
Just like `trait Trait {}` doesn't mean `trait Trait: Sized {}` and we therefore reject `trait Trait: ?Sized {}`, `trait Trait =;` (sic!) doesn't mean `trait Trait = Sized;` (never did!) and as a logical consequence `trait Trait = ?Sized;` is meaningless and should be forbidden.
* Don't permit `?Sized` in more places (e.g., supertrait bounds, trait object types) if feature `more_maybe_bounds` is enabled.
That internal feature is only meant to allow the user to define & use *new* default traits (that have fewer rules to follow for now to ease experimentation).
* Unconditionally check that the `Trait` in `?Trait` is a default trait.
Previously, we would only perform this check in selected places which was very brittle and led to bugs slipping through.
* Slightly improve diagnostics.
2025-10-20 22:30:53 +11:00
..
2023-05-09 20:35:39 -04:00
2024-02-16 20:02:50 +00:00
2023-01-11 09:32:08 +00:00
2024-02-16 20:02:50 +00:00
2023-11-24 19:15:52 +01:00
2024-12-13 19:16:15 +01:00
2024-12-13 19:16:15 +01:00
2023-10-08 20:17:53 -07:00
2024-01-13 12:46:58 -05:00
2024-10-22 07:37:54 +01:00
2024-10-22 07:37:54 +01:00
2024-02-16 20:02:50 +00:00
2024-01-12 11:02:57 +01:00
2025-10-13 15:30:26 +02:00
2025-10-13 15:30:26 +02:00
2025-10-13 15:30:26 +02:00
2025-10-13 15:30:26 +02:00
2025-10-13 15:30:26 +02:00
2025-10-13 15:30:26 +02:00
2025-02-09 20:45:47 -08:00
2025-02-09 20:45:47 -08:00
2025-10-13 15:30:26 +02:00
2025-10-13 15:30:26 +02:00
2025-06-24 14:40:11 +02:00
2025-06-24 14:40:11 +02:00
2025-02-24 09:26:54 +00:00
2025-02-24 09:26:54 +00:00
2025-10-13 15:30:26 +02:00
2025-10-13 15:30:26 +02:00
2025-08-20 18:03:57 +03:00
2025-08-20 18:03:57 +03:00
2025-04-06 21:41:47 +02:00
2025-04-06 21:41:47 +02:00
2025-09-15 14:15:29 +00:00
2025-09-15 14:15:29 +00:00
2024-11-03 13:55:52 -08:00
2024-11-03 13:55:52 -08:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2025-08-14 18:18:42 +02:00
2025-10-08 08:32:03 +02:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2025-05-06 23:28:28 +05:30
2025-05-06 23:28:28 +05:30
2023-01-11 09:32:08 +00:00
2024-12-11 11:59:12 +00:00
2024-12-13 16:45:43 +00:00
2024-12-13 16:45:43 +00:00
2024-12-13 16:45:43 +00:00
2023-01-11 09:32:08 +00:00
2024-12-11 11:59:12 +00:00
2025-05-27 09:44:04 +02:00
2025-05-27 09:44:04 +02:00
2025-10-13 15:30:26 +02:00
2025-10-13 15:30:26 +02:00
2025-10-13 15:30:26 +02:00
2025-10-13 15:30:26 +02:00
2025-03-17 11:12:10 +00:00
2025-03-17 11:12:10 +00:00
2024-02-16 20:02:50 +00:00
2024-01-13 12:46:58 -05:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2025-04-28 16:23:13 +07:00
2025-07-13 13:50:01 +00:00
2025-05-23 12:20:35 +00:00
2025-05-23 12:20:35 +00:00
2024-12-13 00:04:56 +00:00
2024-12-13 00:04:56 +00:00
2024-12-22 21:57:57 +00:00
2024-12-22 21:57:57 +00:00
2025-05-21 07:24:43 +00:00
2025-05-21 07:24:43 +00:00
2025-05-21 07:24:43 +00:00
2025-05-21 07:24:43 +00:00
2025-05-21 07:24:43 +00:00
2025-05-21 07:24:43 +00:00
2025-04-26 11:40:13 +05:30
2025-04-26 11:40:13 +05:30
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2023-05-05 21:44:48 +02:00
2024-01-13 12:46:58 -05:00
2025-09-11 10:27:28 +02:00
2025-09-11 10:27:28 +02:00
2023-05-11 18:06:31 +04:00
2024-01-13 12:46:58 -05:00
2025-04-08 23:06:31 +03:00
2024-01-13 12:46:58 -05:00
2024-04-06 11:21:47 -04:00
2024-04-06 11:21:47 -04:00
2025-02-03 12:53:57 -08:00
2025-02-03 13:55:15 -08:00
2025-04-08 23:06:31 +03:00
2025-01-06 10:29:54 +01:00
2023-08-18 19:57:28 +02:00
2024-01-13 12:46:58 -05:00
2025-04-08 23:06:31 +03:00
2024-01-13 12:46:58 -05:00
2024-05-04 11:30:38 +02:00
2024-05-04 11:30:38 +02:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2025-04-27 19:58:44 +00:00
2025-04-27 19:58:44 +00:00
2025-04-30 10:44:24 +03:00
2024-02-08 08:10:43 +00:00
2025-05-26 19:58:33 +08:00
2025-05-26 19:58:33 +08:00
2025-06-23 21:30:56 +03:00
2024-01-13 12:46:58 -05:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2025-04-08 23:06:31 +03:00
2024-04-24 08:05:29 +00:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2024-11-03 13:55:52 -08:00
2024-11-03 13:55:52 -08:00
2024-02-16 20:02:50 +00:00
2025-02-10 19:51:26 +00:00
2025-02-10 19:51:26 +00:00
2025-06-03 10:52:32 -07:00
2025-06-03 10:52:32 -07:00
2025-04-03 21:41:58 +00:00
2025-06-24 23:32:09 +08:00
2025-06-24 23:32:09 +08:00
2023-01-11 09:32:08 +00:00
2023-01-11 09:32:08 +00:00
2023-01-11 09:32:08 +00:00
2023-01-11 09:32:08 +00:00
2025-04-08 23:06:31 +03:00
2024-11-03 13:55:52 -08:00
2023-01-11 09:32:08 +00:00
2024-11-03 13:55:52 -08:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2025-06-17 07:27:58 +08:00
2025-06-17 07:27:58 +08:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2025-04-03 21:41:58 +00:00
2024-03-20 22:30:27 +01:00
2024-11-03 13:55:52 -08:00
2024-11-03 13:55:52 -08:00
2025-08-18 13:12:19 +02:00
2025-08-18 13:12:19 +02:00
2024-04-30 22:27:19 +02:00
2024-12-13 15:40:37 +00:00
2025-05-26 10:57:54 +00:00
2025-05-27 08:18:11 +00:00
2025-09-27 11:29:49 +02:00
2025-09-27 11:29:49 +02:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2025-08-22 01:26:26 +02:00
2025-08-22 01:26:26 +02:00
2025-08-22 01:26:26 +02:00
2025-03-06 22:36:07 -03:00
2025-03-06 22:36:07 -03:00
2024-08-10 12:07:17 +02:00
2024-11-23 08:57:25 -07:00
2023-06-19 12:54:34 +00:00
2024-01-13 12:46:58 -05: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-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-05-04 22:03:15 +03:00
2025-05-04 22:03:15 +03:00
2023-01-11 09:32:08 +00:00
2025-02-10 20:21:39 +00:00
2025-06-13 18:10:06 +02:00
2025-06-13 18:10:06 +02:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2025-04-03 01:08:41 +01:00
2025-04-03 01:08:41 +01:00
2025-04-03 01:08:41 +01:00
2025-04-03 01:08:41 +01:00
2025-04-03 01:08:41 +01:00
2025-04-03 01:08:41 +01:00
2023-01-11 09:32:08 +00:00
2023-12-20 18:16:28 +01:00
2025-04-13 01:22:59 +02:00
2025-04-13 01:22:59 +02:00
2025-04-13 01:22:59 +02:00
2025-04-13 01:22:59 +02:00
2024-08-28 23:32:40 +01:00
2024-08-28 23:32:40 +01:00
2025-07-19 01:42:30 +08:00
2025-07-19 01:42:30 +08:00
2024-01-12 14:11:16 +03:00
2024-01-13 12:46:58 -05:00
2023-01-11 09:32:08 +00:00
2024-11-03 13:55:52 -08:00
2025-04-08 23:06:31 +03:00
2024-02-29 14:10:29 +00:00
2025-05-05 23:10:08 +08:00
2025-05-05 23:10:08 +08:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2024-01-13 12:46:58 -05:00
2023-12-12 20:13:37 +00:00
2025-04-03 21:41:58 +00:00
2025-02-28 20:43:15 +00:00
2025-02-28 20:43:15 +00:00
2024-05-20 09:18:49 +02:00
2024-05-20 09:18:49 +02:00
2025-05-18 04:21:57 -07:00
2025-05-18 04:21:57 -07:00
2025-03-28 18:15:23 +01:00
2025-03-28 18:15:23 +01:00
2024-01-07 18:00:03 +00:00
2024-01-13 12:46:58 -05:00
2024-12-14 03:21:24 +00:00
2024-12-14 03:21:24 +00:00
2025-05-02 15:59:38 +03:00
2025-05-02 15:59:38 +03:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2025-04-06 21:41:47 +02:00
2025-04-06 21:41:47 +02:00
2024-04-17 13:00:43 +02:00
2024-04-17 13:00:43 +02:00
2024-11-18 20:18:22 +08:00
2024-01-13 12:46:58 -05:00
2023-12-05 19:53:59 +00:00
2024-08-17 12:43:25 -04:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2024-11-18 14:13:10 +11:00
2024-11-18 14:13:10 +11:00
2025-03-25 17:33:09 +03:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2023-01-11 09:32:08 +00:00
2024-11-03 13:55:52 -08:00
2023-01-11 09:32:08 +00:00
2023-01-11 09:32:08 +00:00
2024-11-03 13:55:52 -08:00
2023-01-11 09:32:08 +00:00
2025-06-23 20:43:04 +02:00
2025-06-23 20:43:04 +02:00
2025-08-08 11:00:54 -07:00
2025-09-27 10:55:02 +02:00
2025-08-14 13:53:57 -07:00
2025-09-19 23:17:12 +08:00
2024-06-13 22:12:26 -03:00
2024-06-13 22:12:26 -03:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2024-01-02 13:49:47 +01:00
2024-01-02 13:49:48 +01:00
2025-03-04 10:11:13 -05:00
2025-03-04 10:11:13 -05:00
2025-10-16 19:53:32 +02:00
2025-10-16 19:53:32 +02:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2025-03-05 05:34:37 +05:30
2025-03-05 05:34:37 +05:30
2024-02-16 20:02:50 +00:00
2024-12-18 19:27:44 +00:00
2025-04-03 21:41:58 +00:00
2024-03-27 11:20:28 -04:00
2025-04-20 11:18:38 +02:00
2025-04-07 21:42:12 +02:00
2025-04-20 11:18:38 +02:00
2025-06-23 12:22:57 +02:00
2024-11-18 14:13:10 +11:00
2024-11-18 15:55:12 +11:00
2025-03-25 17:33:09 +03:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2023-01-11 09:32:08 +00:00
2025-02-10 20:21:39 +00:00
2023-05-02 22:36:24 +00:00
2023-11-24 19:15:52 +01:00
2025-04-03 21:41:58 +00:00
2025-10-02 20:24:34 +02:00
2024-02-01 20:01:05 +01:00
2024-02-01 20:01:05 +01:00
2025-04-08 23:06:31 +03:00
2025-01-30 21:33:11 -07:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2024-02-16 20:02:50 +00:00
2024-12-18 19:27:44 +00:00
2023-02-16 03:39:58 +00:00
2024-01-13 12:46:58 -05:00
2024-07-29 17:50:12 +01:00
2024-07-29 17:50:12 +01:00
2024-06-08 18:17:55 +02:00
2024-10-29 16:26:57 +00:00
2025-06-18 13:48:42 +02:00
2025-08-11 16:00:49 +00:00
2023-01-11 09:32:08 +00:00
2023-11-24 19:15:52 +01:00
2024-06-25 19:00:02 +02:00
2024-06-25 19:00:02 +02:00
2025-06-09 11:44:24 +02:00
2025-06-09 11:44:24 +02:00
2025-06-15 10:21:29 +08:00
2025-06-15 10:21:29 +08:00
2025-04-03 21:41:58 +00:00
2024-03-05 23:34:45 -05:00
2025-09-25 18:15:04 +03:00
2025-09-25 18:15:04 +03:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2024-02-16 20:02:50 +00:00
2025-02-26 19:09:51 +01:00
2025-02-26 19:09:51 +01:00
2025-09-15 20:50:00 +03:00
2025-09-15 20:50:00 +03:00
2025-09-27 01:11:01 +03:00
2025-09-27 01:11:01 +03:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2025-01-07 21:36:37 +01:00
2025-08-19 21:27:10 +02:00
2024-06-28 14:20:43 -04:00
2024-06-28 14:20:43 -04:00
2024-06-28 14:20:43 -04:00
2025-02-09 20:45:47 -08:00
2025-02-09 20:45:47 -08:00
2025-04-08 23:06:31 +03:00
2023-11-24 19:15:52 +01:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2025-06-09 11:44:24 +02:00
2025-06-09 11:44:24 +02:00
2025-06-09 11:44:24 +02:00
2025-06-09 11:44:24 +02:00
2025-08-28 15:56:30 +02:00
2025-08-28 15:56:30 +02:00
2025-09-11 15:11:16 -07:00
2025-09-26 18:41:32 -04:00
2024-06-18 04:14:43 +08:00
2024-06-18 04:14:43 +08:00
2024-09-09 19:39:43 -07:00
2023-01-11 09:32:08 +00:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2025-06-16 23:04:33 +00:00
2025-06-16 23:04:33 +00:00
2023-10-23 13:04:47 -07:00
2024-06-24 16:08:51 +03:00
2025-09-26 13:51:09 -04:00
2025-09-09 21:54:54 +02:00
2025-09-09 21:54:54 +02:00
2024-04-11 16:39:06 +00:00
2024-04-22 16:28:20 +00:00
2024-10-21 15:22:17 +01:00
2024-12-18 19:27:44 +00:00
2025-04-04 09:44:22 +02:00
2025-04-04 09:44:22 +02:00
2025-02-13 05:45:53 +00:00
2025-02-13 05:45:53 +00:00
2025-08-27 14:45:01 +01:00
2025-08-27 14:45:01 +01:00
2024-02-16 20:02:50 +00:00
2024-12-18 19:27:44 +00:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2023-01-11 09:32:08 +00:00
2024-11-03 13:55:52 -08:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2024-02-16 20:02:50 +00:00
2023-01-11 09:32:08 +00:00
2024-10-29 16:26:57 +00:00
2025-04-10 09:56:37 +02:00
2024-01-13 12:46:58 -05:00
2025-03-28 18:15:23 +01:00
2025-03-28 18:15:23 +01:00
2024-11-03 13:55:52 -08:00
2024-11-03 13:55:52 -08:00
2025-02-09 20:45:47 -08:00
2025-08-22 17:55:15 +00: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
2025-02-09 20:45:47 -08:00
2025-02-09 20:45:47 -08:00
2024-09-23 11:57:28 +02:00
2025-03-10 08:51:19 +01:00
2024-11-21 19:32:07 +01:00
2024-11-21 19:32:07 +01:00
2024-11-21 19:32:07 +01:00
2024-12-12 16:29:40 +00:00
2024-12-12 16:29:40 +00:00
2025-06-25 17:02:26 +00:00
2025-06-25 17:02:26 +00:00
2025-06-25 17:02:26 +00:00
2023-01-11 09:32:08 +00:00
2025-02-10 20:21:39 +00:00
2025-06-23 21:30:56 +03:00
2025-02-27 10:26:33 +00:00
2025-09-15 14:15:29 +00:00
2025-09-15 14:15:29 +00:00
2023-01-11 09:32:08 +00:00
2024-01-13 12:46:58 -05:00
2025-10-13 15:30:26 +02:00
2025-10-13 15:30:26 +02:00
2025-03-01 22:02:46 +08:00
2025-03-01 22:02:46 +08:00
2025-03-01 22:02:46 +08:00
2023-01-11 09:32:08 +00:00
2024-10-15 13:11:00 +02:00
2024-07-11 19:00:49 -07:00
2024-07-11 19:00:49 -07:00
2024-07-12 23:30:22 +05:30
2024-07-12 23:30:22 +05:30
2025-04-17 06:25:15 +02:00
2024-01-13 12:46:58 -05:00
2025-04-10 09:56:37 +02:00
2024-01-13 12:46:58 -05:00
2025-03-06 11:33:24 -08:00
2025-06-03 10:52:32 -07:00
2025-04-06 21:41:47 +02:00
2025-06-07 21:45:58 +02:00
2025-06-24 23:32:09 +08:00
2025-06-24 23:32:09 +08:00
2024-01-29 17:43:07 +08:00
2024-01-29 17:43:07 +08:00
2025-10-18 21:17:48 +02:00
2025-10-18 21:17:48 +02:00
2025-10-07 09:40:27 +02:00
2025-10-08 08:32:03 +02:00
2024-02-16 20:02:50 +00:00
2023-01-11 09:32:08 +00:00
2023-10-05 01:04:41 +00:00
2023-01-11 09:32:08 +00:00
2024-12-12 23:36:27 +00:00
2024-02-16 20:02:50 +00:00
2023-01-11 09:32:08 +00:00
2025-10-18 21:17:48 +02:00
2025-10-18 21:17:48 +02:00
2025-08-14 18:18:42 +02:00
2025-08-14 18:18:42 +02:00
2023-01-11 09:32:08 +00:00
2024-06-24 16:08:51 +03:00
2024-01-29 17:43:07 +08:00
2024-01-29 17:43:07 +08:00
2023-01-11 09:32:08 +00:00
2024-06-24 16:08:51 +03:00
2023-01-11 09:32:08 +00:00
2024-11-03 13:55:52 -08:00
2025-06-24 23:32:09 +08:00
2025-06-24 23:32:09 +08:00
2024-11-03 13:55:52 -08:00
2024-11-03 13:55:52 -08:00
2025-04-03 21:41:58 +00:00
2024-01-13 12:46:58 -05:00
2025-04-03 21:41:58 +00:00
2024-01-13 12:46:58 -05:00
2023-01-11 09:32:08 +00:00
2023-01-11 09:32:08 +00:00
2023-01-11 09:32:08 +00:00
2023-01-11 09:32:08 +00:00
2025-04-03 21:41:58 +00:00
2024-05-20 19:55:59 -07:00
2024-02-16 20:02:50 +00:00
2023-04-21 15:34:38 +02:00
2023-01-11 09:32:08 +00:00
2024-11-03 13:55:52 -08:00
2023-01-11 09:32:08 +00:00
2023-11-24 19:15:52 +01:00
2023-01-11 09:32:08 +00:00
2023-01-11 09:32:08 +00:00
2024-10-12 10:19:24 +02:00
2025-07-17 22:39:57 +00:00