Skip to content

Clean up traversal macros #110386

New issue

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

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

Already on GitHub? # to your account

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
Collaborator

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
# for free to join this conversation on GitHub. Already have an account? # 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