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

Clean up traversal macros #110386

Merged
merged 2 commits into from
Apr 17, 2023
Merged

Conversation

nnethercote
Copy link
Contributor

The declarative macros relating to type folding and visiting can be simplified.

r? @lcnr

I suspect this macro was around before `TypeFoldable`/`TypeVisitable`
were derivable. But now it's only used for two types, `Result` and
`Option`. Removing the macro and implementing the traits for those types
by hand makes the code much simpler.
They both allow for a lifetime other than `'tcx`, but this isn't needed.
@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 Apr 16, 2023
@nnethercote
Copy link
Contributor Author

nnethercote commented Apr 16, 2023

It's a bit strange that there are both declarative macros and proc macros for generating Lift and TypeFoldable/TypeVisitable impls. But the Lift proc macro doesn't handle types that lack a <'tcx> lifetime. And TrivialTypeTraversalImpls! lets you mark a type T as trivially traversable without having to likewise mark any types within T. So I've left the declarative macros in place.

@nnethercote
Copy link
Contributor Author

@bors rollup

@lcnr
Copy link
Contributor

lcnr commented Apr 17, 2023

@bors r+ rollup

@bors
Copy link
Contributor

bors commented Apr 17, 2023

📌 Commit d2b5a64 has been approved by lcnr

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 Apr 17, 2023
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Apr 17, 2023
…ros, r=lcnr

Clean up traversal macros

The declarative macros relating to type folding and visiting can be simplified.

r? `@lcnr`
bors added a commit to rust-lang-ci/rust that referenced this pull request Apr 17, 2023
…iaskrgr

Rollup of 9 pull requests

Successful merges:

 - rust-lang#104055 (Migrate diagnostics in `rustc_borrowck`)
 - rust-lang#110257 (fix false positives for `unused_parens` around unary and binary operations)
 - rust-lang#110313 (allow `repr(align = x)` on inherent methods)
 - rust-lang#110337 (Correct default value for default-linker-libraries)
 - rust-lang#110386 (Clean up traversal macros)
 - rust-lang#110394 (Various minor Idx-related tweaks)
 - rust-lang#110425 (Encode def span for `ConstParam`)
 - rust-lang#110434 (Check freeze with right param-env in `deduced_param_attrs`)
 - rust-lang#110455 (tests: adapt for LLVM change 5b386b8)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit a6c1fa5 into rust-lang:master Apr 17, 2023
@rustbot rustbot added this to the 1.71.0 milestone Apr 17, 2023
@nnethercote nnethercote deleted the clean-up-traversal-macros branch April 18, 2023 03:23
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.

None yet

4 participants