error: expected one of `(`, `,`, `=`, `{`, or `}`, found `ty` metavariable
  --> $DIR/syntax-error-recovery.rs:7:26
   |
LL |                 $token $($inner)? = $value,
   |                          ^^^^^^ expected one of `(`, `,`, `=`, `{`, or `}`
...
LL | values!(STRING(1) as (String) => cfg(test),);
   | -------------------------------------------- in this macro invocation
   |
   = help: enum variants can be `Variant`, `Variant = <integer>`, `Variant(Type, ..., TypeN)` or `Variant { fields: Types }`
   = note: this error originates in the macro `values` (in Nightly builds, run with -Z macro-backtrace for more info)

error: macro expansion ignores `ty` metavariable and any tokens following
  --> $DIR/syntax-error-recovery.rs:7:26
   |
LL |                 $token $($inner)? = $value,
   |                          ^^^^^^
...
LL | values!(STRING(1) as (String) => cfg(test),);
   | -------------------------------------------- caused by the macro expansion here
   |
   = note: the usage of `values!` is likely invalid in item context

error: expected one of `!` or `::`, found `<eof>`
  --> $DIR/syntax-error-recovery.rs:7:17
   |
LL |                 $token $($inner)? = $value,
   |                 ^^^^^^ expected one of `!` or `::`

error: aborting due to 3 previous errors

