Turn assert_eq into a delay_span_bug
This commit is contained in:
parent
6f308b8713
commit
62b6529e03
3 changed files with 35 additions and 1 deletions
|
@ -452,7 +452,13 @@ fn lint_auto_trait_impl<'tcx>(
|
||||||
trait_ref: ty::TraitRef<'tcx>,
|
trait_ref: ty::TraitRef<'tcx>,
|
||||||
impl_def_id: LocalDefId,
|
impl_def_id: LocalDefId,
|
||||||
) {
|
) {
|
||||||
assert_eq!(trait_ref.args.len(), 1);
|
if trait_ref.args.len() != 1 {
|
||||||
|
tcx.sess.diagnostic().delay_span_bug(
|
||||||
|
tcx.def_span(impl_def_id),
|
||||||
|
"auto traits cannot have generic parameters",
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
let self_ty = trait_ref.self_ty();
|
let self_ty = trait_ref.self_ty();
|
||||||
let (self_type_did, args) = match self_ty.kind() {
|
let (self_type_did, args) = match self_ty.kind() {
|
||||||
ty::Adt(def, args) => (def.did(), args),
|
ty::Adt(def, args) => (def.did(), args),
|
||||||
|
|
7
tests/ui/auto-traits/issue-117789.rs
Normal file
7
tests/ui/auto-traits/issue-117789.rs
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
#![deny(suspicious_auto_trait_impls)]
|
||||||
|
|
||||||
|
auto trait Trait<P> {} //~ ERROR auto traits cannot have generic parameters
|
||||||
|
//~^ ERROR auto traits are experimental and possibly buggy
|
||||||
|
impl<P> Trait<P> for () {}
|
||||||
|
|
||||||
|
fn main() {}
|
21
tests/ui/auto-traits/issue-117789.stderr
Normal file
21
tests/ui/auto-traits/issue-117789.stderr
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
error[E0567]: auto traits cannot have generic parameters
|
||||||
|
--> $DIR/issue-117789.rs:3:17
|
||||||
|
|
|
||||||
|
LL | auto trait Trait<P> {}
|
||||||
|
| -----^^^ help: remove the parameters
|
||||||
|
| |
|
||||||
|
| auto trait cannot have generic parameters
|
||||||
|
|
||||||
|
error[E0658]: auto traits are experimental and possibly buggy
|
||||||
|
--> $DIR/issue-117789.rs:3:1
|
||||||
|
|
|
||||||
|
LL | auto trait Trait<P> {}
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
|
||||||
|
= note: see issue #13231 <https://github.com/rust-lang/rust/issues/13231> for more information
|
||||||
|
= help: add `#![feature(auto_traits)]` to the crate attributes to enable
|
||||||
|
|
||||||
|
error: aborting due to 2 previous errors
|
||||||
|
|
||||||
|
Some errors have detailed explanations: E0567, E0658.
|
||||||
|
For more information about an error, try `rustc --explain E0567`.
|
Loading…
Add table
Add a link
Reference in a new issue