Files
rust/tests/ui/traits
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-07-25 20:38:54 +05:00
2025-06-08 11:25:09 +05:00
2024-10-18 00:33:50 +02:00
2025-08-09 16:27:20 +05:00
2025-07-31 21:25:49 +05:00
2025-08-05 19:34:46 +05:00
2025-08-19 21:27:10 +02:00
2025-08-09 16:27:20 +05:00
2024-04-07 17:38:07 -03:00
2024-03-03 16:30:48 -03:00
2024-03-03 16:30:48 -03:00
2024-03-03 16:30:48 -03:00
2025-02-03 10:39:32 -05:00
2025-08-09 16:27:20 +05:00
2025-06-30 11:50:19 +05:00
2025-06-30 11:50:19 +05:00
2024-01-05 10:00:59 +00:00
2025-08-05 19:34:46 +05:00
2025-08-05 19:34:46 +05:00