error: expected identifier, found reserved identifier `_`
  --> $DIR/issue-89066.rs:12:17
   |
LL | struct BadInfer<_>;
   |                 ^ expected identifier, found reserved identifier

error: expected identifier, found reserved identifier `_`
  --> $DIR/issue-89066.rs:18:17
   |
LL | fn bad_infer_fn<_>() {}
   |                 ^ expected identifier, found reserved identifier

error[E0392]: parameter `_` is never used
  --> $DIR/issue-89066.rs:12:17
   |
LL | struct BadInfer<_>;
   |                 ^ unused parameter
   |
   = help: consider removing `_`, referring to it in a field, or using a marker such as `PhantomData`
   = help: if you intended `_` to be a const parameter, use `const _: usize` instead

error[E0107]: this struct takes 2 generic arguments but 3 generic arguments were supplied
  --> $DIR/issue-89066.rs:23:10
   |
LL |   let a: All<_, _, _>;
   |          ^^^       - help: remove this generic argument
   |          |
   |          expected 2 generic arguments
   |
note: struct defined here, with 2 generic parameters: `T`, `N`
  --> $DIR/issue-89066.rs:8:8
   |
LL | struct All<'a, T, const N: usize> {
   |        ^^^     -  --------------

error: aborting due to 4 previous errors

Some errors have detailed explanations: E0107, E0392.
For more information about an error, try `rustc --explain E0107`.
