mirror of
https://github.com/rust-lang/rust.git
synced 2024-12-02 03:33:59 +00:00
b7fc1a7431
When a trait is not implemented for a type, but there *is* an `impl` for another type or different trait params, we format the output to use highlighting in the same way that E0308 does for types. The logic accounts for 3 cases: - When both the type and trait in the expected predicate and the candidate are different - When only the types are different - When only the trait generic params are different For each case, we use slightly different formatting and wording.
37 lines
1.3 KiB
Plaintext
37 lines
1.3 KiB
Plaintext
error[E0080]: evaluation of constant value failed
|
|
--> $DIR/wfness.rs:1:33
|
|
|
|
|
LL | struct Ooopsies<const N: u8 = { u8::MAX + 1 }>;
|
|
| ^^^^^^^^^^^ attempt to compute `u8::MAX + 1_u8`, which would overflow
|
|
|
|
error[E0277]: the trait bound `(): Trait<2>` is not satisfied
|
|
--> $DIR/wfness.rs:8:9
|
|
|
|
|
LL | (): Trait<N>;
|
|
| ^^^^^^^^ the trait `Trait<2>` is not implemented for `()`
|
|
|
|
|
= help: the trait `Trait<2>` is not implemented for `()`
|
|
but trait `Trait<3>` is implemented for it
|
|
|
|
error[E0277]: the trait bound `(): Trait<1>` is not satisfied
|
|
--> $DIR/wfness.rs:18:13
|
|
|
|
|
LL | fn foo() -> DependentDefaultWfness {
|
|
| ^^^^^^^^^^^^^^^^^^^^^^ the trait `Trait<1>` is not implemented for `()`
|
|
|
|
|
= help: the trait `Trait<1>` is not implemented for `()`
|
|
but trait `Trait<3>` is implemented for it
|
|
note: required by a bound in `WhereClause`
|
|
--> $DIR/wfness.rs:8:9
|
|
|
|
|
LL | struct WhereClause<const N: u8 = 2>
|
|
| ----------- required by a bound in this struct
|
|
LL | where
|
|
LL | (): Trait<N>;
|
|
| ^^^^^^^^ required by this bound in `WhereClause`
|
|
|
|
error: aborting due to 3 previous errors
|
|
|
|
Some errors have detailed explanations: E0080, E0277.
|
|
For more information about an error, try `rustc --explain E0080`.
|