about summary refs log tree commit diff
path: root/tests/codegen/patchable-function-entry
diff options
context:
space:
mode:
authorNicholas Nethercote <n.nethercote@gmail.com>2024-06-23 08:13:56 +1000
committerNicholas Nethercote <n.nethercote@gmail.com>2024-06-23 15:57:24 +1000
commit5faf95c1c103eb1b466140f0e0ea96564604c83e (patch)
tree6c977d8fbcf409a1f2fdd1729c66411bfd26f41e /tests/codegen/patchable-function-entry
parent0c5a75a61bb2559a3b25cd3656ea36c2a1f4bc0b (diff)
downloadrust-5faf95c1c103eb1b466140f0e0ea96564604c83e.tar.gz
rust-5faf95c1c103eb1b466140f0e0ea96564604c83e.zip
Rework pattern and expression nonterminal kinds.
Merge `PatParam`/`PatWithOr`, and `Expr`/`Expr2021`, for a few reasons.

- It's conceptually nice, because the two pattern kinds and the two
  expression kinds are very similar.

- With expressions in particular, there are several places where both
  expression kinds get the same treatment.

- It removes one unreachable match arm.

- Most importantly, for #124141 I will need to introduce a new type
  `MetaVarKind` that is very similar to `NonterminalKind`, but records a
  couple of extra fields for expression metavars. It's nicer to have a
  single `MetaVarKind::Expr` expression variant to hold those extra
  fields instead of duplicating them across two variants
  `MetaVarKind::{Expr,Expr2021}`. And then it makes sense for patterns
  to be treated the same way, and for `NonterminalKind` to also be
  treated the same way.

I also clarified the comments, because I have long found them a little
hard to understand.
Diffstat (limited to 'tests/codegen/patchable-function-entry')
0 files changed, 0 insertions, 0 deletions