Skip to content

Commit

Permalink
Auto merge of #117811 - MU001999:master, r=lcnr
Browse files Browse the repository at this point in the history
Turn assert_eq into a delay_span_bug

Fixes #117789
  • Loading branch information
bors committed Nov 13, 2023
2 parents 891c6ee + 62b6529 commit 1ab2bcd
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 1 deletion.
8 changes: 7 additions & 1 deletion compiler/rustc_hir_analysis/src/coherence/orphan.rs
Original file line number Diff line number Diff line change
Expand Up @@ -452,7 +452,13 @@ fn lint_auto_trait_impl<'tcx>(
trait_ref: ty::TraitRef<'tcx>,
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_type_did, args) = match self_ty.kind() {
ty::Adt(def, args) => (def.did(), args),
Expand Down
7 changes: 7 additions & 0 deletions tests/ui/auto-traits/issue-117789.rs
Original file line number Diff line number Diff line change
@@ -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 changes: 21 additions & 0 deletions tests/ui/auto-traits/issue-117789.stderr
Original file line number Diff line number Diff line change
@@ -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`.

0 comments on commit 1ab2bcd

Please sign in to comment.