Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rework pattern and expression nonterminal kinds. #126851

Merged
merged 3 commits into from
Jun 23, 2024

Conversation

nnethercote
Copy link
Contributor

Some tweaks to NonterminalKind that will assist with #124141. Details in the individual commits.

r? compiler-errors
cc @eholk

So we can omit the `token::` qualifier, which gives more space to some
cramped code.
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 rust-lang#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.
@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Jun 23, 2024
@rustbot
Copy link
Collaborator

rustbot commented Jun 23, 2024

Some changes occurred in src/tools/rustfmt

cc @rust-lang/rustfmt

@compiler-errors
Copy link
Member

@bors r+ rollup

@bors
Copy link
Contributor

bors commented Jun 23, 2024

📌 Commit e2aa38e has been approved by compiler-errors

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jun 23, 2024
compiler-errors added a commit to compiler-errors/rust that referenced this pull request Jun 23, 2024
…r=compiler-errors

Rework pattern and expression nonterminal kinds.

Some tweaks to `NonterminalKind` that will assist with rust-lang#124141. Details in the individual commits.

r? compiler-errors
cc `@eholk`
bors added a commit to rust-lang-ci/rust that referenced this pull request Jun 23, 2024
…mpiler-errors

Rollup of 9 pull requests

Successful merges:

 - rust-lang#126230 (tidy: skip submodules if not present for non-CI environments)
 - rust-lang#126523 (std: refactor the TLS implementation)
 - rust-lang#126612 (Update outdated README in build-manifest.)
 - rust-lang#126616 (less bootstrap warnings)
 - rust-lang#126663 (remove `GIT_DIR` handling in pre-push hook)
 - rust-lang#126830 (make unsized_fn_params an internal feature)
 - rust-lang#126833 (don't ICE when encountering an extern type field during validation)
 - rust-lang#126837 (delegation: Do not crash on qpaths without a trait)
 - rust-lang#126851 (Rework pattern and expression nonterminal kinds.)

r? `@ghost`
`@rustbot` modify labels: rollup
compiler-errors added a commit to compiler-errors/rust that referenced this pull request Jun 23, 2024
…r=compiler-errors

Rework pattern and expression nonterminal kinds.

Some tweaks to `NonterminalKind` that will assist with rust-lang#124141. Details in the individual commits.

r? compiler-errors
cc ``@eholk``
bors added a commit to rust-lang-ci/rust that referenced this pull request Jun 23, 2024
…mpiler-errors

Rollup of 9 pull requests

Successful merges:

 - rust-lang#126230 (tidy: skip submodules if not present for non-CI environments)
 - rust-lang#126608 (Add more constants, functions, and tests for `f16` and `f128`)
 - rust-lang#126612 (Update outdated README in build-manifest.)
 - rust-lang#126616 (less bootstrap warnings)
 - rust-lang#126663 (remove `GIT_DIR` handling in pre-push hook)
 - rust-lang#126830 (make unsized_fn_params an internal feature)
 - rust-lang#126833 (don't ICE when encountering an extern type field during validation)
 - rust-lang#126837 (delegation: Do not crash on qpaths without a trait)
 - rust-lang#126851 (Rework pattern and expression nonterminal kinds.)

r? `@ghost`
`@rustbot` modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull request Jun 23, 2024
…iaskrgr

Rollup of 9 pull requests

Successful merges:

 - rust-lang#126230 (tidy: skip submodules if not present for non-CI environments)
 - rust-lang#126612 (Update outdated README in build-manifest.)
 - rust-lang#126616 (less bootstrap warnings)
 - rust-lang#126663 (remove `GIT_DIR` handling in pre-push hook)
 - rust-lang#126830 (make unsized_fn_params an internal feature)
 - rust-lang#126833 (don't ICE when encountering an extern type field during validation)
 - rust-lang#126837 (delegation: Do not crash on qpaths without a trait)
 - rust-lang#126851 (Rework pattern and expression nonterminal kinds.)
 - rust-lang#126862 (Add needs-symlink directive to compiletest)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit 0149bc4 into rust-lang:master Jun 23, 2024
6 checks passed
@rustbot rustbot added this to the 1.81.0 milestone Jun 23, 2024
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Jun 23, 2024
Rollup merge of rust-lang#126851 - nnethercote:NtExprKind-NtPatKind, r=compiler-errors

Rework pattern and expression nonterminal kinds.

Some tweaks to `NonterminalKind` that will assist with rust-lang#124141. Details in the individual commits.

r? compiler-errors
cc ```@eholk```
@nnethercote nnethercote deleted the NtExprKind-NtPatKind branch June 23, 2024 23:42
compiler-errors pushed a commit to compiler-errors/rust that referenced this pull request Sep 16, 2024
…r=compiler-errors

Rework pattern and expression nonterminal kinds.

Some tweaks to `NonterminalKind` that will assist with rust-lang#124141. Details in the individual commits.

r? compiler-errors
cc ```@eholk```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants