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
..
2025-10-16 19:53:31 +02:00
2025-09-14 12:16:04 +03:00
2025-08-17 13:01:02 -04:00
2025-09-06 13:03:15 +02:00
2025-10-18 23:39:30 +00:00
2025-09-10 15:08:08 +03:00
2025-08-19 21:27:10 +02:00
2025-07-05 17:47:28 +00:00
2025-01-09 17:32:29 +00:00
2025-08-04 17:20:07 +00:00
2025-09-14 12:16:21 +03:00
2025-08-22 17:55:15 +00:00
2025-08-22 17:55:15 +00:00
2025-10-15 23:20:53 +00:00
2025-07-04 18:26:09 +00:00
2025-06-03 18:08:15 +02:00
2024-02-16 20:02:50 +00:00
2025-09-16 23:04:59 +07:00
2025-08-22 17:55:15 +00:00
2025-09-30 15:03:58 +02:00
2025-08-25 16:14:15 -05:00
2025-10-16 19:53:31 +02:00
2025-04-15 15:47:30 +10: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-07 16:30:48 +00:00
2024-02-16 20:02:50 +00:00
2024-11-26 02:50:48 +08:00
2024-03-10 23:30:53 +08:00
2024-12-07 21:37:13 +00:00
2024-11-23 18:54:08 +00:00
2025-01-15 01:26:24 +00:00
2025-07-25 20:38:54 +05:00
2024-02-16 20:02:50 +00:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2025-06-16 23:04:35 +00:00
2025-06-16 23:04:35 +00:00
2025-10-12 00:33:20 -04:00
2025-09-14 12:16:34 +03:00
2025-09-14 12:16:34 +03:00
2025-09-26 15:33:48 +02:00
2025-08-22 17:55:15 +00:00
2025-01-06 16:08:29 -08:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2024-11-26 02:50:48 +08: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-06-28 16:24:17 +05:00
2025-06-30 08:45:43 +00:00
2024-04-10 00:41:27 +00:00
2024-04-10 00:41:27 +00:00
2024-12-07 21:26:20 +00:00
2024-12-07 21:37:15 +00:00
2025-04-08 23:06:31 +03:00
2025-07-05 00:50:51 +05:00
2025-07-05 00:50:51 +05:00
2024-02-16 20:02:50 +00:00
2025-06-04 17:48:50 +05:00
2025-09-14 12:15:49 +03:00
2024-01-02 14:17:56 +00:00
2024-01-02 14:17:56 +00:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2025-06-30 08:45:43 +00:00
2025-06-30 08:45:43 +00:00
2025-06-08 11:25:09 +05:00
2025-08-17 13:01:02 -04:00
2025-07-31 21:25:49 +05:00
2024-12-20 16:57:14 +01:00
2024-12-20 16:57:14 +01:00
2024-12-20 16:57:14 +01:00
2025-06-29 15:37:33 +05:00
2025-06-29 15:37:33 +05:00
2025-02-10 20:21:39 +00:00
2024-10-29 16:26:57 +00:00
2024-11-21 01:35:34 +00:00
2024-11-21 01:35:34 +00:00
2025-04-09 08:56:04 +02:00
2025-04-09 08:56:04 +02:00
2025-10-12 00:33:20 -04:00
2025-10-12 00:33:20 -04:00
2024-05-01 14:19:34 -04:00
2025-04-05 19:34:04 +00:00
2024-10-18 00:33:50 +02:00
2024-10-17 20:43:31 +02:00
2025-07-24 17:01:44 -04:00
2025-07-24 17:01:44 -04:00
2025-07-01 08:56:20 +02:00
2025-08-27 00:23:26 -04:00
2024-11-26 02:50:48 +08:00
2024-02-16 20:02:50 +00:00
2025-06-29 15:37:33 +05:00
2025-06-30 11:50:19 +05:00
2025-08-22 17:55:15 +00:00
2025-06-30 11:50:19 +05:00
2025-08-22 17:55:15 +00:00
2025-07-05 01:54:04 +05:00
2025-06-28 20:48:58 +00:00
2025-06-28 20:48:58 +00:00
2024-11-26 02:50:48 +08:00
2024-02-16 20:02:50 +00:00
2025-08-09 16:27:20 +05:00
2025-07-31 21:25:49 +05:00
2024-10-21 11:45:19 +03:00
2024-10-21 11:45:19 +03:00
2024-06-03 13:21:17 +00:00
2024-06-03 13:21:17 +00:00
2025-09-12 14:45:12 -04:00
2024-02-16 20:02:50 +00:00
2024-10-07 16:30:48 +00:00
2024-11-02 22:17:46 +09:00
2024-11-02 22:17:46 +09:00
2024-03-24 10:57:20 +01:00
2024-03-24 10:57:20 +01:00
2024-03-24 10:57:20 +01:00
2024-03-24 10:57:20 +01:00
2024-03-24 10:57:20 +01:00
2024-03-24 10:57:20 +01:00
2025-01-31 20:39:01 +00:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2025-07-01 08:56:20 +02:00
2024-02-16 20:02:50 +00:00
2024-11-26 02:50:48 +08:00
2024-02-16 20:02:50 +00:00
2025-08-19 21:27:10 +02:00
2025-04-30 10:44:24 +03:00
2025-04-30 10:44:24 +03:00
2024-02-16 20:02:50 +00:00
2025-08-19 21:27:10 +02:00
2025-02-15 12:18:30 +08:00
2025-08-05 19:34:46 +05:00
2024-09-13 14:10:56 +03:00
2025-08-19 21:27:10 +02:00
2024-09-24 10:12:05 -04:00
2024-09-24 10:12:05 -04:00
2025-03-13 21:17:46 +00:00
2025-03-13 21:17:46 +00:00
2025-03-13 21:17:46 +00:00
2025-08-09 16:27:20 +05:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2024-04-07 17:38:07 -03:00
2024-02-16 20:02:50 +00:00
2024-03-03 16:30:48 -03: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-08-19 21:27:10 +02:00
2024-02-16 20:02:50 +00:00
2024-10-29 16:26:57 +00:00
2024-02-16 20:02:50 +00:00
2024-03-03 16:30:48 -03:00
2024-02-16 20:02:50 +00:00
2025-05-26 10:57:54 +00:00
2025-05-27 08:18:11 +00:00
2024-03-03 16:30:48 -03:00
2024-12-07 21:26:20 +00: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-02-16 20:02:50 +00:00
2024-11-26 02:50:48 +08:00
2024-02-16 20:02:50 +00:00
2024-03-10 21:18:41 -04:00
2024-02-16 20:02:50 +00:00
2025-01-22 09:20:57 -08:00
2025-02-10 20:21:39 +00:00
2024-11-23 18:54:08 +00:00
2024-11-23 18:54:08 +00:00
2024-02-16 20:02:50 +00:00
2025-02-20 13:39:39 +00:00
2025-02-20 13:39:39 +00:00
2024-02-14 21:04:51 +00:00
2024-02-14 21:04:51 +00:00
2024-03-10 23:30:53 +08:00
2025-02-10 20:21:39 +00:00
2024-02-16 20:02:50 +00:00
2025-08-19 21:27:10 +02:00
2025-01-22 09:20:57 -08:00
2025-01-26 21:20:31 +01:00
2025-05-26 10:57:54 +00:00
2025-05-27 08:18:11 +00:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2024-12-07 21:29:58 +00:00
2024-02-14 11:00:30 +00:00
2025-03-14 19:50:03 +00:00
2024-02-16 20:02:50 +00:00
2025-02-03 12:54:53 -05: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-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2024-10-29 16:26:57 +00:00
2025-03-14 19:50:03 +00:00
2025-01-22 09:20:57 -08:00
2025-01-26 21:20:31 +01:00
2024-02-16 20:02:50 +00:00
2025-02-03 10:39:32 -05:00
2025-02-10 20:21:39 +00:00
2024-11-21 01:35:34 +00:00
2025-06-30 08:06:08 +00:00
2024-02-16 20:02:50 +00:00
2025-03-14 19:50:03 +00:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2025-04-10 09:56:37 +02:00
2024-02-01 03:30:26 +00:00
2024-05-30 22:52:33 +02:00
2025-08-22 17:55:15 +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
2025-08-22 17:55:15 +00:00
2025-08-07 21:18:00 +00:00
2025-08-07 21:18:00 +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-02-16 20:02:50 +00:00
2024-10-29 16:26:57 +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-15 13:11:00 +02:00
2025-06-30 08:45:43 +00:00
2025-04-08 23:06:31 +03:00
2025-03-14 19:50:03 +00:00
2023-12-17 16:49:00 +08:00
2024-02-22 18:04:55 +00:00
2024-02-16 20:02:50 +00:00
2025-06-05 09:19:31 +02:00
2025-05-27 08:18:11 +00:00
2024-02-16 20:02:50 +00:00
2025-03-13 21:17:46 +00:00
2025-06-16 23:04:36 +00:00
2025-06-16 23:04:36 +00:00
2025-06-16 23:04:36 +00:00
2025-08-09 16:27:20 +05:00
2025-08-09 16:27:20 +05:00
2024-04-04 16:01:13 -04:00
2024-03-21 16:36:17 +00:00
2024-01-12 16:33:29 +00:00
2025-06-30 20:36:16 +02:00
2024-01-30 19:07:18 +00:00
2024-05-20 19:21:30 -04:00
2024-02-22 18:05:27 +00:00
2025-08-19 21:27:10 +02:00
2025-01-11 19:22:06 +00:00
2025-01-22 09:20:57 -08:00
2024-02-16 20:02:50 +00:00
2024-11-26 02:50:48 +08:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2025-02-10 20:21:39 +00:00
2024-02-16 20:02:50 +00:00
2025-08-19 21:27:10 +02:00
2025-07-07 16:47:15 +08:00
2024-02-16 20:02:50 +00:00
2025-08-19 21:27:10 +02:00
2025-08-17 13:01:02 -04:00
2024-04-25 10:03:17 -04:00
2025-03-31 23:58:17 +02:00
2025-07-25 20:38:54 +05:00
2025-07-25 20:38:54 +05:00
2025-08-27 15:06:05 -04:00
2025-08-22 17:55:15 +00:00
2024-03-10 21:18:41 -04:00
2024-03-10 21:18:41 -04:00
2024-03-10 21:18:41 -04:00
2024-02-16 09:29:39 +00:00
2024-02-16 09:29:39 +00:00
2024-05-06 10:48:39 -04:00
2025-02-10 20:21:39 +00:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2025-03-04 00:21:02 +08:00
2025-06-22 10:58:25 +02:00
2025-08-27 00:23:26 -04:00
2025-08-27 00:23:26 -04:00
2024-02-16 20:02:50 +00:00
2025-06-27 05:34:08 +00:00
2025-06-27 05:34:08 +00:00
2024-02-16 20:02:50 +00:00
2024-11-26 02:50:48 +08:00
2025-07-05 03:46:08 +05:00
2025-07-05 03:46:08 +05:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +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-08-17 13:01:02 -04:00
2024-04-06 23:25:58 +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-02-18 17:34:16 +00:00
2025-02-18 17:34:16 +00:00
2025-06-30 11:50:19 +05:00
2025-06-30 11:50:19 +05:00
2024-02-16 20:02:50 +00:00
2025-10-15 09:35:04 +01:00
2025-10-15 09:35:04 +01:00
2024-01-05 09:30:27 +00:00
2024-01-05 10:00:59 +00:00
2025-08-11 16:58:21 -05: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-08-27 15:06:05 -04:00
2024-02-08 08:10:43 +00:00
2024-02-08 08:10:43 +00:00
2024-11-21 01:35:34 +00:00
2025-06-24 18:59:42 +00:00
2024-03-31 21:03:59 -04:00
2024-03-31 21:03:59 -04:00
2024-01-24 02:53:15 +00:00
2025-06-05 09:19:31 +02:00
2024-02-16 20:02:50 +00:00
2025-06-30 11:50:19 +05:00
2025-08-22 17:55:15 +00:00
2024-02-22 18:18:33 +01:00
2024-02-22 18:18:33 +01:00
2024-03-21 00:07:44 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-05-07 17:32:59 +08:00
2025-06-22 10:58:25 +02:00
2025-08-22 17:55:15 +00:00
2024-02-16 20:02:50 +00:00
2024-11-26 02:50:48 +08:00
2025-08-11 16:58:21 -05:00
2025-05-26 10:57:54 +00:00
2025-05-27 08:18:11 +00:00
2024-02-16 20:02:50 +00:00
2024-04-21 20:10:12 -04:00
2025-07-24 17:01:44 -04:00
2025-08-05 19:34:46 +05:00
2025-08-05 19:34:46 +05:00
2025-06-04 19:32:06 +05:00
2025-06-04 19:32:06 +05:00
2025-08-04 16:43:53 -04:00
2025-08-04 16:43:53 -04:00
2025-05-02 15:53:51 +09:00
2025-05-02 15:53:51 +09:00
2025-10-12 00:33:20 -04:00
2025-10-12 00:33:20 -04:00
2025-10-11 21:59:51 -04:00
2025-10-11 21:59:51 -04:00
2025-07-24 17:01:44 -04:00
2025-07-24 17:01:44 -04:00
2025-08-27 00:23:26 -04:00
2025-08-27 00:23:26 -04:00
2025-07-13 00:03:31 +05:00
2025-07-13 00:03:31 +05:00
2025-06-23 18:53:56 +05:00
2025-06-23 18:53:56 +05:00
2025-08-27 15:06:05 -04:00
2025-09-12 14:45:12 -04:00
2025-01-06 16:12:04 -08:00
2025-01-06 16:12:04 -08:00
2025-07-05 01:25:48 +05:00
2025-07-05 01:25:48 +05:00
2025-07-05 01:25:48 +05:00
2025-09-12 14:45:12 -04:00
2024-06-21 21:13:10 +00:00
2024-03-25 20:20:01 +01:00
2024-03-25 20:20:01 +01:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2025-02-25 08:06:30 +00:00
2025-02-25 08:06:30 +00:00
2025-04-09 20:26:58 +00:00
2025-04-09 20:26:58 +00:00
2025-04-09 20:26:58 +00:00
2025-04-09 20:31:58 +00:00
2025-04-09 20:31:58 +00:00
2025-04-09 20:26:57 +00:00
2025-04-09 20:26:57 +00:00
2025-04-09 20:26:57 +00:00
2025-07-13 00:03:31 +05: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-06-30 08:06:08 +00:00
2025-06-30 08:06:08 +00:00
2025-06-30 08:06:08 +00:00
2025-06-30 08:06:08 +00:00
2025-06-30 08:06:08 +00:00
2025-06-30 08:06:08 +00:00
2024-02-16 20:02:50 +00:00
2024-10-29 16:26:57 +00:00
2025-02-10 21:53:05 +00:00
2025-02-10 21:53:05 +00:00
2025-08-19 21:27:10 +02:00
2025-02-06 23:44:23 +01:00
2025-02-06 23:44:23 +01:00
2025-02-06 23:44:23 +01:00
2024-11-26 02:50:48 +08:00
2025-07-10 18:50:35 +05:00
2024-02-22 18:18:33 +01:00
2025-08-07 21:39:00 +00:00
2024-11-26 02:50:48 +08:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2025-02-10 20:21:39 +00:00