Make suggestions to remove params and super traits tool-only, and make
the suggestion span more accurate.
```
error[E0567]: auto traits cannot have generic parameters
--> $DIR/auto-trait-validation.rs:6:19
|
LL | auto trait Generic<T> {}
| -------^^^
| |
| auto trait cannot have generic parameters
error[E0568]: auto traits cannot have super traits or lifetime bounds
--> $DIR/auto-trait-validation.rs:8:20
|
LL | auto trait Bound : Copy {}
| ----- ^^^^
| |
| auto traits cannot have super traits or lifetime bounds
```
```
error[E0380]: auto traits cannot have associated items
--> $DIR/issue-23080.rs:5:8
|
LL | unsafe auto trait Trait {
| ----- auto traits cannot have associated items
LL | fn method(&self) {
| ^^^^^^
```
26 lines
813 B
Rust
26 lines
813 B
Rust
#![feature(auto_traits)]
|
|
#![allow(dead_code)]
|
|
|
|
//@ run-rustfix
|
|
|
|
auto trait Generic {}
|
|
//~^ ERROR auto traits cannot have generic parameters [E0567]
|
|
auto trait Bound {}
|
|
//~^ ERROR auto traits cannot have super traits or lifetime bounds [E0568]
|
|
auto trait LifetimeBound {}
|
|
//~^ ERROR auto traits cannot have super traits or lifetime bounds [E0568]
|
|
auto trait MyTrait { }
|
|
//~^ ERROR auto traits cannot have associated items [E0380]
|
|
auto trait AssocTy { }
|
|
//~^ ERROR auto traits cannot have associated items [E0380]
|
|
auto trait All {
|
|
//~^ ERROR auto traits cannot have generic parameters [E0567]
|
|
|
|
}
|
|
// We can't test both generic params and super-traits because the suggestion span overlaps.
|
|
auto trait All2 {
|
|
//~^ ERROR auto traits cannot have super traits or lifetime bounds [E0568]
|
|
|
|
}
|
|
fn main() {}
|