mirror of
https://github.com/rust-lang/rust.git
synced 2025-10-03 02:40:40 +00:00

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) { | ^^^^^^ ```
30 lines
1.0 KiB
Rust
30 lines
1.0 KiB
Rust
#![feature(auto_traits)]
|
|
#![allow(dead_code)]
|
|
|
|
//@ run-rustfix
|
|
|
|
auto trait Generic<T> {}
|
|
//~^ ERROR auto traits cannot have generic parameters [E0567]
|
|
auto trait Bound : Copy {}
|
|
//~^ ERROR auto traits cannot have super traits or lifetime bounds [E0568]
|
|
auto trait LifetimeBound : 'static {}
|
|
//~^ ERROR auto traits cannot have super traits or lifetime bounds [E0568]
|
|
auto trait MyTrait { fn foo() {} }
|
|
//~^ ERROR auto traits cannot have associated items [E0380]
|
|
auto trait AssocTy { type Bar; }
|
|
//~^ ERROR auto traits cannot have associated items [E0380]
|
|
auto trait All<'a, T> {
|
|
//~^ ERROR auto traits cannot have generic parameters [E0567]
|
|
type Bar;
|
|
//~^ ERROR auto traits cannot have associated items [E0380]
|
|
fn foo() {}
|
|
}
|
|
// We can't test both generic params and super-traits because the suggestion span overlaps.
|
|
auto trait All2: Copy + 'static {
|
|
//~^ ERROR auto traits cannot have super traits or lifetime bounds [E0568]
|
|
type Bar;
|
|
//~^ ERROR auto traits cannot have associated items [E0380]
|
|
fn foo() {}
|
|
}
|
|
fn main() {}
|