mirror of
https://github.com/rust-lang/rust.git
synced 2025-10-02 18:27:37 +00:00

* The phrasing "only does something for" made sense back when this diagnostic was a (hard) warning. Now however, it's simply a hard error and thus completely rules out "doing something". * The primary message was way too long * The new wording more closely mirrors the wording we use for applying other bound modifiers (like `const` and `async`) to incompatible traits. * "all other traits are not bound by default" is no longer accurate under Sized Hierarchy. E.g., traits and assoc tys are (currently) bounded by `MetaSized` by default but can't be relaxed using `?MetaSized` (instead, you relax it by adding `PointeeSized`). * I've decided against adding any diagnositic notes or suggestions for now like "trait `Trait` can't be relaxed as it's not bound by default" which would be incorrect for `MetaSized` and assoc tys as mentioned above) or "consider changing `?MetaSized` to `PointeeSized`" as the Sized Hierarchy impl is still WIP)
18 lines
612 B
Plaintext
18 lines
612 B
Plaintext
error: bound modifier `?` can only be applied to `Sized`
|
|
--> $DIR/maybe-bound-has-path-args.rs:3:12
|
|
|
|
|
LL | fn test<T: ?self::<i32>::Trait>() {}
|
|
| ^^^^^^^^^^^^^^^^^^^
|
|
|
|
error[E0109]: type arguments are not allowed on module `maybe_bound_has_path_args`
|
|
--> $DIR/maybe-bound-has-path-args.rs:3:20
|
|
|
|
|
LL | fn test<T: ?self::<i32>::Trait>() {}
|
|
| ---- ^^^ type argument not allowed
|
|
| |
|
|
| not allowed on module `maybe_bound_has_path_args`
|
|
|
|
error: aborting due to 2 previous errors
|
|
|
|
For more information about this error, try `rustc --explain E0109`.
|