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.
28 lines
1.1 KiB
Plaintext
28 lines
1.1 KiB
Plaintext
error[E0277]: the type `[i32]` cannot be indexed by `i32`
|
|
--> $DIR/slice-index.rs:8:7
|
|
|
|
|
LL | x[1i32];
|
|
| ^^^^ slice indices are of type `usize` or ranges of `usize`
|
|
|
|
|
= help: the trait `SliceIndex<[i32]>` is not implemented for `i32`
|
|
= help: the trait `SliceIndex<[i32]>` is not implemented for `i32`
|
|
but it is implemented for `usize`
|
|
= help: for that trait implementation, expected `usize`, found `i32`
|
|
= note: required for `[i32]` to implement `Index<i32>`
|
|
|
|
error[E0277]: the type `[i32]` cannot be indexed by `RangeTo<i32>`
|
|
--> $DIR/slice-index.rs:9:7
|
|
|
|
|
LL | x[..1i32];
|
|
| ^^^^^^ slice indices are of type `usize` or ranges of `usize`
|
|
|
|
|
= help: the trait `SliceIndex<[i32]>` is not implemented for `RangeTo<i32>`
|
|
= help: the following other types implement trait `SliceIndex<T>`:
|
|
`RangeTo<usize>` implements `SliceIndex<[T]>`
|
|
`RangeTo<usize>` implements `SliceIndex<str>`
|
|
= note: required for `[i32]` to implement `Index<RangeTo<i32>>`
|
|
|
|
error: aborting due to 2 previous errors
|
|
|
|
For more information about this error, try `rustc --explain E0277`.
|