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

needless arbitrary self: handle macros #6093

Merged
merged 1 commit into from
Sep 29, 2020

Conversation

ebroto
Copy link
Member

@ebroto ebroto commented Sep 28, 2020

This fixes two cases related to macros:

  • If the parameter comes from expansion, do not lint as the user has no possibility of changing it. This is not directly related to the fixed issue, but we should probably do that.
  • If only the lifetime name comes from expansion, lint, but allow the user decide the name of the lifetime. In the related issue, the lifetime was unnamed and then renamed by async_trait, so just removing the name in the suggestion would work, but in the general case a macro can rename a lifetime that was named differently, and we can't reliably know that name anymore.

As a hint for the reviewer, the expanded code for the test can be checked with this command (from the root dir of the repo):

rustc -L target/debug/test_build_base/needless_arbitrary_self_type_unfixable.stage-id.aux -Zunpretty=expanded tests/ui/needless_arbitrary_self_type_unfixable.rs

changelog: [needless_arbitrary_self_type]: handle macros

Fixes #6089

@rust-highfive
Copy link

r? @Manishearth

(rust_highfive has picked a reviewer for you, use r? to override)

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties label Sep 28, 2020
@Manishearth
Copy link
Member

@bors r+

@bors
Copy link
Contributor

bors commented Sep 28, 2020

📌 Commit 101e76f has been approved by Manishearth

bors added a commit that referenced this pull request Sep 28, 2020
needless arbitrary self: handle macros

This fixes two cases related to macros:

* If the parameter comes from expansion, do not lint as the user has no possibility of changing it. This is not directly related to the fixed issue, but we should probably do that.
* If *only* the lifetime name comes from expansion, lint, but allow the user decide the name of the lifetime. In the related issue, the lifetime was unnamed and then renamed by `async_trait`, so just removing the name in the suggestion would work, but in the general case a macro can rename a lifetime that was named differently, and we can't reliably know that name anymore.

As a hint for the reviewer, the expanded code for the test can be checked with this command (from the root dir of the repo):
```sh
rustc -L target/debug/test_build_base/needless_arbitrary_self_type_unfixable.stage-id.aux -Zunpretty=expanded tests/ui/needless_arbitrary_self_type_unfixable.rs
```

changelog: [`needless_arbitrary_self_type`]: handle macros

Fixes #6089
@bors
Copy link
Contributor

bors commented Sep 28, 2020

⌛ Testing commit 101e76f with merge 3f5438c...

@bors
Copy link
Contributor

bors commented Sep 28, 2020

💔 Test failed - checks-action_test

@ebroto
Copy link
Member Author

ebroto commented Sep 29, 2020

@bors retry

@bors
Copy link
Contributor

bors commented Sep 29, 2020

⌛ Testing commit 101e76f with merge 99483be...

@bors
Copy link
Contributor

bors commented Sep 29, 2020

☀️ Test successful - checks-action_dev_test, checks-action_remark_test, checks-action_test
Approved by: Manishearth
Pushing 99483be to master...

@bors bors merged commit 99483be into rust-lang:master Sep 29, 2020
@ebroto ebroto deleted the 6089_renamed_lifetimes branch September 29, 2020 11:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-review Status: Awaiting review from the assignee but also interested parties
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Clippy doesn't know how to fix arbitrary_self_type in some async functions
4 participants